Копирование и преобразование данных в Хранилище BLOB-объектов Azure с помощью Фабрики данных Azure или Azure Synapse Analytics

ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics

Совет

Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !

В этой статье описывается, как с помощью действия Copy в Фабрике данных Azure и конвейерах Azure Synapse копировать данные в Хранилище BLOB-объектов Azure и из него. В нем также описывается, как использовать действие Потока данных для преобразования данных в Хранилище BLOB-объектов Azure. Дополнительные сведения см. в вводных статьях о Фабрике данных Azure и Azure Synapse Analytics .

Совет

Дополнительные сведения о сценарии переноса для озера данных или хранилища данных, см. в статье Перенос данных из озера данных или хранилища данных в Azure.

Поддерживаемые возможности

Для этого соединителя Хранилища BLOB-объектов Azure поддерживаются следующие возможности.

Поддерживаемые возможности IR Управляемая частная конечная точка
Действие копирования (источник/приемник) (1) (2) ✓ Исключение учетной записи хранения версии 1
Поток данных для сопоставления (источник/приемник) (1) ✓ Исключение учетной записи хранения версии 1
Действие поиска (1) (2) ✓ Исключение учетной записи хранения версии 1
Действие получения метаданных в Фабрике данных Azure (1) (2) ✓ Исключение учетной записи хранения версии 1
Действие удаления (1) (2) ✓ Исключение учетной записи хранения версии 1

① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции

Для действия Copy этот соединитель хранилища BLOB-объектов поддерживает следующее:

  • Копирование больших двоичных объектов в учетные записи хранения Azure общего назначения, в хранилище горячих и холодных BLOB-объектов и из них.
  • Копирование BLOB-объектов с помощью ключа учетной записи, проверка подлинности ресурсов Azure на основе подписанного URL-адреса (SAS), субъект-службы или управляемых удостоверений.
  • Копирование больших двоичных объектов из блочных, добавочных или страничных BLOB-объектов, а также копирование данных только в блочные BLOB-объекты.
  • Копирование BLOB-объектов "как есть", анализ или создание BLOB-объектов c использованием поддерживаемых форматов файлов и кодеков сжатия.
  • Сохранение метаданных файла во время копирования.

Начать

Чтобы выполнить действие копирования с конвейером, можно воспользоваться одним из приведенных ниже средств или пакетов SDK:

Создание связанной службы для хранилища BLOB-объектов Azure с помощью пользовательского интерфейса

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

  1. Перейдите на вкладку "Управление" в Фабрике данных Azure или рабочей области Synapse и выберите "Связанные службы", затем щелкните "Создать".

  2. Выполните поиск blob и выберите соединитель хранилища BLOB-объектов Azure.

    Выберите соединитель хранилища BLOB-объектов Azure.

  3. Настройте сведения о службе, проверьте подключение и создайте связанную службу.

    Снимок экрана: конфигурация связанной службы для хранилища BLOB-объектов Azure.

Сведения о конфигурации соединителя

Следующие разделы содержат сведения о свойствах, которые используются для определения сущностей Фабрики данных Azure и конвейера Synapse, характерных для хранилища BLOB-объектов.

Свойства связанной службы

Этот соединитель хранилища BLOB-объектов поддерживает следующие типы проверки подлинности. Дополнительные сведения см. в соответствующих разделах.

Примечание.

Примечание.

Azure HDInsights и Машинное обучение Azure поддерживают только проверку подлинности ключа учетной записи Хранилища BLOB-объектов Azure.

анонимная аутентификация;

Для проверки подлинности ключа учетной записи хранения в Фабрике данных Azure или конвейерах Synapse поддерживаются следующие свойства.

Свойство Описание: Обязательное поле
type Для свойства type должно быть задано значение AzureBlobStorage (предложено) или AzureStorage (см. следующие примечания). Да
containerUri Укажите универсальный код ресурса (URI) контейнера BLOB-объектов Azure, который включил анонимный доступ на чтение, выполнив этот формат https://<AccountName>.blob.core.windows.net/<ContainerName> и настройте анонимный общедоступный доступ на чтение для контейнеров и BLOB-объектов. Да
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Можно использовать среду выполнения интеграции Azure или локальную среду выполнения интеграции (если хранилище данных расположено в частной сети). Если это свойство не задано, используется среда выполнения интеграции Azure по умолчанию. No

Пример:


{
    "name": "AzureBlobStorageAnonymous",
    "properties": {
        "annotations": [],
        "type": "AzureBlobStorage",
        "typeProperties": {
            "containerUri": "https:// <accountname>.blob.core.windows.net/ <containername>",
            "authenticationType": "Anonymous"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Примеры пользовательского интерфейса:

Интерфейс пользовательского интерфейса описан на следующем рисунке. В этом примере в качестве источника используется открытый набор данных Azure. Если вы хотите получить открытый набор данных bing_covid-19_data.csv, просто необходимо выбрать тип проверки подлинности как анонимный и заполнить URI контейнера.https://pandemicdatalake.blob.core.windows.net/public

Снимок экрана: конфигурация для анонимного пользовательского интерфейса.

Проверка подлинности на основе ключа учетной записи

Для проверки подлинности ключа учетной записи хранения в Фабрике данных Azure или конвейерах Synapse поддерживаются следующие свойства.

Свойство Описание: Обязательное поле
type Для свойства type должно быть задано значение AzureBlobStorage (предложено) или AzureStorage (см. следующие примечания). Да
connectionString В свойстве connectionString указываются сведения, необходимые для подключения к службе хранилища.
Также вы можете поместить ключ учетной записи в Azure Key Vault и извлекать конфигурацию accountKey из строки подключения. Дополнительные сведения см. в следующих примерах и в статье Хранение учетных данных в Azure Key Vault.
Да
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Можно использовать среду выполнения интеграции Azure или локальную среду выполнения интеграции (если хранилище данных расположено в частной сети). Если это свойство не задано, используется среда выполнения интеграции Azure по умолчанию. No

Примечание.

Вторичная конечная точка службы BLOB-объектов не поддерживается при использовании проверки подлинности ключа учетной записи. Можно использовать другие типы аутентификации.

Примечание.

Если используется тип связанной службы AzureStorage, он по-прежнему поддерживается как есть. Но в дальнейшем рекомендуется использовать новый тип связанной службы AzureBlobStorage.

Пример:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
          "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;AccountKey=<accountkey>"
        },
        "connectVia": {
          "referenceName": "<name of Integration Runtime>",
          "type": "IntegrationRuntimeReference"
        }
    }
}

Пример: хранение ключа учетной записи в Azure Key Vault

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountname>;",
            "accountKey": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>",
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Аутентификация SAS

Подпись общего доступа обеспечивает делегированный доступ к ресурсам в вашей учетной записи хранения. Вы можете использовать подписанный URL-адрес, чтобы предоставить клиенту ограниченные разрешения на работу с объектами в вашей учетной записи хранения на определенный период.

Не нужно предоставлять совместный доступ к ключам доступа для учетной записи. Подписанный URL-адрес — это универсальный код ресурса (URI), который в своих параметрах запроса содержит все сведения, необходимые для доступа к ресурсу хранилища с прохождением аутентификации. Для доступа к ресурсам хранилища с помощью подписанного URL-адреса клиенту достаточно передать SAS в соответствующий конструктор или метод.

Дополнительные сведения о подписанном URL-адресе см. в статье Использование подписанных URL-адресов (SAS).

Примечание.

Следующие свойства поддерживаются для использования проверки подлинности на основе подписанного URL-адреса.

Свойство Описание: Обязательное поле
type Для свойства type должно быть задано значение AzureBlobStorage (предложено) или AzureStorage (см. следующее примечание). Да
sasUri Укажите URI подписанного URL-адреса для ресурсов службы хранилища, например для BLOB-объекта или контейнера.
Установите для этого поля метку SecureString для его безопасного хранения. Также можно поместить маркер SAS в Azure Key Vault для использования автоматической ротации и для удаления части маркера. Дополнительные сведения см. в следующих примерах и в статье Хранение учетных данных в Azure Key Vault.
Да
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Можно использовать среду выполнения интеграции Azure или локальную среду выполнения интеграции (если хранилище данных расположено в частной сети). Если это свойство не задано, используется среда выполнения интеграции Azure по умолчанию. No

Примечание.

Если используется тип связанной службы AzureStorage, он по-прежнему поддерживается как есть. Но в дальнейшем рекомендуется использовать новый тип связанной службы AzureBlobStorage.

Пример:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource e.g. https://<accountname>.blob.core.windows.net/?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Пример: хранение ключа учетной записи в Azure Key Vault

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.blob.core.windows.net/>"
            },
            "sasToken": {
                "type": "AzureKeyVaultSecret",
                "store": {
                    "referenceName": "<Azure Key Vault linked service name>", 
                    "type": "LinkedServiceReference"
                },
                "secretName": "<secretName with value of SAS token e.g. ?sv=<storage version>&st=<start time>&se=<expire time>&sr=<resource>&sp=<permissions>&sip=<ip range>&spr=<protocol>&sig=<signature>>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

При создании URI подписанного URL-адреса необходимо учитывать следующее.

  • Задайте для объектов соответствующие разрешения на чтение или запись. Они устанавливаются с учетом назначения связанной службы (чтение, запись, чтение и запись).
  • Задайте время окончания срока действия соответствующим образом. Убедитесь, что срок действия доступа к объектам хранилища не истекает в период активности конвейера.
  • В зависимости от потребности URI следует создать для нужного контейнера или BLOB-объекта. URI подписанного URL-адреса для большого двоичного объекта позволяет Фабрике данных Azure или конвейеру Synapse получить доступ к определенному большому двоичному объекту. URI подписанного URL-адреса для контейнера хранилища больших двоичных объектов позволяет Фабрике данных Azure или конвейеру Synapse выполнить итерацию по большим двоичным объектам в этом контейнере. Чтобы предоставить доступ к большему или меньшему количеству объектов позднее или обновить URI подписанного URL-адреса, не забудьте обновить связанную службу с помощью нового URI.

Аутентификация субъекта-службы

Общие сведения о проверке подлинности субъекта-службы служба хранилища Azure см. в статье "Аутентификация доступа к служба хранилища Azure с помощью идентификатора Microsoft Entra".

Чтобы использовать проверку подлинности субъекта-службы, выполните следующие действия.

  1. Регистрация приложения с помощью платформы удостоверений Майкрософт. Дополнительные сведения см. в кратком руководстве. Регистрация приложения с помощью платформа удостоверений Майкрософт. Запишите эти значения, которые используются для определения связанной службы:

    • Application ID
    • ключ приложения.
    • Идентификатор клиента
  2. Предоставьте правильное разрешение субъекта-службы в Хранилище BLOB-объектов Azure. Дополнительные сведения о ролях см. в разделе Назначение роли Azure для доступа к BLOB-объектам и данным очереди с помощью портала Azure.

    • В Системе управления идентификацией и доступом (IAM) назначьте источнику по крайней мере роль Модуль чтения данных BLOB-объектов хранилища.
    • В Системе управления идентификацией и доступом (IAM) приемнику необходимо выделить роль не ниже участника для данных BLOB-объектов хранилища.

Для связанной службы Хранилища BLOB-объектов Azure поддерживаются следующие свойства.

Свойство Описание: Обязательное поле
type Для свойства type необходимо задать значение AzureBlobStorage. Да
serviceEndpoint Укажите конечную точку Хранилища BLOB-объектов Azure в формате https://<accountName>.blob.core.windows.net/. Да
accountKind Укажите тип учетной записи хранения. Допустимые значения: Storage (общего назначения v1), StorageV2 (общее назначение версии 2), BlobStorage или BlockBlobStorage.

При использовании связанной службы BLOB-объектов Azure в потоке данных управляемое удостоверение или проверка подлинности субъекта-службы не поддерживается, если тип учетной записи пуст или "Хранилище". Укажите правильный тип учетной записи, выберите другую проверку подлинности или обновите учетную запись хранения до общего назначения версии 2.
No
servicePrincipalId Укажите идентификатора клиента приложения. Да
servicePrincipalCredentialType Тип учетных данных для использования при проверке подлинности субъекта-службы. Допустимые значения: ServicePrincipalKey и ServicePrincipalCert. Да
servicePrincipalCredential Учетные данные субъекта-службы.
При использовании в качестве типа учетных данных ServicePrincipalKey нужно указывать ключ приложения. Присвойте этому полю метку SecureString, чтобы безопасно хранить его, или добавьте ссылку на секрет, хранящийся в Azure Key Vault.
При использовании ServicePrincipalCert в качестве учетных данных ссылайтесь на сертификат в Azure Key Vault и убедитесь, что тип контента сертификата — PKCS #12.
Да
tenant Укажите сведения о клиенте (доменное имя или идентификатор клиента), в котором находится приложение. Эти сведения можно получить, наведя указатель мыши на правый верхний угол страницы портала Azure. Да
azureCloudType Для проверки подлинности субъекта-службы укажите тип облачной среды Azure, в которой зарегистрировано приложение Microsoft Entra.
Допустимые значения: AzurePublic, AzureChina, AzureUsGovernment и AzureGermany. По умолчанию используется облачная среда Фабрики данных Azure или конвейера Synapse.
No
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Можно использовать среду выполнения интеграции Azure или локальную среду выполнения интеграции (если хранилище данных расположено в частной сети). Если это свойство не задано, используется среда выполнения интеграции Azure по умолчанию. No

Примечание.

  • Если учетная запись большого двоичного объекта включает обратимое удаление, проверка подлинности субъекта-службы не поддерживается в Поток данных.
  • Если доступ к хранилищу BLOB-объектов осуществляется через частную конечную точку с помощью потока данных, обратите внимание, что при использовании проверки подлинности субъекта службы, Поток данных подключаются к конечной точке ADLS 2-го поколения вместо конечной точки BLOB. Убедитесь, что вы создали соответствующую частную конечную точку в Фабрике данных Azure или в рабочей области Synapse, чтобы разрешить доступ.

Примечание.

Проверка подлинности субъекта-службы поддерживается только типом связанной службы AzureBlobStorage, а не предшествующим типом связанной службы AzureStorage.

Пример:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Проверка подлинности с помощью назначенного системой управляемого удостоверения

Фабрику данных Azure или конвейер Synapse можно связать с назначаемым системой управляемым удостоверением для ресурсов Azure, которое представляет этот ресурс для проверки подлинности в других службах Azure. Это назначаемое системой управляемое удостоверение можно использовать для проверки подлинности хранилища BLOB-объектов, как и собственный субъект-службу. Оно разрешает назначенному ресурсу обращаться к данным и копировать их из/в хранилище BLOB-объектов. Дополнительные сведения об управляемых удостоверениях для ресурсов Azure см. в статье Управляемые удостоверения для ресурсов Azure.

Общие сведения о проверке подлинности служба хранилища Azure см. в статье "Проверка подлинности доступа к служба хранилища Azure с помощью идентификатора Microsoft Entra". Чтобы использовать управляемые удостоверения для аутентификации ресурсов Azure, выполните следующие действия:

  1. Получите сведения о назначаемом системой управляемом удостоверении, скопировав значение идентификатора объекта назначаемого системой управляемого удостоверения, созданного вместе с рабочей областью Фабрики данных Azure или Synapse.

  2. Предоставьте разрешение управляемому удостоверению в Хранилище BLOB-объектов Azure. Дополнительные сведения о ролях см. в разделе Назначение роли Azure для доступа к BLOB-объектам и данным очереди с помощью портала Azure.

    • В Системе управления идентификацией и доступом (IAM) назначьте источнику по крайней мере роль Модуль чтения данных BLOB-объектов хранилища.
    • В Системе управления идентификацией и доступом (IAM) приемнику необходимо выделить роль не ниже участника для данных BLOB-объектов хранилища.

Для связанной службы Хранилища BLOB-объектов Azure поддерживаются следующие свойства.

Свойство Описание: Обязательное поле
type Для свойства type необходимо задать значение AzureBlobStorage. Да
serviceEndpoint Укажите конечную точку Хранилища BLOB-объектов Azure в формате https://<accountName>.blob.core.windows.net/. Да
accountKind Укажите тип учетной записи хранения. Допустимые значения: Storage (общего назначения v1), StorageV2 (общее назначение версии 2), BlobStorage или BlockBlobStorage.

При использовании связанной службы BLOB-объектов Azure в потоке данных управляемое удостоверение или проверка подлинности субъекта-службы не поддерживается, если тип учетной записи пуст или "Хранилище". Укажите правильный тип учетной записи, выберите другую проверку подлинности или обновите учетную запись хранения до общего назначения версии 2.
No
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Можно использовать среду выполнения интеграции Azure или локальную среду выполнения интеграции (если хранилище данных расположено в частной сети). Если это свойство не задано, используется среда выполнения интеграции Azure по умолчанию. No

Пример:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2" 
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Проверка подлинности с помощью назначаемого пользователем управляемого удостоверения

Фабрике данных может быть назначено одно или несколько управляемых удостоверений, назначаемых пользователем. Такое удостоверение можно использовать для проверки подлинности хранилища BLOB-объектов, что позволяет получать доступ к данным и копировать их в/из хранилища BLOB-объектов. Дополнительные сведения об управляемых удостоверениях для ресурсов Azure см. в статье Управляемые удостоверения для ресурсов Azure.

Общие сведения о проверке подлинности хранилища Azure см. в статье "Аутентификация доступа к служба хранилища Azure с помощью идентификатора Microsoft Entra". Для использования проверки подлинности с помощью управляемого удостоверения, назначаемого пользователем, выполните приведенные ниже действия.

  1. Создайте одно или несколько назначаемых пользователем управляемых удостоверенный и предоставьте разрешение в Хранилище BLOB-объектов Azure. Дополнительные сведения о ролях см. в разделе Назначение роли Azure для доступа к BLOB-объектам и данным очереди с помощью портала Azure.

    • В Системе управления идентификацией и доступом (IAM) назначьте источнику по крайней мере роль Модуль чтения данных BLOB-объектов хранилища.
    • В Системе управления идентификацией и доступом (IAM) приемнику необходимо выделить роль не ниже участника для данных BLOB-объектов хранилища.
  2. Присвойте одно или несколько управляемых удостоверений, назначаемых пользователем, фабрике данных и создайте учетные данные для каждого подобного удостоверения.

Для связанной службы Хранилища BLOB-объектов Azure поддерживаются следующие свойства.

Свойство Описание: Обязательное поле
type Для свойства type необходимо задать значение AzureBlobStorage. Да
serviceEndpoint Укажите конечную точку Хранилища BLOB-объектов Azure в формате https://<accountName>.blob.core.windows.net/. Да
accountKind Укажите тип учетной записи хранения. Допустимые значения: Storage (общего назначения v1), StorageV2 (общее назначение версии 2), BlobStorage или BlockBlobStorage.

При использовании связанной службы BLOB-объектов Azure в потоке данных управляемое удостоверение или проверка подлинности субъекта-службы не поддерживается, если учетная запись пуста или "Хранилище". Укажите правильный тип учетной записи, выберите другую проверку подлинности или обновите учетную запись хранения до общего назначения версии 2.
No
учетные данные Укажите назначаемое пользователем управляемое удостоверение в качестве объекта учетных данных. Да
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Можно использовать среду выполнения интеграции Azure или локальную среду выполнения интеграции (если хранилище данных расположено в частной сети). Если это свойство не задано, используется среда выполнения интеграции Azure по умолчанию. No

Пример:

{
    "name": "AzureBlobStorageLinkedService",
    "properties": {
        "type": "AzureBlobStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.blob.core.windows.net/",
            "accountKind": "StorageV2",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Внимание

Если для загрузки данных из хранилища BLOB-объектов в Azure Synapse Analytics используется инструкция PolyBase или COPY, то при использовании проверки подлинности управляемого удостоверения для хранилища BLOB-объектов обязательно выполните действия 1–3 из этого руководства. Эти действия будут зарегистрировать сервер с помощью идентификатора Microsoft Entra и назначить роль участника данных BLOB-объектов хранилища серверу. Фабрика данных обрабатывает остальные компоненты. Если вы настраиваете хранилище BLOB-объектов с использованием конечной точки виртуальной сети Azure, включите параметр Разрешить доверенным службам Майкрософт доступ к этой учетной записи хранения в меню настроек Брандмауэры и виртуальные сети учетной записи службы хранилища Azure в соответствии с требованиями Azure Synapse.

Примечание.

  • Если учетная запись большого двоичного объекта включает обратимое удаление, проверка подлинности управляемого удостоверения, назначаемая системой или пользователем, не поддерживается в Поток данных.
  • Если доступ к хранилищу BLOB-объектов осуществляется через частную конечную точку с использованием потока данных, обратите внимание, что при использовании проверки подлинности с помощью назначаемого пользователем/системой управляемого удостоверения поток данных подключаются к конечной точке ADLS 2-го поколения вместо конечной точки BLOB-объекта. Обязательно создайте соответствующую частную конечную точку в ADF, чтобы обеспечить доступ.

Примечание.

Аутентификация с помощью назначаемого пользователем/системой управляемого удостоверения поддерживается только связанной службой типа "AzureBlobStorage", но не связанной службой предыдущего типа "AzureStorage".

Свойства набора данных

Полный список разделов и свойств, доступных для определения наборов данных, см. в статье о наборах данных.

Фабрика данных Azure поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.

Ниже перечислены свойства, которые поддерживаются для Хранилища BLOB-объектов Azure в параметрах location в наборе данных на основе формата.

Свойство Описание: Обязательное поле
type Свойство type для расположения в наборе данных должно иметь значение AzureBlobStorageLocation. Да
контейнер Контейнер больших двоичных объектов. Да
folderPath Путь к папке в заданном контейнере. Если вы хотите использовать подстановочный знак для фильтрации папок, пропустите этот параметр и укажите его в параметрах источника действия. No
fileName Имя файла в заданном контейнере и путь к папке. Если вы хотите использовать подстановочный знак для фильтрации файлов, пропустите этот параметр и укажите его в параметрах источника действия. No

Пример:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, auto retrieved during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder"
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Свойства действия копирования

Полный список разделов и свойств, используемых для определения действий, см. в статье Конвейеры и действия в фабрике данных Azure. В этом разделе содержится список свойств, поддерживаемых источником и приемником хранилища BLOB-объектов.

Хранилище BLOB-объектов в качестве типа источника

Фабрика данных Azure поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.

Ниже перечислены свойства, которые поддерживаются для Хранилища BLOB-объектов Azure в параметрах storeSettings в источнике копирования на основе формата.

Свойство Описание: Обязательное поле
type Для свойства type в разделе storeSettings необходимо задать значение AzureBlobStorageReadSettings. Да
Поиск файлов для копирования
ВАРИАНТ 1. Статический путь
Копирование из указанного контейнера или папки/пути к файлу, которые указаны в наборе данных. Если вы хотите скопировать все большие двоичные объекты из контейнера или папки, дополнительно укажите wildcardFileName как *.
ВАРИАНТ 2. Префикс BLOB-объекта
- prefix
Префикс для имени BLOB-объекта в заданном контейнере, настроенном в наборе данных для фильтрации исходных BLOB-объектов. Выбираются BLOB-объекты, имена которых начинаются с container_in_dataset/this_prefix. Используется фильтр на стороне службы хранения BLOB-объектов, который более эффективен, чем фильтр с подстановочными знаками.

При использовании префикса и выбора копирования в приемник на основе файлов с сохранением иерархии обратите внимание на вложенный путь после последнего "/" в префиксе. Например, для источника container/folder/subfolder/file.txt и настроенного префикса folder/sub сохраненный путь к файлу будет subfolder/file.txt.
No
Вариант 3. Подстановочный знак
- wildcardFolderPath
Путь к папке с подстановочными знаками в заданном контейнере, настроенном в наборе данных для фильтрации исходных папок.
Допустимые знаки подстановки: * (соответствует нулю или нескольким символам) и ? (соответствует нулю или одному символу). Используйте ^ для экранирования знаков, если имя папки содержит подстановочный знак или этот escape-символ.
Дополнительные примеры приведены в разделе Примеры фильтров папок и файлов.
No
Вариант 3. Подстановочный знак
— wildcardFileName
Имя файла с подстановочными знаками в заданном контейнере и путь к папке (или путь к папке в виде подстановочного знака) для фильтрации исходных папок.
Допустимые знаки подстановки: * (соответствует нулю или нескольким символам) и ? (соответствует нулю или одному символу). Используйте ^ для экранирования символов, если имя файла содержит подстановочный знак или этот escape-символ. Дополнительные примеры приведены в разделе Примеры фильтров папок и файлов.
Да
ВАРИАНТ 4. Список файлов
- fileListPath
Указывает, что нужно скопировать заданный набор файлов. Укажите текстовый файл со списком файлов, которые необходимо скопировать, по одному файлу в строке (каждая строка должна содержать относительный путь к заданному в наборе данных пути).
При использовании этого параметра не указывайте имя файла в наборе данных. Ознакомьтесь с дополнительными примерами в разделе Примеры списков файлов.
No
Дополнительные параметры:
recursive Указывает, следует ли читать данные рекурсивно из вложенных папок или только из указанной папки. Обратите внимание, что если для свойства recursive задано значение true, а приемником является файловое хранилище, пустые папки и вложенные папки не создаются в приемнике.
Допустимые значения: true (по умолчанию) и false.
Это свойство не применяется при настройке fileListPath.
No
deleteFilesAfterCompletion Указывает, удаляются ли двоичные файлы из исходного хранилища после успешного перемещения в конечное хранилище. Удаление файла равно каждому файлу. Поэтому при сбое действия копирования вы увидите, что некоторые файлы уже скопированы в место назначения и удалены из источника, а другие по-прежнему остаются в исходном хранилище.
Это свойство допустимо только в сценарии копирования двоичных файлов. По умолчанию имеет значение false.
No
modifiedDatetimeStart Фильтр файлов на основе атрибута времени последнего изменения.
Будут выбраны все файлы, у которых время последнего изменения больше или равно modifiedDatetimeStart и меньше modifiedDatetimeEnd. Время представлено часовым поясом UTC в формате "2018-12-01T05:00:00Z".
Эти свойства могут иметь значение NULL. Это означает, что фильтры атрибута файла не будут применяться к этому набору данных. Если для параметра modifiedDatetimeStart задано значение даты и времени, но параметр modifiedDatetimeEnd имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения больше указанного значения даты и времени или равен ему. Если для параметра modifiedDatetimeEnd задано значение даты и времени, но параметр modifiedDatetimeStart имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения меньше указанного значения даты и времени.
Это свойство не применяется при настройке fileListPath.
No
modifiedDatetimeEnd Аналогично предыдущему свойству. No
enablePartitionDiscovery Для файлов, секционированных, укажите, следует ли анализировать секции из пути к файлу и добавлять их в качестве дополнительных исходных столбцов.
Допустимые значения: false (по умолчанию) и true.
No
partitionRootPath Если обнаружение секций включено, укажите абсолютный корневой путь, чтобы считывать секционированные папки как столбцы данных.

Если он не указан, по умолчанию
— При использовании пути к файлу в наборе данных или списке файлов в источнике корневым путем секции считается путь, настроенный в наборе данных.
— При использовании фильтра папки с подстановочными знаками корневым путем секции считается часть пути до первого подстановочного знака.
— При использовании префикса корневой путь секции — это вложенный путь перед последним символом "/".

Предположим, что вы настроили путь в наборе данных следующим образом: "root/folder/year=2020/month=08/day=27".
— Если указать корневой путь секции "root/folder/year=2020", действие копирования в дополнение к указанным в файлах столбцам создаст еще два столбца, month и day, со значениями "08" и "27" соответственно.
— Если корневой путь секции не указан, дополнительный столбец не будет создан.
No
maxConcurrentConnections Верхний предел одновременных подключений, установленных для хранилища данных при выполнении действия. Указывайте значение только при необходимости ограничить количество одновременных подключений. No

Примечание.

Для формата Parquet/текста с разделителями источник действия Copy типа BlobSource, упомянутый в следующем разделе, по-прежнему поддерживается "как есть" для обеспечения обратной совместимости. Рекомендуется использовать новую модель, пока пользовательский интерфейс создания не переключится на создание новых типов.

Пример:

"activities":[
    {
        "name": "CopyFromBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Delimited text input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "formatSettings":{
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 10
                },
                "storeSettings":{
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Примечание.

Контейнер $logs, который автоматически создается при включении Аналитики Службы хранилища для учетной записи хранения, не отображается при выполнении операции перечисления контейнеров через пользовательский интерфейс. Необходимо указать путь к файлу непосредственно для Фабрики данных Azure или конвейера Synapse, чтобы использовать файлы из контейнера $logs.

Хранилище BLOB-объектов в качестве типа приемника

Фабрика данных Azure поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.

Ниже перечислены свойства, которые поддерживаются для Хранилища BLOB-объектов Azure в параметрах storeSettings в приемнике копирования на основе формата.

Свойство Описание: Обязательное поле
type Для свойства type в storeSettings должно быть установлено значение AzureBlobStorageWriteSettings. Да
copyBehavior Определяет поведение копирования, когда источником являются файлы из файлового хранилища данных.

Допустимые значения:
— PreserveHierarchy (по умолчанию). Сохраняет иерархию файлов в целевой папке. Относительный путь исходного файла в исходной папке идентичен относительному пути целевого файла в целевой папке.
— FlattenHierarchy. Все файлы из исходной папки размещаются на первом уровне в целевой папке. Целевые файлы имеют автоматически сформированные имена.
— MergeFiles. Объединяет все файлы из исходной папки в один файл. Если указано имя Blob-объекта или имя файла, то оно присваивается объединенному файлу. В противном случае присваивается автоматически созданное имя файла.
No
blockSizeInMB Укажите размер блока в мегабайтах, используемый для записи данных в блочные BLOB-объекты. Узнайте больше о блочных BLOB-объектaх.
Допустимое значение — от 4 до 100 МБ.
По умолчанию служба автоматически определяет размер блока на основе типа и данных исходного хранилища. Для недвоичного копирования в хранилище BLOB-объектов размер блока по умолчанию составляет 100 МБ, поэтому он может вместить не более 4,95 ТБ данных. Это может быть неоптимальным, если данные не большие, особенно если вы используете локальную среду выполнения интеграции с плохими сетевыми подключениями, которые приводят к проблемам времени ожидания операции или производительности. Вы можете явно указать размер блока, обеспечивая blockSizeInMB*50000 достаточно большой размер для хранения данных. В противном случае выполнение действия Copy завершится ошибкой.
No
maxConcurrentConnections Верхний предел одновременных подключений, установленных для хранилища данных при выполнении действия. Указывайте значение только при необходимости ограничить количество одновременных подключений. No
metadata Задайте пользовательские метаданные при копировании в приемник. Каждый объект в массиве metadata представляет дополнительный столбец. name определяет имя ключа метаданных, а value указывает значение данных этого ключа. Если используется функция сохранения атрибутов, указанные метаданные будут объединены с метаданными исходного файла или перезаписаны ими.

Допустимые значения:
- $$LASTMODIFIED: зарезервированная переменная указывает на сохранение времени последнего изменения исходных файлов. Она применяется к файловому источнику, который может быть только в двоичном формате.
Выражение
- Статическое значение
No

Пример:

"activities":[
    {
        "name": "CopyFromBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Parquet output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "ParquetSink",
                "storeSettings":{
                    "type": "AzureBlobStorageWriteSettings",
                    "copyBehavior": "PreserveHierarchy",
                    "metadata": [
                        {
                            "name": "testKey1",
                            "value": "value1"
                        },
                        {
                            "name": "testKey2",
                            "value": "value2"
                        },
                        {
                            "name": "lastModifiedKey",
                            "value": "$$LASTMODIFIED"
                        }
                    ]
                }
            }
        }
    }
]

Примеры фильтров папок и файлов

В этом разделе описываются результаты применения фильтров с подстановочными знаками к пути папки и имени файла.

folderPath fileName recursive Структура исходной папки и результат фильтрации (извлекаются файлы, выделенные полужирным шрифтом)
container/Folder* (пусто, используйте по умолчанию) false контейнер
    ПапкаA
        Файл1.csv
        File2.json
        Вложенная_папка1
            File3.csv
            File4.json
            File5.csv
    Другая_папкаB
        Файл6.csv
container/Folder* (пусто, используйте по умолчанию) true контейнер
    ПапкаA
        Файл1.csv
        File2.json
        Вложенная_папка1
            File3.csv
            File4.json
            File5.csv
    Другая_папкаB
        Файл6.csv
container/Folder* *.csv false контейнер
    ПапкаA
        Файл1.csv
        File2.json
        Вложенная_папка1
            File3.csv
            File4.json
            File5.csv
    Другая_папкаB
        Файл6.csv
container/Folder* *.csv true контейнер
    ПапкаA
        Файл1.csv
        File2.json
        Вложенная_папка1
            File3.csv
            File4.json
            File5.csv
    Другая_папкаB
        Файл6.csv

Примеры списков файлов

В этом разделе описывается поведение, возникающее при указании пути к списку файлов в качестве источника для действия Copy.

Предположим, что у вас есть следующая исходная структура папок и вы хотите скопировать файлы, выделенные полужирным шрифтом:

Пример исходной структуры Содержимое файла FileListToCopy.txt Настройка
контейнер
    ПапкаA
        Файл1.csv
        File2.json
        Вложенная_папка1
            File3.csv
            File4.json
            File5.csv
    Метаданные
        FileListToCopy.txt
Файл1.csv
Вложенная_папка1/Файл3.csv
Вложенная_папка1/Файл5.csv
В наборе данных:
- Контейнер: container
– Путь к папке: FolderA

В источнике действия Copy:
– Путь к списку файлов: container/Metadata/FileListToCopy.txt

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

Некоторые примеры recursive и copyBehavior

В данном разделе описываются результаты выполнения операции копирования при использовании различных сочетаний значений recursive и copyBehavior.

recursive copyBehavior Структура папок источника Результаты цели
true preserveHierarchy Папка1
    Файл1
    Файл2
    Вложенная_папка1
        Файл3
        Файл4
        Файл5
Целевая папка "Папка1" создается с такой же структурой, как и исходная папка:

Папка1
    Файл1
    Файл2
    Вложенная_папка1
        Файл3
        Файл4
        Файл5
true flattenHierarchy Папка1
    Файл1
    Файл2
    Вложенная_папка1
        Файл3
        Файл4
        Файл5
Целевая папка Folder1 создается со следующей структурой:

Папка1
    автоматически созданное имя для "Файл1"
    автоматически созданное имя для "Файл2"
    автоматически созданное имя для "Файл3"
    автоматически созданное имя для "Файл4"
    автоматически созданное имя для "Файл5"
true mergeFiles Папка1
    Файл1
    Файл2
    Вложенная_папка1
        Файл3
        Файл4
        Файл5
Целевая папка Folder1 создается со следующей структурой:

Папка1
    Содержимое файлов "Файл1", "Файл2", "Файл3", "Файл4" и "Файл5" объединяется в один файл с автоматически созданным именем.
false preserveHierarchy Папка1
    Файл1
    Файл2
    Вложенная_папка1
        Файл3
        Файл4
        Файл5
Целевая папка Folder1 создается со следующей структурой:

Папка1
    Файл1
    Файл2

Папка "Вложенная_папка1" с файлами "Файл3", "Файл4" и "Файл5" не будет включена в эту папку.
false flattenHierarchy Папка1
    Файл1
    Файл2
    Вложенная_папка1
        Файл3
        Файл4
        Файл5
Целевая папка Folder1 создается со следующей структурой:

Папка1
    автоматически созданное имя для "Файл1"
    автоматически созданное имя для "Файл2"

Папка "Вложенная_папка1" с файлами "Файл3", "Файл4" и "Файл5" не будет включена в эту папку.
false mergeFiles Папка1
    Файл1
    Файл2
    Вложенная_папка1
        Файл3
        Файл4
        Файл5
Целевая папка "Папка1" создается со следующей структурой.

Папка1
    Содержимое файлов "Файл1" и "Файл2" объединяется в один файл с автоматически созданным именем. автоматически созданное имя для "Файл1"

Папка "Вложенная_папка1" с файлами "Файл3", "Файл4" и "Файл5" не будет включена в эту папку.

Сохранение метаданных во время копирования

При копировании файлов из Amazon S3, Хранилища BLOB-объектов Azure или Azure Data Lake Storage 2-го поколения в Azure Data Lake Storage 2-го поколения или Хранилище BLOB-объектов Azure можно сохранить метаданные файла вместе с данными. Подробнее см. в разделе Сохранение метаданных.

Свойства потока данных для сопоставления

При преобразовании данных в потоках данных для сопоставления можно считывать и записывать файлы из Хранилища BLOB-объектов Azure в следующих форматах:

Конкретные параметры приведены в документации для соответствующего формата. Дополнительные сведения см. в статьях Преобразование источника в потоке данных для сопоставления и Преобразование приемника в потоке данных для сопоставления.

Преобразование источника

В преобразовании источника можно выполнять чтение из контейнера, папки или отдельного файла в Хранилище BLOB-объектов Azure. Используйте вкладку Параметры источника для управления чтением файлов.

Снимок экрана: вкладка

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

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

Примеры подстановочных знаков:

  • * — представляет любой набор символов.

  • ** — представляет рекурсивную вложенность каталога.

  • ? — заменяет один символ.

  • [] — соответствует одному или нескольким символам в квадратных скобках.

  • /data/sales/**/*.csv — возвращает все файлы .csv в папке /data/sales.

  • /data/sales/20??/**/ — возвращает все файлы, созданные в 20 веке.

  • /data/sales/*/*/*.csv — возвращает файлы .csv, расположенные двумя уровнями ниже папки /data/sales.

  • /data/sales/2004/*/12/[XY]1?.csv — возвращает все файлы .csv, созданные в декабре 2004 года, которые начинаются с X или Y с двузначным числом в качестве префикса.

Корневой путь раздела. Если в источнике файлов имеются секционированные папки формата key=value (например, year=2019), то верхний уровень этого дерева секционированной папки можно назначить имени столбца в потоке данных.

Во-первых, задайте подстановочный знак, чтобы включить все пути, которые являются в секционированных папках, а также конечные файлы, которые требуется прочитать.

Снимок экрана: параметры исходного файла секции в преобразовании источника потока данных сопоставления.

Для определения верхнего уровня структуры папок используйте параметр Корневой путь раздела. При просмотре содержимого данных с помощью предварительного просмотра данных вы увидите, что служба добавляет разрешенные секции, найденные на каждом из уровней папок.

Корневой путь раздела

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

Столбец для хранения имени файла: сохраните имя исходного файла в столбце в данных. Укажите здесь новое имя столбца для хранения строки имени файла.

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

Чтобы переместить исходные файлы в другое расположение после обработки, сначала выберите "Переместить" для операции с файлом. Затем задайте исходный каталог. Если вы не используете подстановочные знаки в пути, исходным каталогом будет та же папка, что и исходная папка.

Если у вас есть исходный путь с подстановочным знаком, синтаксис выглядит следующим образом:

/data/sales/20??/**/*.csv

В качестве исходной папки можно указать:

/data/sales

А в качестве целевой папки можно указать:

/backup/priorSales

В этом случае все файлы, источником которых является папка /data/sales, перемещаются в папку /backup/priorSales.

Примечание.

Операции с файлами выполняются только в том случае, если поток данных выполняется из запуска конвейера (отладка конвейера или запуск выполнения) с использованием действия выполнения потока данных в конвейере. Операции с файлами не выполняются в режиме отладки Поток данных.

Фильтр по последнему изменению: вы можете отфильтровать файлы, чтобы обрабатываться, указав диапазон дат последнего изменения. Все значения даты и времени указаны в формате UTC.

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

Снимок экрана: включение отслеживания измененных данных.

Свойства приемника

В преобразовании приемника можно выполнять запись в контейнер или папку в Хранилище BLOB-объектов Azure. Используйте вкладку Параметры для управления записью файлов.

Параметры приемника

Очистить папку: определяет, очищается ли целевая папка перед записью данных.

Параметр имени файла: определяет, как целевые файлы именуются в целевой папке. Доступные параметры имени файла:

  • По умолчанию: разрешить Spark именовать файлы на основе значений ПО умолчанию PART.
  • Шаблон. Введите шаблон, который перечисляет выходные файлы на секцию. Например, loans[n].csv создает loans1.csvи loans2.csvт. д.
  • На секцию: введите одно имя файла для каждой секции.
  • Как данные в столбце: задайте выходной файл значению столбца. Путь задается относительно контейнера набора данных, а не папки назначения. Если у вас есть путь к папке в наборе данных, он переопределяется.
  • Выходные данные в один файл: объединение секционированных выходных файлов в один именованный файл. Путь задается относительно папки набора данных. Имейте в виду, что операция слияния может завершиться сбоем в зависимости от размера узла. Этот параметр не рекомендуется использовать для больших наборов данных.

Все в кавычках: указывает, следует ли заключать все значения в кавычки.

Свойства действия поиска

Подробные сведения об этих свойствах см. в разделе Действие поиска.

Свойства действия GetMetadata

Подробные сведения об этих свойствах см. в статье Действие GetMetadata.

Свойства действия удаления

Подробные сведения об этих свойствах см. в статье Действие удаления.

Устаревшие модели

Примечание.

Следующие модели по-прежнему поддерживаются на условиях "как есть" для обеспечения обратной совместимости. Рекомендуется использовать новую модель, упомянутую ранее. В пользовательском интерфейсе разработки уже используется именно эта новая модель.

Устаревшая модель набора данных

Свойство Описание: Обязательное поле
type Свойство type набора данных должно иметь значение AzureBlob. Да
folderPath Путь контейнеру и папке в хранилище BLOB-объектов.

Фильтр с подстановочными знаками поддерживается для пути без имени контейнера. Допустимые знаки подстановки: * (соответствует нулю или нескольким символам) и ? (соответствует нулю или одному символу). Используйте ^ для экранирования знаков, если имя папки содержит подстановочный знак или этот escape-символ.

Пример: myblobcontainer/myblobfolder/. Дополнительные примеры приведены в разделе Примеры фильтров папок и файлов.
Yes для действия Copy или Lookup, No для действия GetMetadata
fileName Имя или фильтр постановочных знаков для файлов по указанному значению folderPath. Если этому свойству не присвоить значение, набор данных будет указывать на все большие двоичные объекты в папке.

Допустимые знаки подстановки для фильтра: * (соответствует нулю или нескольким символам) и ? (соответствует нулю или одному символу).
Пример 1. "fileName": "*.csv"
Пример 2. "fileName": "???20180427.txt"
Используйте ^ для экранирования символов, если имя файла содержит подстановочный знак или этот escape-символ.

ЕслиfileName не указан для выходного набора данных и preserveHierarchy не указан в приемнике действий, действие Copy автоматически создает имя BLOB-объекта в следующем формате: Data.[activity run ID GUID].[GUID if FlattenHierarchy].[format if configured].[compression if configured]. Например, "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz".

При копировании из табличного источника с использованием имени таблицы вместо запроса формат имени будет таким: " [table name].[format].[compression if configured] ". Например, "MyTable.csv".
No
modifiedDatetimeStart Фильтр файлов на основе атрибута времени последнего изменения. Будут выбраны все файлы, у которых время последнего изменения больше или равно modifiedDatetimeStart и меньше modifiedDatetimeEnd. Время представлено часовым поясом UTC в формате "2018-12-01T05:00:00Z".

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

Свойства могут иметь значение NULL. Это означает, что фильтр атрибутов файла не будет применяться к набору данных. Если для параметра modifiedDatetimeStart задано значение даты и времени, но параметр modifiedDatetimeEnd имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения больше указанного значения даты и времени или равен ему. Если для параметра modifiedDatetimeEnd задано значение даты и времени, но параметр modifiedDatetimeStart имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения меньше указанного значения даты и времени.
No
modifiedDatetimeEnd Фильтр файлов на основе атрибута времени последнего изменения. Будут выбраны все файлы, у которых время последнего изменения больше или равно modifiedDatetimeStart и меньше modifiedDatetimeEnd. Время представлено часовым поясом UTC в формате "2018-12-01T05:00:00Z".

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

Свойства могут иметь значение NULL. Это означает, что фильтр атрибутов файла не будет применяться к набору данных. Если для параметра modifiedDatetimeStart задано значение даты и времени, но параметр modifiedDatetimeEnd имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения больше указанного значения даты и времени или равен ему. Если для параметра modifiedDatetimeEnd задано значение даты и времени, но параметр modifiedDatetimeStart имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения меньше указанного значения даты и времени.
No
format Если требуется скопировать файлы между файловыми хранилищами "как есть" (двоичное копирование), можно пропустить раздел форматирования в определениях входного и выходного наборов данных.

Если нужно проанализировать или создать файлы определенного формата, поддерживаются следующие типы форматов файлов: TextFormat, JsonFormat, AvroFormat, OrcFormat и ParquetFormat. Свойству type в разделе format необходимо присвоить одно из этих значений. Дополнительные сведения см. в разделах о текстовом формате, формате JSON, формате Avro, формате Orc и формате Parquet.
Нет (только для сценария двоичного копирования)
compression Укажите тип и уровень сжатия данных. Дополнительные сведения см. в разделе Поддержка сжатия.
Поддерживаемые типы: GZip, Deflate, BZip2 и ZipDeflate.
Поддерживаемые уровни: Optimal и Fastest.
No

Совет

Чтобы скопировать все большие двоичные объекты в папке, укажите только folderPath.
Чтобы скопировать один BLOB-объект с заданным именем, укажите folderPath для части папки и fileName для имени файла.
Чтобы скопировать подмножество больших двоичных объектов в папке, укажите folderPath для части папки и fileName, используя фильтр подстановочных знаков.

Пример:

{
    "name": "AzureBlobDataset",
    "properties": {
        "type": "AzureBlob",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "mycontainer/myfolder",
            "fileName": "*",
            "modifiedDatetimeStart": "2018-12-01T05:00:00Z",
            "modifiedDatetimeEnd": "2018-12-01T06:00:00Z",
            "format": {
                "type": "TextFormat",
                "columnDelimiter": ",",
                "rowDelimiter": "\n"
            },
            "compression": {
                "type": "GZip",
                "level": "Optimal"
            }
        }
    }
}

Устаревшая исходная модель для действия Copy

Свойство Описание: Обязательное поле
type Свойство type источника действия Copy должно иметь значениеBlobSource. Да
recursive Указывает, следует ли читать данные рекурсивно из вложенных папок или только из указанной папки. Если recursive задано true значение и приемник является хранилищем на основе файлов, пустая папка или вложенная папка не копируется или не создается в приемнике.
Допустимые значения: true (по умолчанию) и false.
No
maxConcurrentConnections Верхний предел одновременных подключений, установленных для хранилища данных при выполнении действия. Указывайте значение только при необходимости ограничить количество одновременных подключений. No

Пример:

"activities":[
    {
        "name": "CopyFromBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure Blob input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "BlobSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Устаревшая модель приемника для действия Copy

Свойство Описание: Обязательное поле
type Свойство type приемника действия Copy должно иметь значение BlobSink. Да
copyBehavior Определяет поведение копирования, когда источником являются файлы из файлового хранилища данных.

Допустимые значения:
— PreserveHierarchy (по умолчанию). Сохраняет иерархию файлов в целевой папке. Относительный путь исходного файла в исходной папке идентичен относительному пути целевого файла в целевой папке.
— FlattenHierarchy. Все файлы из исходной папки размещаются на первом уровне в целевой папке. Целевые файлы имеют автоматически сформированные имена.
— MergeFiles. Объединяет все файлы из исходной папки в один файл. Если указано имя Blob-объекта или имя файла, то оно присваивается объединенному файлу. В противном случае присваивается автоматически созданное имя файла.
No
maxConcurrentConnections Верхний предел одновременных подключений, установленных для хранилища данных при выполнении действия. Указывайте значение только при необходимости ограничить количество одновременных подключений. No

Пример:

"activities":[
    {
        "name": "CopyToBlob",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure Blob output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "BlobSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

система отслеживания измененных данных

Фабрика данных Azure могут получать новые или измененные файлы только из Хранилище BLOB-объектов Azure, включив **Включить запись измененных данных ** в преобразовании источника данных сопоставления. Этот параметр соединителя позволяет считывать только новые или обновленные файлы и применять преобразования перед загрузкой преобразованных данных в нужные целевые наборы. Дополнительные сведения см. в статье Об изменении записи данных.

Список хранилищ данных, поддерживаемых действием копирования в качестве источников и приемников, приведен в разделе Поддерживаемые хранилища данных.