基于 Apache Iceberg 的数据湖分析
概述
当前教程包含以下内容:
- 使用 Docker Compose 部署对象存储、Apache Spark、Iceberg Catalog 和 StarRocks。
- 向 Iceberg 数据湖导入数据。
- 配置 StarRocks 以访问 Iceberg Catalog。
- 使用 StarRocks 查询数据湖中的数据。
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 的优势,大大提升了数据湖分析的性能。
前提条件
Docker
- 安装 Docker。
- 为 Docker 分配 5 GB RAM。
- 为 Docker 分配 20 GB 的空闲磁盘空间。
SQL 客户端
您可以使用 Docker 环境中提供的 MySQL Client,也可以使用其他兼容 MySQL 的客户端,包括本教程中涉及的 DBeaver 和 MySQL Workbench。
curl
curl
命令用于下载数据集。您可以通过在终端运行 curl
或 curl.exe
来检查您的操作系统是否已安装 curl。如果未安装 curl,请点击此处获取 curl。