我们使用Informatica通过GP loader将数据加载到greenplum DB中。在单个映射中,我们有并行流来插入和更新同一Greenplum目标中的数据。 插入花费了大量时间,最后工作流程必须中止。
gploader正在创建两个yaml文件,一个用于插入,另一个用于更新。 更新将等待插入过程完成。 但是插入过程即使对于100条记录也要花费很多时间而且它永远不会结束,我们最终必须终止这个过程。
示例YAML文件:
%YAML 1.1
---
VERSION: 1.0.0.1
DATABASE: abcdgp_dev
USER: abcs
PASSWORD: srvb&34
HOST: 3.565.785.345
PORT: 5432
GPLOAD:
INPUT:
- SOURCE:
FILE:
- ../infa_shared/Temp/jaroswind_salesrep_mas_1_pipe
- COLUMNS:
- "salesrep_key":
- "salesrep_id":
- "salesrep_name":
- FORMAT: CSV
- DELIMITER: "\x24"
- ESCAPE: '/'
- NULL_AS: '/N'
- QUOTE: '^'
- ENCODING: utf8
- ERROR_LIMIT: 500
- ERROR_TABLE: jaroswind_err.err_SALESREP_MAS
OUTPUT:
- TABLE: jaroswind.salesrep_mas
- MODE: INSERT
PRELOAD:
- REUSE_TABLES: True
请提出解决方案。
答案 0 :(得分:0)
更新是将表锁定在insert
之间