Hiveテーブルがあり、ユーザーIDには、時系列であるts列が配列として格納されています。時系列を最新のウィンドウとして維持したいと思います。
(a)IDで結合された別のテーブルの各列の最後に新しい番号を追加するにはどうすればよいですか?(b)先頭の番号を削除するにはどうすればよいですか?
Hiveテーブルがあり、ユーザーIDには、時系列であるts列が配列として格納されています。時系列を最新のウィンドウとして維持したいと思います。
(a)IDで結合された別のテーブルの各列の最後に新しい番号を追加するにはどうすればよいですか?(b)先頭の番号を削除するにはどうすればよいですか?
通常、Hive のデータは HDFS に格納されます。HDFS の追加機能は限られています。データの絶え間ない変更が分析システムの中核にある場合は、HBase や Cassandra などの代替手段の使用を検討する必要があります。
ただし、データの更新がワークフローのごく一部である場合は、(SQL のような機能を利用するために) Hive を引き続き使用することをお勧めしますが、これらの更新を保存するための設計を再検討してください。
上記の問題の簡単な解決策は、テーブルにユーザー ID ごとに複数のレコードを含めることです。各レコードには、ユーザー ID に対応する時系列があります。時系列で最後の N 分析を実行する場合は、[ユーザー ID] 列で [ by Distribute By ]を使用してテーブルから選択を行う必要があります。カスタム レデューサーは、単純に最後の N 個 (時系列のサイズが N 未満の場合はそれ以下) のタイムスタンプを選択して返します。
Harish Butani は、Hive のウィンドウ機能についても作業を行いました。また、彼の作品と関連するドキュメントを参照して、さらに洞察を得ることができます。がんばれ、アレクシー!