python - 在 Greenplum(Postgres 8.4)中进行多行更新时跟踪错误记录?
问题描述
我们正在尝试在青梅中插入一批记录(100k)。如果特定记录有问题,有没有办法追溯到导致问题的特定记录?
目前,整个批次都失败了,我们正在尝试过滤错误记录。
解决方案
如果您使用 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');
日志中的一列显示了错误行,其中包含错误的确切位置和内容。
吉姆麦肯关键
推荐阅读
- c++ - 何时需要定义类的静态数据成员 (un/-)
- java - Linux 命令在 Java 程序中无法正常工作
- javascript - 无法使用 JavaScript 从本地 XML 文件中获取值
- python - 一行中的简单“if”分支
- android - Google vision API Barcode Scanner 移除相机视图
- javascript - 如何获取单击按钮的标题属性?
- c# - LINQ 与不同对象的多个连接
- angular - 在角度/打字稿中将类创建为可迭代
- html - 在 svg 画布上添加文本
- objective-c - iOS11 Swift 4 - 如何检查 Swift 类是否符合 Objective-C 中定义的协议?