更新时间:2024-06-21 GMT+08:00
分享

样例代码

此章节主要介绍CloudTable ClickHouse冷热分离的使用命令,以及冷数据如何自动存储到obs桶中。

样例代码

  • 创建ClickHouse冷热分离表test_table。
    CREATE TABLE IF NOT EXISTS test_table
    (  
    
    `timestamp` DATETIME NOT NULL COMMENT '日志时间',
        `type` INT NOT NULL COMMENT '日志类型',
        `error_code` INT COMMENT '错误码',
        `error_msg` VARCHAR(1024) COMMENT '错误详细信息',
        `op_id` BIGINT COMMENT '负责人id',
        `op_time` DATETIME COMMENT '处理时间'
     
    ) 
    ENGINE = MergeTree()
    PARTITION BY timestamp
    ORDER BY timestamp
    
    TTL timestamp + INTERVAL 1 DAY TO DISK 'cold_disk'
    SETTINGS storage_policy = 'hot_to_cold';
  • 执行以下命令插入验证数据:
    insert into test_table values('2024-06-04 10:36:00','1','404','Resource Not Found','998756','2024-06-04 11:36:00');  -- hot data
    insert into test_table values('2024-06-04 10:35:00','1','404','Resource Not Found','998756','2024-06-04 11:35:00');  -- hot data
    insert into test_table values('2024-06-03 10:33:00','1','404','Resource Not Found','998756','2024-06-03 11:33:00');  -- cold data
    insert into test_table values('2024-03-27 09:10:00','1','200','ok','998756','2024-03-27 10:10:00');  -- cold data
    insert into test_table values('2024-03-25 11:08:00','1','404','Resource Not Found','998756','2024-03-25 12:08:00');  -- cold data
  • 查询插入的数据。
    查询数据。
    select * from test_table FORMAT CSV;

    查询数据表分区存储的分区字段名、分区和存储路径。

    SELECT name,partition,active,path FROM system.parts WHERE database = 'default' and table = 'test_table' and active = 1;
    图1 查询数据

    当前系统时间为2024年6月4日22点,test_table表timestamp列超过一天的数据存储到了名为cold_disk的OBS下。

相关文档