Flink 1.11:流批一体 Hive 数仓( 二 )
Hive Dialect 目前所支持的具体功能可以参考 FLIP-123 或 Flink 的官方文档 。 另外 , 该功能的一些设计原则和使用注意事项如下:
- Hive Dialect 只能用于操作 Hive 表 , 而不是 Flink 原生的表(如 Kafka、ES 的表) , 这也意味着 Hive Dialect 需要配合 HiveCatalog 使用 。
- 使用 Hive Dialect 时 , 原有的 Flink 的一些语法可能会无法使用(例如 Flink 定义的类型别名) , 在需要使用 Flink 语法时可以动态切换到默认的 Dialect 。
- Hive Dialect 的 DDL 语法定义基于 Hive 的官方文档 , 而不同 Hive 版本之间语法可能会有轻微的差异 , 需要用户进行一定的调整 。
- Hive Dialect 的语法实现基于 Calcite , 而 Calcite 与 Hive 有不同的保留关键字 。 因此 , 某些在 Hive 中可以直接作为标识符的关键字(如 “default” ) , 在Hive Dialect 中可能需要用“`”进行转义 。
Flink 1.10中 , Flink 已经支持了 ORC (Hive 2+) 的向量化读取支持 , 但是这很局限 , 为此 , Flink 1.11 增加了更多的向量化支持:
- ORC for Hive
- Parquet for Hive 1,2,3
3、简化 Hive 依赖
Flink 1.10 中 , Flink 文档中列出了所需的 Hive 相关依赖 , 推荐用户自行下载 。 但是这仍然稍显麻烦 , 所以在1.11 中 , Flink 提供了内置的依赖支持 :
- flink-sql-connector-hive-1.2.2_2.11-1.11.jar:Hive 1 的依赖版本 。
- flink-sql-connector-hive-2.2.0_2.11-1.11.jar:Hive 2.0 - 2.2 的依赖版本 。
- flink-sql-connector-hive-2.3.6_2.11-1.11.jar:Hive 2.3 的依赖版本 。
- flink-sql-connector-hive-3.1.2_2.11-1.11.jar:Hive 3 的依赖版本 。
最后感谢您的阅读 , 如果喜欢本文欢迎关注和转发 , 本头条号将坚持持续分享IT技术知识 。 对于文章内容有其他想法或意见建议等 , 欢迎提出共同讨论共同进步 。
- Flink中parallelism并行度和slot槽位的理解
- 网易云音乐基于Flink实时数仓实践
- flink消费kafka的offset与checkpoint
- 畅玩光追游戏 四款RTX3080显卡11.11力推
- 华为云“11.11上云嘉年华”狂欢倒计时,不玩套路福利送到底
- 京东11.11宣传片刷屏,媒体发起热爱联盟力挺京东11.11全球热爱季
- Apache Hudi 与 Apache Flink 集成
- 基于Flink+ClickHouse打造轻量级点击流实时数仓
- Lyft 基于 Flink 的大规模准实时数据分析平台
- 未来科技圈是什么样儿?20家品牌大佬坐镇京东11.11有话说