查询数据湖
StarRocks 不仅能高效的分析本地存储的数据,也可以作为计算引擎直接分析数据湖中的数据。用户可以通过 StarRocks 提供的 External Catalog,轻松查询存储在 Apache Hive、Apache Iceberg、Apache Hudi、Delta Lake 等数据湖上的数据,无需进行数据迁移。支持的存储系 统包括 HDFS、S3、OSS,支持的文件格式包括 Parquet、ORC、CSV。
如上图所示,在数据湖分析场景中,StarRocks 主要负责数据的计算分析,而数据湖则主要负责数据的存储、组织和维护。使用数据湖的优势在于可以使用开放的存储格式和灵活多变的 schema 定义方式,可以让 BI/AI/Adhoc/报表等业务有统一的 single source of truth。而 StarRocks 作为数据湖的计算引擎,可以充分发挥向量化引擎和 CBO 的优势,大大提升了数据湖分析的性能。
重点概念
-
开放的文件格式
支持各种常见的开源文件格式,如 JSON、Parquet、Avro 等,便于结构化和非结构化数据的存储与处理。
-
元数据管理
提供共享的元数据层,通常利用 Iceberg 表等格式,实现数据的高效组织和管理。
-
多样化的查询引擎
整合多款引擎,如增强版本的 Presto 和 Spark 等,以满足各种数据分析和 AI 用例场景。
-
安全管理
内置强大有效的安全管理机制,全面管控数据安全、隐私与合规性,确保数据的完整性和可信度。
湖仓一体架构的优势
-
灵活性和可扩展性
支持无缝管理各种文件格式的数据,并能根据实际业务场景需求灵活扩展计算和存储能力。
-
成本效益
与传统方案相比,数据存储和处理更为经济有效。
-
数据治理能力增强
提升数据控制、管理和完整性,确保数据处理的可靠性和安全性。
-
AI 和分析场景适配性
完美契合机器学习和基于AI 的数据处理等各种涉及复杂的分析任务的用例场景。
StarRocks 湖仓一体
StarRocks 湖仓一体方案重点在于:
- 规范的 Catalog 及元数据服务集成
- 弹性可扩展的计算节点(简称 CN)
- 灵活的缓存机制
Catalog
StarRocks 提供两种类型的 Catalog:Internal Catalog 和 External Catalog。Internal Catalog 用于管理 StarRocks 数据库中存储的数据的元数据。External Catalog 用于连接存储在 Hive、Iceberg、Hudi、Delta Lake 等各种外部数据源中的数据。
计算节点
在存算分离架构下,存储和计算的分离降低了扩展的复杂度。StarRocks 计算节点仅存储本地缓存,方便您根据负载情况灵活地添加或移除计算节点。
Data cache
您可以根据实际情况选择打开或者关闭本地缓存。在计算节点因为负载变化过快而频繁启动和关闭、或者是查询大多集中在近期数据等场景下,数据缓存意义不大,可以无需开启 缓存。
学习实践
基于 Docker 创建湖仓一体。具体操作参见教程 基于 Apache Iceberg 的数据湖分析。该教程中创建了一个对接 Iceberg 数据源和 MinIO 存储的数据湖,并对接 StarRocks 容器作为查询引擎。您可以直接导入教程中提供的数据集,也可以创建您自己的数据集。
🗃️ 数据目录
14 个项目
🗃️ Data cache
3 个项目
📄️ 外部表
StarRocks 支持以外部表 (External Table) 的形式,接入其他数据源。外部表指的是保存在其他数据源中的数据表,而 StartRocks 只保存表对应的元数据,并直接向外部表所在数据源发起查询。目前 StarRocks 已支持的第三方数据源包括 MySQL、StarRocks、Elasticsearch、Apache Hive™、Apache Iceberg 和 Apache Hudi。对于 StarRocks 数据源,现阶段只支持 Insert 写入,不支持读取,对于其他数据源,现阶段只支持读取,还不支持写入。
📄️ 文件外部表
文件外部表 (File External Table) 是一种特殊的外部表。您可以通过文件外部表直接查询外部存储系统上的 Parquet 和 ORC 格式的数据文件,无需导入数据。同时,文件外部表也不依赖任何 Metastore。StarRocks 当前支持的外部存储系统包括 HDFS、Amazon S3 及其他兼容 S3 协议的对象存储、阿里云对象存储 OSS 和腾讯云对象存储 COS。
📄️ 数据湖相关 FAQ
本文介绍数据湖相关的常见问题,并给出解决方案。文中介绍的很多指标,需要您通过 set enable_profile=true 设置来采集 SQL 查询的 Profile 并进行分析。
📄️ 能力边界
从 v2.3 版本开始,StarRocks 支持通过 External Catalog 管理外部数据源和分析数据湖中的数据。