ClickHouse 主要支持DiskLocal
和DiskS3
两种常用的磁盘类型, Default 使用的就是 DiskLocal, DiskS3 就是接下来讨论的 S3 了。
S3 服务这块仍然使用 MinIO,具体可以参考ClickHouse 与开源的 Amazon S3 对象存储。
配置环境
存储配置可以放到 config.xml 里,也可以以独立的 xml 放到 config.d 目录下,推荐后者,重启服务时会自动加载 config.d 目录下的配置。
创建一个文件/etc/clickhouse-server/config.d/storage.xml
, 并存如以下内容,
<?xml version="1.0"?><yandex><storage_configuration> <disks> <default> <keep_free_space_bytes>1024</keep_free_space_bytes> </default> <s3> <type>s3</type> <endpoint>http://192.168.25.144:9000/clickhouse/data/</endpoint> <access_key_id>minio</access_key_id> <secret_access_key>miniostorage</secret_access_key> </s3> </disks> <policies> <s3> <volumes> <s3> <disk>s3</disk> </s3> </volumes> </s3> </policies> </storage_configuration> </yandex>
磁盘(Disk):已经格式化成文件系统的块设备。 默认磁盘(Default Disk):在服务器设置中通过 path 参数指定的数据存储,默认路径为/var/lib/clickhouse/。 卷(Volume):有序的磁盘的集合。 存储策略(Storage Policy):卷的集合以及卷之间数据移动的规则。
上面的配置就是创建一个叫 s3 的 Disk,类型为 s3,对应的存储策略是 s3。
重启 ClickHouse
$ sudo clickhouse restart
建表与增删改查询
Create Table
CREATE TABLE default.s3mergetree( `VendorID` UInt8, `VendorName` String, `Comment` String)ENGINE = MergeTreePARTITION BY VendorNameORDER BY VendorIDSETTINGS storage_policy = 's3'
存储策略选择s3
, 引擎选择MergeTree
。
Insert
INSERT INTO default.s3mergetree(VendorID,VendorName) VALUES (1, 'VendorX') (2, 'VendorY')
Select
select * from s3mergetree┌─VendorID─┬─VendorName─┬─Comment─┐│ 2 │ VendorY │ │└──────────┴────────────┴─────────┘┌─VendorID─┬─VendorName─┬─Comment─┐│ 1 │ VendorX │ │└──────────┴────────────┴─────────┘
改
ALTER TABLE s3mergetree UPDATE Comment = '测试' WHERE VendorName = 'VendorX';select * from s3mergetree where VendorID=1;┌─VendorID─┬─VendorName─┬─Comment─┐│ 1 │ VendorX │ 测试 │└──────────┴────────────┴─────────┘
不支持对分区键(VendorName)修改。
删
alter table s3mergetree delete where VendorID=1;SELECT * FROM s3mergetree┌─VendorID─┬─VendorName─┬─Comment─┐│ 2 │ VendorY │ │└──────────┴────────────┴─────────┘
清空表
TRUNCATE TABLE s3mergetree
删除表
drop table s3mergetree
计算、存储分离
Schema 在本地,

而数据存存到 S3 中,

欢迎关注公众号


开发者小编补充:文章中提到的如何使用在 S3 上使用 ClickHouse,社区现在也有一个PR[1]大家也可以参考使用。
参考资料
PR: https://github.com/ClickHouse/ClickHouse/pull/11058
文章转载自ClickHouse开发者,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




