Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ:
Фабрика данных Azure
Azure Synapse Analytics
Совет
Попробуйте использовать фабрику данных в Microsoft Fabric, решение для аналитики с одним интерфейсом для предприятий. Microsoft Fabric охватывает все, от перемещения данных до обработки и анализа данных в режиме реального времени, бизнес-аналитики и отчетности. Узнайте, как бесплатно запустить новую пробную версию !
В этой статье описывается, как с помощью действия копирования в Фабрике данных Azure и Azure Synapse копировать данные из конечной точки HTTP. Статья основывается на Copy Activity, в которой представлены общие сведения об этом процессе.
Далее приводятся различия между соединителем HTTP, соединителем REST и соединителем веб-таблиц.
- Соединитель REST предназначен для поддержки копирования данных из RESTful API.
- Соединитель HTTP применяется для извлечения данных из любой конечной точки HTTP, например для скачивания файла. Пока соединитель REST недоступен, для копирования данных из интерфейсов REST API можно использовать соединитель HTTP, который поддерживается, но является менее функциональным по сравнению с соединителем REST.
- Соединитель веб-таблиц извлекает содержимое таблицы со страницы HTML.
Поддерживаемые возможности
Соединитель HTTP поддерживается для перечисленных ниже возможностей.
| Поддерживаемые возможности | IR |
|---|---|
| Копирование (источник/-) | (1) (2) |
| Операция поиска | (1) (2) |
① Среда выполнения интеграции Azure ② Локальная среда выполнения интеграции
Список хранилищ данных, которые поддерживаются в качестве источников/приемников, см. в разделе Поддерживаемые хранилища данных.
Можно использовать этот HTTP-коннектор для следующих действий:
- Извлечение данных из конечной точки HTTP/S с помощью методов GET или POST HTTP.
- Получение данных с помощью одной из следующих проверок подлинности: Anonymous, Basic, Digest, Windows или ClientCertificate.
- Копирование ответа HTTP "как есть" или его анализ с использованием поддерживаемых форматов файлов и сжатия кодеков.
Совет
Чтобы проверить HTTP-запрос для получения данных, прежде чем настраивать соединитель HTTP, ознакомьтесь со спецификацией API по требованиям к заголовку и тексту запроса. Для проверки можно использовать такие инструменты, как Visual Studio, PowerShell Invoke-RestMethod или веб-браузер.
Требования
Если хранилище данных размещено в локальной сети, виртуальной сети Azure или виртуальном частном облаке Amazon, для подключения к нему нужно настроить локальную среду выполнения интеграции.
Если же хранилище данных представляет собой управляемую облачную службу данных, можно использовать Azure Integration Runtime. Если доступ предоставляется только по IP-адресам, утвержденным в правилах брандмауэра, вы можете добавить IP-адреса Azure Integration Runtime в список разрешений.
Вы также можете использовать функцию среды выполнения интеграции в управляемой виртуальной сети в Фабрике данных Azure для доступа к локальной сети без установки и настройки локальной среды выполнения интеграции.
Дополнительные сведения о вариантах и механизмах обеспечения сетевой безопасности, поддерживаемых Фабрикой данных, см. в статье Стратегии получения доступа к данным.
Начало работы
Для выполнения действия копирования с конвейером можно использовать один из следующих средств или пакетов SDK:
- Средство копирования данных
- Портал Azure
- Пакет SDK для .NET
- Пакет SDK для Python
- Azure PowerShell
- REST API
- Шаблон Azure Resource Manager
Создание связанной службы для источника HTTP с помощью пользовательского интерфейса
Выполните следующие действия, чтобы создать связанную службу для источника HTTP в пользовательском интерфейсе портала Azure.
Перейдите на вкладку "Управление" в рабочей области Фабрики данных Azure или Synapse и выберите "Связанные службы", после чего нажмите "Создать":
Выполните поиск по запросу HTTP и выберите соединитель HTTP.
Настройте сведения о службе, проверьте подключение и создайте связанную службу.
Сведения о конфигурации соединителя
В разделах ниже приведены сведения о свойствах, которые используются для определения сущностей, относящихся к соединителю HTTP.
Свойства связанной службы
Для связанной службы HTTP поддерживаются следующие свойства:
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Для свойства type необходимо задать значение HttpServer. | Да |
| URL-адрес | Базовый URL-адрес веб-сервера. | Да |
| enableServerCertificateValidation | Укажите, следует ли включать проверку TLS/SSL-сертификата на сервере при подключении к конечной точке HTTP. Если ваш сервер HTTPS использует самозаверенный сертификат, установите свойство false. | Нет (значение по умолчанию true) |
| тип аутентификации | Указывает тип проверки подлинности. Допустимые значения Anonymous, Basic , Digest, Windows и ClientCertificate. Кроме того, можно настроить заголовки проверки подлинности в свойстве authHeader. С дополнительными свойствами и примерами JSON этих типов проверки подлинности ознакомьтесь в последующих разделах этой таблицы. |
Да |
| authHeaders | Дополнительные заголовки HTTP-запросов для проверки подлинности. Например, чтобы использовать проверку подлинности с помощью ключа API, можно выбрать тип проверки подлинности "Анонимный" и указать ключ API в заголовке. |
Нет |
| connectVia | Среда выполнения интеграции, используемая для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные условия. По умолчанию используется стандартная версия Azure Integration Runtime, если не указано иначе. | Нет |
Использование типов проверки подлинности Basic, Digest или Windows
Установите свойство authenticationType как Базовый, Дайджест или Windows. В дополнение к общим свойствам, описанных в предыдущих разделах, укажите следующие свойства:
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| userName | Имя пользователя для доступа к конечной точке HTTP. | Да |
| пароль | Пароль для пользователя (значение userName). Пометьте это поле как тип SecureString для безопасного хранения. Вы можете также указать секрет, хранящийся в Azure Key Vault. | Да |
Пример
{
"name": "HttpLinkedService",
"properties": {
"type": "HttpServer",
"typeProperties": {
"authenticationType": "Basic",
"url" : "<HTTP endpoint>",
"userName": "<user name>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Использование аутентификации ClientCertificate
Чтобы использовать проверку подлинности ClientCertificate, установите свойство authenticationType для ClientCertificate. В дополнение к общим свойствам, описанных в предыдущих разделах, укажите следующие свойства:
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| embeddedCertData | Данные сертификата, закодированные в Base64. | Укажите либо embeddedCertData или certThumbprint. |
| отпечаток сертификата | Отпечаток сертификата, установленного в хранилище сертификатов компьютера локальной среды выполнения интеграции. Применяется только в том случае, если в свойстве connectVia указан самостоятельный тип среды выполнения интеграции. | Укажите либо embeddedCertData или certThumbprint. |
| пароль | Пароль, связанный с сертификатом. Пометьте это поле как тип SecureString для безопасного хранения. Вы можете также указать секрет, хранящийся в Azure Key Vault. | Нет |
Если вы используете свойство certThumbprint для проверки подлинности, а сертификат установлен в личном хранилище локального компьютера, предоставьте разрешения на чтение для локальной среды выполнения интеграции.
- Откройте консоль управления (MMC). Добавьте оснастку Сертификаты, нацеленную на локальный компьютер.
- Разверните Сертификаты>Личные, и затем выберите Сертификаты.
- Щелкните правой кнопкой мыши сертификат в личном хранилище, а затем выберите Все задачи>Управление закрытыми ключами.
- На вкладке Безопасность добавьте учетную запись пользователя, с помощью которой запущена служба узла локальной среды выполнения интеграции (DIAHostService) с доступом на чтение к сертификату.
- Соединитель HTTP загружает только доверенные сертификаты. Если вы используете самоподписанный или выданный неинтегрированным УЦ сертификат, то, чтобы включить доверие, сертификат также должен быть установлен в одном из следующих хранилищ:
- Доверенные лица
- Сторонние корневые центры сертификации
- Доверенные корневые удостоверяющие центры
Пример 1. Использование certThumbprint
{
"name": "HttpLinkedService",
"properties": {
"type": "HttpServer",
"typeProperties": {
"authenticationType": "ClientCertificate",
"url": "<HTTP endpoint>",
"certThumbprint": "<thumbprint of certificate>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Пример 2. Использование embeddedCertData
{
"name": "HttpLinkedService",
"properties": {
"type": "HttpServer",
"typeProperties": {
"authenticationType": "ClientCertificate",
"url": "<HTTP endpoint>",
"embeddedCertData": "<Base64-encoded cert data>",
"password": {
"type": "SecureString",
"value": "password of cert"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Использование заголовков аутентификации
Кроме того, можно настроить заголовки запроса для проверки подлинности вместе со встроенными типами проверки подлинности.
Пример. Использование проверки подлинности ключа API
{
"name": "HttpLinkedService",
"properties": {
"type": "HttpServer",
"typeProperties": {
"url": "<HTTP endpoint>",
"authenticationType": "Anonymous",
"authHeader": {
"x-api-key": {
"type": "SecureString",
"value": "<API key>"
}
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Свойства набора данных
Полный список разделов и свойств, доступных для определения наборов данных, см. в статье о наборах данных.
Фабрика данных Azure поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.
- Формат Avro
- Двоичный формат
- Формат текста с разделителями
- Формат Excel
- Формат JSON
- Формат ORC
- Формат Parquet
- ФОРМАТ XML
Ниже перечислены свойства, которые поддерживаются для HTTP в настройках location в наборе данных на основе форматов:
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Свойство типа в location для набора данных следует установить как HttpServerLocation. |
Да |
| relativeUrl | Относительный URL-адрес ресурса, который содержит данные. HTTP-соединитель копирует данные из объединенного URL-адреса: [URL specified in linked service][relative URL specified in dataset]. |
Нет |
Примечание.
Поддерживаемый размер полезных данных HTTP-запроса — около 500 КБ. Если размер полезных данных, которые вы хотите передать в конечную веб-точку, превышает размер 500 КБ, разбейте полезные данные на небольшие блоки.
Пример:
{
"name": "DelimitedTextDataset",
"properties": {
"type": "DelimitedText",
"linkedServiceName": {
"referenceName": "<HTTP linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, auto retrieved during authoring > ],
"typeProperties": {
"location": {
"type": "HttpServerLocation",
"relativeUrl": "<relative url>"
},
"columnDelimiter": ",",
"quoteChar": "\"",
"firstRowAsHeader": true,
"compressionCodec": "gzip"
}
}
}
Свойства действия копирования
Этот раздел содержит список свойств, поддерживаемых источником HTTP.
Полный список разделов и свойств, доступных для определения действий, см. в разделе Конвейеры.
HTTP в качестве источника
Фабрика данных Azure поддерживает следующие форматы файлов. Дополнительные сведения о параметрах с учетом форматирования см. в соответствующих статьях.
- Формат Avro
- Двоичный формат
- Формат текста с разделителями
- Формат Excel
- Формат JSON
- Формат ORC
- Формат Parquet
- ФОРМАТ XML
Поддерживаемые свойства для HTTP в настройках storeSettings в источнике копирования на основе формата:
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Для свойства типа в storeSettings необходимо задать значение HttpReadSettings. |
Да |
| метод запроса | Метод HTTP. Допустимые значения: GET (по умолчанию) и POST. |
Нет |
| дополнительные заголовки | Дополнительные заголовки HTTP-запроса. | Нет |
| requestBody | Текст HTTP-запроса. | Нет |
| httpRequestTimeout | Время ожидания (значение TimeSpan) для получения ответа HTTP-запроса. Это значение является интервалом времени для получения ответа, а не считывания данных ответа. По умолчанию используется значение 00:01:40. | Нет |
| максимальное количество одновременных подключений | Верхний предел одновременных подключений, установленных в хранилище данных при запуске задачи. Указывайте значение только при необходимости ограничить количество одновременных подключений. | Нет |
Пример:
"activities":[
{
"name": "CopyFromHTTP",
"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": "HttpReadSettings",
"requestMethod": "Post",
"additionalHeaders": "<header key: header value>\n<header key: header value>\n",
"requestBody": "<body for POST HTTP request>"
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Свойства операции поиска
Подробные сведения об этих свойствах см. в разделе Действие поиска.
Устаревшие модели
Примечание.
Следующие модели по-прежнему поддерживаются на условиях "как есть" для обеспечения обратной совместимости. В дальнейшем рекомендуется использовать новую модель, упомянутую в разделах выше. Пользовательский интерфейс разработки был изменен для создания новой модели.
Устаревшая модель набора данных
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Свойство type для набора данных должно иметь значение HttpFile. | Да |
| relativeUrl | Относительный URL-адрес ресурса, который содержит данные. Если свойство не задано, используется только URL-адрес, указанный в определении связанной службы. | Нет |
| метод запроса | Метод HTTP. Допустимые значения: GET (по умолчанию) и POST. | Нет |
| дополнительные заголовки | Дополнительные заголовки HTTP-запроса. | Нет |
| requestBody | Текст HTTP-запроса. | Нет |
| format | Если требуется получить данные из конечной точки HTTP "как есть", — без анализа и копирования в хранилище файлов — можно пропустить раздел форматирования в определениях входного и выходного наборов данных. Поддерживаемые форматы для выполнения анализа содержимого ответа HTTP в процессе выполнения операции копирования: TextFormat, JsonFormat, AvroFormat, OrcFormat и ParquetFormat. Свойству type в разделе format необходимо присвоить одно из этих значений. Дополнительные сведения см. в разделах о формате JSON, текстовом формате, формате Avro, формате Orc и формате Parquet. |
Нет |
| сжатие | Укажите тип и уровень сжатия данных. Дополнительные сведения см. в разделе Поддержка сжатия. Поддерживаемые типы: GZip, Deflate, BZip2 и ZipDeflate. Поддерживаемые уровни: Optimal и Fastest. |
Нет |
Примечание.
Поддерживаемый размер полезных данных HTTP-запроса — около 500 КБ. Если размер полезных данных, которые вы хотите передать в конечную веб-точку, превышает размер 500 КБ, разбейте полезные данные на небольшие блоки.
Пример 1. Использование метода Get (по умолчанию)
{
"name": "HttpSourceDataInput",
"properties": {
"type": "HttpFile",
"linkedServiceName": {
"referenceName": "<HTTP linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"relativeUrl": "<relative url>",
"additionalHeaders": "Connection: keep-alive\nUser-Agent: Mozilla/5.0\n"
}
}
}
Пример 2. Использование метода POST
{
"name": "HttpSourceDataInput",
"properties": {
"type": "HttpFile",
"linkedServiceName": {
"referenceName": "<HTTP linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"relativeUrl": "<relative url>",
"requestMethod": "Post",
"requestBody": "<body for POST HTTP request>"
}
}
}
Устаревшая модель источника для операции копирования
| Свойство | Описание: | Обязательное поле |
|---|---|---|
| тип | Свойство type источника действия копирования должно иметь значение HttpSource. | Да |
| httpRequestTimeout | Время ожидания (значение TimeSpan) для получения ответа HTTP-запроса. Это значение является интервалом времени для получения ответа, а не считывания данных ответа. По умолчанию используется значение 00:01:40. | Нет |
Пример
"activities":[
{
"name": "CopyFromHTTP",
"type": "Copy",
"inputs": [
{
"referenceName": "<HTTP input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "HttpSource",
"httpRequestTimeout": "00:01:00"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Связанный контент
Список хранилищ данных, поддерживаемых действием копирования в качестве источников и приемников, приведен в разделе Поддерживаемые хранилища данных и форматы.