質問

MapReduceプログラムを書いていないように、HBaseで特定のRowKeyの以前のバージョンを取得する方法があるかどうか疑問に思います。私は、ハイブまたはインパラ(または別の同様のプログラム)を使用して、これが可能であるかどうか、そしてあなたがこれを行う方法であるかどうか、興味がありました。

私のテーブルは次のようになります:

  Composite keys          Values 
  (md5 + date + id) | (value)
.

特定の日付のすべての値とIDの副文字列( "411")のすべてのバージョンのすべての値を平均したいです。

先にありがとう。

役に立ちましたか?

解決

IMPALAは、HIVEメタストワーを使用して、テーブルの論理的な概念をHDFSまたはHBaseに物理的に保存されているデータにマッピングします(詳細については、 cloudera documentation

HBaseに格納されているデータについてhiveメタストアに指示する方法について詳しくは、ハイブドキュメンテーション

残念ながら、上記のハイブの文書に記載されているように:

現在HBase Timestamp属性にアクセスする方法はありません。 クエリは常に最新のタイムスタンプ

でデータにアクセスします。

hive-のhiveの古いバージョンのハイブに対してこの機能を追加するためのいくつかの仕事がありました。 2828 。残念ながら、仕事はまだトランクにマージされていない。

だからアプリケーションでは、HBase Schemaを「バージョン」列を含めるように再設計する必要があります。この新しい列についてはハイブのメタストワーに指示し、アプリケーションをこの列に認識させます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top