clickhouse 问题汇总

文章讲述了在ClickHouse数据库中遇到使用Nullable字段进行排序时的错误,错误代码为44,由于不允许Nullable列作为排序键。解决方案是修改建表语句,添加设置`allow_nullable_key=1`来启用Nullable列排序。此外,文中还提到了ClickHouse中对数组排序的处理方法以及如何从MySQL同步数据到ClickHouse,包括使用MaterializedMySQL引擎和指定同步的表名。

Nullable字段作为排序字段

Nullable字段作为排序字段(order by) 

报错:Code: 44. DB::Exception: Sorting key contains nullable columns, but merge tree setting `allow_nullable_key` is disabled.

排序字段不可包含Nullable列, 解决方法:建表语句后加 settings allow_nullable_key=1;

参考:https://kb.altinity.com/engines/mergetree-table-engine-family/altinity-kb-nulls-in-order-by/

clickhouse 筛选数组不考虑数组内顺序

对字段排序后筛选

 select * from analysis where arrayReverseSort(analysis_comb) in(['71','330'],['80','337'])

mysql 同步到clickhouse

SET allow_experimental_database_materialized_mysql = 1;
CREATE DATABASE clickhouse_db_name ENGINE = MaterializedMySQL('host:port', 'database', 'user', 'password') -- mysql 的数据库参数
SETTINGS materialized_mysql_tables_list ='table1, table2';  -- 指定表,不指定时同步全部库中的表

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值