欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ClickHouse多路径存储策略

程序员文章站 2024-01-30 15:30:34
...

ClickHouse多路径存储策略

要使用Clickhouse的多路径存储,需要ClickHouse的版本号在19.15之后。

自ClickHouse 19.15开始,ClickHouse支持所有MergeTree表引擎多路径存储。

多路径配置测试:

  1. 配置文件信息,path:/etc/clickhouse-server/config.d/${xxxx}.xml
    • 配置信息也可写/etc/clickhouse-server/config.xml
    • 需要注意的点
      • 1.若节点已部署clickhouse,因为config.xml已有默认的 信息,所以需要显示声明
      • 2.下的 需要以 /结尾
      • 3.删除或配置时,需要确保ch内已删除相应的table,不然重启ch时会报错。
      • 4.集群内的策略配置可以不同
    • xml配置
      • <keep_free_space_bytes>磁盘的预留空间
      • <move_factor>磁盘空间的预留因子,当磁盘free_size小于此阀值时,触发move操作
      • max_data_part_size_bytes分片阀值,分片大小超过此阀值时,触发move操作
<yandex>
    <!--
    <path replace="replace">/var/lib/clickhouse/</path>
	-->
	<storage_configuration>
    	<disks>
            <!-- 若节点已部署clickhouse,则需要显示调用default -->
            <default>
                <!-- 声明磁盘的预留空间 -->
            	<keep_free_space_bytes>322122547200</keep_free_space_bytes>
            </default>
            <!-- disk_name,与物理机上的磁盘名无关,不重复即可 -->
        	<fast_disk>
                <!-- 目录位置 -->
            	<path>/clickhouse-ssd-data-1/fast-data/</path>
            	<keep_free_space_bytes>322122547200</keep_free_space_bytes>
            </fast_disk>
            <!-- disk_name,与物理机上的磁盘名无关,不重复即可 -->
            <hdd_disk>
            	<path>/clickhouse-hhd-data-1/hhd-data/</path>
            </hdd_disk>
        </disks>
        <policies>
            <!-- 声明storage_policy -->
        	<hot_cold>
            	<volumes>
                    <!-- volume_name -->
                	<hot>
                        <!-- 上面定义的${disk_name}-->
                   	 	<disk>fast_disk</disk>
                      <!--
						每个分片的阀值,超过阀值的分片数据将移至下一个disk
						<max_data_part_size_bytes>1073741824</max_data_part_size_bytes>
					  -->
               		 </hot>
                    <!-- volume_name -->
                	<cold>
                    	<disk>hdd_disk</disk>
                	</cold>
                <!-- more volumes -->
            	</volumes>
                <!-- 当磁盘free_size小于此阀值时,按照volume_name从上到下的顺序执行move操作 -->
                <move_factor>0.2</move_factor>
            </hot_cold>
            <v_order>
            	<volumes>
                    <!-- 在一个volume下填写多个disk,则会按照从上到下的顺序轮询写入disk_name对应的目录 -->
                	<disk_group>
                    	<disk>fast_disk</disk>
                        <disk>hdd_disk</disk>
                    </disk_group>
                </volumes>
            </v_order>
        </policies>
    </storage_configuration>
</yandex>
  1. 建表语句

    • 多存储策略适用于所有的MergeTree引擎,包括RepliacatedMergeTree与分布式表

    • 建表SQL

      CREATE TABLE test.test_policy
      (
          `a` String,
          `part` String
      )
      ENGINE = MergeTree
      PARTITION BY part
      SETTINGS storage_policy='hot_cold',index_granularity = 8192
      
    • 查看ch对应节点内的策略信息

      SELECT 
          policy_name, 
          volume_name, 
          volume_priority, 
          disks, 
          max_data_part_size, 
          move_factor
      FROM system.storage_policies
      
    • 查看ch内table的disk位置

      SELECT 
          name,
          partition,
          disk_name,
          formatReadableSize(sum(bytes_on_disk))
      FROM system.parts
      WHERE table = 'test_table' and disk_name='fast_disk' group by  name,partition,disk_name
      
    • 查看disk信息

      SELECT 
          name, 
          path, 
          formatReadableSize(free_space) AS free, 
          formatReadableSize(total_space) AS total, 
          formatReadableSize(keep_free_space) AS reserved
      FROM system.disks
      
相关标签: ClickHouse