Azure数据工厂中复制期间的数据转换

iyfjxgzm  于 2022-11-25  发布在  其他
关注(0)|答案(1)|浏览(202)

我是数据工厂生态系统的新手。我正在尝试将数据从源MySQL数据库复制到汇CosmosDB for MongoDB。我拥有的一个示例源模式如下所示:

*inventory_warehouse_table*

--------------------------------------------------------
| id | warehouse_name | warehouse_address | lat | long |
--------------------------------------------------------

接收器架构的格式如下:

*inventory_warehouse_collection*

{
  id: <int>
  warehouse_name: <string>
  warehouse_address: <string>
  geo_coordinates: {
   type: "Point",
   coordinates: [lat, long]
  }
}

我在复制数据活动中没有看到任何架构Map来实现相同的目的。我如何在Azure Data Factory中实现此目的?是否需要创建任何其他管道来实现此目的?

idfiyjo8

idfiyjo81#

  • 源和汇如下图所示。x1c 0d1x Img:1源数据集

Img:2接收器数据集

  • 在Map活动中,单击导入架构时,会看到源和接收器之间的Map。

    img-3Map设置

除了最后一列之外,所有其他列都被Map。由于最后一列有多个lat、long列的concat,因此使用Dataflow来合并这些列。下面是方法。

  • 在数据流中获取源。然后添加派生列转换,并将新列的表达式指定为concat("[",toString(lat),",",toString(long),"]")

  • 由于数据流中不支持cosmos dB - mongo API,因此将数据暂存在blob存储中。

x1c4d 1x指令集

  • 然后使用复制活动将数据从blob复制到cosmos db-mongo api

  • 将新行插入cosmos数据库。

相关问题