tencent cloud

数据湖计算

产品动态
产品简介
产品概述
产品优势
应用场景
购买指南
计费概述
退费说明
欠费说明
调整配置费用说明
快速入门
新用户开通全流程
DLC 数据导入指引
一分钟入门 DLC 数据分析
一分钟入门 DLC 权限管理
一分钟入门分区表
开启数据优化
跨源分析 EMR Hive 数据
标准引擎配置指引
配置数据访问策略
操作指南
控制台操作介绍
开发指南
运行环境
SparkJar 作业开发指南
PySpark 作业开发指南
查询性能优化指南
UDF 函数开发指南
系统约束
客户端访问
JDBC 访问
TDLC 命令行工具访问
第三方软件联动
Python 访问
实践教程
通过 Power BI 访问 DLC 数据操作指南
建表实践
使用 Apache Airflow 调度 DLC 引擎提交任务
StarRocks 直接查询 DLC 内部存储
Spark 计算成本优化实践
DATA + AI
使用 DLC 分析 CLS 日志
使用角色 SSO 访问 DLC
资源级鉴权指南
在 DLC 中实现 TCHouse-D 读写操作
DLC 原生表
SQL 语法
SuperSQL 语法
标准 Spark 语法概览
标准 Presto 语法概览
保留字
API 文档
History
Introduction
API Category
Making API Requests
Data Table APIs
Task APIs
Metadata APIs
Service Configuration APIs
Permission Management APIs
Database APIs
Data Source Connection APIs
Data Optimization APIs
Data Engine APIs
Resource Group for the Standard Engine APIs
Data Types
Error Codes
通用类参考
错误码
配额与限制
第三方软件连接DLC操作指南
常见问题
权限类常见问题
引擎类常见问题
功能类常见问题
Spark 作业类常见问题
DLC 政策
隐私协议
数据处理和安全协议
服务等级协议
联系我们
文档数据湖计算实践教程StarRocks 直接查询 DLC 内部存储

StarRocks 直接查询 DLC 内部存储

PDF
聚焦模式
字号
最后更新时间: 2025-12-26 17:40:33

StarRocks 是什么

StarRocks 是新一代极速全场景 MPP 数据库, 充分吸收了关系型 OLAP 数据库和分布式存储系统在大数据时代的优秀研究成果,在业界实践的基础上,进一步改进优化、升级架构,并增添了众多全新功能,形成了全新的企业级产品。StarRocks 致力于构建极速统一分析体验,满足企业用户的多种数据分析场景,支持多种数据模型(明细模型、聚合模型、更新模型),多种导入方式(批量和实时),支持导入多达10000列的数据,可整合和接入多种现有系统(Spark、Flink、Hive、 ElasticSearch)。
在腾讯云弹性 MapReduce 产品中,我们提供了完全开箱即用的 StarRocks 服务,详细可参考 StarRocks简介

StarRocks+DLC 湖仓一体查询加速

腾讯云数据湖 DLC 支持基于 EMR StarRocks 的湖仓一体查询加速模式,无需将 DLC 数据导入 StarRocks 或在 StarRocks 创建 DLC 外部表即可无缝分析 DLC 的数据源,并执行复杂的SQL查询。基于 StarRocks 的 MPP 向量化查询能力,提升了数据分析效率并降低了运维难度和成本。
接下来,本文为您介绍如何开启 DLC + (EMR)StarRocks 湖仓一体查询加速。

前提条件

1. 已购买弹性 MapReduce StarRocks 集群。
2. 已开通数据湖计算 DLC 服务。
注意:
1. 当前暂不支持跨地域联邦 DLC,请合理规划环境,确保 EMR StarRocks、DLC 在相同地域;
2. 暂不支持查询2024年6月12日前创建的 DLC 存量原生表(DLC 存量原生表的存储路径为 lakefs://*** ,此格式暂不兼容)—— 可支持6月12日后创建的 DLC 新原生表(存储路径为cosn://***)及 DLC 所有外表;
3. StarRocks 仅支持查询 DLC 数据,不支持执行写和删除 DLC 数据的操作。
为开通 DLC+StarRocks 湖仓一体查询加速,您需要首先开启 DLC 外部访问,让 StarRocks 集群可访问到 DLC 内部托管存储的数据。随后在 StarRocks 集群中创建 DLC External Catalog,即可使用 StarRocks 计算引擎直接分析 DLC 存储数据。

开启 DLC 外部访问

进入 数据湖计算 DLC 控制台,点击存储配置菜单,选择开启外部访问
第一步:点击“开启外部访问托管存储”,开启后您同一腾讯云账号下的 EMR StarRocks 集群即可访问 DLC 内部托管存储。后续您在此通过点击开关,来开启或关闭 DLC 内部托管存储的外部访问服务。



开启外部访问的账号需要有 DLC 的管理权限,请使用主账号(或有 DLC 管理员权限的子账号)进行此操作。
注意:
1. 若您已有 DLC 的管理员权限,此步骤可忽略;
2. 若您使用的是子账号,且没有 DLC 管理员权限,可参考文档 子账号权限管理 让有 DLC 管理员权限的账号为您授权。
第二步:为确保您 EMR StarRocks 集群能正确访问到 DLC 的元数据 Catalog 服务,您需要将 EMR StarRocks 的 VPC 绑定到 DLC 网络中。
1. 点击“绑定VPC”,在对话框中类型选择 EMR StarRocks,并在 EMR 实例下拉列表选择需要绑定的 EMR StarRocks 集群实例 ID;
2. StarRocks 集群所在 VPC 将被自动填充,您可在备注名称中输入易于识别的别名;
第三步:完成 VPC 绑定后,您在 StarRocks 集群中即可通过 Catalog 访问地址显示的 URI 连接串,连接到 DLC 元数据服务,如:
URI 连接串示例:
Catalog 访问地址: thrift://172.17.1.18:7004
到此,您的 EMR StarRocks 集群已经可直接分析 DLC 内部托管数据。在开始分析前,您还需要在 StarRocks 中创建 DLC External Catalog。

创建 DLC External Catalog

登录 StarRocks 并在 StarRocks 中创建 DLC Catalog。关于External Catalog 详情,请参见 CREATE EXTERNAL CATALOG | Overview

语法

CREATE EXTERNAL CATALOG dlc_iceberg_cos_catalog PROPERTIES ( "type" = "iceberg", "iceberg.catalog.type" = "hive", "iceberg.catalog.hive.metastore.uris" = "thrift://169.254.0.171:8007", "aws.s3.endpoint" = "cos.ap-chongqing.myqcloud.com", "aws.s3.access_key" = "腾讯云secret id", "aws.s3.secret_key" = "腾讯云secret_key" );

参数说明

参数
说明
type
数据源的类型,默认设置为 Iceberg。
iceberg.catalog.type
Iceberg 集群所使用的元数据服务的类型。设置为 Hive。
iceberg.catalog.hive.metastore.uris
DLC 元数据的 URI。
aws.s3.endpoint
用于访问兼容 S3 协议的对象存储的 Endpoint, 腾讯云cos的格式为cos.<region>.myqcloud.com, <region>可选值为ap-beijing,ap-shanghai,ap-guangzhou 等。
aws.s3.access_key
腾讯云账号密钥中的 SecretID。
aws.s3.secret_key
腾讯云账号密钥中的 SecretKey。
注意:
1. 出于安全性考虑,在上述 SecretID 及 SecretKey 配置中,您需要使用主账号的 SecretID 及 SecretKey 才能正确访问 DLC 内部存储。具体可通过主账号登录腾讯云后,在访问管理控制台 >登录 - 腾讯云页面获取 SecretID 和 SecretKey;
2. 如果您需要使用子账号的 SecretID 及 SecretKey 访问 DLC 内部托管存储,可参考本文档最后一部分使用子账号 SecretID/SecretKey 访问

示例

以下示例演示创建一个名为 DLC_catalog 的 DLC Catalog :
CREATE EXTERNAL CATALOG dlc_hive_cos_catalog PROPERTIES ( "type" = "Iceberg", "iceberg.catalog.type" = "hive", "hive.metastore.uris" = "thrift://169.254.0.171:8007", "aws.s3.endpoint" = "cos.ap-chongqing.myqcloud.com", "aws.s3.access_key" = "************************************", "aws.s3.secret_key" = "********************************"
)
您如需要通过 StarRocks 直接查询 DLC 托管存储中的 Hive 表,则您需要创建另一个 DLC Hive catalog,具体将 type 设置为 hive,示例如下:
CREATE EXTERNAL CATALOG dlc_hive_cos_catalog PROPERTIES ( "type" = "hive", "iceberg.catalog.type" = "hive", "hive.metastore.uris" = "thrift://169.254.0.171:8007", "aws.s3.endpoint" = "cos.ap-chongqing.myqcloud.com", "aws.s3.access_key" = "************************************", "aws.s3.secret_key" = "********************************" )

查询DLC数据

DLC准备表和数据

创建 Iceberg 表示例如下:
CREATE TABLE test_sr_ofs.`customer`( `c_custkey` bigint, `c_name` string, `c_address` string, `c_nationkey` int, `c_phone` string, `c_acctbal` double, `c_mktsegment` string, `c_comment` string) using iceberg;
)
StarRocks中查询数据:
#登录StarRocks节点 mysql -h 172.30.0.xxx -P9030 -u root -p #指定iceberg catalog set catalog dlc_iceberg_cos_catalog; #指定数据库 use test_sr_ofs; #查询customer表数据 select * from customer limit 5;
查询结果如下:




使用子账号 SecretID/SecretKey 访问(可选)

由于数据安全考虑,开启 DLC 外部访问后默认需要使用主账号 SecretID 及 SecretKey 在 EMR StarRocks 发起对 DLC 内部存储的访问。如因业务场景确需使用子账号 SecretID 及 SecretKey 访问,需要您使用主账号在 CAM 完成自定义策略创建并绑定到对应子账号

原理解释

在您按照本文档上述指引开启 DLC 外部访问后,实质上系统授权了您的主账号具备访问 DLC 内部托管存储的权限。但出于数据安全考虑,您主账号名下其他子账号默认不具备此访问权限,需要您在腾讯云访问控制 CAM 中创建授权子账号具备访问能力的自定义策略,并绑定到需要访问 DLC 内部托管存储的子账号。具体步骤如下:

第一步:生成自定义策略

使用主账号登录腾讯云,在进入 数据湖计算 DLC 控制台,点击存储配置菜单,选择开启外部访问,在子账号授权中,点击“点击处理”。在弹出对话框点击复制,获得您需要创建的自定义 CAM 策略。




第二步:创建允许子账号访问 DLC 内部存储的自定义策略

1. 使用主账号登录访问管理 CAM 控制台的 策略 页面。
2. 选择新建自定义策略 > 按策略语法创建,随后选择空白模板,单击下一步。
说明:
主账号 给子账号授权数据访问权限,目前只能通过自定义策略授权,不支持通过预设策略授权。
3. 填写如下表单:
策略名称:自行定义一个不重复且有意义的策略名称,例如 cos-child-account。
备注:可选,自行编写。
策略内容:粘贴第一步复制的自定义策略,如:
{ "statement": [ { "action": [ "cos:*" ], "effect": "allow", "resource": [ "qcs::cos:ap-shanghai:uid/1305424723:dlc03ff-100018379117-1647867281-100017307912-1304028854/*", "qcs::cos:ap-shanghai:uid/1305424723:dlc0a65-100018379117-1680005779-100017307912-1304028854/*" ] } ], "version": "2.0" }
说明:
以上策略表示将主账号有权操作的 DLC 托管存储均授权给子账号 。其中,uid/1305424723 中的1305424723为主账号 A 的 APPID,dlc0a65-100018379117-1680005779-100017307912-1304028854/*为您有权操作的 DLC 内部托管存储。
4. 单击完成,完成策略的创建。

第三步:授权需要访问 DLC 内部存储的子账号

1 在策略列表中找到刚才已创建的策略,并单击右侧的关联用户/组/角色
2.在弹窗中,勾选需要具备访问 DLC 内部托管存储权限的子账号,单击确定
3.完成授权操作,即可使用子账号的 SecretID 及 SecretKey,访问您名下 DLC 内部托管存储。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈