2016-06-30 4 views
3

HBaseはテーブルに対して結合操作を許可しません。これを克服するために、私はHBaseテーブルを作成し、Impalaからアクセスする予定です。Impalaを使用してHbaseテーブルにアクセスする際に、すべてのSQL操作が機能しますか?

Impalaでは、group byおよび他のSQL操作と一緒にすべての結合が可能です。私はそれに関連するいくつかの質問があります -

  1. 誰かがこのアプローチをテストしましたか?

  2. impalaはHiveで動作しますか?

私はclouderaのドキュメントで答えを見つけようとしましたが、明確な答えがありません。

+0

返信ありがとうございますが、私の質問はハイブではなくHBaseのImpalaに関連しています。 – tesnik03

+0

Q1では、私はHbaseのimplaとhiveの外部テーブルについて話していました。スパークストリーミングにより、まずHbaseにデータを取り込み、その上に外部テーブルを作成しました。私たちはその上でアドホックなクエリを実行しました。あなたが探しているのではないですか? ダイアグラムの最初のポイントには、 "hdfs(つまり内部テーブル)とhbase(つまり外部テーブル)でクエリを実行するプログラマのためのImpala" –

+0

ありがとう@RamPrasadG、あなたの努力を感謝します。 – tesnik03

答えて

2

「明確な答えは」あなたが探しているパラメータによって異なり単語は...

Q1:誰もがこの方法をテストしていますか?

  • はいインパラのこのアプローチ - HBaseの外部表は、当社がアドホッククエリのためにそれを同じことを行っているとして、可能です。しかし、我々のシステムはまだ製品化されていません。 スパークスチーム処理によるデータ収集後に、Impala(Hbaseの外部テーブル)を使用して生データ(つまり、処理前にアドホッククエリなど)をクエリします(結合してグループ化します)。クロウデラを使用しているので、私たちの選択肢は明白です。 以前はHive(Hbase外部テーブル)と同じことをしていました。

注(外部表のコンテキストで追加情報):

  • インパラは、ハイブを置き換えるものではありませんが、それは非常に異なるユースケースに適しています。 ImpalaはHiveと比較してフォールトトレランス機能を提供していません。したがって、クエリ中に問題が発生していれば、それはなくなりました。ユーザーはクエリを再発行する必要があります。 FTが重要なハイブを持っているETLジョブの場合は、最適です。

  • ImpalaはApache Hiveよりも高速ですが、すべての大きなデータ問題に対するワンストップSQLソリューションであるとは限りません。インパラはメモリを大量に消費し、すべてをメモリにプッシュすることができないため、ジョインなどの大量のデータ操作に効果的に実行されません。これは、ハイブが救助に来た時です。アプリケーションが大量のデータに対してバッチ処理のニーズを持っている場合、組織はHiveを選択する必要があります。データのサブセットに対してアドホッククエリのリアルタイム処理が必要な場合は、Impalaを使用する方が良い選択です。

Q2:すべてのSQL操作可能な作業も同様にだけでなく、 インパラはハイブで動作しますか? HBaseのかインパラSQLの内部テーブルの

私はSOで使用してはならない無地のリンクから、このarticleからの更なる情報については、図の下に参照してください、私はより良い理解のために掲載された記事からの図を使用しています。 additional information about impala & hive for decision support

関連する問題