在 Greenplum(Postgres 8.4)中进行多行更新时跟踪错误记录?

Posted

技术标签:

【中文标题】在 Greenplum(Postgres 8.4)中进行多行更新时跟踪错误记录?【英文标题】:Track error records when doing a multi row update in Greenplum(Postgres 8.4)? 【发布时间】:2019-10-18 09:20:04 【问题描述】:

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

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

【问题讨论】:

从这里开始:gpdb.docs.pivotal.io/5220/admin_guide/load/topics/… 【参考方案1】:

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

COPY your_table from '/your_path/your_file' 分隔符为 '|' 日志错误 SEGMENT REJECT LIMIT 1000 行;

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

选择 gp_read_error_log('your_table');

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

吉姆·麦肯 关键

【讨论】:

以上是关于在 Greenplum(Postgres 8.4)中进行多行更新时跟踪错误记录?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Greenplum/Postgres 中使用 PL/R 反序列化模型对象?

Spark Streaming 加入 GreenPlum/Postgres 数据。方法

Greenplum vs Postgres-XL

jdbc 写入 greenplum/postgres 问题

在从 Postgres 9.4 到 Greenplum 的数据迁移过程中,我应该如何处理我的 UNIQUE 约束

django、postgres 8.4、psycopg 2.2.2、python 2.7、mod_wsgi