ClickHouse 分级分层存储方案测试

发表于:2020-6-01 13:26

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:列宁格勒人    来源:掘金

  目的
  验证ClickHouse 分级分层存储方案测试, 实现 1 volume N disk 方案,该方案会将数据存储在不同的盘中,但不能实现数据在盘与盘之间的数据的均匀分布。
  测试背景
  1 shard 1 replica 1 znode 集群, path为默认路径/var/lib/clickhouse
  操作过程
  prepare
   mkdir /data/disk01 # dummy mount point
  chown -R clickhouse:clickhouse /data/
  mkdir -p /etc/clickhouse-server/config.d/
  touch /etc/clickhouse-server/config.d/storage.xml
  写配置文件
   <yandex>
      <storage_configuration>
          <disks> <!-- 磁盘列表 -->
  <disk0> <!-- 如果命名为default可以省略path tag -->
  <keep_free_space_bytes>1024</keep_free_space_bytes>
  <path>/var/lib/clickhouse/</path> <!-- 必须以/结尾 -->
  </disk0>
  <!--
  also
  <default>
  <keep_free_space_bytes>1024</keep_free_space_bytes>
  </default>
  -->
              <disk1>
                  <path>/data/disk01/</path>
              </disk1>
          </disks>
          <policies>
              <jbod_1> <!-- 存储策略名 -->
                  <volumes>
                      <jbod_volume_1> <!-- volume 名称 -->
                          <disk>disk0</disk> <!-- tag 中内容同<disk/>中tag名称 -->
                          <disk>disk1</disk>
                      </jbod_volume_1>
                  </volumes>
              </jbod_1>
          </policies>
      </storage_configuration>
  </yandex>
  重启服务并验证
  新策略
   $:) select * from system.storage_policies;
  SELECT *
  FROM system.storage_policies
  ┌─policy_name─┬─volume_name───┬─volume_priority─┬─disks─────────────┬─max_data_part_size─┬─move_factor─┐
  │ default     │ default       │               1 │ ['default']       │                  0 │           0 │
  │ jbod_1      │ jbod_volume_1 │               1 │ ['disk0','disk1'] │                  0 │         0.1 │
  └─────────────┴───────────────┴─────────────────┴───────────────────┴────────────────────┴─────────────┘
  2 rows in set. Elapsed: 0.002 sec.
  表采用jbod_1的策略后,存储路径变成了两个位置
   $:) CREATE TABLE IF NOT EXISTS test_01.ping (time DateTime, agentId String) ENGINE = MergeTree() PARTITION BY toYYYYMMDD(time) ORDER BY (time, agentId) SETTINGS index_granularity=8192, storage_policy='jbod_1';
  CREATE TABLE IF NOT EXISTS test_01.ping
  (
  `time` DateTime,
  `agentId` String
  )
  ENGINE = MergeTree()
  PARTITION BY toYYYYMMDD(time)
  ORDER BY (time, agentId)
  SETTINGS index_granularity = 8192, storage_policy = 'jbod_1'
  Ok.
  0 rows in set. Elapsed: 0.021 sec.
  $:) select name, data_paths from system.tables where name='ping'
  SELECT
  name,
  data_paths
  FROM system.tables
  WHERE name = 'ping'
  ┌─name─┬─data_paths───────────────────────────────────────────────────────────────────┐
  │ ping │ ['/var/lib/clickhouse/data/test_01/ping/','/data/disk01/data/test_01/ping/'] │
  └──────┴──────────────────────────────────────────────────────────────────────────────┘
  1 rows in set. Elapsed: 0.013 sec.
  向表连续写入数据后,查看/var/lib/clickhouse/data/test_01/ping/ /data/disk01/data/test_01/ping/,会发现有数据打入,测试完成。请注意两者目录之间的差别
   root@$:~ # ll /data/disk01/data/test_01/ping/
  total 36
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_1_10_2
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_12_12_0
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_14_14_0
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_1_5_1
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_2_2_0
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_4_4_0
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_7_7_0
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_9_9_0
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:37 detached # here
  root@$:~ # ll /var/lib/clickhouse/data/test_01/ping/
  total 44
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_10_10_0
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_1_1_0
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_11_11_0
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_1_14_3
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_13_13_0
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_3_3_0
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_5_5_0
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_6_6_0
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:45 19700101_8_8_0
  drwxr-x--- 2 clickhouse clickhouse 4096 May 27 19:37 detached
  -rw-r----- 1 clickhouse clickhouse    1 May 27 19:37 format_version.txt # here
  

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理

《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • shudaixiong02
    2020-7-15 09:16:43

    好高深,clickhouse是啥?

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号