在 ADF 中如何避免接收器中的空字符串(将源中的活动 NULL 值复制)Snowflake 到 Salesforce

问题描述 投票:0回答:1

我正在使用 ADF 将数据从 Snowflake 加载到 Salesforce。默认情况下,在 Source 中具有 NULL 值的 Int、Double 和 Date 列将作为空字符串插入到 Sink(blob 暂存)中,导致管道失败并出现错误“字符串类型的给定值无法转换为指定目标列的日期类型” ”.

  • 请考虑 Salesforce 连接器不允许数据流活动
  • 出于安全原因,我只能在 Azure 中使用暂存

感谢任何解决此问题的意见。

谢谢!

我尝试使用数据流,但 Salesforce 链接服务不允许数据流。

copy snowflake-cloud-data-platform azure-data-factory salesforce-conntected-apps
1个回答
0
投票

将数据从 Snowflake 暂存到 Azure Data Lake 时,最好使用 Parquet 文件格式而不是 CSV。 Parquet是一种针对性能和空间效率进行了优化的列式存储格式,并且它可以保留原始数据的数据类型。 CSV 文件以字符串格式存储所有数据。在处理暂存的 csv 文件时,空字符串值无法转换为接收器中所需的数据类型。这就是您的错误消息的原因。为了解决这个问题,下面是方法。

  • 进行两项复制活动 - 一项将数据从 Snowflake 复制到 Azure Data Lake- Parquet 文件,另一项将数据从 Parquet 文件复制到 Salesforce 数据。

Img1:第一次复制活动:雪花到镶木地板文件

Img2:第二次复制活动:Parquet 到 Salesforce

© www.soinside.com 2019 - 2024. All rights reserved.