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 :
- L’outil Copier des données
- Le portail Azure
- Le kit SDK .NET
- Le kit SDK Python
- Azure PowerShell
- L’API REST
- Le modèle Azure Resource Manager
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.
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 :
Recherchez OData et sélectionnez le connecteur OData.
Configurez les informations du service, testez la connexion et créez le nouveau service lié.
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.
Utilisez Postman pour recevoir le jeton d’accès :
Remarque
Postman est utilisé par certains développeurs pour tester les API web distantes. Toutefois, il existe des risques de sécurité et de confidentialité associés à son utilisation. Cet article n’approuve pas l’utilisation de Postman pour les environnements de production. Veuillez l’utiliser à votre propre risque.
- Accédez à l’onglet Authorization (Autorisation) sur le site web de Postman.
- 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).
- 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).
- Vous serez invité à vous connecter avec votre nom d’utilisateur et votre mot de passe.
- Une fois que vous avez obtenu votre jeton d’accès, copiez-le et enregistrez-le pour l’étape suivante.
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é.
- Service URL (URL du service) : Entrez
Créez le jeu de données OData :
- Créez le jeu de données avec le service lié OData créé à l’étape 2.
- Prévisualisez les données.
Propriétés de l’activité Lookup
Pour en savoir plus sur les propriétés, consultez Activité Lookup.
Contenu connexe
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.