2016-12-30 2 views
1

この場所ではまっすぐな回答は見つかりませんでした。以前はWebサービスの背後にあるMySQLテーブルにあったいくつかの大きなテーブルに入ってくるデータセットに参加しています。私はテーブルをHadoopのフラットCSVファイルにダンプし、Pigを使用して着信データセットとテーブルファイルをロードし、ジョインを実行しています。ブタのHiveまたはフラットファイルから読みやすくするには?

参加するテーブルファイルがいくつかあり、ファイル自体が非常に大きいため、処理が遅くなります。私はちょうどLEFT OUTERのために行くつもりは、単一のフィールドに、何も空想。

私の質問は、HiveテーブルにCSVファイルを読み込んで、CSVファイルを読み込むのではなく、Pig内でHCatLoaderを使用することで、パフォーマンス上の利点はありますか? HiveはクエリテーブルとSQLのようなインターフェイス以外の利点を提供しているようには思えません。これは、データセット全体にいつ参加するかは関係ありません。

+0

ハイブにデータを読み込んでそこですべての作業を行うのはなぜですか? –

+0

ローディングがボトルネックになっていませんか?外部結合は、より可能性の高い候補のように見えます。 – gobrewers14

+0

ゴードン、私はそれをすることを許可しないプロジェクトの制約があります。 @GoBrewersジョインは間違いなくボトルネックですが、ローディング部分については不思議です。 – economy

答えて

0

Oreillyのプログラミング豚(ページ165)を1として:ハイブは、SQLを提供

、それは伝統的なデータに 分析を行うためのより良いツールです。ほとんどのデータアナリストはすでにSQLに精通しており、 ビジネスインテリジェンスツールはSQLのデータソースと話すことを想定しています。 データパイプラインを構築するときや生データの調査を行うときは、Pig Latinを使用することをお勧めします。

単純な言葉で言えば、より良いクエリのためのハイブです。データパイプラインを構築するためのPIG。最適化されたクエリのためにPive over Hive。


PIG over Hiveは、パーティショニングが利用される可能性のある多数の結合を実行する場合に便利です。

左結合のみを行う予定の場合は、必須ではない場合があります。次に、さらにクエリと分析を行うために、Hiveが良いでしょう。

読み取り:difference b/w hive and pigおよびalso read this

+0

多分私の質問は不明でした。私は間違いなく、CSVファイルから直接読み込むのではなく、HCatLoaderを使用してHiveテーブルからデータを読み込むことに利点があるかどうかを判断しようとしている。 – economy

+1

@economyパーティション化とそれに基づく結合を使用する場合には便利です。 –

+0

この場合、HCatLoaderを使用する利点は、結合するデータの1つまたは複数の特定のパーティションをロードしようとしている場合にのみ実現されます。そうでなければ、ファイルから直接ロードするときと、もしそうなら、それは私が探している答えです。答えを編集して、それをサポートするいくつかの文書を指摘したら、私は受け入れます。 – economy

関連する問題