Azure 数据工厂 - Azure SQL 托管服务不正确的输出列类型
Posted
技术标签:
【中文标题】Azure 数据工厂 - Azure SQL 托管服务不正确的输出列类型【英文标题】:Azure Data Factory - Azure SQL Managed Services incorrect Output column type 【发布时间】:2021-02-11 01:16:50 【问题描述】:我决定尝试使用 Azure 数据工厂将数据从一个 SQL 托管实例数据库复制到另一个数据库,并在此过程中对数据进行一些修整。
我已经为每个数据库/表设置了两个数据集,导入了架构 ok(这些是重复的,所以相同)创建了一个数据流,其中一个作为源并更新了投影中的架构,添加了一个简单的 AlterRow(列!= 201 ) 给它 PK 然后我将第二个数据集添加为接收器,由于某种原因,在映射中所有输出列都显示为“字符串”,但输入列显示正确。
因此映射失败,因为它认为输入和输出不匹配?我不明白为什么数据集中的 Schema 都正确显示,而源数据流中的投影也正确显示,但它认为我正在输出到所有字符串列?
TIA
【问题讨论】:
您能否尝试通过在数据流源转换中使用“导入投影”而不是依赖数据集架构来直接在投影中导入架构? 谢谢马克,我正在做这两件事设置或导入架构?也许我错过了一步? 所以我从两个数据集中删除了 Schema 并将投影导入到我的源中,但它仍然不满意,所以我不得不将它设置为 Allow Schema Drift,这有点奇怪,因为我知道我正在像这样移动,所以希望架构保持有效? 如果您删除架构,那么您本质上就是在使用架构漂移。您可以只在接收器上保留自动映射,ADF 会将传入列名称映射为传出列名称。如果您在没有架构的情况下需要更改或自定义映射列,请在接收器中使用基于规则的映射。 【参考方案1】:这是一种将一组未知的传入字段映射到已定义的数据库表架构的简单方法...在 Sink 之前添加一个 Select 转换。将此粘贴到 Select 后面的脚本中:
选择(地图列( 每个(匹配(真())) ), skipDuplicateMapInputs:真, skipDuplicateMapOutputs: true) ~> 自动映射
现在,在您的 Sink 中,只保留架构漂移和自动映射。
【讨论】:
以上是关于Azure 数据工厂 - Azure SQL 托管服务不正确的输出列类型的主要内容,如果未能解决你的问题,请参考以下文章
Azure 数据工厂问题将数据从本地 sql Server 写入 Azure SQL 数据库