什么是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相关推荐

  1. 实践数据湖iceberg 第五课 hive catalog特点

    系列文章目录 @[TOC](文章目录) 前言 不以完美记录做为目标.以记录自己学习过程为主线,进行记录,记录通过实践,来了解原理,并把这个实践过程分享给后来需要学习的同学. 本节:了解hive cat ...

  2. Flink SQL 以catalog方式写入HIVE

    Flink 可以通过连接hive catalog的形式向hive写入数据. 重点!! hive 必须有以下属性: 'transactional' = 'false' 'sink.partition-c ...

  3. Flink、Iceberg和Hive的Catalog比较研究

    所谓Catalog即数据目录,简单讲,Catalog是企业用于管理数据资产的方式,Catalog借助元数据来管理数据,包括数据收集.组织.访问.发现和治理.可见,Catalog在数据资产管理中处于核心 ...

  4. 【原创】大叔经验分享(65)spark读取不到hive表

    spark 2.4.3 spark读取hive表,步骤: 1)hive-site.xml hive-site.xml放到$SPARK_HOME/conf下 2)enableHiveSupport Sp ...

  5. ​实战:Flink 1.12 维表 Join Hive 最新分区功能体验

    我们生产常有将实时数据流与 Hive 维表 join 来丰富数据的需求,其中 Hive 表是分区表,业务上需要关联上 Hive 最新分区的数据.上周 Flink 1.12 发布了,刚好支撑了这种业务场 ...

  6. mysql表分区join_​实战:Flink 1.12 维表 Join Hive 最新分区功能体验

    ​实战:Flink 1.12 维表 Join Hive 最新分区功能体验 余东@哗啦啦 Flink 中文社区 我们生产常有将实时数据流与 Hive 维表 join 来丰富数据的需求,其中 Hive 表 ...

  7. 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 ...

  8. flink catalog 及dialect、数据转存分析

    catalog 使用catalog的时候,所有create table的表数据都会记录到catalog,而不仅仅是hive或者postgresql 已经定义好的表. 以使用hive catalog 为 ...

  9. Apache+Hudi入门指南: Spark+Hudi+Hive+Presto

    一.整合 hive集成hudi方法:将hudi jar复制到hive lib下 cp ./packaging/hudi-hadoop-mr-bundle/target/hudi-hadoop-mr-b ...

最新文章

  1. 学习笔记(5)——实验室集群LVS监控Web界面配置
  2. 万能媒体播放器 PotPlayer
  3. Java虚拟机的内存空间有几种!
  4. 【HTML5初探之绘制图像(上)】看我canvas元素引领下一代web页面
  5. (转)前置++和后置++的区别
  6. ajax 偶尔302,关于Ajax 中response出现302的一点见解
  7. 简述linux虚拟内存的概念,Linux进程虚拟内存中的相关概念
  8. 关于C#函数对象参数传递的问题
  9. gini系数 决策树_案例7:机器学习--使用决策树实现泰坦尼克号乘客生存率预测...
  10. 如何优化多数据集关联报表
  11. 使用xshell连接串口方法
  12. 【案例】凤凰新华物流:探索智能化图书发行物流体系建设,助力出版行业担当文化建设使命-WMS
  13. JavaWEB-Servlet
  14. php 协成wifi_WIFI_YIXI2 协成WIFI营销系统2 - 下载 - 搜珍网
  15. Android记事本app
  16. 什么是数据工程师,数据工程师主要是做什么的?
  17. 数据分析师必备技能之埋点
  18. oracle10g 概述,Oracle 10g数据库概述
  19. 数据结构作业-严蔚敏-5.2.(3)
  20. matlab-基础 正无穷 负无穷

热门文章

  1. windows系统硬盘序列号、MAC地址查询方法
  2. CTEX里的函数、符号及特殊字符
  3. oracle 竖杆 通配符_oracle通配符 运算符
  4. Safari难道是下一个IE?兼容性这么“差”
  5. #关于用Python完成(输入一个年份,输入一个月份,输出该年该月有多少天。输入英文逗号隔开的两个数字,代表年份和月份;输出该月的天数。输入输出样例:输入输出示例1:1997,10 31)
  6. 共享未授予用户计算机登录,解决Win10 1909访问共享文件提示“未授予用户在此计算机上的请求登录类型”解决方法...
  7. 如何使用Stunnel和redis-cli通过TLS连接到托管Redis实例
  8. ppt转成wmv的VBS脚本
  9. HTML空格占位符 空行,整理,待以后查看
  10. 【社群话题分享】有哪些程序员专属的“土味情话”?