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


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

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

Совет

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

В этой статье описывается, как с помощью действия копирования в Фабрике данных Azure и конвейерах Azure Synapse Analytics копировать данные из Hive. Это продолжение статьи об обзоре действия копирования, в которой представлены общие сведения о действии копирования.

Это важно

Соединитель Hive версии 2.0 обеспечивает улучшенную встроенную поддержку Hive. Если вы используете соединитель Hive версии 1.0 в решении, обновите соединитель Hive до 30 сентября 2025 г. Дополнительные сведения о разнице между версией 2.0 и версией 1.0 см. в этом разделе .

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

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

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

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

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

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

Соединитель поддерживает версии Windows в этой статье.

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

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

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

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

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

Замечание

Версия 2.0 поддерживается с локальной средой выполнения интеграции версии 5.54 или более поздней.

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

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

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

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

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

  2. Найдите Hive и выберите соединитель Hive.

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

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

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

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

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

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

Соединитель Hive теперь поддерживает версию 2.0. См. этот раздел , чтобы обновить версию соединителя Hive с версии 1.0. Чтобы узнать подробности о свойстве, см. соответствующие разделы.

Версия 2.0

Связанная служба Hive поддерживает следующие свойства при применении версии 2.0:

Свойство Описание: Обязательное поле
тип Для свойства type необходимо задать значение Hive. Да
версия Версия, которую вы указали. Значение равно 2.0. Да
хост IP-адрес или имя узла сервера Hive. Да
порт TCP-порт, используемый сервером Hive для прослушивания клиентских подключений. При подключении к Azure HDInsights укажите порт 443. Да
тип сервера Тип сервера Hive.
Допустимое значение: HiveServer2
нет
thriftTransportProtocol Транспортный протокол для использования в слое Thrift.
Допустимое значение: Binary, SASL, HTTP
нет
тип аутентификации Метод проверки подлинности, используемый для доступа к серверу Hive.
Допустимые значения: Anonymous, UsernameAndPassword, WindowsAzureHDInsightService. Проверка подлинности Kerberos теперь не поддерживается.
Да
имя пользователя Имя пользователя, которое позволяет получить доступ к серверу Hive. нет
пароль Пароль, соответствующий пользователю. Пометьте это поле как SecureString, чтобы безопасно хранить его, или добавьте ссылку на секрет, хранящийся в Azure Key Vault. нет
httpPath (HTTP путь) Частичный URL-адрес, соответствующий серверу Hive. нет
включитьSSL Указывает, шифруются ли подключения к серверу с помощью протокола TLS. Значение по умолчанию — true. нет
включитьПроверкуСертификатаСервера Укажите, следует ли включить проверку SSL-сертификата сервера при подключении. Всегда используйте системное хранилище доверия. Значение по умолчанию — true. нет
ссылка на хранилище Ссылка на связанную службу учетной записи хранения, используемую для промежуточного хранения и обработки в потоке данных для сопоставления. Это требуется только при использовании связанного сервиса Hive в потоке сопоставления данных. нет
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные условия. Если не указано другое, по умолчанию используется интегрированная среда выполнения Azure. Вы можете использовать локальную среду выполнения интеграции, а ее версия должна быть 5.54 или более поздней. нет

Пример:

{
    "name": "HiveLinkedService",
    "properties": {
        "type": "Hive",
        "version": "2.0",
        "typeProperties": {
            "host" : "<host>",
            "port" : "<port>",
            "authenticationType" : "WindowsAzureHDInsightService",
            "username" : "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "serverType": "HiveServer2",
            "thriftTransportProtocol": "HTTP",
            "enableSsl": true,
            "enableServerCertificateValidation": true
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Версия 1.0

Следующие свойства поддерживаются для связанной службы Hive при применении версии 1.0:

Свойство Описание: Обязательное поле
тип Для свойства type необходимо задать значение Hive. Да
хост IP-адрес или имя узла сервера Hive, разделенные ";" для нескольких узлов (только при включенном режиме serviceDiscoveryMode). Да
порт TCP-порт, используемый сервером Hive для прослушивания клиентских подключений. При подключении к Azure HDInsights укажите порт 443. Да
тип сервера Тип сервера Hive.
Допустимые значения: HiveServer1, HiveServer2, HiveThriftServer.
нет
thriftTransportProtocol Транспортный протокол для использования в слое Thrift.
Допустимые значения: Binary, SASL, HTTP
нет
тип аутентификации Метод проверки подлинности, используемый для доступа к серверу Hive.
Допустимые значения: Anonymous, Username, UsernameAndPassword, WindowsAzureHDInsightService. Проверка подлинности Kerberos теперь не поддерживается.
Да
режим_обнаружения_сервисов Значение true, если служба ZooKeeper используется, значение false — если нет. нет
zooKeeperNameSpace Пространство имен на ZooKeeper, в которое добавлены 2 узла сервера Hive. нет
использоватьНативныйЗапрос Определяет, использует ли драйвер собственные запросы HiveQL или преобразует их в эквивалентную форму в HiveQL. нет
имя пользователя Имя пользователя, которое позволяет получить доступ к серверу Hive. нет
пароль Пароль, соответствующий пользователю. Пометьте это поле как SecureString, чтобы безопасно хранить его, или добавьте ссылку на секрет, хранящийся в Azure Key Vault. нет
httpPath (HTTP путь) Частичный URL-адрес, соответствующий серверу Hive. нет
включитьSSL Указывает, шифруются ли подключения к серверу с помощью протокола TLS. По умолчанию используется значение false. нет
доверенный_путь_сертификата Полный путь к PEM-файлу, который содержит сертификаты доверенного ЦС для проверки сервера при подключении по протоколу TLS. Это свойство можно установить только при использовании TLS в локальных средах выполнения интеграции. Значением по умолчанию является файл cacerts.pem, который устанавливается вместе с IR. нет
useSystemTrustStore (использовать хранилище доверия системы) Указывает, следует ли использовать сертификат ЦС из доверенного хранилища системы или из указанного PEM-файла. По умолчанию используется значение false. нет
разрешитьНесоответствиеИмениХостаCN Указывает, следует ли требовать, чтобы имя TLS/SSL-сертификата, выданного ЦС, совпадало с именем узла сервера при подключении по протоколу TLS. По умолчанию используется значение false. нет
разрешить самоподписанный серверный сертификат Указывает, следует ли разрешить использование самозаверяющих сертификатов с сервера. По умолчанию используется значение false. нет
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные условия. Если не указано другое, по умолчанию используется интегрированная среда выполнения Azure. нет
ссылка на хранилище Ссылка на связанную службу учетной записи хранения, используемую для промежуточного хранения и обработки в потоке данных для сопоставления. Это необходимо только при использовании связанной службы Hive в потоке данных для сопоставления нет

Пример:

{
    "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 для набора данных должно иметь значение HiveObject Да
схема Имя схемы. Нет (если свойство query указано в источнике действия)
таблица Имя таблицы. Нет (если свойство query указано в источнике действия)
имя_таблицы Имя таблицы с указанием части схемы. Это свойство поддерживается только для обеспечения обратной совместимости. Для новой рабочей нагрузки используйте 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 источника действия копирования должно иметь значение HiveSource. Да
запрос Используйте пользовательский 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 да hive хранилище
Формат Выполняется ли чтение из таблицы или запроса да table или query формат
Имя схемы При чтении из таблицы схема исходной таблицы Да, если формат table Строка ИмяСхемы
Имя таблицы При чтении из таблицы имя таблицы Да, если формат table Строка имя_таблицы
Запрос Если для параметра format задано значение query, то исходный запрос к связанной службе Hive Да, если формат query Строка запрос
Промежуточное хранение Таблица Hive всегда будет промежуточной. да true промежуточное хранение
Контейнер хранилища Контейнер хранилища, используемый для промежуточного хранения данных перед чтением из Hive или записью в Hive. Кластер Hive должен иметь доступ к этому контейнеру. да Строка контейнер для хранения
Промежуточная база данных Схема или база данных, к которым имеет доступ учетная запись пользователя, указанная в связанной службе. Это используется для создания внешних таблиц во время промежуточного хранения и последующего удаления нет true или false имя базы данных для стадирования
Предшествующие скрипты SQL Код SQL для выполнения в таблице Hive перед чтением данных нет Строка 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. б. Используйте сопоставление столбцов для переименования имени столбца.

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

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

Тип данных Hive Тип данных промежуточной службы (для версии 2.0) Тип данных промежуточной службы (для версии 1.0)
TINYINT Сбайт (Sbyte) Int16
СМОЛЛИНТ Int16 Int16
ИНТ Int32 Int32
БИГИНТ Int32 Int64
Булевый Булевый Булевый
ФЛОАТ Единственный Единственный
ДВОЙНОЙ Двойной Двойной
ДЕСЯТИЧНЫЙ Десятичное число Десятичное число
СТРУНА Строка Строка
VARCHAR Строка Строка
ОБГОРАТЬ Строка Строка
TIMESTAMP DateTimeOffset (смещение даты и времени) дата и время
Дата дата и время дата и время
БИНАРНЫЙ Байт[] Байт[]
МАССИВ Строка Строка
КАРТА Строка Строка
СТРУКТУРА Строка Строка

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

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

Жизненный цикл и обновление соединителя Hive

В следующей таблице показаны этап выпуска и журналы изменений для различных версий соединителя Hive:

Версия Этап выпуска Журнал изменений
Версия 1.0 Дата окончания поддержки объявлена /
Версия 2.0 GA версия доступна • Локальная версия среды выполнения интеграции должна быть 5.54 или более поздней.

• Значение enableSSL по умолчанию имеет значение true. enableServerCertificateValidation поддерживается.
trustedCertPath, useSystemTrustStoreallowHostNameCNMismatch и allowSelfSignedServerCert не поддерживаются.

• TINYINT читается как тип данных SByte.

• TIMESTAMP считывается как тип данных DateTimeOffset.

• Использование ";" для разделения нескольких узлов (только при включении serviceDiscoveryMode) не поддерживается.

• HiveServer1 и HiveThriftServer не поддерживаются для ServerType.

• Тип проверки подлинности имени пользователя не поддерживается. Протокол транспорта SASL поддерживает только тип проверки подлинности UsernameAndPassword. Двоичный транспортный протокол поддерживает только анонимный тип проверки подлинности.

serviceDiscoveryModeи zooKeeperNameSpaceuseNativeQuery не поддерживаются.

Обновление соединителя Hive с версии 1.0 до версии 2.0

  1. На странице "Изменить связанную службу " выберите версию 2.0 и настройте связанную службу, указав свойства связанной службы версии 2.0.

  2. Сопоставление типов данных для связанной службы Hive версии 2.0 отличается от сопоставления типов данных для версии 1.0. Сведения о последнем сопоставлении типов данных см. в разделе "Сопоставление типов данных" для Hive.

  3. Примените локальную среду выполнения интеграции с версией 5.54 или более поздней.

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