Impala-overview
Impala-概要
Impalaとは何ですか?
Impalaは、Hadoopクラスターに格納されている膨大な量のデータを処理するためのMPP(Massive Parallel Processing)SQLクエリエンジンです。 C ++とJavaで書かれたオープンソースソフトウェアです。 Hadoopの他のSQLエンジンと比較して、高いパフォーマンスと低いレイテンシを提供します。
言い換えれば、Impalaは、Hadoop分散ファイルシステムに保存されているデータにアクセスする最速の方法を提供する(RDBMSのようなエクスペリエンスを提供する)最高のパフォーマンスのSQLエンジンです。
Impalaを選ぶ理由
Impalaは、HDFS、HBase、Metastore、YARN、Sentryなどの標準コンポーネントを利用することにより、従来の分析データベースのSQLサポートとマルチユーザーパフォーマンスをApache Hadoopのスケーラビリティと柔軟性と組み合わせます。
- Impalaを使用すると、ユーザーは、SQLクエリを使用して、Hiveなどの他のSQLエンジンと比べてより高速にHDFSまたはHBaseと通信できます。
- Impalaは、Hadoopで使用されるParquet、Avro、RCFileなど、ほぼすべてのファイル形式を読み取ることができます。
Impalaは、Apache Hiveと同じメタデータ、SQL構文(Hive SQL)、ODBCドライバー、およびユーザーインターフェイス(Hue Beeswax)を使用して、バッチ指向またはリアルタイムクエリ用の使い慣れた統合プラットフォームを提供します。
Apache Hiveとは異なり、* ImpalaはMapReduceアルゴリズム*に基づいていません。 同じマシンで実行されるクエリ実行のすべての側面を担当する*デーモンプロセス*に基づく分散アーキテクチャを実装します。
したがって、MapReduceを使用するレイテンシーが短縮され、これによりImpalaがApache Hiveよりも高速になります。
Impalaの利点
以下は、Cloudera Impalaの顕著な利点のリストです。
- impalaを使用すると、HDFSに保存されているデータを、従来のSQLの知識で超高速で処理できます。
- データが存在する場所(Hadoopクラスター上)でデータ処理が行われるため、Impalaでの作業中、Hadoopに保存されたデータのデータ変換とデータ移動は必要ありません。
- Impalaを使用すると、Java(MapReduceジョブ)の知識がなくても、HDFS、HBase、およびAmazon s3に保存されているデータにアクセスできます。 SQLクエリの基本的な考え方でそれらにアクセスできます。
- ビジネスツールでクエリを作成するには、データを複雑な抽出-変換-ロード(ETL)サイクルで処理する必要があります。 しかし、Impalaでは、この手順は短縮されます。 読み込みと再編成の時間のかかる段階は、 探索的データ分析とデータ検出 などの新しい手法によって克服され、プロセスが高速化されます。
- Impalaは、Parquetファイル形式の使用の先駆者です。Parquetファイル形式は、データウェアハウスシナリオで一般的な大規模なクエリに最適化された円柱状のストレージレイアウトです。
Impalaの機能
以下は、cloudera Impalaの機能です-
- Impalaは、Apacheライセンスの下でオープンソースとして自由に利用できます。
- Impalaはインメモリデータ処理をサポートします。つまり、データを移動せずにHadoopデータノードに保存されているデータにアクセス/分析します。
- SQLのようなクエリを使用して、Impalaを使用してデータにアクセスできます。
- Impalaは、他のSQLエンジンと比較して、HDFSのデータへの高速アクセスを提供します。
- Impalaを使用すると、HDFS、Apache HBase、Amazon s3などのストレージシステムにデータを保存できます。
- Impalaは、Tableau、Pentaho、Micro戦略、ズームデータなどのビジネスインテリジェンスツールと統合できます。
- Impalaは、LZO、Sequence File、Avro、RCFile、Parquetなどのさまざまなファイル形式をサポートしています。
- Impalaは、Apache Hiveのメタデータ、ODBCドライバー、およびSQL構文を使用します。
リレーショナルデータベースとImpala
Impalaは、SQLおよびHiveQLに似たクエリ言語を使用します。 次の表は、SQLとImpalaクエリ言語の主な違いを示しています。
Impala | Relational databases |
---|---|
Impala uses an SQL like query language that is similar to HiveQL. | Relational databases use SQL language. |
In Impala, you cannot update or delete individual records. | In relational databases, it is possible to update or delete individual records. |
Impala does not support transactions. | Relational databases support transactions. |
Impala does not support indexing. | Relational databases support indexing. |
Impala stores and manages large amounts of data (petabytes). | Relational databases handle smaller amounts of data (terabytes) when compared to Impala. |
Hive、Hbase、およびImpala
Cloudera Impalaは、Hiveと同じクエリ言語、メタストア、ユーザーインターフェイスを使用しますが、HiveとHBaseでは特定の面で異なります。 次の表は、HBase、Hive、およびImpalaの比較分析を示しています。
HBase | Hive | Impala |
---|---|---|
HBase is wide-column store database based on Apache Hadoop. It uses the concepts of BigTable. | Hive is a data warehouse software. Using this, we can access and manage large distributed datasets, built on Hadoop. | Impala is a tool to manage, analyze data that is stored on Hadoop. |
The data model of HBase is wide column store. | Hive follows Relational model. | Impala follows Relational model. |
HBase is developed using Java language. | Hive is developed using Java language. | Impala is developed using C++. |
The data model of HBase is schema-free. | The data model of Hive is Schema-based. | The data model of Impala is Schema-based. |
HBase provides Java, RESTful and, Thrift API’s. | Hive provides JDBC, ODBC, Thrift API’s. | Impala provides JDBC and ODBC API’s. |
Supports programming languages like C, C#, C++, Groovy, Java PHP, Python, and Scala. | Supports programming languages like C++, Java, PHP, and Python. | Impala supports all languages supporting JDBC/ODBC. |
HBase provides support for triggers. | Hive does not provide any support for triggers. | Impala does not provide any support for triggers. |
これらの3つのデータベースすべて-
- NOSQLデータベースです。
- オープンソースとして利用可能。
- サーバー側のスクリプトをサポートします。
- 耐久性や並行性などのACIDプロパティに従います。
- *分割*には*分割*を使用します。
Impalaの欠点
Impalaを使用することの欠点のいくつかは次のとおりです-
- Impalaは、シリアル化と逆シリアル化のサポートを提供しません。
- Impalaは、カスタムバイナリファイルではなく、テキストファイルのみを読み取ることができます。
- 新しいレコード/ファイルがHDFSのデータディレクトリに追加されるたびに、テーブルを更新する必要があります。