问题描述
我有一个 Dynamics 365 的在线实现,我需要使用 Azure 数据工厂来执行以下操作:
1 - 根据 fetchxml 条件提取一些记录 2 - 从这些中随机选择 100 条记录 3 - 将它们插入到 D365 中的不同实体中。
我使用的 ADF CDS connector 只支持复制活动(目前还不支持数据流)
我希望我能做的是:
任务 1 - 将所有记录复制到一个 csv 文件中,并添加一个包含随机 ID 的额外列作为额外列
问题:当我这样做并使用 rand() 函数时,返回的所有数字都相同:
如果我尝试使用 @guid() 会发生同样的问题,所有值都返回相同的值。
问题 1 - rand() 和 guid() 为所有记录返回相同值是否有原因,是否有解决方法。
问题 2 - 是否有另一种我想不到的方法来实现我想要做的事情:从数据集中随机选择 x 条记录?
解决方法
rand() 和 guid() 返回相同的值是否有原因 对于所有记录,是否有解决方法?
这是因为 ADF 将首先执行此表达式,并且只会执行一次。然后使用它的结果作为列值。所以你得到相同的数据。作为解决方法,您需要先将记录复制到 csv 文件中。然后在数据流中使用 csv 文件作为源,然后使用派生列添加 randID 列。您还可以创建一个 Azure 函数来添加 randID 列并在 ADF 中调用它。