Копирование данных с 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:
- средство копирования данных;
- Портал Azure
- Пакет SDK для .NET
- Пакет SDK для Python
- Azure PowerShell
- The REST API
- шаблон Azure Resource Manager.
Создание связанной службы с HDFS с помощью пользовательского интерфейса
Выполните следующие действия, чтобы создать связанную службу с HDFS в пользовательском интерфейсе портала Azure.
Перейдите на вкладку "Управление" в рабочей области Фабрики данных Azure или Synapse и выберите "Связанные службы", после чего нажмите "Создать":
Найдите HDFS и выберите разъем 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 поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.
- Формат Avro
- Двоичный формат
- Формат текста с разделителями
- Формат Excel
- Формат JSON
- Формат ORC
- Формат Parquet
- ФОРМАТ XML
Ниже перечислены свойства, которые поддерживаются для 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 поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.
- Формат Avro
- Двоичный формат
- Формат текста с разделителями
- Формат Excel
- Формат JSON
- Формат ORC
- Формат Parquet
- ФОРМАТ XML
Ниже перечислены свойства, которые поддерживаются для 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. Вы можете выбрать тот, который лучше подходит для вашей ситуации.
- Вариант 1. Присоединение компьютера, где выполняется локальная среда выполнения интеграции, к области Kerberos
- Вариант 2. Включение взаимного доверия между доменом Windows и областью Kerberos
Для любого из этих вариантов включите webhdfs для кластера Hadoop:
Создайте субъект 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>
Параметры конфигурации 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>
На компьютере, где выполняется локальная среда выполнения интеграции:
Запустите служебную программу Ksetup, чтобы настроить сервер центра распространения ключей (KDC) и область Kerberos.
Компьютер должен быть настроен как член рабочей группы, так как области Kerberos отличаются от доменов Windows. Эту конфигурацию можно настроить, задав область Kerberos и добавив сервер KDC с помощью следующих команд. Замените REALM.COM значением своей области.
C:> Ksetup /setdomain REALM.COM C:> Ksetup /addkdc REALM.COM <your_kdc_server_address>
После выполнения этих команд перезапустите компьютер.
Проверьте конфигурацию с помощью команды
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:
Измените конфигурацию центра распространения ключей в файле 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.
Подготовьте субъект krbtgt/REALM.COM@AD.COM на сервере KDC, используя следующую команду:
Kadmin> addprinc krbtgt/REALM.COM@AD.COM
В файл конфигурации службы HDFS hadoop.security.auth_to_local добавьте
RULE:[1:$1@$0](.*\@AD.COM)s/\@.*//
.
На контроллере домена:
Выполните следующие
Ksetup
команды, чтобы добавить запись области:C:> Ksetup /addkdc REALM.COM <your_kdc_server_address> C:> ksetup /addhosttorealmmap HDFS-service-FQDN REALM.COM
Установите доверие между доменом Windows и областью Kerberos. Вместо [password] укажите пароль субъекта krbtgt/REALM.COM@AD.COM.
C:> netdom trust REALM.COM /Domain: AD.COM /add /realm /password:[password]
Выберите алгоритм шифрования, используемый в 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
Чтобы использовать субъект 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"
}
}
Связанный контент
Список хранилищ данных, которые поддерживаются в качестве источников и приемников для действия копирования, приведен в таблице Поддерживаемые хранилища данных и форматы.