一、分布式DDL执行
### --- 分布式DDL执行
~~~ 在集群上的任意一个节点上执行DDL语句,
~~~ 那么集群上的任意一个节点都会以相同的顺序执行相同的语义。
### --- 数据写入:
~~~ # 方式一:
hadoop01 :) insert into partition_v1 values (...)
~~~ # 方式二:准备数据文件
[root@hadoop01 ~]# vim mycsv.csv
A003,0.0.0.0,www.aa.com,2021-10-05,mac
A004,0.0.0.0,www.cc.com,2021-11-06,window
~~~ # 方式二:指定格式 format CSV
[root@hadoop01 ~]# cat mycsv.csv | clickhouse-client --query="insert into default.partition_v1 format CSV"
~~~ # 查看加载的数据
hadoop01 :) select * from partition_v1;
┌─ID───┬──────IP─┬─URL────────┬──EventTime─┬─os─────┐
│ A003 │ 0.0.0.0 │ www.aa.com │ 2021-10-05 │ mac │
│ A004 │ 0.0.0.0 │ www.cc.com │ 2021-11-06 │ window │
└──────┴─────────┴────────────┴────────────┴────────┘
┌─ID───┬──────IP─┬─URL───────────┬──EventTime─┬─os──┐
│ A000 │ 0.0.0.0 │ www.baidu.com │ 2010-05-01 │ mac │
└──────┴─────────┴───────────────┴────────────┴─────┘
┌─ID───┬──────IP─┬─URL──────────┬──EventTime─┬─os──┐
│ A001 │ 0.0.0.0 │ www.sina.com │ 2021-10-01 │ mac │
└──────┴─────────┴──────────────┴────────────┴─────┘
┌─ID───┬──────IP─┬─URL─────────────┬──EventTime─┬─os─────┐
│ A002 │ 0.0.0.0 │ www.youtube.com │ 2021-10-03 │ window │
└──────┴─────────┴─────────────────┴────────────┴────────┘
### --- 创建partition_v2
~~~ # 创建partition_v2表
hadoop01 :) create table partition_v2 (
ID String, IP IPv4,
URL String,EventTime Date,
os String
) engine=MergeTree partition
by toYYYYMM(EventTime) order by ID;
### --- 方式3:select方式
hadoop01 :) insert into partition_v2 select * from partition_v1;
hadoop01 :) select * from partition_v2;
┌─ID───┬──────IP─┬─URL──────────┬──EventTime─┬─os──┐
│ A001 │ 0.0.0.0 │ www.sina.com │ 2021-11-01 │ mac │
└──────┴─────────┴──────────────┴────────────┴─────┘
┌─ID───┬──────IP─┬─URL─────────────┬──EventTime─┬─os─────┐
│ A000 │ 0.0.0.0 │ www.baidu.com │ 2021-11-01 │ mac │
│ A002 │ 0.0.0.0 │ www.youtube.com │ 2021-11-03 │ window │
│ A003 │ 0.0.0.0 │ www.aa.com │ 2021-11-05 │ mac │
│ A004 │ 0.0.0.0 │ www.cc.com │ 2021-11-06 │ window │
└──────┴─────────┴─────────────────┴────────────┴────────┘