数据湖仓

除了对本地数据进行高效分析外,StarRocks 还可以作为计算引擎来分析存储在 Apache Hudi、Apache Iceberg 和 Delta Lake 等数据湖中的数据。StarRocks 的一个关键特性是其外部目录,它充当到外部维护的元存储的链接。此功能使用户能够无缝查询外部数据源,无需数据迁移。因此,用户可以分析来自 HDFS 和 Amazon S3 等不同系统的数据,格式包括 Parquet、ORC 和 CSV 等各种文件格式。
上图显示了一个数据湖分析场景,其中 StarRocks 负责数据计算和分析,数据湖负责数据存储、组织和维护。数据湖允许用户以开放的存储格式存储数据,并使用灵活的模式为各种 BI、AI、临时和报告用例生成“单一事实来源”的报告。StarRocks 完全利用其矢量化引擎和 CBO 的优势,显著提高了数据湖分析的性能。
关键理念
- 开放数据格式:支持 JSON、Parquet 和 Avro 等多种数据类型,方便存储和处理结构化和非结构化数据。
- 元数据管理:实现共享元数据层,通常利用 Iceberg 表格式等,以高效地组织和管理数据。
- 多样化的查询引擎:集成 Presto 和 Spark 的增强版本等多个引擎,以满足各种分析和 AI 用例。
- 治理与安全:具备强大的内置机制,用于数据安全、隐私和合规性,确保数据的完整性和可信度。
数据湖仓架构的优势
- 灵活性和可扩展性:无缝管理多样化的数据类型,并根据组织的需求进行扩展。
- 成本效益:与传统方法相比,为数据存储和处理提供了经济实惠的替代方案。
- 增强的数据治理:改进数据控制、管理和完整性,确保可靠和安全的数据处理。
- AI 和分析就绪:非常适合复杂的分析任务,包括机器学习和 AI 驱动的数据处理。
StarRocks 的方法
需要考虑的关键事项是
- 与目录或元数据服务的集成标准化
- 计算节点的弹性可扩展性
- 灵活的缓存机制
目录
StarRocks 有两种类型的目录:内部目录和外部目录。内部目录包含存储在 StarRocks 数据库中的数据的元数据。外部目录用于处理存储在外部的数据,包括 Hive、Iceberg、Delta Lake 和 Hudi 管理的数据。还有许多其他外部系统,链接在页面底部的“更多信息”部分。
计算节点 (CN) 扩展
存储和计算的分离简化了扩展的复杂性。由于 StarRocks 计算节点仅存储本地缓存,因此可以根据负载添加或删除节点。
数据缓存
计算节点上的缓存是可选的。如果您的计算节点根据快速变化负载模式而快速启动和关闭,或者您的查询经常仅针对最新数据,则缓存数据可能没有意义。
🗃️ Catalog
14 项
🗃️ 数据缓存
4 个项目
📄️ 外部表
除某些特殊使用场景外,不再推荐使用外部表功能,并且在未来的版本中可能会弃用。在一般场景下,建议使用外部目录来管理和查询外部数据源中的数据。
📄️ File 外部表
文件外部表是一种特殊的外部表。它允许您直接查询外部存储系统中的 Parquet 和 ORC 数据文件,而无需将数据加载到 StarRocks。此外,文件外部表不依赖于元数据存储。在当前版本中,StarRocks 支持以下外部存储系统:HDFS、Amazon S3 和其他 S3 兼容的存储系统。
📄️ Data lake FAQ
本主题描述了有关数据湖的一些常见问题 (FAQ) 并提供了这些问题的解决方案。本主题中提到的一些指标只能从 SQL 查询的概要文件中获取。要获取 SQL 查询的概要文件,您必须设置 enable_profile=true。
📄️ 功能支持
从 v2.3 开始,StarRocks 支持通过外部目录管理外部数据源和分析数据湖中的数据。