ハイブを使用して、HBase テーブルで選択クエリを実行しています。
タイムスタンプ値が X よりも小さいすべての行を取得したいと考えています。
私の質問は、このような選択クエリを作成する方法です (特定の方法で Hive テーブルを作成する必要がありますか?)
タイムスタンプは、列の値に関連付けられた属性です。列のタイムスタンプを明示的に利用できるようにするために、Hive がドキュメントで言及されている特定の規則を持っていない限り、Hive からタイムスタンプ情報にアクセスできるとは思えません。
HBase では、スキャンを構築し、タイムスタンプのフィルター条件を追加できます。このようなフィルターをコードで使用できる例があります: /hbase/src/main/java/org/apache/hadoop/hbase/filter/TimestampsFilter.java
注: これが機能する前に、コードがすべてのリージョン サーバーのクラスパスにあることを確認する必要があります。これは、リージョン サーバーを再起動する必要があることを意味します。
この Quora スレッドによると、Hive 0.8では 2 つのタイムスタンプ関数が利用可能です。
from_utc_timestamp(timestamp, string timezone)
to_utc_timestamp(timestamp, string timezone)
.
OPは、作成タイムスタンプが条件に一致するテーブルから行を選択する機能を求めていると思います。
私の知る限り、Hiveはこれを公開していません。
上記の 2 つの関数は、指定されたタイムスタンプ値 (UTC として解釈される) を指定されたタイムゾーンに変換するためのものです。