感谢jark大佬,试过了确实可以
我是先用hive的catalog+dialect 建了 hive表,
然后切换到default catalog 建了 kafka source表,
在insert into hive select from
kafka时需要指定hive_catalog.hive_db.hive_table,否则会报表不存在,因为当前是在default catalog
下。大家注意一下
> 2020年11月24日 上午11:41,Jark Wu 写道:
>
> 1. 可以的
> 2. 是的。见文档
> https://ci.apache.org/projects/f
1. 可以的
2. 是的。见文档
https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/sql/use.html#use-catloag
3. 是的。
Hive metastore catalog 就是 Flink 官方提供的通用 catalog(可以存任何 connector 类型)。
Best,
Jark
On Tue, 24 Nov 2020 at 10:58, admin <17626017...@163.com> wrote:
> Hi Rui Li,
> > FlinkSQL允许一个
Hi Rui Li,
> FlinkSQL允许一个Session使用多个Catalog,所以Catalog的选择不是互斥的,可以混用。
一个job里面可以切换catalog的是吧,比如从读kafka中 写hive 的 db1.hive_table。
几个问题请教一下:
1.create kafka source 使用 memory catalog,hive table 使用hive catalog,这样是可以的吧
2.在sql里面切换catalog的语法是什么,在[1]里面没看到,是这样吗 USE CATALOG
catalogName(default_catalog/hive_cat
Hi,
FlinkSQL允许一个Session使用多个Catalog,所以Catalog的选择不是互斥的,可以混用。
关于你的两个问题:
1. 我理解JDBC Catalog主要是为了方便用户查询JDBC的表,目前的实现应该基本是个只读的Catalog
[1],文档也许是可以说的更明确一些。
2.
我觉得要实现一个完整的、生产可用的元数据管理系统都不会太“简单”,能读写schema只是最基础的要求,是否支持并发访问、如何支持HA、如何保证元数据安全都是需要考虑的问题。而hive
metastore已经有比较多的人在用了,所以借助它来持久化元数据是个性价比比较高的选择。
[1]
http
目前Flink提供memory、jdbc、hive这3种catalog。
感觉实际使用中,可以使用如下几种方案。
(1)选择memory catalog,然后每次sql都带上自己的相关DDL。
(2)选择某种catalog,支持“持久化”DDL定义,然后具体sql就不需要带上自己相关的DDL了。
方案1和方案2各有优缺点。
方案1的优点:
比如sql1和sql2都只针kafka topic的部分时间段范围,这种情况某个kafka
topic就不方便写死DDL(持久化),而应该每个SQL自带一个定义。(当然,使用方案2也是可以基于options的覆盖方式简化sql1和sql2自带D