Copier des données OData à l’aide d’Azure Data Factory ou Synapse Analytics

S’APPLIQUE À : Azure Data Factory Azure Synapse Analytics

Conseil

Essayez Data Factory dans Microsoft Fabric, une solution d’analyse tout-en-un pour les entreprises. Microsoft Fabric couvre tous les aspects, du déplacement des données à la science des données, en passant par l’analyse en temps réel, l’aide à la décision et la création de rapports. Découvrez comment démarrer un nouvel essai gratuitement !

Cet article explique comment utiliser l’activité de copie dans un pipeline Azure Data Factory ou Synapse Analytics pour copier des données OData. Il s’appuie sur l’article Activité de copie, qui présente une vue d’ensemble de cette activité.

Fonctionnalités prises en charge

Ce connecteur OData est pris en charge pour les fonctionnalités suivantes :

Fonctionnalités prises en charge IR
Activité de copie (source/-) ① ②
Activité de recherche ① ②

① Runtime d’intégration Azure ② Runtime d’intégration auto-hébergé

Pour obtenir la liste des magasins de données pris en charge en tant que sources et récepteurs, voir Magasins de données pris en charge.

Plus précisément, ce connecteur OData prend en charge ce qui suit :

  • OData version 2.0, 3.0 et 4.0.
  • Copie de données avec une des authentifications suivantes : Anonyme, De base, Windows et Principal de service Microsoft Entra.

Prérequis

Si votre magasin de données se trouve dans un réseau local, un réseau virtuel Azure ou un cloud privé virtuel Amazon, vous devez configurer un runtime d’intégration auto-hébergé pour vous y connecter.

Si votre magasin de données est un service de données cloud managé, vous pouvez utiliser Azure Integration Runtime. Si l’accès est limité aux adresses IP qui sont approuvées dans les règles de pare-feu, vous pouvez ajouter les adresses IP Azure Integration Runtime dans la liste d’autorisation.

Vous pouvez également utiliser la fonctionnalité de runtime d’intégration de réseau virtuel managé dans Azure Data Factory pour accéder au réseau local sans installer et configurer un runtime d’intégration auto-hébergé.

Pour plus d’informations sur les mécanismes de sécurité réseau et les options pris en charge par Data Factory, consultez Stratégies d’accès aux données.

Bien démarrer

Pour effectuer l’activité Copie avec un pipeline, vous pouvez vous servir de l’un des outils ou kits SDK suivants :

Créer un service lié à un magasin OData à l’aide de l’interface utilisateur

Utilisez les étapes suivantes pour créer un service lié à un magasin OData dans l’interface utilisateur du portail Azure.

  1. Accédez à l’onglet Gérer dans votre espace de travail Azure Data Factory ou Synapse, sélectionnez Services liés, puis sélectionnez Nouveau :

  2. Recherchez OData et sélectionnez le connecteur OData.

    Screenshot of the OData connector.

  3. Configurez les informations du service, testez la connexion et créez le nouveau service lié.

    Screenshot of linked service configuration for an OData store.

Informations de configuration des connecteurs

Les sections suivantes fournissent des informations sur les propriétés utilisées pour définir les entités Data Factory propres au connecteur OData.

Propriétés du service lié

Les propriétés prises en charge pour le service lié OData sont les suivantes :

Propriété Description Obligatoire
type La propriété type doit être définie sur OData. Oui
url URL racine du service OData. Oui
authenticationType Type d’authentification utilisé pour se connecter à la source OData. Les valeurs autorisées sont les suivantes : Anonyme, De base, Windows et Principal de service AAD. L'authentification OAuth par utilisateur n'est pas prise en charge. Vous pouvez également configurer des en-têtes d’authentification dans la propriété authHeader. Oui
authHeaders En-têtes de requête HTTP supplémentaires pour l’authentification.
Par exemple, pour utiliser l’authentification par clé API, vous pouvez sélectionner le type d’authentification « anonyme » et spécifier la clé API dans l’en-tête.
Non
userName Si vous utilisez l’authentification De base ou Windows, spécifiez un nom d’utilisateur. Non
mot de passe Spécifiez le mot de passe associé au nom d’utilisateur spécifié. Vous pouvez marquer ce champ en tant que type SecureString pour le stocker de manière sécurisée. Vous pouvez également référencer un secret stocké dans Azure Key Vault. Non
servicePrincipalId Indiquez l’identifiant client de l’application Microsoft Entra. Non
aadServicePrincipalCredentialType Spécifiez le type d’informations d’identification à utiliser pour l’authentification de principal du service. Valeurs autorisées : ServicePrincipalKey ou ServicePrincipalCert. Non
servicePrincipalKey Indiquez la clé de l’application Microsoft Entra. Marquez ce champ en tant que SecureString afin de le stocker en toute sécurité, ou référencez un secret stocké dans Azure Key Vault. Non
servicePrincipalEmbeddedCert Spécifiez le certificat codé en base64 de votre application inscrite dans Microsoft Entra ID, et vérifiez que le type de contenu du certificat est PKCS #12. Marquez ce champ en tant que SecureString afin de le stocker en toute sécurité, ou référencez un secret stocké dans Azure Key Vault. Non
servicePrincipalEmbeddedCertPassword Spécifiez le mot de passe de votre certificat si votre certificat est sécurisé par un mot de passe. Marquez ce champ en tant que SecureString afin de le stocker en toute sécurité, ou référencez un secret stocké dans Azure Key Vault. Non
tenant Spécifiez les informations de locataire (nom de domaine ou ID de locataire) dans lesquels se trouve votre application. Récupérez-le en pointant la souris dans le coin supérieur droit du Portail Azure. Non
aadResourceId Spécifiez la ressource Microsoft Entra pour laquelle vous demandez une autorisation. Non
azureCloudType Pour l’authentification du principal de service, spécifiez le type d’environnement cloud Azure auquel votre application Microsoft Entra est inscrite.
Les valeurs autorisées sont AzurePublic, AzureChina, AzureUsGovernment et AzureGermany. Par défaut, l’environnement cloud du service est utilisé.
Non
connectVia Runtime d’intégration à utiliser pour la connexion au magasin de données. Pour plus d’informations, consultez la section Conditions préalables. À défaut de spécification, l’Azure Integration Runtime par défaut est utilisé. Non

Exemple 1 : Utilisation de l’authentification anonyme

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

Exemple 2 : Utilisation de l’authentification de base

{
    "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"
        }
    }
}

Exemple 3 : Utilisation de l’authentification 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"
        }
    }
}

Exemple 4 : Utilisation de l’authentification de la clé du principal de service

{
    "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"
    }
}

Exemple 5 : Utilisation de l’authentification du certificat du principal de service

{
    "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"
    }
}

Exemple 6 : Utilisation de l’authentification avec une clé 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"
        }
    }
}

Propriétés du jeu de données

Cette section contient la liste des propriétés prises en charge par le jeu de données OData.

Pour obtenir la liste complète des sections et propriétés disponibles pour la définition de jeux de données, consultez Jeux de données et services liés.

Pour copier des données à partir d’OData, définissez la propriété type du jeu de données sur ODataResource. Les propriétés prises en charge sont les suivantes :

Propriété Description Obligatoire
type La propriété type du jeu de données doit être définie sur ODataResource. Oui
path Chemin de la ressource OData. Oui

Exemple

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

Propriétés de l’activité de copie

Cette section contient la liste des propriétés prises en charge par la source OData.

Pour obtenir la liste complète des sections et des propriétés permettant de définir des activités, consultez Pipelines.

OData en tant que source

Pour copier des données à partir d’OData, les propriétés prises en charge dans la section source de l'activité de copie sont les suivantes :

Propriété Description Obligatoire
type La propriété de type de la source d’activité de copie doit être définie sur ODataSource. Oui
query Options de requête OData pour filtrer les données. Exemple : "$select=Name,Description&$top=5".

Remarque : Le connecteur OData copie des données à partir de l’URL combinée [URL specified in linked service]/[path specified in dataset]?[query specified in copy activity source]. Pour plus d’informations, consultez OData URL components.
Non
httpRequestTimeout Délai d’expiration (valeur TimeSpan) pour l’obtention d’une réponse par la requête HTTP. Cette valeur correspond au délai d’expiration pour l’obtention d’une réponse, et non au délai d’expiration pour la lecture des données de la réponse. Si elle n’est pas spécifiée, la valeur par défaut est 00:30:00 (30 minutes). Non

Exemple

"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>"
            }
        }
    }
]

Si vous utilisiez une source de données typée RelationalSource, elle reste prise en charge telle quelle, mais nous vous suggérons d’utiliser désormais la nouvelle source.

Mappage de type de données pour OData

Lorsque vous copiez des données à partir d’OData, les mappages suivants sont utilisés entre les types de données OData et les types de données intermédiaires utilisées dans le service en interne. Pour découvrir comment l’activité de copie mappe le schéma et le type de données sources au récepteur, consultez Mappages de schémas et de types de données.

Type de données OData Type de données de service intermédiaire
Edm.Binary Byte[]
Edm.Boolean Bool
Edm.Byte Byte[]
Edm.DateTime DateTime
Edm.Decimal Decimal
Edm.Double Double
Edm.Single Unique
Edm.Guid Guid
Edm.Int16 Int16
Edm.Int32 Int32
Edm.Int64 Int64
Edm.SByte Int16
Edm.String String
Edm.Time TimeSpan
Edm.DateTimeOffset DateTimeOffset

Notes

Les types de données complexes OData (par exemple, Object), ne sont pas pris en charge.

Copier des données à partir de Project Online

Project Online nécessite un accès OAuth basé sur l’utilisateur, qui n’est pas pris en charge par Azure Data Factory. Pour copier des données à partir de Project Online, vous pouvez utiliser le connecteur OData et un jeton d’accès obtenu à partir d’outils tels que Postman.

Attention

Le jeton d’accès expire dans une heure par défaut : vous devez obtenir un nouveau jeton d’accès lorsqu’il expire.

  1. Utilisez Postman pour recevoir le jeton d’accès :

    1. Accédez à l’onglet Authorization (Autorisation) sur le site web de Postman.

    2. Dans la zone Type, sélectionnez OAuth 2.0, puis, dans la zone Add authorization data to (Ajouter des données d’autorisation à), sélectionnez Request Headers (En-têtes de demande).

    3. Renseignez les informations suivantes dans la page Configure New Token (Configurer un nouveau jeton) pour obtenir un nouveau jeton d’accès :

      • Grant type (Type d’autorisation) : Sélectionnez Authorization Code (Code d’autorisation).
      • Callback URL (URL de rappel) : Entrez https://www.localhost.com/
      • Auth URL (URL d’authentification) : Entrez https://login.microsoftonline.com/common/oauth2/authorize?resource=https://<your tenant name>.sharepoint.com. Remplacez <your tenant name> par votre propre nom de locataire.
      • Access Token URL (URL de jeton d’accès) : Entrez https://login.microsoftonline.com/common/oauth2/token.
      • Identifiant client : Entrez l’identifiant de votre principal de service Microsoft Entra.
      • Client Secret (Clé secrète client) : Entrez le secret de votre principal de service.
      • Client Authentication (Authentification du client) : Sélectionnez Send as Basic Auth header (Envoyer en tant qu’en-tête d’authentification de base).
    4. Vous serez invité à vous connecter avec votre nom d’utilisateur et votre mot de passe.

    5. Une fois que vous avez obtenu votre jeton d’accès, copiez-le et enregistrez-le pour l’étape suivante.

    Screenshot of using Postman to get the access token.

  2. Créez le service lié OData :

    • Service URL (URL du service) : Entrez https://<your tenant name>.sharepoint.com/sites/pwa/_api/Projectdata. Remplacez <your tenant name> par votre propre nom de locataire.
    • Authentication type (Type d’authentification) : Sélectionnez Anonymous (Anonyme).
    • Auth headers (En-têtes d’authentification) :
      • Property name (Nom de propriété) : Choisissez Authorization (Autorisation).
      • Valeur : Entrez Bearer <access token from step 1>.
    • Testez le service lié.

    Create OData linked service

  3. Créez le jeu de données OData :

    1. Créez le jeu de données avec le service lié OData créé à l’étape 2.
    2. Prévisualisez les données.

    Preview data

Propriétés de l’activité Lookup

Pour en savoir plus sur les propriétés, consultez Activité Lookup.

Pour obtenir la liste des magasins de données pris en charge en tant que sources et récepteurs pour l’activité de copie, consultez Magasins de données et formats pris en charge.