检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
离线Compaction配置 对于MOR表的实时业务,通常设置在写入中同步生成compaction计划,因此需要额外通过DataArts或者脚本调度SparkSQL去执行已经产生的compaction计划。 执行参数 set hoodie.compact.inline = true
ClickHouse DataBase设计 业务隔离设计-各业务分库设计 在业务规划时,不同业务归属于不同数据库,便于后续对应用户关联的数据库下表、视图等数据库对象权限的分离管理和维护。
ClickHouse数据入库工具 最佳实践方案 ClickHouse数据加工流程最佳实践:在数据湖中通过Hive&Spark(批量)/FlinkSQL(增量)加工成大宽表后,通过CDL/Loader工具实时同步到ClickHouse,下游BI工具和应用进行实时OLAP分析。 数据加工
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
表的设计都要考虑到数据的生命周期管理,需要进行TTL表属性设置或定期老化清理表分区数据。 单表的字段建议不要超过5000列。
ClickHouse参数调优实践 表1 ClickHouse参数调优汇总 参数名 参数描述 默认值 建议值 是否需要重启生效 max_memory_usage_for_all_queries 单台服务器上所有查询的内存使用量,默认没有限制。建议根据机器的总内存,预留一部分空间,防止内存不够导致服务或者机器异常
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
复杂度较高,需要开发很多物化视图,每个物化视图都需要单独去管理和维护。 projection 数据实时同步,数据写入即可查询到物化视图最新数据。 创建表时指定的物化视图语法,新的SQL业务需要修改表结构。 不需要开发很多物化视图,任意查询SQL会自动重写命中物化视图。
表命名规范 数据库表名称命名规则: 在数据库中,表名命名要求在当前数据库内唯一。 表名要求以字符开始,可以包含字符(a~z,A~Z)、数字(0~9)及下划线(_)。 父主题: ClickHouse宽表设计
ClickHouse容量规划设计 为了能够更好的发挥ClickHouse分布式查询能力,在集群规划阶段需要合理设计集群数据分布存储。 当前ClickHouse能力为单机磁盘容量达到80%后会上报告警信息,磁盘容量达90%后集群会处于只读状态。 出现磁盘告警信息后需要考虑是否是容量不足问题
ClickHouse数据查询 数据查询规则 禁止select *查询 只查询需要的字段可以减少磁盘io和网络io,提升查询性能。 使用uniqCombined替代distinct uniqCombined对去重逻辑进行了优化,通过近似去重提升十倍查询性能,如果对查询允许有误差,可以使用
`a_low_card` LowCardinality(String) DEFAULT a ) ENGINE = MergeTree PARTITION BY tuple() ORDER BY tuple(); 其中,字段a是原生字符串,字段a_low_card基于a做了低基维编码
开启MRS集群远程运维授权 登录MRS管理控制台。 在左侧导航栏中选择“现有集群”,选中一个运行中的集群并单击集群名称,进入集群信息页面。 在页面右上角单击“运维”,选择“集群节点授权”,选择授权给华为云支持人员访问本机的权限的“截止时间”。
ClickHouse Projection设计 Projection仅在MRS 3.2.0及以上的版本集群中支持。 projection定义 CREATE TABLE test_projection_table( level String, type String,
ClickHouse系统调优 通过FusionInsight Manager查看主机上的CPU、内存、I/O和网络资源使用情况,确认这些资源是否已被充分利用,分以下几种情况: 每个节点资源占用都比较均匀 通过观察资源在每个节点都使用比较均匀,说明系统资源使用比较正常,可以先不关注,