配置DLF Catalog后,您就可以在Flink全托管控制台直接访问DLF实例中的表。本文为您介绍如何在Flink全托管模式下配置、查看及删除DLF Catalog。
背景信息
阿里云数据湖构建(Data Lake Formation,简称DLF)是阿里云官方提供的一款统一元数据管理的产品。您可以方便地借助DLF产品来管理创建的表格,这些表格的格式可以是流行的开源格式,例如Iceberg、Hudi、Delta、Parquet、ORC或Avro等。目前阿里云EMR常见的计算引擎(例如Spark、Flink、Hive或Presto等)都跟DLF有着较为完善的集成度。详情请参见产品简介。
本文将从以下方面为您介绍如何管理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方式
- 登录实时计算管理控制台。
- 进入创建Catalog页面。
- 在Flink全托管页签,单击目标工作空间操作列下的控制台。
- 在左侧导航栏,单击作业开发。
- 在左侧,单击Schemas页签。
- 单击
图标,在菜单栏下拉框中选择创建Catalog。
- 创建DLF Catalog。
- 在创建Catalog页面,选择DLF。
- 填写参数配置信息。

参数 |
说明 |
是否必填 |
备注 |
catalogname |
DLF Catalog名称。 |
是 |
请填写为自定义的英文名。 |
access.key.id |
阿里云账号的AccessKey ID。 |
是 |
获取方法请参见获取AccessKey。
|
access.key.secret |
阿里云账号的AccessKey Secret。 |
是 |
获取方法请参见获取AccessKey。
|
warehouse |
DLF Catalog中表默认的OSS存放路径。 |
是 |
格式为oss://<bucket>/<object>。其中:
- bucket:表示您创建的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选择的地域保持一致。
|
- 单击确认。
- 单击
图标,刷新查看新建的DLF Catalog。
SQL命令方式
- 登录实时计算管理控制台。
- 在Flink全托管页签,单击目标工作空间操作列下的控制台。
- 在左侧导航栏,单击作业开发。
- 在页面左上角,单击新建,文件类型选择SQL。
- 在文本编辑区域,输入配置DLF Catalog的命令。
CREATE CATALOG dlf WITH (
'type' = 'dlf',
'access.key.id' = '<YourAliyunAccessKeyId>',
'access.key.secret' = '<YourAliyunAccessKeySecret>',
'warehouse' = '<YourAliyunOSSLocation>',
'oss.endpoint' = '<YourAliyunOSSEndpoint>',
'dlf.region-id' = '<YourAliyunDLFRegionId>',
'dlf.endpoint' = '<YourAliyunDLFEndpoint>'
);
参数 |
说明 |
是否必填 |
备注 |
catalogname |
DLF 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.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选择的地域保持一致。
|
- 单击执行。
执行完会提示Query has been executed。
- 在左侧,单击Schemas页签。
- 单击
图标,刷新查看新建的DLF Catalog。
查看DLF Catalog
DLF Catalog配置成功后,您可以通过以下步骤查看DLF元数据。
- 登录实时计算管理控制台。
- 在Flink全托管页签,单击目标工作空间操作列下的控制台。
- 在左侧导航栏,单击作业开发。
- 单击Schemas页签。
- 在顶部菜单栏下拉框中,切换到目标DLF Catalog名称,本文以dlf为例。
- 查看目标DLF Catalog下的数据库、表和函数信息。
使用DLF Catalog
- 创建数据库和表
- 在作业开发页面,创建一个新的流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表的创建。
说明
- 您可以在您创建的Flink Session集群上执行数据库和表的创建操作,这样能更快地完成执行操作。
- 创建完成后,在作业开发页面,单击Schemas,就可以查看到上述创建的数库和表。
- 写入数据
- 在作业开发页面,创建一个新的流SQL作业,编写如下代码。
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');
- 单击验证,完成SQL语法的验证。
- 单击上线,完成流作业的上线。
- 读取数据
- 在作业开发页面,创建一个新的流SQL作业,编写如下代码。
SELECT * FROM dlf.dlf_testdb.iceberg LIMIT 2;
SELECT * FROM dlf.dlf_testdb.hudi LIMIT 2;
- 单击验证,完成SQL语法的验证。
- 单击执行,执行完后可以在控制台上查看返回的数据记录。
删除DLF Catalog
说明 删除DLF Catalog不会影响已运行的作业,但会导致使用该Catalog下表的作业,在上线或重启时报无法找到该表的错误,请您谨慎操作。
支持UI与SQL命令两种方式删除DLF Catalog,推荐使用UI方式删除DLF Catalog。
UI方式
- 登录实时计算管理控制台。
- 在Flink全托管页签,单击目标工作空间操作列下的控制台。
- 在左侧导航栏,单击作业开发。
- 在左侧,单击Schemas页签。
- 在顶部菜单栏下拉框中,选择目标DLF Catalog名称,单击
图标。
- 在弹出的页面中,单击删除。
- 单击
图标,刷新查看新建的DLF Catalog是否已被删除。
SQL命令方式
- 登录实时计算管理控制台。
- 在Flink全托管页签,单击目标工作空间操作列下的控制台。
- 在左侧导航栏,单击作业开发。
- 在页面左上角,单击新建,文件类型选择SQL。
- 在文本编辑区域,输入以下命令。
DROP CATALOG ${catalog_name}
其中,catalog_name为您要删除的在Flink全托管开发控制台上显示的DLF Catalog名称。
- 单击执行。
- 在左侧,单击Schemas页签。
- 单击
图标,刷新查看新建的DLF Catalog是否已被删除。