Separate storage and compute
在存储与计算分离的系统中,数据存储在低成本、可靠的远端存储系统中,如 Amazon S3、Google Cloud Storage、Azure Blob Storage 和其他兼容 S3 的存储如 MinIO。热数据会被本地缓存,当缓存命中时,查询性能可与存储计算耦合架构相媲美。计算节点(CN)可以根据需求在几秒内添加或移除。这种架构降低了存储成本,确保了更好的资源隔离,并提供了弹性和可扩展性。
本教程涵盖:
- 在 Docker 容器中运行 StarRocks
- 使用 MinIO 作为对象存储
- 配置 StarRocks 以实现共享数据
- 导入两个公共数据集
- 使用 SELECT 和 JOIN 分析数据
- 基本数据转换(ETL 中的 T)
使用的数据由纽约市开放数据和 NOAA 的国家环境信息中心提供。
这两个数据集都非常大,因为本教程旨在帮助您接触 StarRocks 的使用,我们不会导入过去 120 年的数据。您可以在分配了 4 GB RAM 的机器上运行 Docker 镜像并导入这些数据。对于更大规模的容错和可扩展部署,我们有其他文档,并将在后续提供。
本文档包含大量信息,内容以步骤为主,技术细节在后面。这是为了按以下顺序实现这些目的:
- 允许读者在共享数据部署中导入数据并分析这些数据。
- 提供共享数据部署的配置细节。
- 解释数据导入过程中的基本数据转换。
前提条件
Docker
- Docker
- 分配给 Docker 的 4 GB RAM
- 分配给 Docker 的 10 GB 可用磁盘空间
SQL 客户端
您可以使用 Docker 环境中提供的 SQL 客户端,或使用您系统上的客 户端。许多兼容 MySQL 的客户端都可以使用,本指南涵盖了 DBeaver 和 MySQL Workbench 的配置。
curl
curl 用于向 StarRocks 发起数据导入任务,并下载数据集。通过在操作系统提示符下运行 curl 或 curl.exe 来检查是否已安装 curl。如果未安装 curl,请在此获取 curl。
/etc/hosts
本指南中使用的导入方法是 Stream Load。Stream Load 连接到 FE 服务以启动导入任务。然后 FE 将任务分配给后端节点,即本指南中的 CN。为了使导入任务能够连接到 CN,CN 的名称必须在您的操作系统中可用。将以下行添加到 /etc/hosts:
127.0.0.1 starrocks-cn