首页 > 解决方案 > 在 Greenplum(Postgres 8.4)中进行多行更新时跟踪错误记录?

问题描述

我们正在尝试在青梅中插入一批记录(100k)。如果特定记录有问题,有没有办法追溯到导致问题的特定记录?

目前,整个批次都失败了,我们正在尝试过滤错误记录。

标签: pythonpostgresqlpsycopg2greenplum

解决方案


如果您使用 COPY 命令加载或使用 gpfdist 和外部表进行插入,您可以设置段拒绝限制和错误日志,这将允许该命令插入所有好的行,任何被拒绝的行都放在错误日志中。默认设置是在出现一个错误时回滚所有内容。您可以查看 Greenplum 文档,或者在 psql 中使用 \h COPY 或 \h CREATE EXTERNAL TABLE。COPY 的一个简单示例是:

从'/your_path/your_file'复制your_table,分隔符为'|' LOG ERRORS SEGMENT REJECT LIMIT 1000 行;

这意味着它会在回滚所有内容之前记录多达 1000 条错误行。根据数据的需要进行设置。您可以使用以下命令查看日志中有哪些错误行:

选择 gp_read_error_log('your_table');

日志中的一列显示了错误行,其中包含错误的确切位置和内容。

吉姆麦肯关键


推荐阅读