Re: 通过普通ddl来读写hive
这个取决于你们自己的元数据管理系统了,Flink这边实现Catalog的各个接口对接你们的系统就行。比如在Catalog::createTable的实现里可以增加鉴权机制,判断是否允许用户建表之类的。 On Wed, Feb 24, 2021 at 11:14 AM silence wrote: > 那用自定义的catalog怎么定义hive表来读写hive呢 > > > > -- > Sent from: http://apache-flink.147419.n8.nabble.com/ > -- Best regards! Rui Li
Re: 通过普通ddl来读写hive
那用自定义的catalog怎么定义hive表来读写hive呢 -- Sent from: http://apache-flink.147419.n8.nabble.com/
Re: 通过普通ddl来读写hive
Hello, 因为hive本身是通过metastore来管理元数据的,所以通过HiveCatalog对接metastore里的元数据是比较自然的用法。Flink引入Catalog接口的初衷也是为了能方便的对接外部系统的元数据。如果你们用的是自己开发的元数据管理平台,也可以考虑实现自定义的Catalog来对接。 我觉得用in-memory catalog维护hive元数据有点像手动对metastore的元数据做一次snapshot。虽然避免了用户直接访问底层元数据,但使用起来并不方便,比如想要读一张分区表的话需要手动把每个分区的信息添加到in-memory catalog里。 所以如果是出于元数据安全的考虑,更好的做法应该是把catalog接入到已有鉴权机制的控制中。 On Tue, Feb 23, 2021 at 7:17 PM silence wrote: > 我理解各个公司都会有自己的元数据管理平台,hive表的创建修改都需要经过严格的权限控制在平台上进行操作,包括调度任务、实时写入任务、数据血缘等。 > 我个人觉得理想的方式是单个flink > sql的所有的connector通过自维护的元数据进行生成,不需要引入hivecatalog,使用默认的MemoryCatalog即可。 > 总结一下就是不希望引入HiveCatalog来进行hive表的读写 > > > > -- > Sent from: http://apache-flink.147419.n8.nabble.com/ -- Best regards! Rui Li
Re: 通过普通ddl来读写hive
我理解各个公司都会有自己的元数据管理平台,hive表的创建修改都需要经过严格的权限控制在平台上进行操作,包括调度任务、实时写入任务、数据血缘等。 我个人觉得理想的方式是单个flink sql的所有的connector通过自维护的元数据进行生成,不需要引入hivecatalog,使用默认的MemoryCatalog即可。 总结一下就是不希望引入HiveCatalog来进行hive表的读写 -- Sent from: http://apache-flink.147419.n8.nabble.com/
Re: 通过普通ddl来读写hive
Hi, 尝试回答一下你提的这几个问题。 1. 不希望用户直接在metastore中建表的话,那我理解用户所能创建的hive表就只有临时表了。目前HiveCatalog还不支持临时hive表,不过社区已经有计划做了,顺利的话可以在1.13中实现。我想了解一下抛开flink不谈,你们在hive中是如何解决这个问题的呢?也是只允许用户创建临时表么?还是说通过某种权限控制的机制来限制哪些用户可以建表? 2. 针对hive metastore里已有的表,通过flink读写数据不需要修改table property。除非是希望修改表自身的属性(比如format、SerDe等等),这方面跟hive中的使用习惯是一致的。 3. 不用hive方言创建hive表可以尝试添加'is_generic'='false'参数,但前提也是要创建在HiveCatalog里。另外这种方式所能表达的语义很有限,基本只能创建简单的文本表。 4. 这个问题跟#1比较类似,也是可以通过临时表达到这个效果。 On Tue, Feb 23, 2021 at 5:58 PM silence wrote: > 你好 > 感谢回复 > 主要有以下几点原因: > 1、直接使用hive catalog进行hive表的创建修改风险太高,更希望在平台层限制hive表的创建和修改 > > 2、connector的配置是保存在hive表的DBPROPERTIES里的,这是否就意味着想通过flink往现有hive表里写数据需要先通过alter语句修改hive表的属性配置,这里不希望对用户直接暴露alter > hive的能力 > 3、使用普通的ddl可以与现有connector的定义统一风格,不需要来回切换方言 > 4、可以不用将配置信息持久化,通过GenericInMemoryCatalog使用即可 > > > > -- > Sent from: http://apache-flink.147419.n8.nabble.com/ -- Best regards! Rui Li
Re: 通过普通ddl来读写hive
你好 感谢回复 主要有以下几点原因: 1、直接使用hive catalog进行hive表的创建修改风险太高,更希望在平台层限制hive表的创建和修改 2、connector的配置是保存在hive表的DBPROPERTIES里的,这是否就意味着想通过flink往现有hive表里写数据需要先通过alter语句修改hive表的属性配置,这里不希望对用户直接暴露alter hive的能力 3、使用普通的ddl可以与现有connector的定义统一风格,不需要来回切换方言 4、可以不用将配置信息持久化,通过GenericInMemoryCatalog使用即可 -- Sent from: http://apache-flink.147419.n8.nabble.com/
Re: 通过普通ddl来读写hive
你好, 请问一下不想用HiveCatalog来读写hive表的原因是什么呢?是不希望将hive表持久化(类似临时表的效果),或者是不希望维护一个metastore server? On Tue, Feb 23, 2021 at 2:57 PM silence wrote: > 问一下社区有没有计划支持普通的ddl(不用hive的catalog)来进行读写hive表吗 > 现在不支持是有什么考虑吗 > > > > -- > Sent from: http://apache-flink.147419.n8.nabble.com/ -- Best regards! Rui Li
通过普通ddl来读写hive
问一下社区有没有计划支持普通的ddl(不用hive的catalog)来进行读写hive表吗 现在不支持是有什么考虑吗 -- Sent from: http://apache-flink.147419.n8.nabble.com/