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


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

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

Совет

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

В этой статье описано, как скопировать данные с сервера распределенной файловой системы Hadoop (HDFS). Дополнительные сведения см. в вводных статьях о Фабрике данных Azure и Synapse Analytics.

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

Соединитель HDFS поддерживает следующие возможности:

Поддерживаемые возможности IR
Действие копирования (источник/-) (1) (2)
Действие поиска (1) (2)
Действие удаления (1) (2)

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

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

  • Копирование файлов с помощью проверки подлинности Windows (Kerberos) или анонимная.
  • Копирование файлов с помощью протокола webhdfs или встроенной поддержки DistCp.
  • Копирование файлов "как есть" либо посредством разбора или создания файлов с использованием поддерживаемых форматов файлов и кодеков сжатия.

Необходимые компоненты

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

Если же хранилище данных представляет собой управляемую облачную службу данных, можно использовать Azure Integration Runtime. Если доступ предоставляется только по IP-адресам, утвержденным в правилах брандмауэра, вы можете добавить IP-адреса Azure Integration Runtime в список разрешений.

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

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

Примечание.

Убедитесь, что Integration Runtime доступны все адреса [сервер_узла_имен]:[порт_узла_имен] и [сервер_узла_данных]:[порт_узла_данных] кластера Hadoop. По умолчанию используются [порт_узла_имен] 50070 и [порт_узла_данных] 50075.

Начать

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

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

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

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

  2. Найдите HDFS и выберите разъем HDFS.

    Выберите соединитель HDFS.

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

    Настройте связанную службу с HDFS.

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

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

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

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

Свойство Описание: Обязательное поле
type Для свойства type необходимо задать значение Hdfs. Да
URL-адрес URL-адрес в HDFS Да
authenticationType Допустимые значения — Анонимная или Windows.

Сведения о настройке локальной среды см. в разделе Использование проверки подлинности Kerberos для соединителя HDFS.
Да
userName Имя пользователя для проверки подлинности Windows. Для проверки подлинности Kerberos укажите <username>@<domain>.com. Да (для проверки подлинности Windows)
password Пароль для проверки подлинности Windows. Пометьте это поле как SecureString, чтобы безопасно хранить его, или добавьте ссылку на секрет, хранящийся в Azure Key Vault. Да (для проверки подлинности Windows)
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Подробнее см. в разделе Необходимые требования. Если среда выполнения интеграции не указана, служба использует среду выполнения интеграции Azure Integration Runtime по умолчанию. No

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

{
    "name": "HDFSLinkedService",
    "properties": {
        "type": "Hdfs",
        "typeProperties": {
            "url" : "http://<machine>:50070/webhdfs/v1/",
            "authenticationType": "Anonymous",
            "userName": "hadoop"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Пример: использование проверки подлинности Windows

{
    "name": "HDFSLinkedService",
    "properties": {
        "type": "Hdfs",
        "typeProperties": {
            "url" : "http://<machine>:50070/webhdfs/v1/",
            "authenticationType": "Windows",
            "userName": "<username>@<domain>.com (for Kerberos auth)",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

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

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

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

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

Пример:

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

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

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

HDFS в качестве источника

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

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

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

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

Предположим, что вы настроили путь в наборе данных следующим образом: "root/folder/year=2020/month=08/day=27".
— Если указать корневой путь секции "root/folder/year=2020", действие копирования в дополнение к указанным в файлах столбцам создаст еще два столбца, month и day, со значениями "08" и "27" соответственно.
— Если корневой путь секции не указан, дополнительные столбцы создаваться не будут.
No
maxConcurrentConnections Верхний предел одновременных подключений, установленных для хранилища данных при выполнении действия. Указывайте значение только при необходимости ограничить количество одновременных подключений. No
Параметры DistCp
distcpSettings Группа свойств, используемая с HDFS DistCp. No
resourceManagerEndpoint Конечная точка YARN (Yet Another Resource Negotiator) Да, если используется DistCp
tempScriptPath Путь к папке для хранения временного командного скрипта DistCp. Файл сценария создается, а после завершения задания копирования он удаляется. Да, если используется DistCp
distcpOptions Дополнительные параметры для команды DistCp. No

Пример:

"activities":[
    {
        "name": "CopyFromHDFS",
        "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": "HdfsReadSettings",
                    "recursive": true,
                    "distcpSettings": {
                        "resourceManagerEndpoint": "resourcemanagerendpoint:8088",
                        "tempScriptPath": "/usr/hadoop/tempscript",
                        "distcpOptions": "-m 100"
                    }
                }
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

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

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

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

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

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

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

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

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

Использовать DistCp для копирования данных из HDFS

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

Действие копирования поддерживает использование DistCp для копирования файлов в хранилище BLOB-объектов Azure (включая промежуточное копирование) или Azure Data Lake Store. В этом случае DistCp может воспользоваться возможностями кластера, а не работать в локальной среде выполнения интеграции. При использовании DistCp пропускная способность копирования будет выше, особенно если ваш кластер очень мощный. Основываясь на вашей конфигурации, действие Copy автоматически создает команду DistCp, передает ее в ваш кластер Hadoop и контролирует состояние копирования.

Необходимые компоненты

Чтобы использовать DistCp для копирования файлов "как есть" из HDFS в большой двоичный объект Azure (включая промежуточную копию) или в Azure Data Lake Store, убедитесь, что ваш кластер Hadoop соответствует требованиям ниже:

  • Службы MapReduce и YARN включены.

  • Версия YARN— 2.5 или более поздняя.

  • Сервер HDFS интегрирован с вашим целевым хранилищем данных: Хранилище BLOB-объектов Azure или Azure Data Lake Store (ADLS 1-го поколения):

    • Начиная с версии Hadoop 2.7, изначально поддерживается файловая система больших двоичных объектов Azure. Необходимо только указать путь JAR в конфигурации среды Hadoop.
    • Файловая система Azure Data Lake Store упаковывается, начиная с Hadoop версии 3.0.0-alpha1. Если используется более ранняя версия кластера Hadoop, необходимо вручную импортировать связанные с Azure Data Lake Store пакеты JAR (azure-datalake-store.jar) в кластер отсюда, а также указать путь к JAR-файлу в конфигурации среды Hadoop.
  • Подготовьте временную папку в HDFS. Она используется для хранения скрипта оболочки DistCp, поэтому она будет занимать пространство на уровне килобайтов.

  • Убедитесь, что учетная запись пользователя, предоставленная в связанной службе HDFS, имеет следующие разрешения:

    • Отправка приложения в YARN.
    • Создание вложенной папки и файлов для чтения и записи во временной папке.

Конфигурации

См. варианты конфигурации, связанные с DistCp, а также примеры в разделе HDFS в качестве источника.

Использование проверки подлинности Kerberos для соединителя HDFS

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

Для любого из этих вариантов включите webhdfs для кластера Hadoop:

  1. Создайте субъект HTTP и keytab для webhdfs.

    Внимание

    Участник HTTP Kerberos должен начинаться с "HTTP/" в соответствии со спецификацией Kerberos HTTP SPNEGO. Узнайте больше здесь.

    Kadmin> addprinc -randkey HTTP/<namenode hostname>@<REALM.COM>
    Kadmin> ktadd -k /etc/security/keytab/spnego.service.keytab HTTP/<namenode hostname>@<REALM.COM>
    
  2. Параметры конфигурации HDFS: добавьте следующие три свойства в hdfs-site.xml.

    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>dfs.web.authentication.kerberos.principal</name>
        <value>HTTP/_HOST@<REALM.COM></value>
    </property>
    <property>
        <name>dfs.web.authentication.kerberos.keytab</name>
        <value>/etc/security/keytab/spnego.service.keytab</value>
    </property>
    

Вариант 1. Присоединение компьютера, где выполняется локальная среда выполнения интеграции, к области Kerberos

Требования

  • Компьютер, где выполняется локальная среда выполнения интеграции, нужно присоединить к области Kerberos. Его нельзя присоединять к домену Windows.

Порядок настройки

На сервере KDC:

Создайте субъект и укажите пароль.

Внимание

Имя пользователя не должно содержать имя узла.

Kadmin> addprinc <username>@<REALM.COM>

На компьютере, где выполняется локальная среда выполнения интеграции:

  1. Запустите служебную программу Ksetup, чтобы настроить сервер центра распространения ключей (KDC) и область Kerberos.

    Компьютер должен быть настроен как член рабочей группы, так как области Kerberos отличаются от доменов Windows. Эту конфигурацию можно настроить, задав область Kerberos и добавив сервер KDC с помощью следующих команд. Замените REALM.COM значением своей области.

    C:> Ksetup /setdomain REALM.COM
    C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    

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

  2. Проверьте конфигурацию с помощью команды Ksetup. Результат должен выглядеть примерно так:

    C:> Ksetup
    default realm = REALM.COM (external)
    REALM.com:
        kdc = <your_kdc_server_address>
    

В фабрике данных или рабочей области Synapse:

  • Настройте соединитель HDFS на использование проверки подлинности Windows, указав имя участника Kerberos и пароль для подключения к источнику данных HDFS. Дополнительные сведения о конфигурации см. в разделе свойств связанной службы HDFS.

Вариант 2. Включение взаимного доверия между доменом Windows и областью Kerberos

Требования

  • Компьютер, где выполняется локальная среда выполнения интеграции, необходимо присоединить к домену Windows.
  • Требуется разрешение на обновление параметров контроллера домена.

Порядок настройки

Примечание.

При необходимости замените REALM.COM и AD.COM именем области и контроллером домена в следующем руководстве.

На сервере KDC:

  1. Измените конфигурацию центра распространения ключей в файле krb5.conf, чтобы создать отношения доверия с доменом Windows, как указано ниже в шаблоне конфигурации. По умолчанию файл конфигурации содержится в папке /etc/krb5.conf.

    [logging]
     default = FILE:/var/log/krb5libs.log
     kdc = FILE:/var/log/krb5kdc.log
     admin_server = FILE:/var/log/kadmind.log
    
    [libdefaults]
     default_realm = REALM.COM
     dns_lookup_realm = false
     dns_lookup_kdc = false
     ticket_lifetime = 24h
     renew_lifetime = 7d
     forwardable = true
    
    [realms]
     REALM.COM = {
      kdc = node.REALM.COM
      admin_server = node.REALM.COM
     }
    AD.COM = {
     kdc = windc.ad.com
     admin_server = windc.ad.com
    }
    
    [domain_realm]
     .REALM.COM = REALM.COM
     REALM.COM = REALM.COM
     .ad.com = AD.COM
     ad.com = AD.COM
    
    [capaths]
     AD.COM = {
      REALM.COM = .
     }
    

    После настройки файла перезапустите сервис KDC.

  2. Подготовьте субъект krbtgt/REALM.COM@AD.COM на сервере KDC, используя следующую команду:

    Kadmin> addprinc krbtgt/REALM.COM@AD.COM
    
  3. В файл конфигурации службы HDFS hadoop.security.auth_to_local добавьте RULE:[1:$1@$0](.*\@AD.COM)s/\@.*//.

На контроллере домена:

  1. Выполните следующие Ksetup команды, чтобы добавить запись области:

    C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
    
  2. Установите доверие между доменом Windows и областью Kerberos. Вместо [password] укажите пароль субъекта krbtgt/REALM.COM@AD.COM.

    C:> netdom trust REALM.COM /Domain: AD.COM /add /realm /password:[password]
    
  3. Выберите алгоритм шифрования, используемый в Kerberos.

    a. Выберите Диспетчер сервера>Управление групповой политикой>Домен>Объекты групповой политики>Групповая политика: действующая или по умолчанию, а затем нажмите Изменить.

    b. В области Редактор управления групповой политикой выберите Конфигурация компьютера>Политики>Параметры Windows>Параметры безопасности>Локальные политики>Параметры безопасности, а затем настройте Сетевая безопасность: настройка типов шифрования, разрешенных для Kerberos.

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

    Снимок экрана:

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

    C:> ksetup /SetEncTypeAttr REALM.COM DES-CBC-CRC DES-CBC-MD5 RC4-HMAC-MD5 AES128-CTS-HMAC-SHA1-96 AES256-CTS-HMAC-SHA1-96
    
  4. Чтобы использовать субъект Kerberos в домене Windows, создайте сопоставление между учетной записью домена и субъектом Kerberos.

    a. Последовательно выберите Администрирование>Active Directory — пользователи и компьютеры.

    b. Настройте дополнительные функции, выбрав Вид>Дополнительные параметры.

    c. На панели Дополнительные функции щелкните правой кнопкой мыши учетную запись, для которой нужно создать сопоставления, и на панели Сопоставления имен выберите вкладку Имена Kerberos.

    d. Добавьте субъект из области.

    Снимок экрана:

На компьютере, где выполняется локальная среда выполнения интеграции:

  • Выполните следующие команды Ksetup, чтобы добавить запись области.

    C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
    C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
    

В фабрике данных или рабочей области Synapse:

  • Настройте соединитель HDFS для использования проверки подлинности Windows, указав учетную запись домена или имя субъекта-службы Kerberos для подключения к источнику данных HDFS. Сведения о настройке см. в разделе Свойства связанной службы HDFS.

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

Сведения о свойствах действия поиска см. в статье Действие поиска в Фабрике данных Azure.

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

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

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

Примечание.

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

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

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

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

Допустимые знаки подстановки для фильтра: * (соответствует нулю или нескольким символам) и ? (соответствует нулю или одному символу).
Пример 1. "fileName": "*.csv"
Пример 2. "fileName": "???20180427.txt"
Используйте ^ для экранирования знаков, если фактическое имя папки содержит подстановочный знак или этот escape-символ.
No
modifiedDatetimeStart Фильтрация файлов на основе атрибута Last Modified. Выбираются все файлы, у которых время последнего изменения больше или равно modifiedDatetimeStart и меньше modifiedDatetimeEnd. Время представлено часовым поясом UTC в формате 2018-12-01T05:00:00Z.

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

Свойства могут иметь значение NULL. Это означает, что фильтры атрибута файла не применяются к набору данных. Если для параметра modifiedDatetimeStart задано значение даты и времени, но параметр modifiedDatetimeEnd имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения больше указанного значения даты и времени или равен ему. Если для параметра modifiedDatetimeEnd задано значение даты и времени, но параметр modifiedDatetimeStart имеет значение NULL, то выбираются файлы, чей атрибут времени последнего изменения меньше указанного значения даты и времени.
No
modifiedDatetimeEnd Фильтрация файлов на основе атрибута Last Modified. Выбираются все файлы, у которых время последнего изменения больше или равно 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.
Чтобы скопировать один файл с заданным именем, укажите folderPath с частью папки и fileName с именем файла.
Чтобы скопировать подмножество файлов в папке, укажите folderPath с частью папки и fileName с фильтром подстановочных знаков.

Пример:

{
    "name": "HDFSDataset",
    "properties": {
        "type": "FileShare",
        "linkedServiceName":{
            "referenceName": "<HDFS 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"
            }
        }
    }
}

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

Свойство Описание: Обязательное поле
type Свойство type источника действия копирования должно иметь значение HdfsSource. Да
recursive Указывает, следует ли читать данные рекурсивно из вложенных папок или только из указанной папки. Если для свойства recursive задано значение true, а приемником является файловое хранилище, пустые папки и вложенные папки не копируются и не создаются в приемнике.
Допустимые значения: true (по умолчанию) и false.
No
distcpSettings Группа свойств, когда вы используете HDFS DistCp. No
resourceManagerEndpoint Конечная точка YARN Resource Manager Да, если используется DistCp
tempScriptPath Путь к папке для хранения временного командного скрипта DistCp. Файл сценария создается, а после завершения задания копирования он удаляется. Да, если используется DistCp
distcpOptions Дополнительные параметры для команды DistCp. No
maxConcurrentConnections Верхний предел одновременных подключений, установленных для хранилища данных при выполнении действия. Указывайте значение только при необходимости ограничить количество одновременных подключений. No

Пример. Источник HDFS в действии копирования с использованием DistCp

"source": {
    "type": "HdfsSource",
    "distcpSettings": {
        "resourceManagerEndpoint": "resourcemanagerendpoint:8088",
        "tempScriptPath": "/usr/hadoop/tempscript",
        "distcpOptions": "-m 100"
    }
}

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