正しいデータウェアハウスSQLエンジンを選択する。 Apache Hive LLAP vs Apache Impala

Aren’t two superheroes better than one?

最も強力な結果のいくつかは、補完的なスーパーパワーを組み合わせることによってもたらされます。 ImpalaもHiveも、何ペタバイトものデータを扱う、前例のない巨大なスケールで運用することが可能です。 ImpalaとHive LLAPは、どちらも私のデータウェアハウスのユースケースにぴったりだと思うのですが、なぜこの2つのどちらかを選ぶ必要があるのでしょうか? 答えは簡単で、それぞれに独自の特長があり、行いたい分析の種類によっては、一方が他方よりも適していると感じるかもしれないからです。 しかし、私がブログの最後に残している秘密があります。それは、ユーザーにとって決断をさらに簡単にすることです:実際、とても簡単なので、自分で決める必要さえありません。

これらの SQL エンジンの違いに触れる前に、Impala と Hive LLAP はどちらも同じデータとメタデータを共有する(Hive Metastore を通して)ので、気が変わったら一方から他方に切り替えられるだけでなく、同じデータに対して異なるエンジン選択で異なるワークロードを同時に実行できることに注目することは重要なポイントです。 まさに「Best of Both Worlds」(両世界のベスト)な状況です。 一般的には、Impala は、データ マート、つまり、通常、範囲が限定されたスキーマを持つ大規模なデータ セットを操作するときに最適に機能します。 一方、Hive LLAPは、エンタープライズデータウェアハウスという広い範囲にわたるユースケースに対応するのに適しています。 これらのユースケースには、複数の部門やさまざまな下流アプリケーションが関わっていることが多く、いずれもクエリのパターンが多岐にわたります。 また、Impalaはインタラクティブでアドホックなクエリに適しており、特に数百、数千のユーザーが独自に作業している場合に適していることがわかります。

また、あるクエリやあるテーブルにはImpalaを使用し、他のクエリや他のテーブルにはHive LLAPを使用するというように、組み合わせて使用することも可能です。

非常に CPU 効率の良い C++ で書かれ、非常に高速なクエリ プランナーとメタデータ キャッシングを備えた Impala は、低レイテンシー クエリ用に最適化されています。 このため、Impala はデータマートで使用するのに理想的なエンジンです。なぜなら、データマートで作業する人々は、ほとんどの場合、読み取り専用のクエリーを実行し、大規模な書き込みを行わないからです。

また、Impala は、コード生成、プロセス間通信、大規模な並列処理、およびメタデータ キャッシングを使用する、非常に効率的なランタイム実行フレームワークを備えています。 このため、Impala は、データを繰り返し掘り下げることによって探索するときのような、アドホックなクエリーを扱うときにも最適です。 クエリを何度も何度も変更し、瞬間的に変更し、非常に高速なレスポンスタイムを実現することで、反復のたびに永遠に待たされることがないようにしたいものです。

Hive LLAP は洗練された設計になっています。

Hive LLAP には多くの高度な機能があり、開発者が始めて効果的に使用するのが少し難しくなるかもしれません。 Hive LLAP では、時々、クエリが実行のための計画と立ち上げに時間がかかることがあります。 しかし、Hiveは非常にフォールトトレラントであるように設計されています。 長く実行されるクエリの断片が失敗しても、Hiveはそれを再割り当てして再挑戦します。 Hiveはクエリ結果だけでなく、データファイルも高度なアルゴリズムでキャッシュします。 Hive LLAPはクエリフェデレーションをサポートしており、複数のコンポーネントやデータベースにまたがってクエリを実行することができます。

このように洗練された柔軟性を持つHive LLAPは、エンタープライズデータウェアハウス(EDW)のユースケースに適しています。 EDWでは、ビジネス インテリジェンスのレポートやダッシュボード、依存するデータマート、他のエンタープライズ アプリケーション、外部システムなどをサポートします。 これらのワークロードは、多くの場合、複数のディメンションを考慮しており、その結果、EDW はデータ マートよりも複雑な SQL 要求を処理しなければならないことが多く、データ マートへのデータ投入や通常のデータ抽出のために、複雑なデータ型、より多くのスケジュールされたクエリー、クエリー オーケストレーションがより必要となります。 高速なアドホッククエリでは、Hive LLAPの起動時間はImpalaに比べて遅くなりますが、長時間実行するクエリでは、この起動コストは総実行時間の中で比較的取るに足らない部分となります。 また、Hive LLAPはフォールトトレランス(結果を待つ時間が長いとクエリが失敗しやすい)であり、より複雑なクエリでより良いパフォーマンスを発揮するため、EDWにとってより良い選択肢になります。

Using Impala and Hive LLAP

Impala Hive LLAP
Data mart Enterprise data warehouse
  • インタラクティブでアドオン可能なLive LLPは良い選択となります。ホック分析が可能です。 特に同時実行性の高いセルフサービス
  • 重い変換や複数の結合を必要とする長時間実行のクエリに最適
  • 対話型およびアドバンスト・システムに最適。
  • クエリを素早く変更できるビジネスインテリジェンスツールに最適
  • ダッシュボードに最適。
  • Parquet を優先ファイル形式として使用
  • を使用。 ORC を優先するファイル形式
  • Impala よりも JSON をうまく扱える

大量データセットと使用事例の増加により、このようになりました。 データウェアハウスのSQLエンジンを正しく選択することで、タイムリーな結果を得ることができます。

Racing for Resultsに参加しませんか? データウェアハウス – Impala vs. Hive LLAP」(2020年10月20日、米国太平洋時間午前10時、米国東部時間午後1時、専門家による活発な議論、顧客の使用事例、およびライブQ&Aを含む)を開催いたします。

David Dichmann
David Dichmann

Director Product Marketing

コメントを残す

メールアドレスが公開されることはありません。