前提条件
- 通过共享TPC-DS 标准样例数据库创建DLF Catalog:详情请参见共享样例数据集。
创建 StarRocks 实例并绑定 DLF Catalog
DLF的访问控制是RAM级别的。默认情况下,所有StarRocks用户均不具备DLF的任何权限,因此您必须创建一个和RAM用户同名的内部用户,并为其授予相应的权限。
- 创建RAM用户。
- 使用阿里云账号或RAM管理员登录RAM控制台。
- 创建一个新的RAM用户或选择一个已有RAM用户。创建RAM用户,请参见创建RAM用户并授权。
- 在 RAM 访问控制-身份管理-用户-添加权限中给该 RAM 角色授权
AliyunDLFFullAccess和AliyunOSSReadOnlyAccess。
- 在DLF中为该RAM用户授权以访问共享资源。
- 登录数据湖构建控制台。
- 切换到系统和安全-访问控制-角色,授予上一步所选用户访问权限:super_administrator 或 admin。
例如:RAM用户的用户名为emr,授予该用户权限。注:如找不到该用户,请前往系统和安全-访问控制-用户,点击同步后再操作。
- 创建Serverless StarRocks 3.3.8及以上版本的实例。Serverless StarRocks服务与DLF位于同一VPC下。如已创建低版本的实例,请参见 版本升级。如未创建,请参见创建实例,并绑定已创建的TPC-DS 标准样例数据目录和 RAM 角色。
创建StarRocks账号与授权(可选)
如您使用的是已有的 StarRocks 实例或在创建时没有绑定 DLF,需使用 StarRocks admin RAM 账号创建一个与先前创建的 RAM同名的用户。赋予该用户创建External Catalog以及查看所有Catalog的权限,并将该用户与RAM用户关联。
- 如您的 StarRocks 实例 admin 尚未绑定 RAM 用户,可在安全中心-用户管理中关联 RAM 用户。
- 使用 StarRocks admin 的RAM账号 登录EMR Serverless StarRocks控制台。
- 在实例列表页面,单击已创建实例操作列的连接实例,详情请参见通过EMR StarRocks Manager连接StarRocks实例。
- 指定用户名为admin或StarRocks超级管理员,连接StarRocks实例。实例连接常见问题:查看地域、用户名是否正确。
- 在EMR StarRocks Manager页面的左侧菜单栏,选择安全中心 > 用户管理,单击添加用户。
- 在弹出的对话框中,配置以下信息,单击确定。
- 用户来源:选择RAM用户。
- 用户名:选择 DLF 中授权的RAM用户。
- 密码:自定义。
- 角色:默认public。
- 添加用户成功后,为该用户授权。
- 在用户管理页面,单击目标用户操作列的授权。
- 在权限管理页签,单击添加权限。
- 在添加权限面板中,配置以下参数,单击确定。
- 资源:选择相应资源。
- 权限配置:勾选需要授权的权限。
- 通过 SQL 创建并绑定 DLF 中的 Catalog:
说明:这里仅用于建立与DLF Catalog的映射连接,创建或删除Catalog仅影响映射关系,不会对DLF中的实际数据产生影响。 - 使用配置好的 RAM用户登录StarRocks Manager,创建或查看Catalog,即可访问到DLF外表。
- 在SQL Editor的查询列表页面,单击 图标,创建SQL查询。
- 输入以下SQL,单击运行,创建External Catalog。
CREATE EXTERNAL CATALOG `dlf_samples` PROPERTIES ( 'type' = 'paimon', 'uri' = 'http://cn-hangzhou-vpc.dlf.aliyuncs.com', 'paimon.catalog.type' = 'rest', 'paimon.catalog.warehouse' = 'dlf_samples', 'token.provider' = 'dlf' );
参数说明如下。
参数 |
说明 |
示例 |
type |
必填,StarRocks的Catalog类型,DLF当前只支持 |
paimon |
uri |
||
paimon.catalog.type |
必填,Paimon的Catalog类型,DLF场景填写固定值 |
rest |
paimon.catalog.warehouse |
必填,Paimon的Catalog名称,可从DLF控制台上获取。 |
dlf_samples |
token.provider |
必填,Rest服务提供者,DLF固定填 |
dlf |
说明:此处StarRocks Manager中授权数据库与授权权限的内容只包含StarRocks内表。要想修改DLF数据目录的访问权限,只能在数据湖构建控制台修改对应同名RAM用户的权限。
- (可选)验证用户是否关联成功。
因上一步操作有10~20秒的延迟,您可使用该用户登录StarRocks Manager,在SQL Editor的查询列表页面,单击 图标,创建SQL查询。通过SQL Editor执行以下命令,查看当前用户关联的Ram User ID,不为空时说明关联成功。
show property;
测试TPC-DS 标准样例数据库
完成上述步骤后,使用 与DLF关联的RAM账号 登录EMR Serverless StarRocks控制台。
- 在实例列表页面,单击已创建实例操作列的连接实例,详情请参见通过EMR StarRocks Manager连接StarRocks实例。
- 指定用户名为admin或StarRocks超级管理员,连接StarRocks实例。实例连接常见问题:查看地域、用户名是否正确。
- 在 StarRocks Manager-元数据管理中可查看绑定的 catalog。
通过共享样例数据集,可快速验证数据处理性能、优化查询效率或进行功能验证。
数据库名 |
Scale Factor (SF) |
数据量级 |
适用场景 |
|
1 |
~1 GB |
快速验证、开发测试 |
|
2 |
~2 GB |
中等测试、学习 |
|
10 |
~10 GB |
性能测试、压测 |
|
100 |
~100 GB |
生产级 benchmark、性能对比 |
使用 TPC-DS Query 3 作为性能测试示例、tpcds_paimon_sf100(约 100 GB)的 Paimon 表做性能压测。TPC-DS 是业界标准的决策支持基准,其查询设计复杂、贴近真实分析场景。
Query 3 是 TPC-DS 中经典的 多表关联 + 聚合 + 过滤 + 排序 查询,能有效测试:
- 大表 Join 性能(
customer,customer_address,store_sales) - 分区裁剪(
store_sales按日期分区) - 聚合与排序效率
- I/O 与内存压力
找出过去两年中,在特定州(如 'IL', 'IN', 'KS')购买过商品的客户,按年份和城市统计购买人数,并限制结果前 100 行。
- 在 StarRocks Manager 中的 SQL Editor的查询列表页面,单击 图标,创建SQL查询。
- 输入以下SQL,单击运行,查询结果。
-- TPC-DS Query 3: 客户地域分布分析(性能压测) SELECT dt.d_year, ca.ca_state, ca.ca_city, COUNT(*) AS customer_cnt FROM dlf_samples.tpcds_paimon_sf100.customer c JOIN dlf_samples.tpcds_paimon_sf100.customer_address ca ON c.c_current_addr_sk = ca.ca_address_sk JOIN dlf_samples.tpcds_paimon_sf100.store_sales ss ON c.c_customer_sk = ss.ss_customer_sk JOIN dlf_samples.tpcds_paimon_sf100.date_dim dt ON ss.ss_sold_date_sk = dt.d_date_sk WHERE ca.ca_state IN ('IL', 'IN', 'KS') -- 选择高数据量的州 AND dt.d_year BETWEEN 2000 AND 2002 -- 覆盖多个分区 GROUP BY dt.d_year, ca.ca_state, ca.ca_city ORDER BY dt.d_year, ca.ca_state, ca.ca_city LIMIT 100;
实验结果表明,EMR Serverless StarRocks 查询100 GB 大表 Join 仅需要 6.2 秒!
相关文档: