本文为您介绍如何将Serverless StarRocks以Iceberg REST对接DLF Catalog。
前提条件
已创建Serverless StarRocks实例。如未创建,请参见创建实例。
Serverless StarRocks实例版本需3.3.20-2.0.0及以上。详见EMR Serverless StarRocks内核发布记录。
已创建DLF Catalog。
创建StarRocks账号与授权
DLF的访问控制是RAM级别的。默认情况下,所有StarRocks用户均不具备DLF的任何权限,因此您必须创建一个和RAM用户同名的内部用户,并为其授予相应的权限。
创建RAM用户。
使用阿里云账号或RAM管理员登录RAM控制台。
创建一个新的RAM用户或选择一个已有RAM用户。创建RAM用户,请参见快速入门:创建RAM用户并授权。
说明该RAM用户的名称需符合StarRocks的用户命名规则,即只包含字母、数字、下划线,不能包含短横线、句号。
在DLF中为该RAM用户授权。
在Serverless StarRocks中创建一个与该RAM同名的用户。赋予该用户创建External Catalog以及查看所有Catalog的权限,并将该用户与RAM用户关联。
在实例列表页面,单击已创建实例操作列的连接实例,详情请参见通过EMR StarRocks Manager连接StarRocks实例。
指定用户名为admin或StarRocks超级管理员,连接StarRocks实例。
在EMR StarRocks Manager页面的左侧菜单栏,选择安全中心 > 用户管理,单击添加用户。
在弹出的对话框中,配置以下信息,单击确定。
用户来源:选择RAM用户。
用户名:选择上一步授权的RAM用户。
密码:自定义。
角色:默认public。
添加用户成功后,为该用户授权。
在用户管理页面,单击目标用户操作列的授权。
在权限管理页签,单击添加权限。
在添加权限面板中,配置以下参数,单击确定。
资源:选择相应资源。
权限配置:勾选需要授权的权限。
说明此处StarRocks Manager中授权数据库与授权权限的内容只包含StarRocks内表。要想修改DLF数据目录的访问权限,只能在数据湖构建控制台修改对应同名RAM用户的权限。
(可选)验证用户是否关联成功。
因上一步操作有10~20秒的延迟,您可使用该用户登录StarRocks Manager,在SQL Editor的查询列表页面,单击
图标,创建SQL查询。通过SQL Editor执行以下命令,查看当前用户关联的Ram User ID,不为空时说明关联成功。show property;
创建Catalog
通过Iceberg REST 在DLF Catalog创建的表均为Iceberg表。
使用该RAM用户登录StarRocks Manager,创建或查看DLF Catalog,即可访问到DLF外表。
在SQL Editor的查询列表页面,单击
图标,创建SQL查询。输入以下SQL,单击运行,创建External Catalog。
CREATE EXTERNAL CATALOG iceberg_catalog PROPERTIES ( "type" = "iceberg", "uri" = "http://cn-hangzhou-vpc.dlf.aliyuncs.com/iceberg", "iceberg.catalog.type" = "dlf_rest", "warehouse" = "iceberg_test", "rest.signing-region" = "cn-hangzhou" );参数说明如下。
参数
说明
示例
type
StarRocks的Catalog类型,固定值
iceberg。iceberg
uri
访问DLF Rest Catalog的URI,详见Iceberg REST。
http://cn-hangzhou-vpc.dlf.aliyuncs.com/iceberg
iceberg.catalog.type
DLF场景填写固定值
dlf_rest。dlf_rest
warehouse
DLF Catalog名称。
iceberg_test
rest.signing-region
DLF服务的Region ID,详见服务接入点与公网访问。
cn-hangzhou
运行以下SQL,可查询Iceberg Catalog下的库表信息。
SELECT * FROM catalog_name.database_name.table_name;
