flink-hive方言配置(Hive Dialect)

浩客2年前技术文章1382

简介

       在使用 Hive 方言时,Flink 允许用户用 Hive 语法来编写 SQL 语句。 通过提供与 Hive 语法的兼容性,我们旨在改善与 Hive 的互操作性,并减少用户需要在 Flink 和 Hive 之间切换来执行不同语句的情况。

配置

Flink 目前支持两种 SQL 方言: default 和 hive。你需要先切换到 Hive 方言,然后才能使用 Hive 语法编写。

1、SQL Client 

SQL 方言可以通过 table.sql-dialect 属性指定。你可以在 SQL 客户端启动后设置方言。

Flink SQL> SET table.sql-dialect = hive; -- 使用 Hive 方言 
[INFO] Session property has been set.  

Flink SQL> SET table.sql-dialect = default; -- 使用 Flink 默认 方言 
[INFO] Session property has been set.
2、SQL Gateway Configured With HiveServer2 Endpoint #

在启动了 HiveServer2 endpoint 的 SQL Gateway中,会默认使用 Hive 方言,所以如果你想使用 Hive 方言的话,你不需要手动切换至 Hive 方言,直接就能使用。但是如果你想使用 Flink 的默认方言,你也手动进行切换。

# 假设已经通过 beeline 连接上了 SQL Gateway
jdbc:hive2> SET table.sql-dialect = default; -- 使用 Flink 默认 方言

jdbc:hive2> SET table.sql-dialect = hive; -- 使用 Hive 方言

示例:

-- hive方言
set table.sql-dialect=hive;
-- 默认的 
set table.sql-dialect=default;

-- 设置之后再flink中就可以直接使用hive的语法了
-- 使用hive的语法只能做离线处理
create table student1
(
id  string,
name string,
age int,
gender string,
clazz string
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS textfile
location '/tmp/student/';

相关文章

win内存使用率过高但是资源监视器查看不到进程,排查思路

win内存使用率过高但是资源监视器查看不到进程,排查思路

问题现象:服务器:某云服务器 内存使用率持续打高,但是通过任务管理器查不到占用内存很高的进程排查步骤:1、通过任务管理器分析核查目标主机的内存使用趋势情况,近7天内存使用情况如下:通过任务管理器排查内...

HBase使用snappy压缩

HBase使用snappy压缩

安装编译环境依赖yum install -y automake autoconf gcc-c++ cmake libedit libtool openssl-devel ncurses-devel安装...

MySQL性能优化(六)优化or条件

MySQL性能优化(六)优化or条件

优化器是数据库中非常核心,又非常复杂的一个组件。有的SQL,优化器选择的执行计划并不是最优的,通过改写SQL,可以帮助优化器找到最优的执行计划。where条件中的or子句,是比较容易出问题的一个场景。...

等待事件latch: cache buffers chains 的分析与优化

等待事件latch: cache buffers chains 的分析与优化

等待事件latch: cache buffers chains 的分析与优化要理解latch: cache buffers chains并解决这个问题,就需要深入的了解Buffer Cach...

Python 序列化与反序列化

1、为什么要序列化内存中的字典、列表、集合以及各种对象,如何保存到一个文件中?如果是自己定义的类的实例,如何保存到一个文件中?如何从文件中读取数据,并让它们在内存中再次恢复成自己对应的类的实例?要设计...

MySQL 8.0 新特性:Instant Add Column

MySQL 8.0 新特性:Instant Add Column

一、前言MySQL 8.0 支持 “快速加列” 功能,既添加字段时可以支持 “INSTANT” 快速完成。通过只修改数据字典的方法来实现大表快速加列,避免之前加列操作必须做的数据拷贝,从而大幅缩小大表...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。