如何有效地处理易失性记录

eit6fx6z  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(340)

我有这个问题,我想由其他人来管理,看看我是否能以更好的方式处理这个问题。
我们有300个节点集群,每天处理交易信息/记录。我们每天可以获得约1000万次的传输量,每个记录大小约为2k字节。
我们目前使用hdfs进行数据存储,pig和hive进行数据处理。在大多数情况下,我们使用外部配置单元表类型,其中它是按事务创建日期进行分区的。
业务是这样的,我们可能会得到一个更新的交易是几个月或几年前创建的。例如,我可能会得到5年前创建的事务的更新。我们不能忽略这个记录,而只是为一个记录重新处理相应的分区。
因此,我们每天处理1000个分区。还有更多的etl应用程序使用这些事务表。
我知道这是对hive/hdfs架构的限制。
我相信其他人也会有这个问题,如果你能分享你可能尝试过的选择,以及你是如何克服这个问题的,这将是非常有帮助的?

kg7wmglp

kg7wmglp1#

您不必覆盖分区:只需插入分区即可。不要在insert命令中包含“overwrite”。
下面是一个按日期分区的表的示例,我在其中插入了一个(没有ovewrite!)两次-你可以看到记录在那里。两次!这样就显示了分区被追加,而不是被覆盖/删除。
插入到表insert\u test不要把覆盖放在这里!选择。。

hive> select * from insert_test;
OK
name    date
row1    2014-03-05
row2    2014-03-05
row1    2014-03-05
row2    2014-03-05
row3    2014-03-06
row4    2014-03-06
row3    2014-03-06
row4    2014-03-06
row5    2014-03-07
row5    2014-03-07
row6    2014-03-09
row7    2014-03-09
row6    2014-03-09
row7    2014-03-09
row8    2014-03-16
row8    2014-03-16

相关问题