FlinkSQL 元数据管理(使用hive的catalog)

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
实时计算 Flink 版,5000CU*H 3个月
简介: catalog 分类flink sql 使用hive的catalog集成hive读取hive

catalog 分类


⽤来保存元数据(数据库、表结构、分区、视图、函数等等),Flink也提供 了catalog,当然也可以在Flink中使⽤Hive的catalog。


catalog

描述

GenericInMemoryCatalog

基于内存的catalog(区分⼤⼩写),只有在session的⽣命周期范围内可⽤,默 认的

JdbcCatalog

dbcCatalog 使⽤户能够通过 JDBC 协议将 Flink 连接到关系数据库, PostgresCatalog 是⽬前唯⼀的 JDBC Catalog 实现(https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/connectors/table/jdbc/#postgres-database-as-a-catalog)



HiveCatalog

Hive Catalog有两个用途:

1, 作为Flink 元数据的持久存储(DDL语句会在hive的catalog中保存元数据)

2,读写hive

https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/connectors/table/hive/overview/


Hive集成



Flink集成Hive使⽤HiveCatalog即可

https://nightlies.apache.org/flink/flink-docs-release-1.14/docs/connectors/table/hive/overview/


新增依赖

部署的Hive是3.1.0,需要以下依赖:


<!--FlinkDependency--><dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-hive_2.11</artifactId><version>${flink.version}</version><!--<scope>provided</scope>--></dependency><!--HiveDependency--><dependency><groupId>org.apache.hive</groupId><artifactId>hive-exec</artifactId><version>${hive.version}</version><exclusions><exclusion><artifactId>hadoop-hdfs</artifactId><groupId>org.apache.hadoop</groupId></exclusion></exclusions><!--<scope>provided</scope>--></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-core</artifactId><version>${hadoop.version}</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>${hadoop.version}</version><exclusions><exclusion><artifactId>commons-math3</artifactId><groupId>org.apache.commons</groupId></exclusion></exclusions></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-common</artifactId><version>${hadoop.version}</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-mapreduce-client-jobclient</artifactId><version>${hadoop.version}</version></dependency>


读取hive


publicclassFlinkUseHiveCatalog {
publicstaticvoidmain(String[] args) {
//1、创建TableEnvironmentEnvironmentSettingssettings=EnvironmentSettings .newInstance()
 .build();
TableEnvironmenttEnv=TableEnvironment.create(settings);
//2、初始化hive catalog(为避免代码重复,我这⾥封装了⼀下)HiveUtils.initHive(tEnv);
//3、查询Hive中的表tEnv.executeSql("select * from myrs.user_op_log")
 .print();
 }
}
publicclassHiveUtils {
/*** 初始化hive的相关资源* @param tableEnv*/publicstaticvoidinitHive(TableEnvironmenttableEnv) {
Stringname="myhive";
Stringversion="3.1.0";
StringdefaultDatabase="default";
StringhiveConfDir="data/etc/";
//加载HiveModule(可以使⽤hive的UDF)//https://nightlies.apache.org/flink/flink-docs-release1.14/docs/dev/table/modules/tableEnv.loadModule(name, newHiveModule(version));
//使⽤hive⽅⾔(hivesql特有的语法)tableEnv.getConfig().setSqlDialect(SqlDialect.HIVE);
//创建HiveCatalogHiveCataloghive=newHiveCatalog(name, defaultDatabase, hiveConfDir);
tableEnv.registerCatalog(name, hive);
//设置当前sesion使⽤的catalog和databsetableEnv.useCatalog(name);
tableEnv.useDatabase("myrs");
 }
}






















相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
7月前
|
SQL 分布式计算 MaxCompute
Apache Flink目前不支持直接写入MaxCompute,但是可以通过Hive Catalog将Flink的数据写入Hive表
Apache Flink目前不支持直接写入MaxCompute,但是可以通过Hive Catalog将Flink的数据写入Hive表
105 3
|
SQL 存储 API
Flink教程(25)- Flink高级特性(FlinkSQL整合Hive)
Flink教程(25)- Flink高级特性(FlinkSQL整合Hive)
1007 0
|
SQL 存储 大数据
大数据FlinkSQL整合Hive
大数据FlinkSQL整合Hive
187 0
|
SQL 分布式计算 Hadoop
FlinkSQL Client 集成Hive
FlinkSQL Client 集成Hive flink sql cli 启动模式 重要命令和配置 sql client 集成hive 执行hive 查询
|
SQL 存储 分布式计算
BigData之Hive:Hive数据管理的简介、下载、案例应用之详细攻略
BigData之Hive:Hive数据管理的简介、下载、案例应用之详细攻略
|
SQL 存储 分布式计算
BigData之Hive:Hive数据管理的简介、下载、案例应用之详细攻略
BigData之Hive:Hive数据管理的简介、下载、案例应用之详细攻略
|
7月前
|
SQL 数据采集 数据挖掘
大数据行业应用之Hive数据分析航班线路相关的各项指标
大数据行业应用之Hive数据分析航班线路相关的各项指标
204 1
|
2月前
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
65 0
|
5月前
|
SQL 分布式计算 大数据
大数据处理平台Hive详解
【7月更文挑战第15天】Hive作为基于Hadoop的数据仓库工具,在大数据处理和分析领域发挥着重要作用。通过提供类SQL的查询语言,Hive降低了数据处理的门槛,使得具有SQL背景的开发者可以轻松地处理大规模数据。然而,Hive也存在查询延迟高、表达能力有限等缺点,需要在实际应用中根据具体场景和需求进行选择和优化。