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

Область применения:Фабрика данных Azure Azure Synapse Analytics

Совет

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

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

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

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

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

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

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

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

  • OData версии 2.0, 3.0 и 4.0.
  • Копирование данных с помощью одной из следующих аутентификаций: Анонимный, Базовый, Windows и субъект-служба Microsoft Entra.

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

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

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

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

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

Начать

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

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

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

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

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

    Screenshot of the OData connector.

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

    Screenshot of linked service configuration for an OData store.

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

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

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

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

Свойство Описание: Обязательное поле
type Для свойства type необходимо задать значение OData. Да
URL-адрес Корневой URL-адрес службы OData. Да
authenticationType Тип проверки подлинности, используемый для подключения к источнику OData. Допустимыми значениями являются Анонимная, Базовая, Windows и AadServicePrincipal. OAuth на основе данных пользователя не поддерживается. Кроме того, можно настроить заголовки проверки подлинности в свойстве authHeader. Да
authHeaders Дополнительные заголовки HTTP-запросов для проверки подлинности.
Например, чтобы использовать проверку подлинности с помощью ключа API, можно выбрать тип проверки подлинности "Анонимный" и указать ключ API в заголовке.
No
userName Укажите имя пользователя, если вы используете проверку подлинности типа "Обычная" или "Windows". No
password Введите пароль для учетной записи пользователя, указанной для имени пользователя. Пометьте это поле как тип SecureString для безопасного хранения. Вы можете также указать секрет, хранящийся в Azure Key Vault. No
servicePrincipalId Укажите идентификатор клиента приложения Microsoft Entra. No
aadServicePrincipalCredentialType Укажите тип учетных данных для использования при аутентификации субъекта-службы. Допустимые значения: ServicePrincipalKey или ServicePrincipalCert. No
servicePrincipalKey Укажите ключ приложения Microsoft Entra. Пометьте это поле как SecureString, чтобы безопасно хранить его, или добавьте ссылку на секрет, хранящийся в Azure Key Vault. No
servicePrincipalEmbeddedCert Укажите сертификат в кодировке Base64 приложения, зарегистрированного в идентификаторе Microsoft Entra ID, и убедитесь, что тип контента сертификата — PKCS #12. Пометьте это поле как SecureString, чтобы безопасно хранить его, или добавьте ссылку на секрет, хранящийся в Azure Key Vault. No
servicePrincipalEmbeddedCertPassword Если ваш сертификат защищен паролем, укажите пароль сертификата. Пометьте это поле как SecureString, чтобы безопасно хранить его, или добавьте ссылку на секрет, хранящийся в Azure Key Vault. No
tenant Укажите сведения о клиенте (доменное имя или идентификатор клиента), в котором находится приложение. Его можно получить, наведя указатель мыши на правый верхний угол страницы портала Azure. No
aadResourceId Укажите ресурс Microsoft Entra, запрашивающий авторизацию. No
azureCloudType Для проверки подлинности субъекта-службы укажите тип облачной среды Azure, в которой зарегистрировано приложение Microsoft Entra.
Допустимые значения: AzurePublic, AzureChina, AzureUsGovernment и AzureGermany. По умолчанию используется облачная среда службы.
No
connectVia Среда выполнения интеграции, используемая для подключения к хранилищу данных. Дополнительные сведения см. в разделе Предварительные условия. Если не указано другое, по умолчанию используется интегрированная Azure Integration Runtime. No

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

{
    "name": "ODataLinkedService",
    "properties": {
        "type": "OData",
        "typeProperties": {
            "url": "https://services.odata.org/OData/OData.svc",
            "authenticationType": "Anonymous"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Пример 2. Использование обычной проверки подлинности

{
    "name": "ODataLinkedService",
    "properties": {
        "type": "OData",
        "typeProperties": {
            "url": "<endpoint of OData source>",
            "authenticationType": "Basic",
            "userName": "<user name>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

{
    "name": "ODataLinkedService",
    "properties": {
        "type": "OData",
        "typeProperties": {
            "url": "<endpoint of OData source>",
            "authenticationType": "Windows",
            "userName": "<domain>\\<user>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Пример 4. Использование проверки подлинности с ключом субъект-службы

{
    "name": "ODataLinkedService",
    "properties": {
        "type": "OData",
        "typeProperties": {
            "url": "<endpoint of OData source>",
            "authenticationType": "AadServicePrincipal",
            "servicePrincipalId": "<service principal id>",
            "aadServicePrincipalCredentialType": "ServicePrincipalKey",
            "servicePrincipalKey": {
                "type": "SecureString",
                "value": "<service principal key>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
            "aadResourceId": "<AAD resource URL>"
        }
    },
    "connectVia": {
        "referenceName": "<name of Integration Runtime>",
        "type": "IntegrationRuntimeReference"
    }
}

Пример 5. Использование проверки подлинности с сертификатом субъект-службы

{
    "name": "ODataLinkedService",
    "properties": {
        "type": "OData",
        "typeProperties": {
            "url": "<endpoint of OData source>",
            "authenticationType": "AadServicePrincipal",
            "servicePrincipalId": "<service principal id>",
            "aadServicePrincipalCredentialType": "ServicePrincipalCert",
            "servicePrincipalEmbeddedCert": { 
                "type": "SecureString", 
                "value": "<base64 encoded string of (.pfx) certificate data>"
            },
            "servicePrincipalEmbeddedCertPassword": { 
                "type": "SecureString", 
                "value": "<password of your certificate>"
            },
            "tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
            "aadResourceId": "<AAD resource e.g. https://tenant.sharepoint.com>"
        }
    },
    "connectVia": {
        "referenceName": "<name of Integration Runtime>",
        "type": "IntegrationRuntimeReference"
    }
}

Пример 6. Использование проверки подлинности с ключом API

{
    "name": "ODataLinkedService",
    "properties": {
        "type": "OData",
        "typeProperties": {
            "url": "<endpoint of OData source>",
            "authenticationType": "Anonymous",
            "authHeader": {
                "APIKey": {
                    "type": "SecureString",
                    "value": "<API key>"
                }
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

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

Этот раздел содержит список свойств, поддерживаемых набором данных OData.

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

Чтобы скопировать данные из OData, установите свойство type набора данных ODataResource. Поддерживаются следующие свойства:

Свойство Описание: Обязательное поле
type Свойство type для набора данных должно иметь значение ODataResource. Да
path Путь к ресурсу OData. Да

Пример

{
    "name": "ODataDataset",
    "properties":
    {
        "type": "ODataResource",
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<OData linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties":
        {
            "path": "Products"
        }
    }
}

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

Этот раздел содержит список свойств, поддерживаемых источником OData.

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

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

Для копирования данных из OData в поле "Действие копирования" раздела Источник поддерживаются следующие свойства:

Свойство Описание: Обязательное поле
type Свойству type для источника в поле "Действие копирования" должно быть задано значение ODataSource. Да
query Параметры запроса OData для фильтрации данных. Пример: "$select=Name,Description&$top=5".

Примечание. Соединитель OData копирует данные из объединенного URL-адреса: [URL specified in linked service]/[path specified in dataset]?[query specified in copy activity source]. Дополнительные сведения см. в статье о компонентах URL-адреса OData.
No
httpRequestTimeout Время ожидания (значение Временной диапазон) ответа для HTTP-запроса. Это значение является интервалом времени для получения ответа, а не считывания данных ответа. Если не указано иное, значение по умолчанию – 00:30:00 (30 минут). No

Пример

"activities":[
    {
        "name": "CopyFromOData",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<OData input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "ODataSource",
                "query": "$select=Name,Description&$top=5"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

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

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

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

Тип данных OData Промежуточный тип данных службы
Edm.Binary Byte[]
Edm.Boolean Bool
Edm.Byte Byte[]
Edm.DateTime Дата/время
Edm.Decimal Десятичное число
Edm.Double Двойной
Edm.Single Одна
Edm.Guid GUID
Edm.Int16 Int16
Edm.Int32 Int32
Edm.Int64 Int64
Edm.SByte Int16
Edm.String Строка
Edm.Time TimeSpan
Edm.DateTimeOffset DateTimeOffset

Примечание.

Сложные типы данных OData (например объекты), не поддерживаются.

Копирование данных из Project Online

Для Project Online требуется OAuth на основе пользователя, который не поддерживается Фабрикой данных Azure. Для копирования данных из Project Online можно использовать соединитель OData и маркер доступа, полученный из таких инструментов, как Postman.

Внимание

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

  1. Используйте Postman, чтобы получить маркер доступа:

    1. Перейдите на вкладку Авторизация на веб-сайте Postman.

    2. В поле Тип выберите OAuth 2.0, а в поле Добавить данные авторизации в укажите Заголовки запросов.

    3. Заполните следующие сведения на странице Настройка нового маркера, чтобы получить новый маркер доступа:

      • Тип предоставления разрешения: выберите Код авторизации.
      • URL-адрес обратного вызова: введите https://www.localhost.com/
      • URL-адрес проверки подлинности: введите https://login.microsoftonline.com/common/oauth2/authorize?resource=https://<your tenant name>.sharepoint.com. Замените <your tenant name> собственным именем клиента.
      • URL–адрес маркера доступа: введите https://login.microsoftonline.com/common/oauth2/token.
      • Идентификатор клиента: введите идентификатор субъекта-службы Microsoft Entra.
      • Секрет клиента: введите секрет субъект-службы.
      • Проверка подлинности клиента: выберите Отправлять в качестве обычного заголовка проверки подлинности.
    4. Отобразится приглашение выполнить вход в систему с помощью имени пользователя и пароля.

    5. После получения маркера доступа скопируйте и сохраните его для следующего шага.

    Screenshot of using Postman to get the access token.

  2. Чтобы создать связанную службу OData, выполните следующие действия:

    • URL–адрес службы: введите https://<your tenant name>.sharepoint.com/sites/pwa/_api/Projectdata. Замените <your tenant name> собственным именем клиента.
    • В поле Тип проверки подлинности выберите Анонимный.
    • Заголовки проверки подлинности:
      • Имя свойства укажите Проверка подлинности.
      • Значение: ВВОД Bearer <access token from step 1>.
    • Проверьте работу связанной службы.

    Create OData linked service

  3. Создание набора данных OData:

    1. Создайте набор данных с помощью связанной службы OData, созданной на шаге 2.
    2. Предварительный просмотр данных.

    Preview data

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

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

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