Flink 表和 Hive 目录存储

问题描述

我有一个 kafka 主题一个 Hive metastore。我想加入来自 kafka 主题的传入事件以及 metastore 的记录。我看到了 Flink 使用目录来查询 Hive metastore 的可能性。 所以我看到了两种处理方法

  • 使用 DataStream api 使用 kafka 主题并在 processFunction 或类似的东西中以一种或另一种方式查询 Hive 目录
  • 使用 Table-Api,我将从 kafka 主题创建一个表并将其与 Hive 目录结合

我最关心的是与存储相关的问题。 在这两种情况下,什么存储在内存中,什么不是? Hive 目录是否在 Flink 的集群端存储任何内容? 在第二种情况下,表是如何处理的? flink 是否创建副本?

哪个解决方案看起来最好? (也许两者都不是很好的选择)

解决方法

不同的方法适用于不同的场景,有时取决于你的hive表是静态表还是动态表。

如果你的hive只是维度表,可以试试本章。

joins-in-continuous-queries

会自动关联hive的最新分区,适用于维度数据更新较慢的场景。

但需要注意的是,Legacy planner 不支持此功能。