Среда выполнения интеграции имеет два диска, есть ли способ параметризации поля Host в файловой системе связанной службы? - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь развернуть фабрику данных azure с конвейером копирования данных, который извлекает файлы из одного или нескольких путей развернутой / предварительно настроенной файловой системы и выгружает их в хранилище BLOB-объектов. Пути к исходным файлам в файловой системе могут занимать несколько разных дисков (например, - C: \ fileshare1 vs D: \ fileshare2) и могут включать сетевые расположения, на которые ссылаются пути UN C (например, - \ localnetworkresource \ fileshare3).

Я хотел бы настроить одно локальное соединение с файловой системой и исходный набор данных и просто параметризировать свойство хоста связанной службы. Тогда мой конвейер будет просто перебирать коллекцию путей к общим файлам и повторно использовать набор данных и связанное соединение службы. Однако не похоже, что существует какой-либо способ заставить набор данных или конвейер предоставлять информацию о хосте связанной службе. Конечно, можно предоставить информацию о папке из конвейера и набора данных, но она будет присоединена к хосту, указанному в подключении к связанной службе, и, следовательно, не позволит мне получить доступ к различным дискам или сетевым ресурсам.

Это было сделать это достаточно просто, настроив отдельные связанные сервисные соединения, наборы данных и конвейеры для каждого отдельного общего файлового ресурса, который необходимо было включить, но я бы предпочел управлять одним конвейером.

Я уже пробовал создать JSON связанных служб, но это не сработало, кто-то, кто может мне помочь?

https://docs.microsoft.com/en-us/azure/data-factory/parameterize-linked-services

Ответы [ 2 ]

1 голос
/ 10 апреля 2020

Вот как я это решил:)

конфигурация была следующей:

1 голос
/ 10 апреля 2020

Да, вы можете параметризовать связанную службу файловой системы следующим образом. Сначала вам нужно создать связанную службу файловой системы, затем вы можете изменить код JSON, чтобы добавить раздел параметров, как показано ниже:

{
    "name": "OnPremFileSystemLinkedService_Parameterized",
    "type": "Microsoft.DataFactory/factories/linkedservices",
    "properties": {
        "type": "FileServer",
        "parameters": {
            "HostParameter": {
                "type": "string",
                "defaultValue": "C:\\[Folder]"
            },
            "userIDParameter": {
                "type": "string",
                "defaultValue": "DOMAIN\\USERNAME"
            }
        },
        "annotations": [],
        "typeProperties": {
            "host": "@{linkedService().HostParameter}",
            "userId": "@{linkedService().userIDParameter}",
            "encryptedCredential": "XXXXXXXXXXXencryptedKeyXXXXXXXXX"
        },
        "connectVia": {
            "referenceName": "MySelfHostedIR",
            "type": "IntegrationRuntimeReference"
        }
    }
}

В моем примере я просто использовал один общий файловый ресурс в качестве ввода и операции копирования , Но в соответствии с вашим требованием вы можете передать свой список коллекций FileShare в действие ForEach, выполнить итерацию по каждому FileShare и передать эти значения в свою операцию копирования -> Параметры набора данных источника / приемника -> Свойства параметров связанной службы.

Ниже приведен пример использования параметризованной службы, связанной с файловой системой

enter image description here

Надеюсь, это поможет.

...