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

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
数据管理 DMS,安全协同 3个实例 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学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
6月前
|
SQL 分布式计算 MaxCompute
Apache Flink目前不支持直接写入MaxCompute,但是可以通过Hive Catalog将Flink的数据写入Hive表
Apache Flink目前不支持直接写入MaxCompute,但是可以通过Hive Catalog将Flink的数据写入Hive表
99 3
|
SQL 存储 API
Flink教程(25)- Flink高级特性(FlinkSQL整合Hive)
Flink教程(25)- Flink高级特性(FlinkSQL整合Hive)
961 0
|
SQL 存储 大数据
大数据FlinkSQL整合Hive
大数据FlinkSQL整合Hive
176 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数据管理的简介、下载、案例应用之详细攻略
|
3月前
|
物联网 数据管理 Apache
拥抱IoT浪潮,Apache IoTDB如何成为你的智能数据守护者?解锁物联网新纪元的数据管理秘籍!
【8月更文挑战第22天】随着物联网技术的发展,数据量激增对数据库提出新挑战。Apache IoTDB凭借其面向时间序列数据的设计,在IoT领域脱颖而出。相较于传统数据库,IoTDB采用树形数据模型高效管理实时数据,具备轻量级结构与高并发能力,并集成Hadoop/Spark支持复杂分析。在智能城市等场景下,IoTDB能处理如交通流量等数据,为决策提供支持。IoTDB还提供InfluxDB协议适配器简化迁移过程,并支持细致的权限管理确保数据安全。综上所述,IoTDB在IoT数据管理中展现出巨大潜力与竞争力。
106 1
|
4月前
|
SQL NoSQL 数据管理
数据管理DMS使用问题之如何批量导入MongoDB的数据文件
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
20天前
|
关系型数据库 分布式数据库 数据库
云栖大会|从数据到决策:AI时代数据库如何实现高效数据管理?
在2024云栖大会「海量数据的高效存储与管理」专场,阿里云瑶池讲师团携手AMD、FunPlus、太美医疗科技、中石化、平安科技以及小赢科技、迅雷集团的资深技术专家深入分享了阿里云在OLTP方向的最新技术进展和行业最佳实践。