irpas技术客

clickhouse跟hive的不同_AiBigData_clickhouse hive

网络 5097

虽然clickhouse可以是多台机器,因为占用内存,每台机器存储不同的数据,所以需要有一个视图,将三台机器的数据进行汇总,原始表跟视图的创建语句如下

--创建 clickhouse , drop table dm.city_dim on cluster my_cluster; CREATE TABLE dm.city_dim on cluster my_cluster( city_id Int32 comment '城市ID', city_name String comment '城市名' ) ENGINE=MergeTree ORDER BY city_id SETTINGS index_granularity = 8192; --创建 clickhouse 分布式视图表 drop table dm.city_dim on cluster my_cluster; CREATE TABLE dm.city_dim on cluster my_cluster( city_id Int32 comment '城市ID', city_name String comment '城市名' )ENGINE = Distributed(my_cluster, dm, city_dim, rand());

怎么将hive的数据转到clickhouse中?

如果要删除原始数据,使用下面语句,

/usr/bin/clickhouse-client --host xxxxxxxxxx --port xxxx --uxxxx bigdata --password xxxxxx --multiline -q "ALTER TABLE ods.xxxx DELETE WHERE 0=0" 上面的语句需要在所有clickhouse机器上进行执行,否则只会删除一个机器上的数据

使用的工具是waterdrop,所使用的命令如下

start-waterdrop.sh --master local[4] --deploy-mode client --config click_house.cfg click_house.cfg配置文件如下 spark { spark.app.name = "city_name" spark.executor.instances = 1 spark.executor.cores = 4 spark.executor.memory = "1g" spark.sql.catalogImplementation = "hive" } input { hive { pre_sql = "select city_id, city_name from dim.city_dim" table_name = "city_dim" } } filter { } output { clickhouse { host = "xxxx:xxxx,xxxx:xxxx,xxxx:xxxx" database = "dm" table = "city_dim" fields = ["city_id","city_name"] clickhouse.socket_timeout = 120000 username = "xxxx" password = "xxxx" bulk_size = 20000 } } 然后进行批量导入处理

hive sql 跟clickhouse sql 有什么不同呢?

left join后,右边没有关联的部分,在hive中是null,在clickhouse中关联字段是整数的时候,是0,字符串类型关联的时候是’’时间戳转化成日期的函数不同 hive select from_unixtime(1603123200, ‘yyyyMMdd’)ck select toDate(1603123200) 时间戳转化成时间的函数不同 hive select from_unixtime(1605505769, ‘yyyyMMdd HHmmss’)ck select toDateTime(1605505769) 日期减天数 hive select date_sub(from_unixtime(unix_timestamp(‘20201116’, ‘yyyyMMdd’), ‘yyyy-MM-dd’), 30)ck select subtractDays(toDate(concat(substr(‘20201116’,1,4), ‘-’, substr(‘20201116’,5,2), ‘-’, substr(‘20201116’,7,2))), 30)

如果某个字段会出现null的情况,ck定义表中字段类型的时候,使用Nullable包上对应的数据类型


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #ClickHouse #hive #因为占用内存 #每台机器存储不同的数据 #所以需要有一个视图 #将三台机器的数据进行汇总 #原始表跟视图的创建语句如下创建