如何在 Azure 数据工厂复制数据 activity 映射中将货币转换为小数

how to convert currency to decimal in Azure Data Factory's copy data activity mapping

在 Azure 数据工厂中,我有一条管道,管道有一个副本数据 activity,其源为 REST api,目标为 SQL DB Table.

在此副本的映射中 activity 我告诉我 REST 数据集(左侧)的哪些列将映射到 SQL 数据集(右侧)的哪些列

Rest“totalBalance”中有一个 json 属性 应该映射到 DB Tables 中的“Balance”字段。

Json 将“totalBalance”作为字符串,例如“$36,970,267.07”,那么如何将其转换为十进制以便我可以将其映射到数据库 table?

我需要了解如何使用映射 activity 而不是复制 activity 吗?或者只是副本 activity 可以做到这一点?

复制activity不能直接那样做

我认为有两种方法可以做到这一点:

首先:在数据库表中将 decimal 更改为 varchar。

第二步:在复制 activity 之前添加一个查找 activity 并删除 'totalBalance' 列中的“$”,然后像这样添加一个额外的列:

最后,使用此附加列映射到 'Balance' 列。

希望对您有所帮助。

最后对我有用的是有一个副本 activity 和一个映射 activity。

Copy activity 将数据从 REST 复制到 SQLtable,其中所有列都是 VARCHAR 类型,并且 table 映射 activity 接收数据从 SQL(allString) tables 到实际目的地 SQLTable.

但是在映射和接收器之间我为每个源添加了“派生列”属性我想转换并且在派生列的表达式中我使用这样的表达式

toDecimal(replace(replace(totalAccountReceivable, '$', ''),',',''))