clickhouse SQL优化技巧有哪些

发布时间:2022-01-14 14:23:22 作者:小新
来源:亿速云 阅读:722

这篇文章主要介绍clickhouse SQL优化技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

sql慢查大部分主要体现在cpu 负载过高,io过高,或者查询的列中无索引导致的;注意;clickhouse本身不太支持高并发的场景,qps过高会导致clickhouse服务器cpu过高,导致慢查

在这些情况下;常见的考虑的是 sql中是否有复杂的运算,查询的数量量是否过大,查询的列中索引是否有效;

sql 查询特点:数量大,且分区跨度大

data表格中有8亿多条数据,data表按照p_data_day 分区;

select sn,COUNT(1) as valueQt from data WHERE   sn='70A0600018109' and p_day >= '2017-01-01' and p_data_day < '2020-08-13'group by sn;

数据会遍历整个分区,数据平均在1s左右分钟返回 ;

优化思路:减少不必要数据的遍历(分区);充分利用clickhouse 索引(group by 索引)

针对sn的查询,建立物化视图;将8亿条数据按照sn号以及device_id(mac_code)建立256个分区;

create MATERIALIZED VIEW IF NOT EXISTS data_sn_materializedengine = ReplicatedMergeTree('/clickhouse/tables/{ck_cluster}/data_sn_materialized', '{replica}')PARTITION BY sn_sort_key ORDER BY (sn_sort_key,sn,p_day)AS select halfMD5(_sn) % 256 as sn_sort_key,sn,p_day,count() as cnt from data group by sn_sort_key,sn,p_day;

查询语句;保持原来的出参和入参不变,数据能够在200ms以内返回,

sql 查询特点:数量大,且分区跨度大

data 表格数据量在10亿多条,建表语句如下

CREATE TABLE data (`data_day` Date, `flow_type` UInt32 DEFAULT CAST(0, 'UInt32'),.....) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{ck_cluster}/data', '{replica}') PARTITION BY data_day ORDER BY (flow_type, data_day) SETTINGS index_granularity = 8192;

查询语句

 
   
   
   select ... from data where data_day = '2020-09-11'
我们观察到查询数据的时候,总是会具体到昨天;而且历史的数据不会再使用;  
优化思路:使用clickhouse的TTL,减少表容量,
   
   
   
CREATE TABLE dwrt.lc_order_flow (    `data_day` Date,     .....     `flow_type` UInt32 DEFAULT CAST(0,     'UInt32'),    ....    ) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{ck_cluster}/data', '{replica}') PARTITION BY data_day ORDER BY (data_day, flow_type) TTL data_day + toIntervalDay(7) SETTINGS index_granularity = 8192;    
     

以上是“clickhouse SQL优化技巧有哪些”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. ClickHouse 快速入门
  2. ClickHouse与威胁日志分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

clickhouse sql

上一篇:如何实现基于Impala平台打造交互查询系统

下一篇:springboot整合quartz定时任务框架的方法是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》