【问题标题】:Database Columns values mismatch when creating csv pipe seperated file from database records从数据库记录创建 csv 管道分隔文件时,数据库列值不匹配
【发布时间】:2021-11-20 23:59:35
【问题描述】:

Mule 4 App 一直在从大约 20k 行的 SQL Server 数据库中进行选择,并将结果集转换为管道分隔的 csv 文件,并使用 s3 连接器将文件推送到 s3。

在数据库中,我们有aId, bId, cId等列。当我们检查csv文件中的数据时,aId的值是bId的实际值,bId的值是@的实际值987654325@ 在数据库中。 (只有几个地方)

<db:select doc:name="Select" doc:id="e8d1eda4-3ecc-48e9-90ea-a19a0a4e20f9" config-ref="MSSQL_Database_Config">
    <db:sql >#['SELECT * FROM Table']</db:sql>
</db:select>
<ee:transform doc:name="Set Payload" doc:id="9b7e5bcc-e61b-427d-8507-8655db76cb83">
    <ee:message>
        <ee:set-payload><![CDATA[%dw 2.0
    output application/csv separator='|'
    ---
    payload]]></ee:set-payload>
    </ee:message>
</ee:transform>
<s3:create-object doc:name="Create object" doc:id="beea8757-7e69-4119-8529-e0c26be08b65" config-ref="Amazon_S3_Configuration" bucketName="bucket1" key="file123"/>

我们仔细检查了数据库的值,它以某种方式确认了 mule 正在改变列值的顺序(几个地方)

例如,在数据库中,aId bId cId 的值类似于 1、2、3

在 CSV 文件中,aId|bId|cId 的值为 2,3,1(在少数地方)

我没有在 db connector/aws 流中配置任何额外的东西,都是默认的。我需要启用什么来解决此问题。

提前致谢

【问题讨论】:

  • 你的意思是1|2|32|1|3吗?
  • 您使用的是什么版本的 Mule 4,安装了哪些补丁?什么版本的 MS SQL 驱动程序和 DB 连接器?这些例子是真实数据吗?请分享实际数据,看看是否有任何特殊字符可能导致问题。
  • 是的,它的 mule 4 应用程序
  • 请完整查看我的 cmets。如果是 Mule 4.1.1 和 4.3.0 是不一样的。与应用的补丁、连接器版本等相同。
  • 感谢您帮助我。很抱歉没有提供详细信息。云集线器 Mule 运行时 4.3.0。(未应用补丁) DB 连接器:1.8.2 S3 连接器:5.7.1 MS SQL:7.4.1.jre8。 Dara 看起来 XACF123F,YARF234,REAFYED123RERWDFSDSF(无特殊字符)。

标签: mule dataweave mule4


【解决方案1】:

将可重复文件存储值(数据库连接器)从 500 更改为 50000 有助于解决问题。我向 Mulesoft 支持提出了请求。如果我有任何解决方案,请在此处更新。

<db:select doc:name="Select" doc:id="e8d1eda4-3ecc-48e9-90ea-a19a0a4e20f9" config-ref="MSSQL_Database_Config">
    <ee:repeatable-file-store-iterable inMemoryObjects="50000" />
    <db:sql >#['SELECT * FROM Table']</db:sql>
</db:select>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 2018-01-22
    • 2013-08-07
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多