Копирование данных в хранилище Azure Data Lake Storage 1-го поколения и из него с помощью Фабрики данных Azure или Azure Synapse Analytics

применимо к: Azure синапсе Analytics фабрика данных Azure

В этой статье описывается копирование данных в Azure Data Lake Storage 1-го поколения и из него. Дополнительные сведения см. в вводной статье о Фабрике данных Azure или Azure Synapse Analytics.

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

Этот соединитель Azure Data Lake Storage 1-го поколения предназначен для выполнения следующих действий.

В частности, с помощью этого соединителя вы можете выполнять следующие задачи.

Важно!

Если вы копируете данные с использованием локальной среды выполнения интеграции, настройте корпоративный брандмауэр, чтобы разрешить исходящий трафик в <ADLS account name>.azuredatalakestore.net и login.microsoftonline.com/<tenant>/oauth2/token через порт 443. Последняя – это служба токенов безопасности Azure, с которой должна взаимодействовать среда выполнения интеграции для получения маркера доступа.

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

Совет

Пошаговое руководство по использованию соединителя Azure Data Lake Store см. в статье Загрузка данных в Azure Data Lake Store.

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

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

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

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

  2. Найдите и выберите соединитель Azure Data Lake Storage 1-го поколения.

    Снимок экрана: соединитель Azure Data Lake Storage 1-го поколения.

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

    Снимок экрана: конфигурация связанной службы для Azure Data Lake Storage 1-го поколения.

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

Следующие разделы содержат сведения о свойствах, которые используются для определения сущностей, характерных для Azure Data Lake Storage 1-го поколения.

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

Для связанной службы Azure Data Lake Store поддерживаются следующие свойства:

Свойство Описание Обязательно
type typeДля свойства необходимо задать значение type. Да
dataLakeStoreUri Сведения об учетной записи Azure Data Lake Store. Эти данные принимают один из следующих форматов: https://[accountname].azuredatalakestore.net/webhdfs/v1 или adl://[accountname].azuredatalakestore.net/. Да
subscriptionId Идентификатор подписки Azure, к которой принадлежит учетная запись Data Lake Store. Необходимо для приемника
имя_группы_ресурсов Имя группы ресурсов Azure, к которой принадлежит учетная запись Data Lake Store. Необходимо для приемника
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Вы можете использовать Azure Integration Runtime или локальную среду IR (если хранилище данных расположено в частной сети). Если это свойство не задано, используется Azure Integration Runtime по умолчанию. нет

Использование аутентификации субъекта-службы

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

  1. Зарегистрируйте сущность приложения в Azure Active Directory и предоставьте ей доступ к Data Lake Store. Подробные инструкции см. в статье Аутентификация между службами в Data Lake Store с помощью Azure Active Directory. Запишите следующие значения, которые используются для определения связанной службы:

    • Идентификатор приложения
    • Ключ приложения
    • Tenant ID
  2. Предоставьте правильное разрешение субъекту-службе. Примеры использования разрешения в Data Lake Storage 1-го поколения см. в статье Контроль доступа в Azure Data Lake Storage 1-го поколения.

    • В качестве источника: в обозревателе данныхпредоставьте по крайней мере разрешение EXECUTE для всех исходящих папок, включая корневой каталог, а также разрешение Чтение для копируемых файлов. Вы можете выбрать добавление в эту папку и все дочерние элементы для свойства recursive и добавить в качестве записи разрешения доступа и записи разрешения по умолчанию. Требования к управлению доступом на уровне учетной записи (IAM) отсутствуют.
    • В качестве приемника: в обозревателе данныхпредоставьте по крайней мере разрешение на выполнение для всех исходящих папок, включая корневой каталог, а также разрешение на запись для папки приемника. Вы можете выбрать добавление в эту папку и все дочерние элементы для свойства recursive и добавить в качестве записи разрешения доступа и записи разрешения по умолчанию.

Поддерживаются следующие свойства:

Свойство Описание Обязательно
servicePrincipalId Укажите идентификатора клиента приложения. Да
servicePrincipalKey Укажите ключ приложения. Пометьте это поле как объект SecureString для безопасного хранения или SecureString. Да
tenant Укажите сведения о клиенте, такие как доменное имя или идентификатор клиента, в котором находится приложение. Эти сведения можно получить, наведя указатель мыши на правый верхний угол страницы портала Azure. Да
azureCloudType Для проверки подлинности субъекта-службы укажите тип облачной среды Azure, в которой зарегистрировано приложение Azure Active Directory.
Допустимые значения: AzurePublic, AzureChina, AzureUsGovernment и AzureGermany. По умолчанию используется облачная среда службы.
Нет

Пример.

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "servicePrincipalId": "<service principal id>",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

Фабрику данных или рабочую область Synapse можно связать с управляемым удостоверением, назначаемым системой, которое представляет службу для проверки подлинности. Это управляемое удостоверение, назначаемое системой можно напрямую использовать для проверки подлинности Data Lake Store так же, как собственный субъект-службу. Оно разрешает выделенному ресурсу обращаться к данным и копировать их из службы Data Lake Store и в нее.

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

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

  2. Предоставьте управляемому удостоверению, назначаемому системой, доступ к Data Lake Store. Примеры использования разрешения в Data Lake Storage 1-го поколения см. в статье Контроль доступа в Azure Data Lake Storage 1-го поколения.

    • В качестве источника: в обозревателе данныхпредоставьте по крайней мере разрешение EXECUTE для всех исходящих папок, включая корневой каталог, а также разрешение Чтение для копируемых файлов. Вы можете выбрать добавление в эту папку и все дочерние элементы для свойства recursive и добавить в качестве записи разрешения доступа и записи разрешения по умолчанию. Требования к управлению доступом на уровне учетной записи (IAM) отсутствуют.
    • В качестве приемника: в обозревателе данныхпредоставьте по крайней мере разрешение на выполнение для всех исходящих папок, включая корневой каталог, а также разрешение на запись для папки приемника. Вы можете выбрать добавление в эту папку и все дочерние элементы для свойства recursive и добавить в качестве записи разрешения доступа и записи разрешения по умолчанию.

Не нужно указывать ничего, кроме общих сведений о Data Lake Store в связанной службе.

Пример.

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

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

  1. Создайте одно или несколько удостоверенный, назначаемых пользователем, и предоставьте доступ к Azure Data Lake. Примеры использования разрешения в Data Lake Storage 1-го поколения см. в статье Контроль доступа в Azure Data Lake Storage 1-го поколения.

    • В качестве источника: в обозревателе данныхпредоставьте по крайней мере разрешение EXECUTE для всех исходящих папок, включая корневой каталог, а также разрешение Чтение для копируемых файлов. Вы можете выбрать добавление в эту папку и все дочерние элементы для свойства recursive и добавить в качестве записи разрешения доступа и записи разрешения по умолчанию. Требования к управлению доступом на уровне учетной записи (IAM) отсутствуют.
    • В качестве приемника: в обозревателе данныхпредоставьте по крайней мере разрешение на выполнение для всех исходящих папок, включая корневой каталог, а также разрешение на запись для папки приемника. Вы можете выбрать добавление в эту папку и все дочерние элементы для свойства recursive и добавить в качестве записи разрешения доступа и записи разрешения по умолчанию.
  2. Присвойте одно или несколько управляемых удостоверений, назначаемых пользователем, фабрике данных и создайте учетные данные для каждого такого удостоверения.

Поддерживается следующее свойство:

Свойство Описание Обязательное значение
credentials Укажите назначаемое пользователем управляемое удостоверение в качестве объекта учетных данных. Да

Пример.

{
    "name": "AzureDataLakeStoreLinkedService",
    "properties": {
        "type": "AzureDataLakeStore",
        "typeProperties": {
            "dataLakeStoreUri": "https://<accountname>.azuredatalakestore.net/webhdfs/v1",
            "subscriptionId": "<subscription of ADLS>",
            "resourceGroupName": "<resource group of ADLS>",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

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

Ниже перечислены свойства, которые поддерживаются для Azure Data Lake Storage 1-го поколения в настройках location в наборе данных на основе формата.

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

Пример.

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

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

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

Azure Data Lake Store в качестве источника

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

Ниже перечислены свойства, которые поддерживаются для Azure Data Lake Storage 1-го поколения в настройках storeSettings в источнике копирования на основе формата.

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

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

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

Пример.

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

Azure Data Lake Store в качестве приемника

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

Ниже перечислены свойства, которые поддерживаются для Azure Data Lake Storage 1-го поколения в настройках storeSettings в приемнике копирования на основе формата.

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

Допустимые значения:
— PreserveHierarchy (по умолчанию). Сохраняет иерархию файлов в целевой папке. Относительный путь исходного файла в исходной папке идентичен относительному пути целевого файла в целевой папке.
— FlattenHierarchy. Все файлы из исходной папки размещаются на первом уровне в целевой папке. Целевые файлы имеют автоматически сформированные имена.
— MergeFiles. Объединяет все файлы из исходной папки в один файл. Если указано имя файла, то оно присваивается объединенному файлу. В противном случае присваивается автоматически созданное имя файла.
нет
expiryDateTime Указывает время окончания срока действия записанных файлов. Время представлено часовым поясом UTC в формате "2020-03-01T08:00:00Z". По умолчанию параметру задано значение NULL, что означает неограниченный срок действия записанных файлов. нет
maxConcurrentConnections Верхний предел одновременных подключений, установленных для хранилища данных при выполнении действия. Указывайте значение только при необходимости ограничить количество одновременных подключений. нет

Пример.

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

Примеры фильтров по диапазону имен

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

Пример исходной структуры Параметр Configuration Результат
корневой
    а
        file.csv
    ax
        file2.csv
    ax.csv
    b
        file3.csv
    bx.csv
    с
        file4.csv
    cx.csv
В наборе данных:
— Путь к папке: root

В источнике действия копирования:
- Список после: a
- Список перед: b
Будут скопированы следующие файлы:

корневой
    ax
        file2.csv
    ax.csv
    b
        file3.csv

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

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

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

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

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

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

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

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

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

Примеры поведения операции копирования

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

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

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

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

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

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

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

Папка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" не будет включена в эту папку.

Сохранение списков управления доступом в Data Lake Storage 2-го поколения

Совет

Пошаговые инструкции и рекомендации по копированию данных из Azure Data Lake Storage 1-го поколения в Azure Data Lake Storage 2-го поколения см. в статье Копирование данных из Azure Data Lake Storage 1-го поколения в Azure Data Lake Storage 2-го поколения с помощью Фабрики данных Azure.

Если при обновлении с Data Lake Storage 1-го поколения до Data Lake Storage 2-го поколения требуется реплицировать списки управления доступом (ACL) вместе с файлами данных, см. сведения в разделе о сохранении списков управления доступом из Data Lake Storage 1-го поколения.

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

При преобразовании данных в потоках данных для сопоставления можно считывать и записывать файлы из Azure Data Lake Storage 1-го поколения в следующих форматах:

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

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

При преобразовании источника можно выполнять чтение из контейнера, папки или отдельного файла в Azure Data Lake Storage 1-го поколения. Настройки управления чтением файлов находятся на вкладке Параметры источника.

Параметры источника

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

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

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

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

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

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

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

  • /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 с двузначным числом в качестве префикса.

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

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

Параметры исходного файла раздела

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

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

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

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

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

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

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

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

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

/data/sales

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

/backup/priorSales

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

Примечание

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

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

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

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

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

В преобразовании приемника можно выполнять запись в контейнер или папку в хранилище Azure Data Lake Storage 1-го поколения. Настройки управления записью файлов находятся на вкладке Параметры.

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

Совет

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

Пример.

{
    "name": "ADLSDataset",
    "properties": {
        "type": "AzureDataLakeStoreFile",
        "linkedServiceName":{
            "referenceName": "<ADLS linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "folderPath": "datalake/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"
            }
        }
    }
}

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

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

Пример.

"activities":[
    {
        "name": "CopyFromADLSGen1",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<ADLS Gen1 input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AzureDataLakeStoreSource",
                "recursive": true
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

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

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

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

Пример.

"activities":[
    {
        "name": "CopyToADLSGen1",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<ADLS Gen1 output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "AzureDataLakeStoreSink",
                "copyBehavior": "PreserveHierarchy"
            }
        }
    }
]

Система отслеживания измененных данных (Предварительная версия)

фабрика данных Azure может получать новые или измененные файлы только из Azure Data Lake Storage 1-го поколения, включив параметр включить систему отслеживания измененных данных (предварительная версия) в преобразовании источника потока данных сопоставления. С помощью этого параметра соединителя можно считывать только новые или обновленные файлы и применять преобразования перед загрузкой преобразованных данных в нужные целевые наборы.

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

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

В разделе "Мониторинг" всегда есть возможность повторного запуска конвейера. При этом изменения всегда помещаются из записи контрольной точки в выбранном запуске конвейера.

Дальнейшие действия

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