Поделиться через


Копирование данных из файлов Azure или в них с помощью Фабрики данных Azure

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

Совет

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

В этой статье описан процесс копирования данных из Файлов Azure и обратно. Дополнительные сведения о Фабрике данных Azure см. во вводной статье.

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

Этот соединитель Файлов Azure поддерживает следующие возможности:

Поддерживаемые возможности IR Управляемая частная конечная точка
Действие копирования (источник/приемник) ① ② ✓ Исключение учетной записи хранения версии 1
Операция поиска (1) (2) ✓ Исключение учетной записи хранения версии 1
Активность GetMetadata ① ② ✓ Исключение учетной записи хранения версии 1
Удалить действие ① ② ✓ Исключение учетной записи хранения версии 1

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

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

В частности, этот соединитель Файлов Azure поддерживает:

  • Копирование файлов с использованием проверки подлинности через ключ учетной записи или подписанный общий доступ к сервису (SAS).
  • Копирование файлов "как есть", анализ или создание файлов с использованием поддерживаемых форматов файлов и кодеков сжатия.

Начало работы

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

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

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

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

  2. Найдите файл и выберите соединитель для Azure Files с меткой Хранилище файлов Azure.

    Снимок экрана: соединитель хранилища файлов Azure.

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

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

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

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

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

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

Примечание.

Если вы использовали службу Azure Files с устаревшей моделью, которая отображается в пользовательском интерфейсе разработки фабрики данных Azure как "Обычная проверка подлинности", она по-прежнему поддерживается без изменений, но вам предлагается переходить на использование новой модели в дальнейшем. Устаревшая модель использует для обмена данными с хранилищем протокол SMB, тогда как в новой модели для этих целей применяется пакет SDK хранилища, обеспечивающий более высокую пропускную способность. Чтобы выполнить обновление, вы можете изменить связанную службу, задав метод проверки подлинности "Ключ учетной записи" или URI SAS. Для набора данных или действия копирования изменения не требуются.

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

Azure Data Factory поддерживает следующие свойства для проверки подлинности с помощью ключа учетной записи Azure Files.

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

Пример:

{
    "name": "AzureFileStorageLinkedService",
    "properties": {
        "type": "AzureFileStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.windows.net;",
            "fileShare": "<file share name>"
        },
        "connectVia": {
          "referenceName": "<name of Integration Runtime>",
          "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

Аутентификация подписи для общего доступа

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

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

Свойство Описание: Обязательное поле
тип Свойство type должно иметь значение: AzureFileStorage. Да
sasUri Укажите URI с подписью для общего доступа к ресурсам.
Пометьте это поле как SecureString для безопасного хранения. Также можно поместить маркер SAS в Azure Key Vault для использования автоматической ротации и для удаления части маркера. Дополнительные сведения см. в следующих примерах и в статье Хранение учетных данных в Azure Key Vault.
Да
общий доступ к файлам Укажите общий файловый ресурс. Да
снимок Если вы хотите копировать из моментального снимка, укажите дату моментального снимка файлов. Нет
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Вы можете использовать среду выполнения интеграции Azure или локальную среду выполнения интеграции (если хранилище данных расположено в частной сети). Если не указано другое, по умолчанию используется интегрированная среда выполнения Azure. Нет

Пример:

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

Пример. Сохранение маркера SAS в Azure Key Vault

{
    "name": "AzureFileStorageLinkedService",
    "properties": {
        "type": "AzureFileStorage",
        "typeProperties": {
            "sasUri": {
                "type": "SecureString",
                "value": "<SAS URI of the Azure Storage resource without token e.g. https://<accountname>.file.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>>" 
            },
            "fileShare": "<file share name>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

Фабрику данных Azure или конвейер Synapse можно связать с назначаемым системой управляемым удостоверением для ресурсов Azure, которое представляет этот ресурс для проверки подлинности в других службах Azure. Назначаемое системой управляемое удостоверение можно использовать для аутентификации в Azure Files. Дополнительные сведения об управляемых удостоверениях для ресурсов Azure см. в статье Что такое управляемые удостоверения для ресурсов Azure?.

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

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

  2. Предоставьте разрешение управляемому удостоверению в Azure Files. Дополнительные сведения о ролях см. в этой статье.

    • В качестве источника в управлении доступом (IAM) предоставьте как минимум роль Storage File Data Privileged Reader.
    • В качестве приемника в Управлении доступом (IAM) предоставьте как минимум роль Привилегированного участника данных файлов хранилища.

Эти свойства поддерживаются для связанной службы Azure Files:

Свойство Описание: Обязательное поле
тип Свойство type должно иметь значение AzureFileStorage. Да
конечная точка сервиса Укажите конечную точку службы Файлы Azure с шаблономhttps://<accountName>.file.core.windows.net/. Да
файлообмен Укажите область общего доступа. Да
снимок Если требуется выполнить копирование из моментального снимка, укажите дату создания моментального снимка общего доступа. Нет
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Среду выполнения интеграции Azure можно использовать. Если не указано другое, по умолчанию используется интегрированная среда выполнения Azure. Нет

Примечание.

Проверка подлинности управляемого удостоверения, назначаемая системой, поддерживается только средой выполнения интеграции Azure.

Пример:

{
    "name": "AzureFileStorageLinkedService",
    "properties": {
        "type": "AzureFileStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.file.core.windows.net/",
            "fileShare": "<file share name>",
            "snapshot": "<snapshot version>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Аутентификация с использованием управляемого удостоверения, назначенного пользователем

Фабрике данных может быть назначено одно или несколько пользовательских управляемых удостоверений. Это управляемое удостоверение, назначаемое пользователем, можно использовать для проверки подлинности Azure Files, что позволяет получать доступ к данным и копировать данные в или из Azure Files. Дополнительные сведения об управляемых удостоверениях для ресурсов Azure см. в статье Что такое управляемые удостоверения для ресурсов Azure?.

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

  1. Создайте одно или несколько управляемых удостоверений с назначением пользователем и предоставьте разрешения в Azure Files. Дополнительные сведения о ролях см. в этой статье.

    • В качестве источника в управлении доступом (IAM) предоставьте как минимум роль Привилегированного чтения данных файла хранилища.
    • В качестве приемника в Управление доступом (IAM) предоставьте не менее роль привилегированного участника данных файлового хранилища.
  2. Назначьте одно или несколько управляемых пользователями удостоверений хранилищу данных и создайте учетные данные для каждого такого удостоверения.

Эти свойства поддерживаются для службы, связанной с Azure Files.

Свойство Описание: Обязательное поле
тип Свойство type должно иметь значение AzureFileStorage. Да
конечная точка сервиса Укажите конечную точку службы Файлы Azure с шаблономhttps://<accountName>.file.core.windows.net/. Да
учетные данные Укажите назначаемое пользователем управляемое удостоверение в качестве объекта учетных данных. Да
обмен файлами Укажите общий файловый ресурс. Да
снимок Если требуется выполнить копирование из моментального снимка, укажите дату создания моментального снимка файлового ресурса. Нет
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Вы можете использовать среду выполнения интеграции Azure или локальную среду выполнения интеграции (если ваше хранилище данных расположено в частной сети). Если не указано другое, по умолчанию используется интегрированная среда выполнения Azure. Нет

Пример:

{
    "name": "AzureFileStorageLinkedService",
    "properties": {
        "type": "AzureFileStorage",
        "typeProperties": {            
            "serviceEndpoint": "https://<accountName>.file.core.windows.net/",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            },
            "fileShare": "<file share name>",
            "snapshot": "<snapshot version>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

Свойство Описание: Обязательное поле
тип Свойство type должно иметь значение: AzureFileStorage. Да
ведущий Указывает конечную точку Azure Files как:
— при использовании пользовательского интерфейса: укажите \\<storage name>.file.core.windows.net\<file service name>.
— при использовании JSON: укажите "host": "\\\\<storage name>.file.core.windows.net\\<file service name>".
Да
идентификатор пользователя Укажите пользователя для доступа к Файлы Azure следующим образом:
— при использовании пользовательского интерфейса: укажите AZURE\<storage name>.
— Использование JSON: "userid": "AZURE\\<storage name>".
Да
пароль Укажите ключ доступа к хранилищу. Пометьте это поле как SecureString, чтобы безопасно хранить его в фабрике данных, или добавьте ссылку на секрет, хранящийся в Azure Key Vault. Да
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Вы можете использовать среду выполнения интеграции Azure или локальную среду выполнения интеграции (если ваше хранилище данных находится в частной сети). Если не указано другое, по умолчанию используется интегрированная среда выполнения Azure. "Нет" для источника, "Да" для приемника

Пример:

{
    "name": "AzureFileStorageLinkedService",
    "properties": {
        "type": "AzureFileStorage",
        "typeProperties": {
            "host": "\\\\<storage name>.file.core.windows.net\\<file service name>",
            "userid": "AZURE\\<storage name>",
            "password": {
                "type": "SecureString",
                "value": "<storage access key>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

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

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

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

Пример:

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

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

Полный список разделов и свойств, используемых для определения действий, см. в статье Конвейеры. Этот раздел содержит список свойств, поддерживаемых источником и приемником Файлов Azure.

Файлы Azure как источник

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

Ниже перечислены свойства, которые поддерживаются для Файлов Azure в настройках storeSettings в источнике копирования на основе формата:

Свойство Описание: Обязательное поле
тип Для свойства type в разделе storeSettings необходимо задать значение AzureFileStorageReadSettings. Да
Найдите файлы для копирования:
ВАРИАНТ 1. Статический путь
Копирование будет производиться из указанного пути к папке или файлу, заданному в наборе данных. Если вы хотите скопировать все файлы из папки, дополнительно укажите wildcardFileName со значением *.
ВАРИАНТ 2. Префикс файла
- префикс
Префикс названия файла в указанном файловом хранилище, настроенном в наборе данных для фильтрации исходных файлов. Будут выбраны файлы, имя которых начинается с fileshare_in_linked_service/this_prefix. Для Azure Files используется фильтр на стороне сервера, который обеспечивает лучшую производительность по сравнению с фильтром с подстановочными знаками. Эта функция не поддерживается при использовании устаревшей модели связанной службы. Нет
Вариант 3. Подстановочный знак
- wildcardFolderPath
Путь к папке с подстановочными знаками для фильтрации исходных папок.
Допустимые подстановочные знаки: * (соответствует нулю или любому количеству символов) и ? (соответствует нулю или одному символу); используйте ^, чтобы экранировать, если фактическое имя папки содержит подстановочный знак или символ экранирования.
Дополнительные примеры приведены в разделе Примеры фильтров папок и файлов.
Нет
Вариант 3: Подстановочный знак
— wildcardFileName
Имя файла с подстановочными знаками в заданной папке по пути folderPath/wildcardFolderPath для фильтрации исходных файлов.
Допустимые подстановочные знаки: * (соответствует нулю или более символов) и ? (соответствует нулю или одному символу); используйте ^ для экранирования, если ваше реальное имя файла содержит подстановочный знак или символ экранирования. Дополнительные примеры приведены в разделе Примеры фильтров папок и файлов.
Да
ВАРИАНТ 4. Список файлов
- fileListPath
Указывает, что нужно скопировать заданный набор файлов. Укажите текстовый файл со списком файлов, которые необходимо скопировать, по одному файлу в строке (каждая строка должна содержать относительный путь к заданному в наборе данных пути).
При использовании этого варианта не указывайте имя файла в наборе данных. Ознакомьтесь с дополнительными примерами в разделе Примеры списков файлов.
Нет
Дополнительные параметры:
рекурсивный Указывает, следует ли читать данные рекурсивно из вложенных папок или только из указанной папки. Если для свойства recursive задано значение true и приемником является файловое хранилище, то пустые папка или подпапка не копируются и не создаются в приемнике.
Допустимые значения: true (по умолчанию) и false.
Это свойство не применяется при настройке fileListPath.
Нет
УдалениеФайловПослеЗавершения Указывает, удаляются ли двоичные файлы из исходного хранилища после успешного перемещения в конечное хранилище. Файлы удаляются поочередно, поэтому в случае сбоя действия копирования вы увидите, что некоторые файлы уже скопированы в место назначения и удалены из источника, в то время как остальные находятся в исходном хранилище.
Это свойство допустимо только в сценарии копирования двоичных файлов. По умолчанию имеет значение false.
Нет
modifiedDatetimeStart Фильтр файлов на основе атрибута: Last Modified.
Будут выбраны все файлы, у которых время последнего изменения больше или равно modifiedDatetimeStart и меньше modifiedDatetimeEnd. Время представлено часовым поясом UTC в формате "2018-12-01T05:00:00Z".
Эти свойства могут иметь значение NULL. Это означает, что фильтры атрибута файла не будут применяться к этому набору данных. Если для параметра modifiedDatetimeStart задано значение даты и времени, но параметр modifiedDatetimeEnd имеет значение NULL, то будут выбраны файлы, чей атрибут последнего изменения больше указанного значения даты и времени или равен ему. Если для параметра modifiedDatetimeEnd задано значение даты и времени, но параметр modifiedDatetimeStart имеет значение NULL, то будут выбраны все файлы, чей атрибут последнего изменения меньше указанного значения даты и времени.
Это свойство не применяется при настройке fileListPath.
Нет
изменённаяДатаИВремяОкончания То же, что выше. Нет
включить обнаружение разделов Для секционированных файлов укажите, следует ли анализировать секции из пути к файлу и добавлять их как дополнительные исходные столбцы.
Допустимые значения: false (по умолчанию) и true.
Нет
partitionRootPath Если обнаружение секций включено, укажите абсолютный корневой путь, чтобы считывать секционированные папки как столбцы данных.

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

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

Пример:

"activities":[
    {
        "name": "CopyFromAzureFileStorage",
        "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": "AzureFileStorageReadSettings",
                    "recursive": true,
                    "wildcardFolderPath": "myfolder*A",
                    "wildcardFileName": "*.csv"
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Файлы Azure как приемник

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

Ниже перечислены свойства, которые поддерживаются для Файлов Azure в настройках storeSettings в приемнике копирования на основе формата:

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

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

Пример:

"activities":[
    {
        "name": "CopyToAzureFileStorage",
        "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": "AzureFileStorageWriteSettings",
                    "copyBehavior": "PreserveHierarchy"
                }
            }
        }
    }
]

Примечание.

Вы можете скопировать до 4 МБ данных в приемник при использовании управляемого удостоверения, назначаемого системой или назначаемого пользователем, в качестве типа проверки подлинности.

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

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

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

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

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

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

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

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

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

Примеры «recursive» и «copyBehavior»

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

рекурсивный копирование поведения Структура папок источника Полученная цель
истина сохранитьИерархию Папка1
    Файл1
    Файл2
    Подпапка 1
        Файл3
        Файл4
        Файл5
Целевая папка "Папка1" создается с такой же структурой, как и исходная папка:

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

Папка1
    автоматически созданное имя для "Файл1"
    автоматически созданное имя для File2
    автоматически сгенерированное имя для файла File3
    автоматически сгенерированное имя для файла "Файл4"
    автоматически созданное имя для "Файл5"
истина слияниеФайлов Папка1
    Файл1
    Файл2
    Подпапка1
        Файл3
        Файл4
        Файл5
Целевая папка1 создается со следующей структурой:

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

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

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

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

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

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

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

Свойства поисковой активности

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

Свойства активности GetMetadata

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

Удалить свойства активности

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

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

Примечание.

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

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

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

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

Примеры: rootfolder/subfolder/. Дополнительные примеры см. в разделе Примеры фильтров папок и файлов.
Да
имя файла Имя или фильтр с подстановочными знаками для файлов в указанной папке "folderPath". Если этому свойству не присвоить значение, набор данных будет указывать на все файлы в папке.

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

Если fileName для выходного набора данных не указан, и preserveHierarchy не определён в параметрах цели, действие копирования автоматически создаёт имя файла по следующему шаблону: "Data.[идентификатор выполнения].[GUID при FlattenHierarchy].[формат при наличии].[сжатие при наличии]". Например, "Data.0a405f8a-93ff-4c6f-b3be-f69616f1df7a.txt.gz". Если вы копируете из табличного источника, используя имя таблицы вместо запроса, шаблон имени будет следующим: "[имя таблицы].[формат].[сжатие при наличии]". Например, "MyTable.csv".
Нет
modifiedDatetimeStart Фильтр файлов на основе атрибута: Last Modified. Будут выбраны все файлы, у которых время последнего изменения больше или равно modifiedDatetimeStart и меньше modifiedDatetimeEnd. Время представлено часовым поясом UTC в формате "2018-12-01T05:00:00Z".

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

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

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

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

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

Совет

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

Примечание.

Если вы использовали свойство fileFilter для фильтрации файлов, оно по-прежнему поддерживается без изменений, а вам предлагается далее использовать новую возможность фильтрации, добавленную к fileName.

Пример:

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

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

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

Пример:

"activities":[
    {
        "name": "CopyFromAzureFileStorage",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Azure File Storage input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "FileSystemSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

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

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

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

Пример:

"activities":[
    {
        "name": "CopyToAzureFileStorage",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Azure File Storage output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "FileSystemSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

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