- 数据准备:下载tpc-h压缩包,编译并生成数据和sql,将数据导入到hdfs,参考文献很多,在此不一一赘述
2 .clickhouse建tpc-h表映射到hdfs,总的有9张表
create table customer (
c_custkey Int64
c_name String
c_adreess String
c_nationkey Int64
c_phone String
c_acctbal Decimal(10,0)
c_mktsegment String
c_comment String
)engine=HDFS(‘hdfs://mycluster/user/hive/warehouse/tpch’,‘ORC’);
其他表以此类推
注:使用HDFS引擎可以直接访问数据,也可以存储数据,但是clickhouse版本需要在20.8以及以上才能使用
3 .22个查询sql调试,tpc-h生成的原生部分sql不能在clickhose上面直接执行,需要稍作调试,需要调试的sql编号为d2.sql,d4.sql,d13.sql,d17.sql,d20.sql.d21.sql.d22.sql
d2.sql需要改变的部分是:将where条件中的子查询from后面添加part表
d4.sql需要改变的部分是:where条件中exists函数改成in,并在in前面添加列o_orderdate
d13.sql需要改变的部分是:将c_count 更换成c_custkey
d17.sql需要改变的部分是:将where条件中的子查询from后面添加part表,并将0.2改成2
d20.sql需要改变的部分是:将where条件中的子查询from后面添加partsupp表,并将0.5改成5
d21.sql需要改变的部分是:两个where条件中exists函数改成in,并在in前面添加列o_orderkey,在from后面添加表lineitem l1
d22.sql需要改变的部分是:将0.00改成0,并将substing函数里的from 1 for 2 改成1,2
4 .执行查询:
客户端模式:
执行clickhouse-client -m进入客户端,直接执行sql
命令模式:clickhouse-clinet -d database_name -m --time </opt/sql_name.sql