S3の生データに対するETLプロセスにHIVEを使用しています。私は別のデータベースに読み込む前にソートされた構造化出力データを生成します(赤色シフト)。 データは、ソートされた一連の管理可能なチャンク、たとえば、チャンクごとに510億行、合計データセットが100億個のレコードである場合、赤方偏移にロードする必要があります。HIVE - 大規模な順序付き問合せ結果セットを複数の順次ファイルに分割する
私はデータを並べ替える方法を探しています。それをソートされたシーケンスで個別にアップロードできる小さな管理可能なチャンクに分割します。 これまでのところ私はそれを可能にするアプローチを考え出すことができませんでした。私は "Oder By"節を使用してハイブの減速師の数を強制的に1にするので、1つのマンモスファイルが得られます! 私はそのような巨大なファイルをS3の中から解凍/分割/再圧縮/再ロードに移動する方法はありません。
"クラスターバイ"を使用すると、内部的にソートされたチャンクが生成されますが、チャンク間のシーケンスの保証はありません。
ソートバイキーは複合英数字キーであり、個別カウントは分割するには大きすぎます。クラスタと
問題/配布:クラスタに問題
をし、私の理解からオプションを配布する分布が分散キーのハッシュに基づいて起こるということです。 x < yの場合、hash(x)はhash(y)より小さくなることは保証されません。したがって、生成されるファイル全体では、データはソートされません。
私は既に私の記事でこれを行うにはS3からこのファイルを取って戻すスペースを持っていないと述べた。その1つのファイルは簡単に1TBになる可能性があります –