如何在复制前转换列?

How transform a column befory copy?

我想将 table 从 sourceA 复制到 sourceB,但在我想转换列值之前。我该怎么做?我尝试在试图添加动态内容的映射中这样做,但我认为我做的不正确。

谢谢!

jnoguerm,请还是沿用我之前案例中提到的存储过程思路:.

您可以将数据从源 table 复制到临时 table.And 执行转换业务并在存储的 procedure.In 中插入操作 这种情况:,提问者想将两列合并为一列(change,merge,calculate,update,reduce etc.),具体可以参考那个页面

您的用例听起来像是可以使用新的数据流功能(目前处于预览阶段):https://docs.microsoft.com/en-us/azure/data-factory/data-flow-create

在我回答你的问题之前,了解数据量和来源是相关的。 但是,这个问题可能有三种可能的解决方案。

1. Azure 数据工厂中的存储过程Activity

  • 在 Azure 数据工厂中使用复制 Activity 将数据带到 SQL(暂存 tables),但如果您的源已经是 SQL 那么您可以跳过这一步。
  • 编写存储过程以包含您需要的所有转换。
  • 使用存储过程activity进行所有需要的转换并将数据插入到最终table。

2。在 Azure 数据工厂中使用 SSIS 包

  • 您不需要将数据带到暂存区,您可以在本地计算机上使用 SQL 服务器数据工具创建 SSIS 包。添加源、转换和目标

  • 在 Azure 数据工厂中添加此 SSIS 包,如果您必须拥有 Azure 数据工厂,否则您可以使用 SQL 作业代理安排您的 SSIS 包。

3。将数据流与 Azure 数据工厂 V2.0

结合使用
  • Data Flow 目前处于预览模式,因此您不能将此解决方案用于任何生产就绪的解决方案。

  • 创建 Azure 数据工厂时,它会要求您选择数据工厂 v1、数据工厂 V2 或数据流与数据工厂 V2。所以,你需要选择第三个选项

  • 现在,您可以在此处执行您可以在 SSIS 包上执行的大部分转换。它易于使用,所有拖放功能都可用于源和目标之间的各种转换。即使数据量很大,这也是最好的解决方案。

希望这对您有所帮助。祝一切顺利。 干杯!

在 ADF 中使用映射数据流:https://docs.microsoft.com/en-us/azure/data-factory/data-flow-derived-column