blog

Hadoop上のオープンソースSQLライクなリアルタイムクエリーシステムの比較

一般的に、impala、stinger、drillの3つのシステムはSQLライクなリアルタイムクエリシステムですが、焦点は全く異なります。また、これらはHiveを置き換えるために設計されているわけでは...

Apr 22, 2025 · 3 min. read
シェア

以前はSQLクエリシステムのHiveとimpala、そして最近はHortonworksのオープンソースStingerとApache Drillを使って研究をしていました。情報を得るために一日中頑張っていたので、頭が大きくなってきました。脳細胞がなくなった記念に、特にこれらの情報を整理します。

調査時間が比較的短いので、書かれた内容に間違いがあるのは避けられません。

全体として、impala、stinger、drillの3つのシステムはSQLライクなリアルタイムクエリシステムですが、焦点は全く異なります。そして、これらはHiveを置き換えるようには設計されていません。

今のところ、より成熟しているのはインパラだけです。

他の2つのシステムはまだ孵化状態ですが、見通しは非常に良好です。

インパラ

このシステムは、Clouderaによって12年後半頃にオープンソース化されました。まだ1年しか経っていませんが、すでに多くの人が使っています。コミュニティも活発で、githubでプロジェクトの開発者やコードのコミットを見ることができます。個人的には、開発者は他にもいくつかの会社を持っていますが、やはりclouderaが中心になっているように感じます。これもimpalaの開発が比較的早く、今は1年ほどしか経っていませんが、impalaは非常に安定した運用が可能です。

impalaは主にhdfsとhbaseのデータを対象としており、リアルタイムのSQLクエリを提供します。これはgoogleのdremel論文に基づいており、ユーザが送信するSQLは独自のパーサとエクゼキュータに基づいているため、分散システムのセットを実現します。下図はそのアーキテクチャです。

M/R技術から完全に切り離され、HDFS内のファイル分布に応じて独自の計算を行うため、Hiveに比べて速度が大幅に向上しています。TPCベンチマークのいくつかを個人的に使ってみたところ、impalaはClouderaが謳うようなHiveの100倍には届かないものの、より複雑なケースで40〜70倍の性能向上を達成しています。

日常的な使用に関しては、ほとんどのSQL-92標準をサポートしていると主張しています。私が試したところ,日常生活でSQLを使う分には何の問題もありませんでした.また、impalaはこの機能を使うために必要なJDBCやODBC接続をサポートしており、この機能をベースに、対応する業務システムのUI部分を開発することで、業務担当者にSQLを自前でやってもらう必要がなくなります。

impalaは一般的に使用されるText、Sequence、avro形式をサポートし、Snappy、bzip、gzip、deflate圧縮をサポートしています。

そして、最良のことは、そのUDF関数は、任意のコードを変更することなく、直接ハイブudfライブラリを使用することができるということです、ハイブの学生の使用は祝うことができる、多くのタスクは、任意の変更を必要としないスムーズなスイッチインパラすることができます。

ドリル

オープンソースの時間とimpalaはほぼ同じですが、Apacheに属しています。このシステムの目標は非常に野心的です - すべてのデータソースを抽象化し、統一されたインターフェイスにしました。一番下のサポートhbase、mongoDB、HDFS、Cassandraと他のデータソース 。

そのデータインタフェースはプラグインであり、理論的には様々なクエリ言語をサポートし、SQLの性質も例外ではありませんが、現在のところ、このシステムはまだApacheのインキュベーションプロジェクトであり、多くの機能はまだ完成しておらず、安定していません。しかし、完成すれば、このシステムは非常に影響力があると予測できます。次の図は、ドリルのアーキテクチャを示しています。

スティンガー

Hortonworksは、リアルタイムクラスのSQLクエリシステムをオープンソースだけでなく、ハイブよりも100倍の速度を向上させることができると主張 。現在、その3つの計画段階の最後の。

どのようなHortonworkの包括的なビューは、ハイブなどの分析システムの既存のベースに最適化レイヤーを追加することです、すべての物事は、不要な作業だけでなく、リソースのオーバーヘッドを削減するために、対処するために、その最適化レイヤーTezを通過する必要があります。それはまた、HIVE最適化と強化の多くが、この効果は、サブシステムTezのパフォーマンスに依存します。 Tezはまた、apacheのインキュベーションプロジェクトは、ストリンガーは、安定した商用利用できるようにしたい場合は、まだ多くの方法です。

Tezがどこに位置するかは、下の略図を見ればわかります。

Read next

高速、安全、信頼性の高い高頻度取引プラットフォームの構築

証券市場改革の深化に伴い、高頻度取引はますます急速に発展し、中国金融市場において最も重要な取引戦略のひとつとなるでしょう。高速で安全かつ信頼性の高い高頻度取引プラットフォームの構築は、特に成熟度の低い市場において、高頻度トレーダーが市場の主導権を握るのに役立ちます。

Apr 22, 2025 · 7 min read