开发者社区> 问答> 正文

哪位大神知道,flink 在新任务中,如何获取之前任务中已经创建过的表? #Flink

哪位大神知道,flink 在新任务中,如何获取之前任务中已经创建过的表? #Flink

展开
收起
黄一刀 2020-05-15 19:27:41 2119 0
2 条回答
写回答
取消 提交回答
  • flink的Table&SQL API 建表都会存在对应的 catalog 的 database 中。默认情况下,使用的是 org.apache.flink.table.catalog.GenericInMemoryCatalog 你注册的souce表也好,sink表也好,中间创建的table或者view也好,都会注册在这个catalog中,也就是内存中,任务结束,信息不会被保存

    如果你想跨flink session使用表。 比如我提前创建好source表的表结构,如kafakSource,然后其他任务就不用再很麻烦的重新注册这个kafkasource表的话。 需要自己实现一个 catalog 类,将注册的表信息写道mysql中或者其他持久化存储中。 这样任何的flink任务,只要使用你自己实现的catalog,就可以获取定义好的表。

    可以看下我这个flink与hive集成时的demo,flink自带的hive的catalog就是这么做的,只不过更复杂 https://github.com/935205406/flink-hive-integration-demo/blob/master/src/main/java/com/example/flink/HiveWriteDemo.java

    2020-05-15 19:55:09
    赞同 展开评论 打赏
  • 通过 catelog 获取

    2020-05-15 19:28:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载