管理DLF Catalog
配置DLF Catalog后,您可以在Flink全托管控制台直接访问DLF实例中的表,无需再手动注册DLF表,提高作业开发的效率且保证数据的正确性。本文为您介绍如何在Flink全托管模式下创建、查看、使用及删除DLF Catalog。
背景信息
阿里云数据湖构建(Data Lake Formation,简称DLF)是阿里云官方提供的一款统一元数据管理的产品。您可以方便地借助DLF产品来管理创建的表格,这些表格的格式可以是开源格式,例如Iceberg、Hudi、Delta、Parquet、ORC或Avro等。详情请参见产品简介。
本文将从以下方面为您介绍如何管理DLF Catalog:
前提条件
已开通阿里云数据湖构建服务。如果您没有开通,则可以在DLF产品首页,单击立即开通。
使用限制
仅Flink计算引擎vvr-4.0.12-flink-1.13及以上版本支持配置DLF Catalog。
Flink在DLF Catalog下仅支持管理Iceberg和Hudi两种数据湖格式。
创建DLF Catalog
支持UI与SQL命令两种方式配置DLF Catalog,推荐使用UI方式配置DLF Catalog。
UI方式
进入元数据管理页面。
登录实时计算控制台。
在Flink全托管页签,单击目标工作空间操作列下的控制台。
单击元数据管理。
在元数据管理页面,单击创建Catalog。
单击DLF后,单击下一步。
创建DLF Catalog。
配置Catalog信息。
配置项
说明
是否必填
备注
catalogname
DLF Catalog名称。
是
请填写为自定义的英文名。
access.key.id
访问OSS服务所需的阿里云Access Key。
是
获取方法请参见获取AccessKey。
access.key.secret
访问OSS服务所需的阿里云Access Secret。
是
获取方法请参见获取AccessKey。
warehouse
DLF Catalog中表默认的OSS存放路径,OSS服务中所指定的数仓目录。
是
支持OSS和OSS-HDFS两种服务。
OSS路径格式为
oss://<bucket>/<object>
。OSS-HDFS路径格式为
oss://<bucket>.<oss-hdfs-endpoint>/<object>
。
其中:
bucket:表示您创建的OSS Bucket名称。您可以在OSS管理控制台上查看。
object:表示您存放数据的路径。您可以在OSS管理控制台上查看。
oss-hdfs-endpoint:表示OSS-HDFS服务Endpoint。您可以在OSS管理控制台Bucket的概览页面的访问端口中查看HDFS服务的Endpoint信息。
说明仅Flink计算引擎VVR 8.0.3及以上版本支持该参数配置为OSS-HDFS路径。
oss.endpoint
阿里云对象存储服务OSS的Endpoint。OSS的 endpoint 地址,例如
oss-cn-hangzhou-internal.aliyuncs.com
是
支持OSS和OSS-HDFS两种服务。
OSS服务Endpoint,详情参见访问域名和数据中心。
OSS-HDFS服务Endpoint,您可以在OSSBucket概览页面的访问端口中查看HDFS服务的Endpoint信息。
说明推荐您为oss.endpoint参数配置OSS的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则oss.endpoint需要配置为oss-cn-hangzhou-internal.aliyuncs.com。
如果您需要跨VPC访问OSS,则请参见如何访问跨VPC的其他服务?
dlf.endpoint
表示阿里云DLF服务的Endpoint。
是
详情请参见已开通的地域和访问域名。
说明推荐您为dlf.endpoint参数配置DLF的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则dlf.endpoint参数需要配置为dlf-vpc.cn-hangzhou.aliyuncs.com。
如果您需要跨VPC访问DLF,则请参见如何访问跨VPC的其他服务?。
dlf.region-id
阿里云DLF服务的地域名,DLF所在区域。
是
详情请参见已开通的地域和访问域名。
说明请和dlf.endpoint选择的地域保持一致。
更多配置
设置其他DLF配置,例如指定多个DLF Catalog,配置多个DLF Catalog请换行分隔。
否
例如:
dlf.catalog.id:my_catalog
。单击确定。
创建完成后,元数据区域下即可查看新建Catalog。
SQL方式
新建空白流作业草稿,详情请参见SQL作业开发。
在文本编辑区域,输入配置DLF Catalog的命令。
CREATE CATALOG <yourcatalogname> WITH ( 'type' = 'dlf', 'access.key.id' = '<YourAliyunAccessKeyId>', 'access.key.secret' = '<YourAliyunAccessKeySecret>', 'warehouse' = '<YourAliyunOSSLocation>', 'oss.endpoint' = '<YourAliyunOSSEndpoint>', 'dlf.region-id' = '<YourAliyunDLFRegionId>', 'dlf.endpoint' = '<YourAliyunDLFEndpoint>' );
参数
说明
是否必填
备注
yourcatalogname
自定义DLF Catalog名称。
是
请填写为自定义的英文名。
重要参数替换为您的Catalog名称后,需要去掉尖括号(<>),否则语法检查会报错。
type
类型。
是
固定值为dlf。
access.key.id
阿里云账号的AccessKey ID。
是
获取方法请参见获取AccessKey。
access.key.secret
阿里云账号的AccessKey Secret。
是
获取方法请参见获取AccessKey。
warehouse
DLF Catalog中表默认的OSS存放路径。
是
格式为oss://<bucket>/<object>。其中:
bucket:表示您创建的OSS Bucket名称。
object:表示您存放数据的路径。
说明请在OSS管理控制台上查看您的bucket和object名称。
oss.endpoint
阿里云对象存储服务OSS的Endpoint。
是
请详情参见访问域名和数据中心。
说明推荐您为oss.endpoint参数配置OSS的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则oss.endpoint需要配置为oss-cn-hangzhou-internal.aliyuncs.com。
如果您需要跨VPC访问OSS,则请参见如何访问跨VPC的其他服务?
dlf.endpoint
阿里云DLF服务的Endpoint。
是
详情请参见已开通的地域和访问域名。
说明推荐您为dlf.endpoint参数配置DLF的VPC Endpoint。例如,如果您选择的地域为cn-hangzhou地域,则dlf.endpoint参数需要配置为dlf-vpc.cn-hangzhou.aliyuncs.com。
如果您需要跨VPC访问DLF,则请参见如何访问跨VPC的其他服务?。
dlf.region-id
阿里云DLF服务的地域名。
是
详情请参见已开通的地域和访问域名。
说明请和dlf.endpoint选择的地域保持一致。
选中创建Catalog的代码后,单击左侧代码行数上的运行。
在左侧元数据区域,查看创建的Catalog。
查看DLF Catalog
DLF Catalog创建成功后,您可以通过以下步骤查看DLF元数据。
进入元数据管理页面。
登录实时计算控制台。
在Flink全托管页签,单击目标工作空间操作列下的控制台。
单击元数据管理。
在Catalog列表页面,查看Catalog名称和类型。
说明如果您需要查看目标Catalog下的数据库和表,请单击查看。
使用DLF Catalog
创建DLF数据库和表
UI方式
进入元数据管理页面。
登录实时计算控制台。
在Flink全托管页签,单击目标工作空间操作列下的控制台。
单击元数据管理。
单击目标Catalog名称对应操作列的查看。
单击目标数据库名称对应操作列的查看。
单击创建表。
在使用内置连接器连接页签,单击连接方式,选择表类型。
单击下一步。
填写建表语句并配置相关参数信息。代码示例如下。
CREATE DATABASE dlf.dlf_testdb; CREATE TABLE dlf.dlf_testdb.iceberg ( id BIGINT, data STRING, dt STRING ) PARTITIONED BY (dt) WITH( 'connector' = 'iceberg' ); CREATE TABLE dlf.dlf_testdb.hudi ( id BIGINT PRIMARY KEY NOT ENFORCED, data STRING, dt STRING ) PARTITIONED BY (dt) WITH( 'connector' = 'hudi' );
单击确定。
SQL命令方式
新建空白流作业草稿,详情请参见SQL作业开发。
在文本编辑区域,输入建表语句。
CREATE DATABASE dlf.dlf_testdb; CREATE TABLE dlf.dlf_testdb.iceberg ( id BIGINT, data STRING, dt STRING ) PARTITIONED BY (dt) WITH( 'connector' = 'iceberg' ); CREATE TABLE dlf.dlf_testdb.hudi ( id BIGINT PRIMARY KEY NOT ENFORCED, data STRING, dt STRING ) PARTITIONED BY (dt) WITH( 'connector' = 'hudi' );
依次选中三条DDL语句,单击左侧代码行数上运行。
完成dlf数据库、dlf_testdb.iceberg表、dlf_testdb.hudi表的创建后,在SQL开发页面左侧,单击元数据,就可以查看到上述创建的数据库和表。
您可以在您创建的Flink Session集群上执行数据库和表的创建操作,这样能更快地完成执行操作。
写入数据
INSERT INTO dlf.dlf_testdb.iceberg VALUES (1, 'AAA', '2022-02-01'), (2, 'BBB', '2022-02-01');
INSERT INTO dlf.dlf_testdb.hudi VALUES (1, 'AAA', '2022-02-01'), (2, 'BBB', '2022-02-01');
读取数据
SELECT * FROM dlf.dlf_testdb.iceberg LIMIT 2;
SELECT * FROM dlf.dlf_testdb.hudi LIMIT 2;
删除DLF Catalog
删除DLF Catalog不会影响已运行的作业,但会导致使用该Catalog下表的作业,在上线或重启时报无法找到该表的错误,请您谨慎操作。
支持UI与SQL命令两种方式删除DLF Catalog,推荐使用UI方式删除DLF Catalog。
UI方式
进入元数据管理页面。
登录实时计算控制台。
在Flink全托管页签,单击目标工作空间操作列下的控制台。
单击元数据管理。
在Catalog列表页面,单击目标Catalog名称对应操作列的删除。
在弹出的提示页面中,单击删除。
在左侧元数据下,查看目标Catalog是否已被删除。
SQL方式
新建空白流作业草稿,详情请参见SQL作业开发。
在文本编辑区域,输入以下命令。
DROP CATALOG ${catalog_name}
其中,catalog_name为您要删除的在Flink全托管开发控制台上显示的DLF Catalog名称。
选中删除Catalog的命令,鼠标右键选择运行。
在左侧元数据区域,查看目标Catalog是否已删除。