存算分离
在 StarRocks 存算分离架构中,数据存储在成本更低且更可靠的远程存储系统中,例如 Amazon S3、Google Cloud Storage、Azure Blob Storage 以及其他支持 S3 协议的存储,如 MinIO。热数据会被缓存到本地,在查询命中缓存的前提下,存算分离集群的查询性能与存算一体集群相当。同时,在存算分离架构下,计算节点(CN)可以在几秒内根据需要实现扩缩容。因此,StarRocks 的存算分离架构不仅降低了存储成本,保证了资源隔离性能,还提供了计算资源的弹性和可扩展性。
本教程涵盖以下内容:
- 使用 Docker Compose 部署 StarRocks 存算分离集群以及 MinIO 作为对象存储。
- 导入数据集,并在导入过程中进行基本的数据转换。
- 查询分析数据。
本教程中使用的数据由 NYC OpenData 和 NOAA 的 National Centers for Environmental Information 提供。教程仅截取了数 据集的部分字段。
前提条件
Docker
- 安装 Docker。
- 为 Docker 分配 4 GB RAM。
- 为 Docker 分配 10 GB 的空闲磁盘空间。
SQL 客户端
您可以使用 Docker 环境中提供的 MySQL Client,也可以使用其他兼容 MySQL 的客户端,包括本教程中涉及的 DBeaver 和 MySQL Workbench。
curl
curl
命令用于向 StarRocks 中导入数据以及下载数据集。您可以通过在终端运行 curl
或 curl.exe
来检查您的操作系统是否已安装 curl。如果未安装 curl,请点击此处获取 curl。
术语
FE
FE 节点负责元数据管理、客户端连接管理、查询计划和查询调度。每个 FE 在其内存中存储和维护完整的 元数据副本,确保每个 FE 都能提供无差别的服务。
CN
CN 节点在存算分离或存算一体集群中负责执行查询。
BE
BE 节点在存算一体集群中负责数据存储和执行查询。
当前教程不包含 BE 节点,以上内容仅供您了解 BE 和 CN 之间的区别。
启动 StarRocks
要基于对象存储部署 StarRocks 存算分离集群,您需要部署以下服务:
- 一个 FE 节点
- 一个 CN 节点
- 对象存储
本教程使用 MinIO 作为对象存储。
StarRocks 提供了一个 Docker Compose 文件,用于搭建包含以上 三个必要容器的环境。
下载 Docker Compose 文件。
mkdir quickstart
cd quickstart
curl -O https://raw.githubusercontent.com/StarRocks/demo/master/documentation-samples/quickstart/docker-compose.yml
启动容器。
docker compose up -d
检查环境状态
成功启动后,FE 和 CN 节点大约需要 30 秒才能部署完成。需要通过 docker compose ps
命令检查服务的运行状态,直到 starrocks-fe
和 starrocks-cn
的状态变为 healthy
。
docker compose ps