概述
S3BackedMergeTree 将 S3 用作 MergeTree 引擎的存储层。这种表引擎使您能够利用 S3 在可扩展性和成本方面的优势,同时保持 MergeTree 引擎的插入和查询性能。
请注意,与标准 ClickHouse 部署相比,实现和管理存储与计算分离架构更加复杂。虽然自管理 ClickHouse 支持本指南中介绍的存储与计算分离方案,但我们建议使用 ClickHouse Cloud。借助 SharedMergeTree 表引擎,您无需额外配置即可在这种架构下使用 ClickHouse。
本指南假设您使用的是 22.8 或更高版本的 ClickHouse。
1. 将 S3 用作 ClickHouse 磁盘
创建磁盘
config.d 目录中新建一个文件,用于存放存储配置:
BUCKET、ACCESS_KEY_ID 和 SECRET_ACCESS_KEY 替换为你希望用于存储数据的 AWS 存储桶详细信息:
region 或发送自定义 HTTP header,可以在此处查看相关设置列表。
你也可以将 access_key_id 和 secret_access_key 替换为以下内容,这会尝试从环境变量和 Amazon EC2 元数据中获取凭证:
2. 创建由 S3 支撑的表
S3BackedMergeTree。如果 ClickHouse 检测到该表使用 S3 存储,它会在内部自动转换引擎类型。
确认该表已使用正确的策略创建:
3. 实现复制以实现容错 (可选)
ReplicatedMergeTree 表引擎即可实现基于 S3 磁盘的复制。详情请参阅以下指南: