Hive Catalog
什么是Hive Catalog
我们知道,Hive使用Hive Metastore(HMS)存储元数据信息,使用关系型数据库来持久化存储这些信息。所以,Flink集成Hive需要打通Hive的metastore,去管理Flink的元数据,这就是Hive Catalog的功能。
Hive Catalog的主要作用是使用Hive MetaStore去管理Flink的元数据。Hive Catalog可以将元数据进行持久化,这样后续的操作就可以反复使用这些表的元数据,而不用每次使用时都要重新注册。如果不去持久化catalog,那么在每个session中取处理数据,都要去重复地创建元数据对象,这样是非常耗时的。
如何使用Hive Catalog
HiveCatalog是开箱即用的,所以,一旦配置好Flink与Hive集成,就可以使用HiveCatalog。比如,我们通过FlinkSQL 的DDL语句创建一张kafka的数据源表,立刻就能查看该表的元数据信息。
from pyflink.table import *
from pyflink.table.catalog import HiveCatalogenv_settings = EnvironmentSettings.new_instance().in_batch_mode().use_blink_planner().build()
tableEnv = BatchTableEnvironment.create(environment_settings=env_settings)print("AAA")
catalog_name = "myhive"
default_database = "default"#生产环境文件目录
hive_conf_dir = "/data/docker/containers/*****kService/conf" # a local path#测试环境容器 /data/EtlServices/dlp/code/conf
#hive_conf_dir = "/data/EtlServices/dlp/code/conf"
print("BBB")hive_catalog = HiveCatalog(catalog_name, default_database, hive_conf_dir)
tableEnv.register_catalog("myhive", hive_catalog)
print("CCC")# set the HiveCatalog as the current catalog of the session
tableEnv.use_catalog("myhive")
print("DDD")
# to use hive dialect
tableEnv.get_config().set_sql_dialect(SqlDialect.HIVE)print(tableEnv.list_databases())
HiveCatalog可以处理两种类型的表:一种是Hive兼容的表,另一种是普通表(generic table)。其中Hive兼容表是以兼容Hive的方式来存储的,所以,对于Hive兼容表而言,我们既可以使用Flink去操作该表,又可以使用Hive去操作该表。
普通表是对Flink而言的,当使用HiveCatalog创建一张普通表,仅仅是使用Hive MetaStore将其元数据进行了持久化,所以可以通过Hive查看这些表的元数据信息(通过DESCRIBE FORMATTED命令),但是不能通过Hive去处理这些表,因为语法不兼容。
对于是否是普通表,Flink使用is_generic属性进行标识。默认情况下,创建的表是普通表,即is_generic=true,如果要创建Hive兼容表,需要在建表属性中指定is_generic=false。
参考连接:Flink集成Hive之Hive Catalog与Hive Dialect--以Flink1.12 - 大数据技术与数仓 - 博客园
Hive Catalog相关推荐
- 实践数据湖iceberg 第五课 hive catalog特点
系列文章目录 @[TOC](文章目录) 前言 不以完美记录做为目标.以记录自己学习过程为主线,进行记录,记录通过实践,来了解原理,并把这个实践过程分享给后来需要学习的同学. 本节:了解hive cat ...
- Flink SQL 以catalog方式写入HIVE
Flink 可以通过连接hive catalog的形式向hive写入数据. 重点!! hive 必须有以下属性: 'transactional' = 'false' 'sink.partition-c ...
- Flink、Iceberg和Hive的Catalog比较研究
所谓Catalog即数据目录,简单讲,Catalog是企业用于管理数据资产的方式,Catalog借助元数据来管理数据,包括数据收集.组织.访问.发现和治理.可见,Catalog在数据资产管理中处于核心 ...
- 【原创】大叔经验分享(65)spark读取不到hive表
spark 2.4.3 spark读取hive表,步骤: 1)hive-site.xml hive-site.xml放到$SPARK_HOME/conf下 2)enableHiveSupport Sp ...
- 实战:Flink 1.12 维表 Join Hive 最新分区功能体验
我们生产常有将实时数据流与 Hive 维表 join 来丰富数据的需求,其中 Hive 表是分区表,业务上需要关联上 Hive 最新分区的数据.上周 Flink 1.12 发布了,刚好支撑了这种业务场 ...
- mysql表分区join_实战:Flink 1.12 维表 Join Hive 最新分区功能体验
实战:Flink 1.12 维表 Join Hive 最新分区功能体验 余东@哗啦啦 Flink 中文社区 我们生产常有将实时数据流与 Hive 维表 join 来丰富数据的需求,其中 Hive 表 ...
- 1.30.Flink SQL案例将Kafka数据写入hive
1.30.Flink SQL案例将Kafka数据写入hive 1.30.1.1.场景,环境,配置准备 1.30.1.2.案例代码 1.30.1.2.1.编写pom.xml文件 1.30.1.2.2.M ...
- flink catalog 及dialect、数据转存分析
catalog 使用catalog的时候,所有create table的表数据都会记录到catalog,而不仅仅是hive或者postgresql 已经定义好的表. 以使用hive catalog 为 ...
- Apache+Hudi入门指南: Spark+Hudi+Hive+Presto
一.整合 hive集成hudi方法:将hudi jar复制到hive lib下 cp ./packaging/hudi-hadoop-mr-bundle/target/hudi-hadoop-mr-b ...
最新文章
- 学习笔记(5)——实验室集群LVS监控Web界面配置
- 万能媒体播放器 PotPlayer
- Java虚拟机的内存空间有几种!
- 【HTML5初探之绘制图像(上)】看我canvas元素引领下一代web页面
- (转)前置++和后置++的区别
- ajax 偶尔302,关于Ajax 中response出现302的一点见解
- 简述linux虚拟内存的概念,Linux进程虚拟内存中的相关概念
- 关于C#函数对象参数传递的问题
- gini系数 决策树_案例7:机器学习--使用决策树实现泰坦尼克号乘客生存率预测...
- 如何优化多数据集关联报表
- 使用xshell连接串口方法
- 【案例】凤凰新华物流:探索智能化图书发行物流体系建设,助力出版行业担当文化建设使命-WMS
- JavaWEB-Servlet
- php 协成wifi_WIFI_YIXI2 协成WIFI营销系统2 - 下载 - 搜珍网
- Android记事本app
- 什么是数据工程师,数据工程师主要是做什么的?
- 数据分析师必备技能之埋点
- oracle10g 概述,Oracle 10g数据库概述
- 数据结构作业-严蔚敏-5.2.(3)
- matlab-基础 正无穷 负无穷
热门文章
- windows系统硬盘序列号、MAC地址查询方法
- CTEX里的函数、符号及特殊字符
- oracle 竖杆 通配符_oracle通配符 运算符
- Safari难道是下一个IE?兼容性这么“差”
- #关于用Python完成(输入一个年份,输入一个月份,输出该年该月有多少天。输入英文逗号隔开的两个数字,代表年份和月份;输出该月的天数。输入输出样例:输入输出示例1:1997,10 31)
- 共享未授予用户计算机登录,解决Win10 1909访问共享文件提示“未授予用户在此计算机上的请求登录类型”解决方法...
- 如何使用Stunnel和redis-cli通过TLS连接到托管Redis实例
- ppt转成wmv的VBS脚本
- HTML空格占位符 空行,整理,待以后查看
- 【社群话题分享】有哪些程序员专属的“土味情话”?