问题描述
我有一个 kafka 主题和一个 Hive metastore。我想加入来自 kafka 主题的传入事件以及 metastore 的记录。我看到了 Flink 使用目录来查询 Hive metastore 的可能性。 所以我看到了两种处理方法:
- 使用 DataStream api 使用 kafka 主题并在 processFunction 或类似的东西中以一种或另一种方式查询 Hive 目录
- 使用 Table-Api,我将从 kafka 主题创建一个表并将其与 Hive 目录结合
我最关心的是与存储相关的问题。 在这两种情况下,什么存储在内存中,什么不是? Hive 目录是否在 Flink 的集群端存储任何内容? 在第二种情况下,表是如何处理的? flink 是否创建副本?
哪个解决方案看起来最好? (也许两者都不是很好的选择)
解决方法
不同的方法适用于不同的场景,有时取决于你的hive表是静态表还是动态表。
如果你的hive只是维度表,可以试试本章。
会自动关联hive的最新分区,适用于维度数据更新较慢的场景。
但需要注意的是,Legacy planner 不支持此功能。