如何在 SFTP 服务器上的 Azure 数据工厂中以二进制副本保存名称

问题描述 投票:0回答:1

我对 ADF 还很陌生,我有一个为 SFTP 配置的 Blob 存储。在此 Blob 上,我想复制具有“.json”扩展名或其他特定扩展名的文件。我使用了复制文件活动和 2 个二进制数据集。对于源,我使用通配符文件夹路径和“*.json”作为文件名。对于水槽,我只是使用“test”作为子文件夹。 我可以复制它们,但我无法保留它们的原始名称。我怎样才能做到这一点?

文件名

我尝试通过variabilising进行配置,但也许我做错了。我无法获取正在复制的文件的名称

管道 json :

{
"name": "pipeline3_A",
"properties": {
    "activities": [
        {
            "name": "Copy data1",
            "type": "Copy",
            "dependsOn": [],
            "policy": {
                "timeout": "0.12:00:00",
                "retry": 0,
                "retryIntervalInSeconds": 30,
                "secureOutput": false,
                "secureInput": false
            },
            "userProperties": [],
            "typeProperties": {
                "source": {
                    "type": "BinarySource",
                    "storeSettings": {
                        "type": "SftpReadSettings",
                        "recursive": false,
                        "wildcardFileName": "*.json",
                        "deleteFilesAfterCompletion": false,
                        "disableChunking": false
                    },
                    "formatSettings": {
                        "type": "BinaryReadSettings"
                    }
                },
                "sink": {
                    "type": "BinarySink",
                    "storeSettings": {
                        "type": "SftpWriteSettings",
                        "copyBehavior": "FlattenHierarchy",
                        "operationTimeout": "01:00:00",
                        "useTempFileRename": true
                    }
                },
                "enableStaging": false
            },
            "inputs": [
                {
                    "referenceName": "Binary1",
                    "type": "DatasetReference"
                }
            ],
            "outputs": [
                {
                    "referenceName": "Binary2",
                    "type": "DatasetReference"
                }
            ]
        }
    ],
    "variables": {
        "FileName": {
            "type": "String"
        }
    },
    "annotations": []
}

}

azure-data-factory
1个回答
0
投票

根据您的管道 Json,您选择 扁平化层次结构 作为接收器中的复制行为。这可能是您的文件名显示如下的原因:

enter image description here

在水槽中设置复制行为,如下所示:

enter image description here

成功运行复制活动后,您将获得如下所示的文件名:

enter image description here

这是管道 Json 供您参考:

 {
    "name": "pipeline6",
    "properties": {
        "activities": [
            {
                "name": "Copy data1",
                "type": "Copy",
                "dependsOn": [],
                "policy": {
                    "timeout": "0.12:00:00",
                    "retry": 0,
                    "retryIntervalInSeconds": 30,
                    "secureOutput": false,
                    "secureInput": false
                },
                "userProperties": [],
                "typeProperties": {
                    "source": {
                        "type": "BinarySource",
                        "storeSettings": {
                            "type": "SftpReadSettings",
                            "recursive": true,
                            "wildcardFolderPath": "ins",
                            "wildcardFileName": "*.json",
                            "deleteFilesAfterCompletion": false,
                            "disableChunking": false
                        },
                        "formatSettings": {
                            "type": "BinaryReadSettings"
                        }
                    },
                    "sink": {
                        "type": "BinarySink",
                        "storeSettings": {
                            "type": "SftpWriteSettings",
                            "operationTimeout": "01:00:00",
                            "useTempFileRename": true
                        }
                    },
                    "enableStaging": false
                },
                "inputs": [
                    {
                        "referenceName": "sftpsrc",
                        "type": "DatasetReference"
                    }
                ],
                "outputs": [
                    {
                        "referenceName": "sftpsink",
                        "type": "DatasetReference"
                    }
                ]
            }
        ],
        "annotations": []
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.