MapReduce服务 MRS-Flink任务开发建议:使用Hive SQL时如果Flink语法不兼容则可切换Hive方言
使用Hive SQL时如果Flink语法不兼容则可切换Hive方言
当前Flink支持的SQL语法解析引擎有default和Hive两种,第一种为Flink原生SQL语言,第二种是Hive SQL语言。因为部分Hive语法的DDL和DML无法用Flink SQL运行,所以遇到这种SQL可直接切换成Hive的dialect。使用Hive dialect需要注意:
- Hive dialect只能用于操作Hive表,不能用于普通表。Hive方言应与HiveCatalog一起使用。
- 虽然所有Hive版本都支持相同的语法,但是是否有特定功能仍然取决于使用的Hive版本。例如仅在Hive-2.7.0或更高版本中支持更新数据库位置。
- Hive和Calcite具有不同的保留关键字。例如default在Calcite中是保留关键字,在Hive中是非保留关键字。所以在使用Hive dialect时,必须使用反引号(`)引用此类关键字,才能将其用作标识符。
- 在Hive中不能查询在Flink中创建的视图。
【示例】修改SQL解析为Hive语法(sql-submit-defaults.yaml):
configuration: table.sql-dialect: hive
- MapReduce服务_什么是Hive_如何使用Hive
- MapReduce服务_如何使用MapReduce服务_MRS集群客户端安装与使用
- Hudi服务_什么是Hudi_如何使用Hudi
- MRS备份恢复_MapReduce备份_数据备份
- MapReduce服务_什么是存算分离_如何配置MRS集群存算分离
- MapReduce服务_什么是Hue_如何使用Hue
- 什么是Spark_如何使用Spark_Spark的功能是什么
- MapReduce服务_什么是Loader_如何使用Loader
- MapReduce服务_什么是Flink_如何使用Flink
- 数据治理中心_数据开发_数据开发能力_脚本和节点介绍-华为云