美文网首页
ClickHouse multiple volume stora

ClickHouse multiple volume stora

作者: 白奕新 | 来源:发表于2019-11-06 21:23 被阅读0次

0、what's this

在ClickHouse中可以配置存储策略,配置多块盘与盘存储空间的阈值,当达到空间阈值时自动触发数据迁移。

1、config

配置在config.xml里面

<storage_configuration>
    <disks> <!-- 可以在这个节点下配置磁盘信息 -->
        <fast_disk> <!-- disk name,自定义 -->
            <path>/mnt/fast_ssd/clickhouse</path>
        </fast_disk>
        <disk1>
            <path>/mnt/hdd1/clickhouse</path>
            <keep_free_space_bytes>10485760</keep_free_space_bytes>
        </disk1>
        <disk2>
            <path>/mnt/hdd2/clickhouse</path>
            <keep_free_space_bytes>10485760</keep_free_space_bytes>
        </disk2>
    </disks>
    
    <policies>
       <!--定义的第一个policy-->
       <hdd_in_order> 
            <volumes>
                <single> 
                    <disk>disk1</disk>
                    <disk>disk2</disk>
                </single>
            </volumes>
        </hdd_in_order>
        
       <!--定义的第二个policy-->
        <moving_from_ssd_to_hdd><!-- policy name,自定义 -->
            <volumes>
                <hot><!-- volume name,自定义 -->
                    <disk>fast_disk</disk>
                    <max_data_part_size_bytes>1073741824</max_data_part_size_bytes>
                </hot>
                <cold>
                    <disk>disk1</disk>
                </cold>            
            </volumes>
            <move_factor>0.2</move_factor>
        </moving_from_ssd_to_hdd>
    </policies>    
</storage_configuration>
参数 含义 其他
keep_free_space_bytes 最少需要保留多少磁盘空间
max_data_part_size_bytes 定义part的最大大小,超过阈值直接移到下一个盘里面
move_factor 定义百分比,剩余空间低于阈值直接移到下一个盘里面 默认是0.1

2、detail

  • 当policy里面配置了多个volume,会优先写入第一个volume里面,当磁盘剩余存储空间触发阈值以后触发迁移动作,迁移数据到下一块盘。(例如moving_from_ssd_to_hdd)
  • 当一个volume里面配置了多块盘,则会轮询写入。(例如hdd_in_order)
  • 数据不会从最后一个volumn转移到第一个volumen。
  • 同一个shard的不同replica节点可以配置不同的storage policy,复制不会受影响。

3、how to use


CREATE TABLE table_with_non_default_policy (
    EventDate Date,
    OrderID UInt64,
    BannerID UInt64,
    SearchPhrase String
) ENGINE = MergeTree
ORDER BY (OrderID, BannerID)
PARTITION BY toYYYYMM(EventDate) 
SETTINGS storage_policy = '{POLICY-NAME}'

当没有配置storage_policy的时候,则默认选择config.xml里面的<path>作为存储路径。

4、move partition manually

ALTER TABLE table_name MOVE PARTITION|PART partition_expr TO DISK|VOLUME 'disk_name'

example

(1)ALTER TABLE hits MOVE PART '20190301_14343_16206_438' TO VOLUME 'slow'
(2)ALTER TABLE hits MOVE PARTITION '2019-09-01' TO DISK 'fast_ssd'

相关文章

网友评论

      本文标题:ClickHouse multiple volume stora

      本文链接:https://www.haomeiwen.com/subject/mfppbctx.html