Копирование и преобразование данных из Hive с помощью фабрики данных Azure
ОБЛАСТЬ ПРИМЕНЕНИЯ: Фабрика данных Azure Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
В этой статье описывается, как с помощью действия копирования в Фабрике данных Azure и конвейерах Azure Synapse Analytics копировать данные из Hive. Это продолжение статьи об обзоре действия копирования, в которой представлены общие сведения о действии копирования.
Поддерживаемые возможности
Соединитель Hive поддерживается для следующих возможностей:
Поддерживаемые возможности | IR |
---|---|
Действие копирования (источник/-) | (1) (2) |
Поток данных для сопоставления (источник/-) | (1) |
Действие поиска | (1) (2) |
① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции
Список хранилищ данных, которые поддерживаются в качестве источников и приемников для действия копирования, приведен в таблице Поддерживаемые хранилища данных и форматы.
Служба предоставляет встроенный драйвер для обеспечения подключения, поэтому вам не нужно вручную устанавливать какой-либо драйвер с помощью этого соединителя.
Соединитель поддерживает версии Windows в этой статье.
Необходимые компоненты
Если хранилище данных размещено в локальной сети, виртуальной сети Azure или виртуальном частном облаке Amazon, для подключения к нему нужно настроить локальную среду выполнения интеграции.
Если же хранилище данных представляет собой управляемую облачную службу данных, можно использовать Azure Integration Runtime. Если доступ предоставляется только по IP-адресам, утвержденным в правилах брандмауэра, вы можете добавить IP-адреса Azure Integration Runtime в список разрешений.
Вы также можете использовать функцию среды выполнения интеграции в управляемой виртуальной сети в Фабрике данных Azure для доступа к локальной сети без установки и настройки локальной среды выполнения интеграции.
Дополнительные сведения о вариантах и механизмах обеспечения сетевой безопасности, поддерживаемых Фабрикой данных, см. в статье Стратегии получения доступа к данным.
Начало работы
Чтобы выполнить действие копирования с конвейером, можно воспользоваться одним из приведенных ниже средств или пакетов SDK:
- средство копирования данных;
- Портал Azure
- Пакет SDK для .NET
- Пакет SDK для Python
- Azure PowerShell
- The REST API
- шаблон Azure Resource Manager.
Создание связанной службы для Hive с помощью пользовательского интерфейса
Выполните следующие действия, чтобы создать связанную службу для Hive в пользовательском интерфейсе портала Azure.
Перейдите на вкладку "Управление" в рабочей области Фабрики данных Azure или Synapse и выберите "Связанные службы", после чего нажмите "Создать":
Найдите Hive и выберите соединитель Hive.
Настройте сведения о службе, проверьте подключение и создайте связанную службу.
Сведения о конфигурации соединителя
Следующие разделы содержат сведения о свойствах, которые используются для определения сущностей фабрики данных, относящихся к соединителю Hive.
Свойства связанной службы
Для связанной службы Hive поддерживаются следующие свойства:
Свойство | Описание: | Обязательное поле |
---|---|---|
type | Для свойства type необходимо задать значение Hive. | Да |
host | IP-адрес или имя узла сервера Hive, разделенные ";" для нескольких узлов (только при включенном режиме serviceDiscoveryMode). | Да |
port | TCP-порт, используемый сервером Hive для прослушивания клиентских подключений. При подключении к Azure HDInsights укажите порт 443. | Да |
serverType | Тип сервера Hive. Допустимые значения: HiveServer1, HiveServer2, HiveThriftServer. |
No |
thriftTransportProtocol | Транспортный протокол для использования в слое Thrift. Допустимые значения: Binary, SASL, HTTP |
No |
authenticationType | Метод проверки подлинности, используемый для доступа к серверу Hive. Допустимые значения: Anonymous, Username, UsernameAndPassword, WindowsAzureHDInsightService. Проверка подлинности Kerberos теперь не поддерживается. |
Да |
serviceDiscoveryMode | Значение true, если служба ZooKeeper используется, значение false — если нет. | No |
zooKeeperNameSpace | Пространство имен на ZooKeeper, в которое добавлены 2 узла сервера Hive. | No |
useNativeQuery | Определяет, использует ли драйвер собственные запросы HiveQL или преобразует их в эквивалентную форму в HiveQL. | No |
username | Имя пользователя, которое позволяет получить доступ к серверу Hive. | No |
password | Пароль, соответствующий пользователю. Пометьте это поле как SecureString, чтобы безопасно хранить его, или добавьте ссылку на секрет, хранящийся в Azure Key Vault. | No |
httpPath | Частичный URL-адрес, соответствующий серверу Hive. | No |
enableSsl | Указывает, шифруются ли подключения к серверу с помощью протокола TLS. По умолчанию используется значение false. | No |
trustedCertPath | Полный путь к PEM-файлу, который содержит сертификаты доверенного ЦС для проверки сервера при подключении по протоколу TLS. Это свойство можно установить только при использовании TLS в локальных средах выполнения интеграции. Значением по умолчанию является файл cacerts.pem, который устанавливается вместе с IR. | No |
useSystemTrustStore | Указывает, следует ли использовать сертификат ЦС из доверенного хранилища системы или из указанного PEM-файла. По умолчанию используется значение false. | No |
allowHostNameCNMismatch | Указывает, следует ли требовать, чтобы имя TLS/SSL-сертификата, выданного ЦС, совпадало с именем узла сервера при подключении по протоколу TLS. По умолчанию используется значение false. | No |
allowSelfSignedServerCert | Указывает, следует ли разрешить использование самозаверяющих сертификатов с сервера. По умолчанию используется значение false. | No |
connectVia | Среда выполнения интеграции, используемая для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные условия. Если не указано другое, по умолчанию используется интегрированная среда выполнения Azure. | No |
storageReference | Ссылка на связанную службу учетной записи хранения, используемую для промежуточного хранения и обработки в потоке данных для сопоставления. Это необходимо только при использовании связанной службы Hive в потоке данных для сопоставления | No |
Пример:
{
"name": "HiveLinkedService",
"properties": {
"type": "Hive",
"typeProperties": {
"host" : "<cluster>.azurehdinsight.net",
"port" : "<port>",
"authenticationType" : "WindowsAzureHDInsightService",
"username" : "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
}
}
}
Свойства набора данных
Полный список разделов и свойств, доступных для определения наборов данных, см. в статье о наборах данных. Этот раздел содержит список свойств, поддерживаемых набором данных Hive.
Чтобы скопировать данные из Hive, установите свойство типа набора данных HiveObject. Поддерживаются следующие свойства:
Свойство | Описание: | Обязательное поле |
---|---|---|
type | Свойство type для набора данных должно иметь значение HiveObject | Да |
schema | Имя схемы. | Нет (если свойство query указано в источнике действия) |
table | Имя таблицы. | Нет (если свойство query указано в источнике действия) |
tableName | Имя таблицы с указанием части схемы. Это свойство поддерживается только для обеспечения обратной совместимости. Для новой рабочей нагрузки используйте schema и table . |
Нет (если свойство query указано в источнике действия) |
Пример
{
"name": "HiveDataset",
"properties": {
"type": "HiveObject",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<Hive linked service name>",
"type": "LinkedServiceReference"
}
}
}
Свойства действия копирования
Полный список разделов и свойств, используемых для определения действий, см. в статье Конвейеры и действия в фабрике данных Azure. Этот раздел содержит список свойств, поддерживаемых источником Hive.
HiveSource в качестве источника
Чтобы копировать данные из Hive, установите тип источника HiveSource в действии копирования. В разделе source действия копирования поддерживаются следующие свойства:
Свойство | Описание: | Обязательное поле |
---|---|---|
type | Свойство type источника действия копирования должно иметь значение HiveSource. | Да |
query | Используйте пользовательский SQL-запрос для чтения данных. Например: "SELECT * FROM MyTable" . |
Нет (если для набора данных задано свойство tableName) |
Пример:
"activities":[
{
"name": "CopyFromHive",
"type": "Copy",
"inputs": [
{
"referenceName": "<Hive input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "HiveSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Свойства потока данных для сопоставления
Соединитель Hive поддерживается в качестве встроенного источника данных в потоках данных для сопоставления. Чтение с помощью запроса или непосредственно из таблицы Hive в HDInsight. Данные Hive помещаются в учетную запись хранения в виде файлов Parquet перед преобразованиями в составе потока данных.
Свойства источника
В таблице, приведенной ниже, указаны свойства, поддерживаемые источником Hive. Изменить эти свойства можно на вкладке Source options (Параметры источника).
Имя | Описание | Обязательное поле | Допустимые значения | Свойство скрипта для потока данных |
---|---|---|---|---|
Store (Сохранить) | Хранилище должно быть hive |
yes | hive |
хранилище |
Формат | Выполняется ли чтение из таблицы или запроса | yes | table или query |
format |
Имя схемы | При чтении из таблицы схема исходной таблицы | Да, если формат table |
Строка | schemaName |
Имя таблицы | При чтении из таблицы имя таблицы | Да, если формат table |
Строка | tableName |
Query | Если для параметра format задано значение query , то исходный запрос к связанной службе Hive |
Да, если формат query |
Строка | query |
Промежуточное хранение | Таблица Hive всегда будет промежуточной. | yes | true |
промежуточное хранение |
Контейнер хранилища | Контейнер хранилища, используемый для промежуточного хранения данных перед чтением из Hive или записью в Hive. Кластер Hive должен иметь доступ к этому контейнеру. | yes | Строка | storageContainer |
Промежуточная база данных | Схема или база данных, к которым имеет доступ учетная запись пользователя, указанная в связанной службе. Это используется для создания внешних таблиц во время промежуточного хранения и последующего удаления | no | true или false |
stagingDatabaseName |
Предшествующие скрипты SQL | Код SQL для выполнения в таблице Hive перед чтением данных | no | Строка | preSQLs |
Пример источника
Ниже приведен пример конфигурации источника Hive:
Эти параметры переводятся в следующий сценарий потока данных:
source(
allowSchemaDrift: true,
validateSchema: false,
ignoreNoFilesFound: false,
format: 'table',
store: 'hive',
schemaName: 'default',
tableName: 'hivesampletable',
staged: true,
storageContainer: 'khive',
storageFolderPath: '',
stagingDatabaseName: 'default') ~> hivesource
Известные ограничения
- Для чтения не поддерживаются сложные типы, такие как массивы, карты, структуры и объединения.
- Соединитель Hive поддерживает только таблицы Hive в Azure HDInsight версии 4.0 или более поздней версии (Apache Hive 3.1.0)
- По умолчанию драйвер Hive предоставляет значение tableName.columnName в приемнике. Если вы не хотите видеть имя таблицы в имени столбца, это можно исправить двумя способами. a. Проверьте параметр hive.resultset.use.unique.column.name" на стороне сервера Hive и задайте для него значение false. b. Используйте сопоставление столбцов для переименования имени столбца.
Свойства действия поиска
Подробные сведения об этих свойствах см. в разделе Действие поиска.
Связанный контент
Список хранилищ данных, которые поддерживаются в качестве источников и приемников для действия Copy, приведен в таблице Поддерживаемые хранилища данных и форматы.