我的数据流中有一个接收器指向 AzureSQL。有一组曾经是布尔值的列,现在是字符串。我一辈子都无法让 ADF 更改输出表中的数据类型。
我已经尝试过:
即使考虑到上述内容,我还在“接收器块”->“映射”菜单的顶部收到此有趣的消息:
至少有一个传入列映射到接收器数据集模式中具有冲突类型的列,这可能会导致 NULL 值或运行时错误。 所以它显然知道存在差异,但在我使用此接收器模式的其他地方,当我在流程中漂移时,ADF 只会转到“新模式,这里开始”。
我做错了什么?
当接收器数据集模式与传入数据模式不对齐时,会出现上述警告。在这种情况下,源数据类型是字符串,接收器表数据类型是布尔值。
这是数据流运行之前我的接收器表架构。
要根据传入数据更改接收器表数据类型,首先需要清除接收器数据集中的接收器表架构。如果您在此处保留旧架构,即使您从数据流重新创建了表,也只会采用此架构。这也避免了数据流映射中的上述警告。
现在,转到数据流接收器并在接收器设置中启用允许架构漂移和重新创建表选项。更改投影中的源数据数据类型或根据您的要求使用之间的任何转换。
现在,运行数据流,它将删除旧表并按预期使用所需架构重新创建新表。