开启对象存储策略
ClickHouse 通过配置对象存储策略,并在创建表时添加语句指定对象存储策略,将冷数据存储到对象存储服务磁盘中,实现数据多磁盘存储。
-
ClickHouse 对象存储策略默认关闭。
-
若需使用数据冷热分离功能,需配置冷热存储策略。
本小节主要介绍如何开启 ClickHouse 对象存储策略,将数据全部存储在对象存储中。
注意 |
---|
-开启存储策略将重启集群。为避免数据丢失,请在业务低峰期开启存储策略。 -当多个表共用一个存储策略时,在对象存储桶的数据统一存在同一目录下,不会按照表进行划分目录,可能对运维不友好。 |
约束限制
-
创建对象存储策略后,暂不支持修改存储策略参数值。
前提条件
步骤 1:开启对象存储策略
-
登录管理控制台。
-
选择产品与服务 > 数据库与缓存 > ClickHouse,进入集群管理页面。
-
选择目标集群,点击目标集群 ID,进入集群详情页面。
-
在基本属性模块,点击集群操作下拉菜单。
-
展开下拉菜单,点击创建对象存储策略,进入存储策略配置窗口。
-
配置存储策略信息,详细参数说明请参见存储策略参数。
-
确认配置信息无误后,点击提交,返回集群页面。
待集群重启,状态切换为活跃,即对象存储策略创建完毕。
存储策略参数
参数 | 说明 |
---|---|
策略名称 |
输入存储策略名称。 只能包含字母、数字、下划线。 |
对象存储地址 |
S3 协议的对象存储地址。 必须以 ‘/’ 结尾。 |
key_secret |
输入 API 密钥密码。 |
key_id |
输入 API 密钥 ID。 |
步骤 2:查看存储策略
创建对象存储策略后,执行如下命令将查询到三条存储策略。
$ echo "select * from system.storage_policies" | curl 'http://<ClickHouse 用户名>:<ClickHouse 密码>@<高可用 IP>:8123/' --data-binary @-
以创建一个 ossp
对象存储策略为例,查询回显信息如下:
策略 | 说明 |
---|---|
default |
未创建对象存储策略前,默认存储策略,直接存储数据至热数据盘 |
ossp |
开启对象存储策略后,新创建的对象存储策略。数据全量存储到对象存储盘 |
ossp_hot_to_cold |
开启对象存储策略后,新创建的冷热存储策略。数据可根据磁盘容量和存储时间,在冷热数据盘之间转移,即在 |
说明 |
---|
|
步骤 3:建表指定存储策略
-
创建对象存储策略后,建表未指定相关策略时,仍启用
default
默认存储策略; -
若需使用对象存储桶直接存储数据,需在建表时添加语句指定对象存储策略。
-
若需使用冷热存储策略,请参见配置冷热分离存储。
添加对象存储策略语句如下:
SETTINGS storage_policy = '<策略名称>';
以下示例建表语句,在ossp
对象存储策略上,将所有数据全部存储到 ossp
对象存储磁盘。
$ echo "CREATE TABLE test.t_local
(
EventDate DateTime,
CounterID UInt32,
UserID UInt32
)
ENGINE = MergeTree()
PARTITION BY toYYYYMM(EventDate)
ORDER BY (CounterID, EventDate)
SETTINGS storage_policy = 'ossp'"
| curl 'http://<ClickHouse 用户名>:<ClickHouse 密码>@<高可用 IP>:8123/' --data-binary @-