1

Web サイトのログを処理するスクリプトがいくつかあります。このデータを Hive の複数のテーブルにロードしました。これらのスクリプトを毎日実行して、トラフィックの分析を行っています。

最近、これらのスクリプトで作成したハイブ クエリに時間がかかりすぎていることがわかりました。以前は、レポートの生成に約 10 ~ 15 分かかっていましたが、今では同じことを行うのに数時間かかります。

私はデータの分析を行い、データセットの増加の約 5-10% を行いました。

私の友人の 1 人が、複数の Hive テーブルを結合することに関しては Hive は良くないので、スクリプトを Pig に切り替える必要があると提案してくれました。Pig と比較して、Hive はテーブルの結合が苦手ですか?

4

1 に答える 1

1
Is Hive bad at joining tables

いいえ。Hive は実際にはかなり優れていますが、クエリ オプティマイザーをいじるのに少し時間がかかる場合があります。

使用する Hive のバージョンによっては、特定のアルゴリズムを使用してデータを結合するようオプティマイザーに指示するために、クエリにヒントを提供する必要がある場合があります。さまざまなヒントの詳細については、こちらを参照してください。

Pig の使用を検討している場合は、パフォーマンスの考慮事項だけに基づいて選択するべきではないと思います。私の経験では、Pig を使用しても定量化できるメリットはありません。過去数年間、両方を使用してきましたが、パフォーマンスに関して明確な勝者はいません。

ただし、Pig が提供するのは、使用する結合の種類を定義する際に、いくつかの (場合によってはあいまいな) オプティマイザーのヒントに頼る代わりに、より透明性を高めることです。

結局のところ、Pig か Hive は実際には問題ではなく、クエリをどのように最適化するかによって決まるだけです。Pig への切り替えを検討している場合は、最初に、処理に関して何が必要かを実際に分析します。おそらくパフォーマンスの点でも落ちるでしょう。2つを比較したい場合は、こちらの投稿が良いでしょう。

于 2013-01-10T22:05:40.090 に答える