更新时间:2025-01-07 GMT+08:00
分享

性能优化

同步任务参数设置

  • max_full_sync_task_threads_num:全量同步线程数,默认为FE节点的CPU核数的一半。值越大执行全量同步的速度越快,但占用TP和AP的CPU和内存资源越多。执行全量同步时,需根据系统的压力,设置一个合适的值。同时执行多个全量同步任务时,需将此值调小。
  • max_incremental_sync_task_threads_num:增量同步线程数,默认为FE节点的CPU核数的一半。值越大执行增量同步的线程越多,占有的资源越多,同步时延较低。若实例上同步任务较多,大于5个,需要降低每个任务的同步线程数。
  • expect_tablet_size:预期每个Bucket的存储源数据的大小,单位为GB,默认为3。若库里表的数据量大多小于3G,个别表数据量较大,可以将此值调小。
  • expect_tablet_num_for_one_partition:预期每个分区的默认桶数,如果设置为0,将按照数据大小计算桶数,默认为2。若库里表中无数据,则默认使用此设定值;若库中表里有数据,则按数据量/expect_tablet_size来设定分桶数。若使用表同步设置指定了分区键,则需要评估每个分区中的数据量需要设定多少桶,最终表的分桶数为:分区数*每个分区中的桶数。

查询性能优化

  • SQL优化

    不要用select *,去除冗余的字段,函数计算等。

  • 开query cache

    适用于查询的数据表现出冷热性,频繁执行聚合查询场景。通过DAS连接AP数据库执行命令SET GLOBAL enable_query_cache=true;

  • 排序键

    常用的过滤条件,加到排序键,排序键的顺序按使用频次和数据基数确认,高基数优先,排序键建议不超过5个。排序键为AP性能优化最常使用的方法。创建同步任务时通过表同步设置功能进行设置。

  • 分区

    值不会变化的时间列经常用于where过滤,使用该列创建分区。创建同步任务时通过表同步设置功能进行设置。

  • 索引

    用于过滤的列可以尝试添加索引。bitmap索引适合基数在10000-100000左右的列。blommfilter索引适合基数在100000+的列。数据同步好后通过DAS连接AP数据库通过SQL命令进行创建。

  • 物化视图

    有多个频繁使用的查询,过滤条件不一样,排序键只能适配一个查询时,可以创建物化视图适配其他查询。数据同步好后通过DAS连接AP数据库通过SQL命令进行创建。

相关文档