跨源连接运维报错 问题现象 客户对DWS执行并发insert overwrite操作,报错:org.postgresql.util.PSQLException: ERROR: tuple concurrently updated。 原因分析 客户作业存在并发操作,同时对一张表执行两个insert overwrite操作。 一个cn在执行: TRUNCATE TABLE BIMONITOR.SAAOUTBOUNDORDERCUSTSUM 另外一个cn在执行: call bimonitor.pkgsaaoutboundmonitorpsaaoutboundordercustsum 这个函数里面有delete 和 insert SAAOUTBOUNDORDERCUSTSUM的操作。 处理步骤 修改作业逻辑,避免对同一张表并发执行insert overwrite操作。 通过跨源表向CloudTable Hbase表导入数据,executor报错:RegionTooBusyException 问题现象 客户通过DLI跨源表向CloudTable Hbase导入数据,原始数据:HBASE表,一个列簇,一个rowkey运行一个亿的模拟数据,数据量为9.76GB。导入1000W条数据后作业失败。 原因分析 1. 查看driver错误日志。 2. 查看executor错误日志。 3. 查看task错误日志。 结论:rowkey过于集中,出现了热点region。 处理步骤 1. Hbase做预分区。 2. 把rowkey散列化。 建议与总结 建议DLI在写入数据时也将数据离散化,避免大量数据写入同一个regionServer,同时,在insert语句后增加distribute by rand()。 通过DLI跨源写DWS表,非空字段出现空值异常 问题现象 客户在DWS建表,然后在DLI创建跨源连接读写该表,突然出现如下异常,报错信息显示DLI向该表某非空字段写入了空值,因为非空约束存在导致作业出错。 报错信息如下: DLI.0999: PSQLException: ERROR: dn60096010: null value in column "ctr" violates notnull constraint Detail: Failing row contains (400070309, 9.00, 25, null, 20200922, 20200923 04:30:01.741).