WSO2AM Analytics - 在DB日志中复制键值

时间:2017-10-10 08:10:17

标签: wso2 wso2-am wso2-das

使用带有PostgreSQL的分析(wso2am-analytics-2.1.0)的WSO2AM 2.1.0,数据库团队抱怨分析数据库中存在太多数据库错误(太多是大约1.5GB /天,我们几乎没有流量)

数据库日志:

<PGSCYANAES-scyanaes-2017-10-10 09:35:22 CEST>ERROR:  duplicate key value 
violates unique constraint "anx___7lv6kvss__pkey"
<PGSCYANAES-scyanaes-2017-10-10 09:35:22 CEST>DETAIL:  Key 
(record_id)=(64d8b03f-9e60-3d2e-837e-3df5103620e7) already exists.
<PGSCYANAES-scyanaes-2017-10-10 09:35:22 CEST>STATEMENT:  INSERT INTO 
ANX___7Lv6kvss_ (partition_key, timestamp, data, record_id) VALUES ($1, $2, $3, $4)
<PGSCYANAES-scyanaes-2017-10-10 09:35:22 CEST>ERROR:  duplicate key value 
violates unique constraint "anx___7lv6kvss__pkey"

我之前在wso2carbon.log中看过这些条目,但在重新创建数据库并重新安装分析服务器后,wso2carbon.log看起来很干净。但是 - 数据库团队一直声称这些错误仍然存​​在(很多)

编辑:

我们发现有一个带有SQL语句rdbms-config.xml的配置文件  并且有几个语句导致db日志中的错误:

<recordInsertQuery>INSERT INTO {{TABLE_NAME}} (partition_key, timestamp, data, record_id) VALUES (?, ?, ?, ?) </recordInsertQuery>

此语句似乎导致大多数错误日志。

我已将声明更改为:

INSERT INTO {{TABLE_NAME}} (partition_key, timestamp, data, record_id) 
VALUES (?, ?, ?, ?) 
ON CONFLICT (record_id) 
DO UPDATE SET partition_key=EXCLUDED.partition_key, timestamp=EXCLUDED.timestamp, data=EXCLUDED.data

到目前为止看起来一切正常,但我可能不知道此更新的所有后果和副作用。使用新的upsert语句会出现任何问题吗?

提前感谢您提供任何提示/帮助

0 个答案:

没有答案