【发布时间】:2015-09-18 03:47:59
【问题描述】:
我们的源是我们安装了 Informatica CDC 的 oracle ERP 系统,我们的目标是 Greenplum 表,我们将数据作为 1-1 逻辑加载到其中。我们以实时模式执行会话,这意味着会话将继续运行,当源中发生任何更改时,会话将处理并反映在目标表中。
我们收到以下错误并拒绝数据。
2015-09-15 12:31:42 : 错误 : (22994 | WRITER_1__1) : (IS | INF_EN1_ASCII):NODE_ENDEV_TNLD07879:WRT_8229:数据库错误 发生了: FnName: 执行 -- [Informatica][ODBC Greenplum Wire Protocol driver]Socket 已关闭。 2015-09-15 12:31:42 : 错误 : (22994 | WRITER_1__1) : (IS | INF_EN1_ASCII) : NODE_ENDEV_TNLD07879 : WRT_8425 : 错误: 写入器执行失败。 2015-09-15 12:31:42:错误:(22994 | WRITER_1__1) : (IS | INF_EN1_ASCII) : NODE_ENDEV_TNLD07879 : WRT_8164:加载到目标 [ods_oe_sales_credits] 时出错: 2015-09-15 12:31:42 : 错误 : (22994 | WRITER_1__1) : (IS | INF_EN1_ASCII):NODE_ENDEV_TNLD07879:WRT_8114: 错误文件中的第 # [1] 行
2015-09-15 12:31:42:信息:(22994 | WRITER_1_*_1):(是 | INF_EN1_ASCII):NODE_ENDEV_TNLD07879:CMN_1053::行数据:( RowType=1(更新) Src Rowid=1 Targ Rowid=1 sales_credit_id (sales_credit_id:BigInt:): "19094" creation_date (creation_date:Date:): "09/15/2015 03:01:27.000000000" created_by (created_by:Double:): "1193.000000000000" last_update_date (last_update_date:Date:): "09/15/2015 03:01:27.000000000"
last_updated_by (last_updated_by:Double:): "1193.000000000000"
last_update_login (last_update_login:Double:): "240638.0000000000"
header_id (header_id:BigInt:): "27535" salesrep_id (salesrep_id:BigInt:): "-3" 百分比 (percent:Double:): "100.0000000000000" line_id (line_id:BigInt:): "(NULL)" 上下文 (上下文:Char.60:):“(NULL)”属性1(属性1:Char.480:): “(NULL)”属性2(属性2:Char.480:):“(NULL)”属性3 (attribute3:Char.480:): “(NULL)”attribute4 (attribute4:Char.480:): “(NULL)”属性5(属性5:Char.480:):“(NULL)”属性6 (attribute6:Char.480:): “(NULL)”attribute7 (attribute7:Char.480:): “(NULL)”属性8(属性8:Char.480:):“(NULL)”属性9 (attribute9:Char.480:): “(NULL)”attribute10 (attribute10:Char.480:): “(NULL)”attribute11 (attribute11:Char.480:): “(NULL)”attribute12 (attribute12:Char.480:): “(NULL)”attribute13 (attribute13:Char.480:): “(NULL)”attribute14 (attribute14:Char.480:): “(NULL)”attribute15 (attribute15:Char.480:): "(NULL)" dw_update_advice_flag (dw_update_advice_flag:Char.2:): "(NULL)" wh_update_date (wh_update_date:Date:): "(NULL)" orig_sys_credit_ref (orig_sys_credit_ref:Char.100:): "OE_SALES_CREDITS19094"
sales_credit_type_id (sales_credit_type_id:BigInt:): "1"
lock_control (lock_control:Double:): "1.000000000000000"
sales_group_id (sales_group_id:BigInt:): "-1"
sales_group_updated_flag (sales_group_updated_flag:Char.2:): "(NULL)" inst_id (inst_id:BigInt:): "(NULL)" md_source_system (md_source_system:Double:):“1.000000000000000”标志(标志:Char.2:): "I" md_deleted_flag (md_deleted_flag:Char.2:): "(NULL)" change_ts (change_ts:Date:): "09/15/2015 03:01:42.000000000")2015-09-15 12:31:42 : 错误 : (22994 | WRITER_1__1) : (IS | INF_EN1_ASCII):NODE_ENDEV_TNLD07879:WRT_8164:加载错误 目标 [ods_oe_sales_credits] :超出会话阈值的错误行 [1] 2015-09-15 12:31:42:信息:(22994 | WRITER_1__1):(是 | INF_EN1_ASCII):NODE_ENDEV_TNLD07879:WRT_8333:全部回滚 由于致命会话错误而导致的目标。 2015-09-15 12:31:42:错误: (22994 | WRITER_1_*_1):(IS | INF_EN1_ASCII):NODE_ENDEV_TNLD07879: CMN_1022 : 数据库驱动错误... CMN_1022 []
在检查坏文件时不确定实际问题出在哪里(informatica/DB 端),它说记录因 NULL 问题而被拒绝
错误的文件内容:
1,D,19094,D,09/15/2015 03:01:27.000000000,D,1193,D,09/15/2015 03:01:27.000000000,D,1193,D,240638,D,27535,D,-3,D,100,D,,N,,N,,N,,N,,N,,N,,N, ,N,,N,,N,,N,,N,,N,,N,,N,,N,,N,,N,,N,OE_SALES_CREDITS19094,D,1,D,1,D,-1 ,D,,N,,N,1,D,I,D,,N,09/15/2015 03:01:42.000000000,D
但是同一个会话也会处理其他具有空值的记录。无法理解问题到底出在哪里。
请帮助我...
【问题讨论】:
-
其他记录在与该被拒绝行相同的列中是否有空值?您是否尝试过从 Greenplum 表中移除 null 限制?
-
是的,其他记录在同一列中为空。我们没有在目标表中放置任何非空限制。
-
您在 Greenplum 日志中看到了什么?真正在数据库端执行什么?
标签: postgresql informatica cdc greenplum