clickhouse
分区表达式
按小时分区
formatDateTime(toDateTime(subString(logTime,1,19)),'%F %H')
按天分区
toDate(_cw_raw_time/1000)
toDate(subString(transDt,1,10))
单机无副本
CREATE TABLE upsf_ods_upb.tbl_market_activity_dict_factor ( `key` String, `value` String, `_partition_day` Date MATERIALIZED today(), `_cw_insert_time` DateTime MATERIALIZED now(), `_cw_uuid` UUID MATERIALIZED generateUUIDv4() ) ENGINE = MergeTree PARTITION BY _partition_day ORDER BY (key, value) SETTINGS index_granularity = 8192
-- `_cw_distributed_db`.upsf_ods_upb_tbl_market_activity_dict_factor source CREATE TABLE _cw_distributed_db.upsf_ods_upb_tbl_market_activity_dict_factor ( `key` String, `value` String, `_partition_day` Date MATERIALIZED today(), `_cw_insert_time` DateTime MATERIALIZED now(), `_cw_uuid` UUID MATERIALIZED generateUUIDv4() ) ENGINE = Distributed(test_shard_localhost, upsf_ods_upb, tbl_market_activity_dict_factor, rand());
集群有副本
-- shard1.upsf_ods_upb_tbl_market_activity_dict_factor_replica definition CREATE TABLE shard1.upsf_ods_upb_tbl_market_activity_dict_factor_replica ( `key` String, `value` String, `_partition_day` Date MATERIALIZED today(), `_cw_insert_time` DateTime MATERIALIZED now(), `_cw_uuid` UUID MATERIALIZED generateUUIDv4() ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/1/upsf_ods_upb/tbl_market_activity_dict_factor', 'replica1') PARTITION BY _partition_day ORDER BY (key, value) SETTINGS index_granularity = 8192;
-- `_cw_distributed_db`.upsf_ods_upb_tbl_market_activity_dict_factor source CREATE TABLE _cw_distributed_db.upsf_ods_upb_tbl_market_activity_dict_factor ( `key` String, `value` String, `_partition_day` Date MATERIALIZED today(), `_cw_insert_time` DateTime MATERIALIZED now(), `_cw_uuid` UUID MATERIALIZED generateUUIDv4() ) ENGINE = Distributed('up_ck_cluster', '', 'upsf_ods_upb_tbl_market_activity_dict_factor_replica', rand());
/data/app/clickhouse2/bin/clickhouse-client --multiquery -h 127.0.0.1 --port 19000 --user default --password eb22d98eaf028b1ca5c36548193d604a cd /data/app/clickhouse2/ cd /data/appData/clickhouse2/ select * from system.clusters; /data/app/clickhouse2/bin/clickhouse-server restart service clickhouse-server start service clickhouse-server stop service clickhouse-server restart [root@node4 ~]# ps -ef|grep clickhouse root 2499 1 0 6月26 ? 00:00:29 /data/app/clickhouse2/bin/clickhouse-server --daemon --config-file=/data/app/clickhouse2/etc/clickhouse-server/config.xml --log-file=/data/logs/clickhouse2/clickhouse-server.log --pid-file=/data/app/clickhouse2/clickhouse2.pid root 18940 1 0 10:46 ? 00:00:01 /data/app/clickhouse2/bin/clickhouse-server status root 24491 21557 0 10:56 pts/2 00:00:00 grep --color=auto clickhouse DROP TABLE IF EXISTS `shard1`.`test_tbl_market_activity_dict_hostname_replica`; DROP TABLE IF EXISTS `shard2`.`test_tbl_market_activity_dict_hostname_replica`; DROP TABLE IF EXISTS `shard3`.`test_tbl_market_activity_dict_hostname_replica`; DROP TABLE IF EXISTS `_cw_distributed_db`.`test_tbl_market_activity_log_info_ulsp`; DROP TABLE IF EXISTS `test`.`tbl_market_activity_log_info_ulsp`; -------查看后台进程 show processlist; select * from system.processes; select user,query_id,query,elapsed,memory_usage from system.processes; ---------杀死后台进程 -- 通过上面指令获取到进程相关信息后,可以用query_id条件kill进程 KILL QUERY WHERE query_id='2-857d-4a57-9ee0-327da5d60a90' -- 杀死default用户下的所有进程 KILL QUERY WHERE user='default' cd /data/app/clickhouse2/etc/clickhouse-server ls cp config.xml config.xmlbak2 vi config.xml <distributed_ddl> <!-- Path in ZooKeeper to queue with DDL queries --> <path>/clickhouse/task_queue/ddl</path> <cleanup_delay_period>60</cleanup_delay_period> <task_max_lifetime>86400</task_max_lifetime> <max_tasks_in_queue>1000</max_tasks_in_queue> </distributed_ddl> ----- CREATE TABLE test.tbl_market_activity_log_info_ulsp ON CLUSTER up_ck_cluster ( `transDt` String, `discountId` String, `cardNo` String, `mobile` String, `userId` String, `logId` String, `transChnl` Nullable(String), `_cw_insert_time` DateTime MATERIALIZED now(), `_cw_uuid` UUID MATERIALIZED generateUUIDv4() ) ENGINE = ReplicatedMergeTree(up_ck_cluster,test,tbl_market_activity_log_info_instead_ulsp,rand()) PARTITION BY subString(transDt,1,10) ORDER BY (transDt,discountId,cardNo,mobile,userId,logId); SQL 错误 [80]: ClickHouse exception, code: 80, host: 10.0.12.14, port: 18123; Code: 80, e.displayText() = DB::Exception: Seems like cluster is configured for cross-replication, but zookeeper_path for ReplicatedMergeTree is not specified or contains {uuid} macro. It's not supported for cross replication, because tables must have different UUIDs. Please specify unique zookeeper_path explicitly. (version 20.8.12.2)