如何连续地将小消息导入impala并优化parquet文件大小以供查询?

sbdsn5lh  于 2021-07-13  发布在  Hadoop
关注(0)|答案(0)|浏览(217)

这次悬赏已经结束了。回答此问题可获得+50声望奖励。赏金宽限期6小时后结束。马里奥·斯特凡努蒂想引起更多的注意**这个问题。

情况是:
我们有来自数十万个物联网设备的小消息,每秒将信息发送到我们系统的主网关(基础设施监控)
我们使用物联网传感器的id将这些消息流式传输到kafka(20个不同的主题),并使用可配置的分区公式对数据进行分区
我们有一些kafka connect进程,从这20个主题中读取这些消息,写入hadoop hdfs,每分钟聚合这些消息,将数据划分到不同的hdfs暂存目录(基本上按设备组)
我们想有效地导入所有这些数据到 Impala 试图优化也Parquet文件大小更快的查询。
目前,我们有两个过程:
第一个过程:每隔20分钟运行一些代码,将所有文件进一步压缩到当前存储库中,然后将数据加载到impala中
第二个过程:每天运行一些impala sql代码压缩当前\u天的数据,然后在新数据到来之前截断当前\u天以释放空间到当前\u天
问题:
问题是,只有在第一个进程将数据加载到impala中20分钟后,我们才能在impala中看到数据
第二个问题是,当一天接近尾声时,impala查询变得更慢
我在stackoverflow上发现了许多相关的问题,但是我没有找到解决这个问题的一般方法。
如何有效地更新文件被频繁修改的impala表
如何有效地将数据从kafka移动到impala表?
如何使用spark structured streaming实现每批流数据聚合?
问:对于这种情况,有没有什么通用的方法看起来很常见?来自大量设备的小数据和impala查询的优化。
版本:
hadoop=3.1.4(待定)
Impala =3.4.0
Kafka=2.7.0(scala 2.13)
插件kafkaconnect per hadoop=kafka-connect-hdfs3:1.1.1

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题