如何通过 Pentaho Data Integration 的 table_output 步骤填充 table?
How to populated the table via Pentaho Data Integration's table_output step?
我正在通过 Pentaho 7.1 执行 ETL 作业。
工作是通过 Pentaho Jobs and transformations?
在 PostgreSQL 9.2 中填充 table 'PRO_T_TICKETS'
我已将 table 字段映射到流字段
Mapped Fields
我的 Table PRO_T_TICKETS 包含大写的架构(列名)。
这就是我无法用我的 ETL 作业填充 table PRO_T_TICKETS 的原因吗?
我将步骤 TABLE_OUTPUT 复制到 PRO_T_TICKETS,并将目标 table 字段更改为 'PRO_T_TICKETS2'。 Pentaho 使用小写模式创建了一个新的 table 并在其中填充了数据。
但我希望仅在 table PRO_T_TICKETS 中上传此数据,并尽可能使用大写模式。
我在这里附上整个作业和 Pentaho 抛出的错误。 Pentaho Error 我还通过在错误中看到的列名添加双引号来尝试我的查询。但这没有帮助。
你觉得我应该怎么做?
当您创建(或修改)连接时,select Advanced
在左侧面板上单击 Force to upper case
或 Force to lower case
或者,更好的是,Preserve case of reserved words
.
要知道选择哪个选项,请在 SQL-developer 工具中复制错误日志的第 4 行,即以 INSERT INTO "public"."PRO_T_TICKETS("OID"...
开头的行,并更改连接高级参数直到它起作用。
此外,在调试时,不要使用 batch updates
,不要在前面的步骤中使用 lazy conversion
,并尝试使用一 (1) 个字段而不是所有 (25) 个字段。
作为补充:遵循 AlainD 的提示并使用我想与您分享的特定配置,它对我有用。我使用 Table 输入和输出将数据从 MySQL 转换为 PostgreSQL。在两个数据库中,我都有大写对象。
我按照以下步骤以正确的方式工作:
- 在 table 输入 (MySQL) 中,对象也是大写的,但我输入的是小写字母并且有效,而且我没有在数据库连接中设置任何特殊选项。
- 在 table 输出 (PostgreSQL) 中,我输入了大写的所有内容(架构、table 名称和列),并且我还设置了“指定数据库字段”(单击“获取字段” ).
- 在目标数据库连接 (PostgreSQL) 中,我设置了选项(在“高级”部分):“引用数据库中的所有内容”和“保留保留字的大小写”。
PS:啊,最后一个选项是因为我发现我的字段还有一个问题:有一个名为“Admin”的列(是的,伙计们,他们创建了一个驼峰式列使用保留字!)因此,我必须在 Table 输出中输入“保留字的大小写”并将其键入为“Admin”(不带引号和驼峰式)。
我正在通过 Pentaho 7.1 执行 ETL 作业。 工作是通过 Pentaho Jobs and transformations?
在 PostgreSQL 9.2 中填充 table 'PRO_T_TICKETS'我已将 table 字段映射到流字段
Mapped Fields
我的 Table PRO_T_TICKETS 包含大写的架构(列名)。 这就是我无法用我的 ETL 作业填充 table PRO_T_TICKETS 的原因吗?
我将步骤 TABLE_OUTPUT 复制到 PRO_T_TICKETS,并将目标 table 字段更改为 'PRO_T_TICKETS2'。 Pentaho 使用小写模式创建了一个新的 table 并在其中填充了数据。
但我希望仅在 table PRO_T_TICKETS 中上传此数据,并尽可能使用大写模式。
我在这里附上整个作业和 Pentaho 抛出的错误。 Pentaho Error 我还通过在错误中看到的列名添加双引号来尝试我的查询。但这没有帮助。
你觉得我应该怎么做?
当您创建(或修改)连接时,select Advanced
在左侧面板上单击 Force to upper case
或 Force to lower case
或者,更好的是,Preserve case of reserved words
.
要知道选择哪个选项,请在 SQL-developer 工具中复制错误日志的第 4 行,即以 INSERT INTO "public"."PRO_T_TICKETS("OID"...
开头的行,并更改连接高级参数直到它起作用。
此外,在调试时,不要使用 batch updates
,不要在前面的步骤中使用 lazy conversion
,并尝试使用一 (1) 个字段而不是所有 (25) 个字段。
作为补充:遵循 AlainD 的提示并使用我想与您分享的特定配置,它对我有用。我使用 Table 输入和输出将数据从 MySQL 转换为 PostgreSQL。在两个数据库中,我都有大写对象。
我按照以下步骤以正确的方式工作:
- 在 table 输入 (MySQL) 中,对象也是大写的,但我输入的是小写字母并且有效,而且我没有在数据库连接中设置任何特殊选项。
- 在 table 输出 (PostgreSQL) 中,我输入了大写的所有内容(架构、table 名称和列),并且我还设置了“指定数据库字段”(单击“获取字段” ).
- 在目标数据库连接 (PostgreSQL) 中,我设置了选项(在“高级”部分):“引用数据库中的所有内容”和“保留保留字的大小写”。
PS:啊,最后一个选项是因为我发现我的字段还有一个问题:有一个名为“Admin”的列(是的,伙计们,他们创建了一个驼峰式列使用保留字!)因此,我必须在 Table 输出中输入“保留字的大小写”并将其键入为“Admin”(不带引号和驼峰式)。