为啥我的行不会在数据工厂中被删除?
Posted
技术标签:
【中文标题】为啥我的行不会在数据工厂中被删除?【英文标题】:Why won't my rows get deleted in Data Factory?为什么我的行不会在数据工厂中被删除? 【发布时间】:2022-01-22 22:56:09 【问题描述】:我正在尝试对数据工厂中的数据集进行一些数据转换。我想根据某些条件删除一组行。这是目前为止的数据流:
所以在 AlterRow1 中我删除了我想要的行,这是我点击数据预览时的结果:
如您所见,删除了 6 行,这正是我想要的。然而,在 sink1 这是我得到的数据预览:
我想删除的行又回来了,并且在我运行此管道时不会被删除。我要补充一点,源是来自 blob 存储的 excel 文件,而接收器是我的 blob 存储中的 csv 文件。
我做错了什么?
编辑: 接收器中没有允许删除的设置。
【问题讨论】:
您是否在接收器设置中允许删除操作? @ray 嘿,在我的编辑中可以看到接收器中没有这样的设置。 抱歉这个错误。我将您的 csv 接收器设置与 SQL 接收器设置混淆了。 Alter Row 仅适用于数据库接收器,不适用于 CSV 【参考方案1】:虽然您似乎能够获得预览,但 更改行转换 可能会导致针对您的仅限数据库。
见,Alter row transformation in mapping data flow
我确实尝试过重现您的确切场景,但确实看到了相同的行为。我可以在 AlterRow 转换的 数据中看到标记为 X
的行将被删除。但是接收器预览不显示它们,并且可以看到来自源的所有行。
我找不到任何关于此行为的具体细节,您可以联系here 和here 以获得官方回复。
【讨论】:
数据预览不会针对您的数据存储目标对数据执行任何操作。相反,将显示所有行(在采样范围内),并带有更新、更新、插入或删除的行指示符。要实际执行 CRUD 操作,您需要从管道执行数据流。此外,在此示例中,用户有一个 CSV 接收器。 Alter Row 仅适用于数据库接收器。以上是关于为啥我的行不会在数据工厂中被删除?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 LINQ 在我的查询中使用错误的数据类型,而它在 EF 架构中被正确声明?
为啥我的 Django 工厂函数在本地数据库中创建模型,而不是测试数据库?
在 Azure 数据工厂中成功完成数据流后,为啥没有将数据传输到我的接收器表?