如何追加到 Hive 数组



>我有一个Hive表,对于用户ID,我有一个ts列,这是一个时间序列,存储为数组。 我想将时间序列维护为最近的窗口。

(a) 如何在由 ID 连接的另一个表中将新数字附加到每列的末尾?(b) 如何删除前导号码?

Hive中的数据通常存储在HDFS中。HDFS的追加能力有限。如果数据的不断修改是分析系统的核心,那么也许您应该考虑使用HBase或Cassandra等替代方案。

但是,如果数据更新只是工作流的一小部分,我鼓励您继续使用 Hive(以便利用其类似 SQL 的功能),但重新考虑存储这些更新的设计。

上述问题的快速解决方案是表中每个用户 ID 有多个记录。每条记录都有一个与用户 ID 相对应的时间序列。如果要对时间序列执行最后 N 个分析,则应使用"按用户 ID 分布者"列从表中选择。您的自定义化简器将简单地挑选出最后 N(或更少,如果时间序列的大小小于 N)时间戳并返回它们。

Harish Butani 还在 Hive 中的 Windowing 函数上做了一些工作。您还可以查看他的工作和相关文档,以获得更多见解。祝你好运,阿列克西!

最新更新