PostgreSQL的WSO2 DAS事件插入错误(重复的键值违反了唯一约束)

阿方索·布兰科·仆人

我们在使用PostgreSQL数据库DAS(WSO2)中遇到错误由于某些原因,我们不知道用一些跟踪信息填充了PostgreSQL日志:

< 2017-02-23 14:04:52.276 CET >ERROR: relation "anx__8gohuwju" does not exist at character 15
< 2017-02-23 14:04:52.276 CET >STATEMENT: SELECT 1 FROM ANX__8GOHUwJU LIMIT 1
< 2017-02-23 14:04:52.277 CET >ERROR: relation "anx__8gaxmlni" does not exist at character 15
< 2017-02-23 14:04:52.277 CET >STATEMENT: SELECT 1 FROM ANX__8GAXMlnI LIMIT 1
< 2017-02-23 14:04:52.278 CET >ERROR: relation "anx__8gicci_y" does not exist at character 15
< 2017-02-23 14:04:52.278 CET >STATEMENT: SELECT 1 FROM ANX__8GICCI_Y LIMIT 1
...
...
...
< 2017-02-23 14:04:57.335 CET >STATEMENT: INSERT INTO ANX__7LvafTvw (partition_key, timestamp, data, record_id) VALUES ($1, $2, $3, $4)
< 2017-02-23 14:04:57.337 CET >ERROR: duplicate key value violates unique constraint "anx__7lvaftvw_pkey"
< 2017-02-23 14:04:57.337 CET >DETAIL: Key (record_id)=(770425a8-b65b-37ad-ad13-6bd45014ef9a) already exists.
< 2017-02-23 14:04:57.337 CET >STATEMENT: INSERT INTO ANX__7LvafTvw (partition_key, timestamp, data, record_id) VALUES ($1, $2, $3, $4)
< 2017-02-23 14:04:57.431 CET >ERROR: duplicate key value violates unique constraint "anx__7lvaftvw_pkey"
< 2017-02-23 14:04:57.431 CET >DETAIL: Key (record_id)=(da6cfb07-4aff-3bb2-9c71-8f3e6d749762) already exists.
< 2017-02-23 14:04:57.431 CET >STATEMENT: INSERT INTO ANX__7LvafTvw (partition_key, timestamp, data, record_id) VALUES ($1, $2, $3, $4)
< 2017-02-23 14:04:57.433 CET >ERROR: duplicate key value violates unique constraint "anx__7lvaftvw_pkey"
< 2017-02-23 14:04:57.433 CET >DETAIL: Key (record_id)=(da6cfb07-4aff-3bb2-9c71-8f3e6d749762) already exists.
< 2017-02-23 14:04:57.433 CET >STATEMENT: INSERT INTO ANX__7LvafTvw (partition_key, timestamp, data, record_id) VALUES ($1, $2, $3, $4)
< 2017-02-23 14:04:57.776 CET >ERROR: duplicate key value violates unique constraint "anx__7lvaftvw_pkey"
< 2017-02-23 14:04:57.776 CET >DETAIL: Key (record_id)=(c7c32813-51c6-34dd-8a34-e76add9839b6) already exists.
< 2017-02-23 14:04:57.776 CET >STATEMENT: INSERT INTO ANX__7LvafTvw (partition_key, timestamp, data, record_id) VALUES ($1, $2, $3, $4)*

我们不知道是因为它正在发生,还是DAS和PostgreSQL之间的错误或兼容性故障。每5秒钟重复一次出现在日志中的错误痕迹,而不会停止填充数据库的日志并导致系统停止工作。

如您所见,有两种类型的错误:

  • “重复的键值违反了唯一约束XXX”
  • “在字符15处不存在关系XXX”

我们已经使用DAS的多个实例和不同的PostgresSQL对它进行了测试,结果是相同的。这是怎么回事?

我已将DAS配置为使用PostgreSQL数据库进行配置(master-datasources.xml)和事件(analytics-datasources.xml)。我们所做的测试使用的是PostgreSQL 9.3和9.6,结果相同。

古库尔

尽管您看到的日志具有令人震惊的性质,但据我所知,DAS和PostgreSQL之间没有发生意外情况。

这两个日志都是预期的,因为对于数据访问操作,DAS会在提交之前检查表是否存在。如果表不存在,通常会在数据库端产生错误。这是正常的。

另外,对记录的INSERT OVERWRITE操作将尝试作为INSERT,然后如果该记录已经存在(即,违反唯一约束),则将更新记录。这是由于9.5版之前的PostgreSQL中的MERGE语句不可用,以及由于始终不停执行UPDATE调用的相对性能缺陷。

至于您的解决方案,取消注释“ recordMergeQuery”是完全可以接受的,但前提是您使用的是PostgreSQL 9.5+。否则,写操作将失败。在这种情况下,我们使用INSERT ... ON CONFLICT UPDATEPostgres提供的新语法(请参见[2])。

如果您需要任何进一步的说明,请随时提出。

链接:
[1] https://wiki.postgresql.org/wiki/SQL_MERGE
[2] https://github.com/wso2/carbon-analytics/blob/v1.3.6/features/analytics-data-connectors/org .wso2.carbon.analytics.datasource.rdbms.server.feature / src / main / resources / conf / analytics / rdbms-config.xml#L152

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PostgreSQL:唯一冲突:7错误:重复的键值违反了唯一约束“ users_pkey”

来自分类Dev

PostgreSQL:重复的键值违反了UPDATE命令的唯一约束

来自分类Dev

Django:重复键值违反了Postgresql的唯一约束而不是SQlite->为什么?

来自分类Dev

psycopg2.IntegrityError:重复的键值违反了唯一约束详细信息:键(id)=(19)已存在

来自分类Dev

PostgreSQL重复键值违反唯一约束,但在冲突中使用时对插入不执行任何操作

来自分类Dev

Rails 4.2 ActiveAdmin 1.0.0.pre2无法创建AdminUser,因为重复的键值违反了唯一约束“ index_admin_users_on_email

来自分类Dev

键值重复违反了唯一性约束,但不应该[Spring Boot,PostgreSQL]

来自分类Dev

休眠:重复的键值违反了集合的唯一约束

来自分类Dev

Django:重复的键值违反了唯一约束

来自分类Dev

重复的键值违反了SaveChangesAsync的唯一约束

来自分类Dev

导入的数据,重复的键值违反了唯一约束

来自分类Dev

Django:重复的键值违反了唯一约束

来自分类Dev

CakePHP:唯一冲突:7错误:重复的键值违反了唯一约束

来自分类Dev

PSQLException:错误:使用Hibernate时重复的键值违反了唯一约束

来自分类Dev

First_or_create却错误:重复的键值违反了唯一约束

来自分类Dev

收到错误“重复的键值违反了唯一约束postgres”

来自分类Dev

Rails PG :: UniqueViolation:错误:重复的键值违反了唯一约束“ table_pkey”

来自分类Dev

ActiveRecord :: RecordNotUnique:PG :: UniqueViolation:错误:重复的键值违反了唯一约束

来自分类Dev

PSQLException:错误:使用Hibernate时重复的键值违反了唯一约束

来自分类Dev

如何解决SQL错误:ORA-00001:违反了唯一约束(ALERTS2.PK_UP_MODULE_MASTER)

来自分类Dev

Django:IntegrityError 重复键值违反唯一约束“ride_ownerrequest_driver_id_key”详细信息:Key (driver_id)=(2) 已经存在

来自分类Dev

Oracle / J2EE Hibernate:ORA-00001:由于HBM生成序列而违反了唯一约束

来自分类Dev

WSO2 DAS与MongoDB

来自分类Dev

保存ModelForm时重复的键值违反了唯一约束

来自分类Dev

勺式转换的更新给出“重复的键值违反了唯一约束”

来自分类Dev

django-IntegrityError-添加clean() 方法后,重复的键值违反了唯一约束

来自分类Dev

重复的键值违反了对数据库初始化的唯一约束

来自分类Dev

在气流 dag 中添加路径变量时,重复的键值违反了唯一约束

来自分类Dev

django.db.utils.IntegrityError:重复的键值违反了唯一约束“ spirit_category_category_pkey”

Related 相关文章

  1. 1

    PostgreSQL:唯一冲突:7错误:重复的键值违反了唯一约束“ users_pkey”

  2. 2

    PostgreSQL:重复的键值违反了UPDATE命令的唯一约束

  3. 3

    Django:重复键值违反了Postgresql的唯一约束而不是SQlite->为什么?

  4. 4

    psycopg2.IntegrityError:重复的键值违反了唯一约束详细信息:键(id)=(19)已存在

  5. 5

    PostgreSQL重复键值违反唯一约束,但在冲突中使用时对插入不执行任何操作

  6. 6

    Rails 4.2 ActiveAdmin 1.0.0.pre2无法创建AdminUser,因为重复的键值违反了唯一约束“ index_admin_users_on_email

  7. 7

    键值重复违反了唯一性约束,但不应该[Spring Boot,PostgreSQL]

  8. 8

    休眠:重复的键值违反了集合的唯一约束

  9. 9

    Django:重复的键值违反了唯一约束

  10. 10

    重复的键值违反了SaveChangesAsync的唯一约束

  11. 11

    导入的数据,重复的键值违反了唯一约束

  12. 12

    Django:重复的键值违反了唯一约束

  13. 13

    CakePHP:唯一冲突:7错误:重复的键值违反了唯一约束

  14. 14

    PSQLException:错误:使用Hibernate时重复的键值违反了唯一约束

  15. 15

    First_or_create却错误:重复的键值违反了唯一约束

  16. 16

    收到错误“重复的键值违反了唯一约束postgres”

  17. 17

    Rails PG :: UniqueViolation:错误:重复的键值违反了唯一约束“ table_pkey”

  18. 18

    ActiveRecord :: RecordNotUnique:PG :: UniqueViolation:错误:重复的键值违反了唯一约束

  19. 19

    PSQLException:错误:使用Hibernate时重复的键值违反了唯一约束

  20. 20

    如何解决SQL错误:ORA-00001:违反了唯一约束(ALERTS2.PK_UP_MODULE_MASTER)

  21. 21

    Django:IntegrityError 重复键值违反唯一约束“ride_ownerrequest_driver_id_key”详细信息:Key (driver_id)=(2) 已经存在

  22. 22

    Oracle / J2EE Hibernate:ORA-00001:由于HBM生成序列而违反了唯一约束

  23. 23

    WSO2 DAS与MongoDB

  24. 24

    保存ModelForm时重复的键值违反了唯一约束

  25. 25

    勺式转换的更新给出“重复的键值违反了唯一约束”

  26. 26

    django-IntegrityError-添加clean() 方法后,重复的键值违反了唯一约束

  27. 27

    重复的键值违反了对数据库初始化的唯一约束

  28. 28

    在气流 dag 中添加路径变量时,重复的键值违反了唯一约束

  29. 29

    django.db.utils.IntegrityError:重复的键值违反了唯一约束“ spirit_category_category_pkey”

热门标签

归档