flink-hive方言配置(Hive Dialect)

浩客1年前技术文章1234

简介

       在使用 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/';

相关文章

Logstash迁移ES集群

一、背景介绍   logstash 支持从一个 ES 集群中读取数据然后写入到另一个 ES 集群,因此可以使用 logstash 进行数据迁移,使用 logstash 进行迁移前,需要注意以下几点:需...

hive执行count和spark执行count结果不一致

hive执行count和spark执行count结果不一致

【组件版本】hive on mr、spark【问题现象】hive 执行count语句,结果条数为0,spark执行count语句能正常显示count数【详细描述】hive 执行count语句:显示co...

SQL Server优化入门系列(五)—— SQL Server的执行计划

SQL Server优化入门系列(五)—— SQL Server的执行计划

定位到TOP SQL后,怎么优化呢?我们需要分析SQL的执行计划,制定相应的优化策略。这篇文章中,我们将介绍查看SQL Server执行计划的几种方法。本文测试案例中使用了AdventureWorks...

MySQL 8.0 Clone 备份恢复演练

前言上一篇文章中,我们介绍了使用 Clone 插件进行备份,相关的恢复流程将在本篇文章介绍。MySQL 8.0 Clone Plugin 详解恢复增量数据的方法,使用的是伪装为 relay log 通...

Kubernetes安全--基于sa和user的rbac认证机制

前言Kubernetes中的用户K8S中有两种用户(User)——服务账号(ServiceAccount)和普通意义上的用户(User)ServiceAccount是由K8S管理的,而User通常是在...

MySQL 中的状态变量

前言本篇文章介绍一些 MySQL 中常用的监控指标,常见的监控工具都是采集 MySQL 中的状态变量(status variables)理解这些状态变量,可以更好的帮助我们理解 MySQL 监控的含义...

发表评论    

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