跳到主要内容
版本: 0.6

Catalog 管理

Catalog 概述

当您使用 Flink 管理元数据时,Flink已提供了四种不同的 Catalog:

  • GenericInMemoryCatalog
  • JdbcCatalog
  • HiveCatalog
  • 用户自定义的Catalog

在实际的开发过程当中,如果是采用 Flink 原生的 Catalog。具体 Flink 是如何定义 Catalog 的,详见 Flink 官网。详见 Flink 官网

另外 Dinky 提供了二种基于Catalog :

  • Session会话级别的 Catalog
  • Mysql Catalog 如果在 Dinky 实时计算平台开发,推荐采用 Flink 原生的 HiveCatalog 或者 Dinky 的 Mysql Catalog。

Hive Catalog

介绍

您可以在 Dinky 中使用 FlinkSQL 在作业中编写 Hive Catalog、查看 Hive 元数据、使用 Hive Catalog。将元数据信息保存到 Hive Metastore 以后,即可在数据开发的编辑器中开发作业。

说明

依赖说明

# FLINK_HOME/lib及 $DINKY_HOME/plugins下
flink-sql-connector-hive-x.x.x_x.xx-x.x.x.jar

版本说明

Flink 版本说明
Flink1.11详见Flink1.11说明
Flink1.12详见Flink1.12说明
Flink1.13详见Flink1.13说明
Flink1.14详见Flink1.14说明
Flink1.15详见Flink1.15说明

前提条件

已在 Hive Metastore 侧开启了 Hive Metastore 服务。 相关命令如下:

  • hive --service metastore:开启 Hive Metastore 服务。
  • ps -ef|grep metastore:查询 Hive Metastore 服务是否已开启

Mysql Catalog

介绍

您可以在 Dinky FlinkSQL 作业中配置 Mysql Catalog、查看 Mysql 元数据、使用 Mysql Catalog。将元数据信息保存到 Mysql 以后,在作业中无需再显式声明 DDL 语句,直接三段式引用元数据即可。

前提条件

必须在 Dinky 元数据库创建 Mysql Catalog所使用的元数据表,Mysql Catalog 持久化目前默认的Catalog为my_catalog,默认的FlinkSQLEnv为DefaultCatalog。元数据表解释如下:

元数据表表中文名称
metadata_database元数据schema信息
metadata_table元数据table信息
metadata_database_propertyschema属性信息
metadata_table_propertytable属性信息
metadata_column数据列信息
metadata_functionUDF信息

说明

# Mysql Catalog依赖放置 $FLINK_HOME/lib下
dlink-catalog-mysql-1.1x-0.6.x.jar

创建 Mysql Catalog 语法

对于 mysql catalog 除前提条件中提到的用默认的 DefaultCatalog 外,那么可以新建一个作业通过create创建catalog。语法如下:

create catalog my_catalog with(
'type' = 'dlink_mysql',
'username' = 'dlink',
'password' = 'dlink',
'url' = 'jdbc:mysql://127.0.0.1:3306/dlink?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true'
);
use catalog my_catalog;

目前 mysql catalog 固定是my_catalog,不能自定义一个catalog。如果在重新创建表,需要在建表之前,将 Flink 任务停止后,再次初始化建表脚本。