DLF提供全托管Paimon元数据和数据的存储及管理服务,支持多种存储优化策略,可以提供更加安全和更高性能的湖管理。本文将介绍如何在EMR Serverless StarRocks中使用阿里云DLF Catalog。
背景信息
阿里云数据湖构建(Data Lake Formation,简称DLF)是一款全托管的统一元数据和数据存储及管理平台。
使用DLF
前提条件
使用DLF Paimon Catalog示例
步骤一:在Serverless StarRocks中添加用户
DLF的访问控制是RAM级别的。默认情况下所有StarRocks用户均不具备DLF的任何权限,因此您必须添加一个已存在的RAM用户并进行授权。如果未创建RAM用户,请参见创建RAM用户。
进入EMR Serverless StarRocks实例列表页面。
在左侧导航栏,选择
。在顶部菜单栏处,根据实际情况选择地域。
在实例列表页面,单击已创建实例操作列的连接实例,详情请参见通过EMR StarRocks Manager连接StarRocks实例。
您可以选择使用admin或StarRocks超级管理员权限,以连接StarRocks实例。
左侧菜单栏,选择
,然后单击添加用户。在添加用户对话框中,配置以下信息,然后单击确定。
用户来源:选择RAM用户。
用户名:选择上一步授权的RAM用户(dlf-test)。
密码和确认密码:自定义。
角色:默认public即可。
步骤二:在DLF中为Catalog授权
登录数据湖构建控制台。
在数据目录页面,单击Catalog名称。
单击权限页签,单击授权。
在选择授权对象下拉列表中,选择已有的RAM用户(dlf-test)。
预置权限类型选择自定义,授权该用户当前数据目录及其下所有资源的ALL权限。
单击确定。
步骤三:在Serverless StarRocks中创建DLF Catalog
通过EMR StarRocks Manager连接StarRocks实例。
重要请使用步骤一中添加的RAM用户(dlf-test),重新连接至StarRocks实例,并创建SQL查询,以便访问DLF外表。
在SQL Editor的查询列表页面,单击
图标,创建SQL查询。
输入以下SQL,单击运行。
CREATE EXTERNAL CATALOG `dlf_catalog` PROPERTIES ( 'type' = 'paimon', 'uri' = 'http://cn-hangzhou-vpc.dlf.aliyuncs.com', 'paimon.catalog.type' = 'rest', 'paimon.catalog.warehouse' = 'StarRocks_test', 'token.provider' = 'dlf' );
步骤四:在Serverless StarRocks中读写数据
创建数据库
CREATE DATABASE IF NOT EXISTS dlf_catalog.sr_dlf_db;
创建数据表
CREATE TABLE dlf_catalog.sr_dlf_db.ads_age_pvalue_analytics(
final_gender_code STRING COMMENT '性别',
age_level STRING COMMENT '年龄层次',
pvalue_level STRING COMMENT '消费档次',
clicks INT COMMENT '点击次数',
total_behaviors INT COMMENT '总行为次数'
);
插入数据
INSERT INTO dlf_catalog.sr_dlf_db.ads_age_pvalue_analytics (final_gender_code, age_level, pvalue_level, clicks, total_behaviors)
VALUES
('M', '18-24', 'Low', 1500, 2500),
('F', '25-34', 'Medium', 2200, 3300),
('M', '35-44', 'High', 2800, 4000);
查询数据
SELECT * FROM dlf_catalog.sr_dlf_db.ads_age_pvalue_analytics;
返回信息如下图所示。
使用DLF 1.0(旧版)
前提条件
创建Catalog
创建Hive Catalog
语法
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "hive",
GeneralParams,
MetastoreParams
)
参数说明
catalog_name
:Hive Catalog的名称,必选参数。命名要求如下:必须由字母(a~z或A~Z)、数字(0~9)或下划线(_)组成,并且只能以字母开头。
总长度不能超过64个字符。
comment
:Hive Catalog的描述。此参数为可选。type
:数据源的类型。设置为hive
。GeneralParams
:指定通用设置的一组参数。GeneralParams
包含如下参数。参数
是否必须
说明
enable_recursive_listing
否
指定StarRocks是否递归读取表或者分区目录(包括子目录)中文件的数据。取值范围:
true(默认值):表示递归遍历。
false:表示只读取表或者分区目录当前层级中文件的数据。
MetastoreParams
:StarRocks访问Hive集群元数据的相关参数配置。属性
说明
hive.metastore.type
Hive使用的元数据类型,设置为
dlf
。dlf.catalog.id
DLF 1.0中已有的数据目录ID。仅当
hive.metastore.type
配置为dlf
时需要填写该参数。如果未配置dlf.catalog.id
参数的值,则系统将使用默认的DLF Catalog。
使用示例
CREATE EXTERNAL CATALOG hive_catalog
PROPERTIES
(
"type" = "hive",
"hive.metastore.type" = "dlf",
"dlf.catalog.id" = "sr_dlf"
);
更多Hive Catalog详情,请参见Hive Catalog。
创建Iceberg Catalog
语法
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "iceberg",
MetastoreParams
)
参数说明
catalog_name
:Iceberg Catalog的名称,必选参数。命名要求如下:必须由字母(a~z或A~Z)、数字(0~9)或下划线(_)组成,并且只能以字母开头。
总长度不能超过64个字符。
Catalog名称大小写敏感。
comment
:Iceberg Catalog的描述,此参数为可选。type
:数据源的类型,设置为iceberg
。MetastoreParams
:StarRocks访问Iceberg集群元数据服务的相关参数配置。属性
说明
iceberg.catalog.type
Iceberg中Catalog的类型,取值为
dlf
。dlf.catalog.id
DLF中已有的数据目录ID。如果未配置
dlf.catalog.id
参数的值,则系统将使用默认的DLF Catalog。
使用示例
CREATE EXTERNAL CATALOG iceberg_catalog_hms
PROPERTIES
(
"type" = "iceberg",
"iceberg.catalog.type" = "dlf",
"dlf.catalog.id" = "sr_dlf"
);
更多Iceberg Catalog详情,请参见Iceberg Catalog。
创建Paimon Catalog
语法
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "paimon",
CatalogParams,
StorageCredentialParams
);
参数说明
catalog_name
:Paimon Catalog的名称,必选参数。命名要求如下:必须由字母(a~z或A~Z)、数字(0~9)或下划线(_)组成,并且只能以字母开头。
总长度不能超过64个字符。
comment
:Paimon Catalog的描述。此参数为可选。type
:数据源的类型。设置为paimon
。CatalogParams
:StarRocks访问Paimon集群元数据的相关参数配置。Paimon集群使用的元数据类型不同,参数的配置也不同。属性
是否必须
说明
paimon.catalog.type
是
数据源类型,取值为
dlf
。paimon.catalog.warehouse
是
Paimon数据所在的Warehouse存储路径,支持HDFS、OSS和OSS-HDFS。OSS或OSS-HDFS格式为:
oss://<yourBucketName>/<yourPath>
。重要若使用OSS或OSS-HDFS作为warehouse,须配置参数aliyun.oss.endpoint。详情请参见StorageCredentialParams:StarRocks访问Paimon集群文件存储的相关参数配置。
dlf.catalog.id
否
DLF中已有的数据目录的ID。如果未配置
dlf.catalog.id
参数的值,则系统将使用默认的DLF Catalog。StorageCredentialParams
:StarRocks访问Paimon集群文件存储的相关参数配置。如果您使用HDFS作为存储系统,则不需要配置
StorageCredentialParams
。如果您使用OSS或OSS-HDFS,则必须配置
StorageCredentialParams
。"aliyun.oss.endpoint" = "<YourAliyunOSSEndpoint>"
涉及参数说明如下表所示。
属性
说明
aliyun.oss.endpoint
使用OSS或OSS-HDFS,相应的Endpoint信息如下:
OSS:您可以前往Bucket的概览页的访问端口区域获Endpoint,也可以参见OSS地域和访问域名查看对应Region的Endpoint信息。如
oss-cn-hangzhou.aliyuncs.com
。OSS-HDFS:您可以前往Bucket的概览页的访问端口区域获取HDFS服务的Endpoint。以杭州地域为例,示例值为
cn-hangzhou.oss-dls.aliyuncs.com
。重要使用该方式配置该参数后,您还需要在EMR Serverless StarRocks控制台的实例配置页面,修改
core-site.xml
和jindosdk.cfg
中的参数fs.oss.endpoint,参数值与aliyun.oss.endpoint保持一致。
使用示例
CREATE EXTERNAL CATALOG paimon_catalog
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "dlf",
"paimon.catalog.warehouse" = "oss://<yourBucketName>/<yourPath>",
"dlf.catalog.id" = "paimon_dlf_test"
);
更多Paimon Catalog详情,请参见Paimon Catalog。
创建DLF Paimon Catalog
语法
CREATE EXTERNAL CATALOG `<catalog_name>`
PROPERTIES (
'type' = 'paimon',
'uri' = 'http://cn-hangzhou-vpc.dlf.aliyuncs.com',
'paimon.catalog.type' = 'rest',
'paimon.catalog.warehouse' = 'xxx_test',
'token.provider' = 'dlf'
);
参数说明
参数 | 是否必须 | 说明 |
| 是 | DLF数据目录(Catalog)的名称,例如, 命名要求如下:
|
| 是 | Catalog类型,DLF当前仅支持Paimon Catalog,填写固定值 |
| 是 | DLF的REST API地址 。 填写的格式为 例如, |
| 是 | Paimon Catalog类型,填写固定值 |
| 是 | Paimon Catalog的名称,您可以在数据湖构建控制台的数据目录页面获取。 |
| 是 | Rest服务提供者,填写固定填 |
相关文档
Paimon Catalog的更多介绍,请参见Paimon Catalog。