检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
ClickHouse数据入库工具 最佳实践方案 ClickHouse数据加工流程最佳实践:在数据湖中通过Hive&Spark(批量)/FlinkSQL(增量)加工成大宽表后,通过CDL/Loader工具实时同步到ClickHouse,下游BI工具和应用进行实时OLAP分析。 数据加工
ClickHouse集群业务规划 集群规模 建议单集群不超过256节点规模。 集群负载 对于不同业务负载的业务,需要分开集群部署,便于不同负载的业务进行资源隔离。 集群并发 由于ClickHouse单个SQL会最大化使用每个主机上的CPU/内存/IO资源,对于复杂SQL查询(复杂聚合
ClickHouse分区设计 合理设置分区键,控制分区数在一千以内,分区字段使用整型。 分区part数与查询性能关系 图1 分区part数与查询性能关系图 分区建议 建议使用toYYYYMMDD(pt_d)作为分区键,pt_d是date类型。 如果业务场景需要做小时分区,使用pt_d
ClickHouse索引设计 一级索引设计 在建表设计时指定主键字段的建议:按查询时最常使用且过滤性最高的字段作为主键。依次按照访问频度从高到低、维度基数从小到大来排列。数据是按照主键排序存储的,查询的时候,通过主键可以快速筛选数据,合理的主键设计,能够大大减少读取的数据量,提升查询性能
创建Bucket索引表调优 Bucket索引常用设置参数: Spark: hoodie.index.type=BUCKET hoodie.bucket.index.num.buckets=5 Flink index.type=BUCKET hoodie.bucket.index.num.buckets
ClickHouse分布式表设计 建议 分布式表建表参考: CREATE TABLE default.my_table_dis ON CLUSTER default_cluster AS mybase.my_table_local ENGINE = Distributed(default_cluster
ClickHouse调优思路 ClickHouse的总体性能调优思路为性能瓶颈点分析、关键参数调整以及SQL调优。在调优过程中,需要综合系统资源、吞吐量、集群负载等各种因素来分析,定位性能问题,设定调优目标,调优达到客户所需目标即可。 ClickHouse调优人员需要系统软件架构、
ClickHouse SQL调优 规则 合理使用数据表的分区字段和索引字段。 MergeTree引擎,数据是以分区目录的形式进行组织存储的,在进行的数据查询时,使用分区可以有效跳过无用的数据文件,减少数据的读取。 MergeTree引擎会根据索引字段进行数据排序,并且根据index_granularity
ClickHouse日志管理规则 日志路径 ClickHouse相关日志的默认存储路径为:“${BIGDATA_LOG_HOME}/clickhouse”。 ClickHouseServer运行相关日志:“/var/log/Bigdata/clickhouse/clickhouseServer
ClickHouse参数调优实践 表1 ClickHouse参数调优汇总 参数名 参数描述 默认值 建议值 是否需要重启生效 max_memory_usage_for_all_queries 单台服务器上所有查询的内存使用量,默认没有限制。建议根据机器的总内存,预留一部分空间,防止内存不够导致服务或者机器异常
ClickHouse容量规划设计 为了能够更好的发挥ClickHouse分布式查询能力,在集群规划阶段需要合理设计集群数据分布存储。 当前ClickHouse能力为单机磁盘容量达到80%后会上报告警信息,磁盘容量达90%后集群会处于只读状态。 出现磁盘告警信息后需要考虑是否是容量不足问题
ClickHouse本地表设计 规则 单表(分布式表)的记录数不要超过万亿,对于万亿以上表的查询,性能较差,且集群维护难度变大。单表(本地表)不超过百亿。 表的设计都要考虑到数据的生命周期管理,需要进行TTL表属性设置或定期老化清理表分区数据。 单表的字段建议不要超过5000列。
ClickHouse数据查询 数据查询规则 禁止select *查询 只查询需要的字段可以减少磁盘io和网络io,提升查询性能。 使用uniqCombined替代distinct uniqCombined对去重逻辑进行了优化,通过近似去重提升十倍查询性能,如果对查询允许有误差,可以使用
ClickHouse日志管理 日志级别、日志文件大小、日志文件数目的修改设置。 ClickHouse支持日志级别的动态调整。 登录FusionInsight Manager界面,访问“集群 > 服务 > ClickHouse > 配置 > 全部配置 > ClickHouseServer
ClickHouse表字段设计 规则 不允许用字符类型存放时间或日期类数据,尤其是需要对该日期字段进行运算或者比较的时候。 不允许用字符类型存放数值类型的数据,尤其是需要对该数值字段进行运算或者比较的时候。字符串的过滤效率相对于整型或者特定时间类型有下降。 建议 不建议表中存储过多的
ClickHouse物化视图概述 由于TTL规则不会从原始表中同步到物化视图表,因此源表中带有TTL规则时,物化视图表同样需要配置TTL规则,并且建议与源表保持一致。 表1 普通物化视图与projection对比 物化视图类型 原表数据与物化视图一致性 灵活性 物化视图开发及维护复杂度
ClickHouse Projection设计 Projection仅在MRS 3.2.0及以上的版本集群中支持。 projection定义 CREATE TABLE test_projection_table( level String, type String,
ClickHouse系统调优 通过FusionInsight Manager查看主机上的CPU、内存、I/O和网络资源使用情况,确认这些资源是否已被充分利用,分以下几种情况: 每个节点资源占用都比较均匀 通过观察资源在每个节点都使用比较均匀,说明系统资源使用比较正常,可以先不关注,
ClickHouse日志详细信息 日志类型 日志文件名 描述 ClickHouse相关日志 /var/log/Bigdata/clickhouse/clickhouseServer/clickhouse-server.err.log ClickHouseServer服务运行错误日志文件路径
ClickHouse表引擎适用场景说明 ClickHouse中最强大的表引擎当属MergeTree(合并树)引擎及该系列其他引擎,根据业务场景选择合适的引擎。 表引擎选择建议 自助报表分析、行为数据分析,在不涉及重复数据聚合的情况下,建议使用ReplicatedMergeTree表引擎