dws实时数仓项目实践分享(一)

举报
dgt 发表于 2025/03/31 15:13:38 2025/03/31
【摘要】 DWS实时数仓dws_client改用copy加速入库方案实践分享

DWS_client加速入库方案

注:dws_client 2.0版本,本文只是作者在具体项目实践中的一些分享。本文内容可能信息已经错误或过时,仅供参考。

一、问题现象

dws_client入库时,存在性能缓慢问题,出现数据积压现象。

二、问题分析

1、现网使用dws_client入库,存在多种不同入库方式,建议使用autocopy_upsert方式入库,当前现网主要使用copy_upsert入库。

     writeMode参数含义:

  • auto:数据量低于copyWriteBatchSize使用upsert方式入库,

                 否则使用copy_upsert方式入库。

  • copy_upsert:无主键使用copy入库。

                 有主键使用copy + upsert入库。

2、不同入库方式性能差异较大。

      根据现网实测大数据量下,copy性能优于upsert方式6倍以上。

      针对不需要去重的场景,建议删除主键。

三、 解决方案

注意:现网是否可以删除主键需业务判断

  修改入库方式writeModecopy_upsertauto

1、查询有主键的表:

select n.nspname schema_name,c.relname table_name,t.conname pk_name

from pg_namespace n,pg_class,pg_constraint t

where n.oid=c.relnamespace and t.conrelid=c.oid and t.contype='p'

and n.nspname='xxxx' and c.relname='yyyy'

注:xxxxschema名,yyyy为表名,

2、删除主键

alter table schema_name.table_name drop constraint pk_name

注:红色部分根据实际情况替换

1.4.  dws-connector(dws_client)入库参数建议

根据集群算力,按单并发每秒入库7000条数据,一天数据积压时按4小时入库完成。

注:以下设置针对当前环境,后续可根据实际情况调整。

1、修改入库方式writeMode参数

writeModecopy_upsert或auto

日数据量1000w以内auto,超过1000w建议设置为copy_upsert

  1. 基于copy入库性能是upsert性能6倍以上的实测数据,针对日数据量大表(暂定2亿为界),建议尽量不设置主键,使入库可以走copy
  2. client内部入库线程池大小threadSize=1
  3. 建议kafkatopicdws入库sink并发量比例设置为1:1

日数据量大于6亿可根据按如下设置并发

  1. 按日数据量,合理调整parallelism值,建议1亿以下设置为11亿以上按日数量/2亿(或3亿)。
  2. autoFlushMaxInterval建议越大越好,建议设置1分钟以上,可根据业务实时需要设置5s以上
  3. copyWriteBatchSize/autoFlushBatchSize:建议1亿以上大表设置为min10000~500007000*autoFlushMaxInterval/3,也可简化设置为10000
  4. metadataCacheSeconds建议设置为360000

 

详细设置见下面表格。

日数据量

<0.1亿

<1亿

<3亿

<10亿

>10亿

threadsize

1

1

1

writemode

auto

copy_upsert  /auto

copy_upsert

autoFlushBatchSize

/copyWriteBatchSize

1000

10000

min10000~500007000*autoFlushMaxInterval/3

topic

1

1

1~4

2~10

日数据量/3亿~日数据量/1亿

sink.parallelism

1

1

1~2

2~5

min(日数据量/3亿~日数量/2亿,10)

 

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。