Copier des données depuis/vers des banques de données ODBC à l’aide d’Azure Data Factory ou de 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 décrit comment utiliser l’activité de copie dans Azure Data Factory pour copier des données depuis/vers une banque de données ODBC. Il s’appuie sur l’article Vue d’ensemble de l’activité de copie.

Fonctionnalités prises en charge

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

Fonctionnalités prises en charge IR
Activité de copie (source/récepteur) 0
Activité de recherche 0

① 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, consultez le tableau Magasins de données pris en charge.

Plus précisément, ce connecteur ODBC prend en charge la copie de données depuis/vers toute banque de données compatible ODBC à l’aide d’une authentification De base ou Anonyme. Un pilote ODBC 64 bits est requis. Pour le récepteur ODBC, le service prend en charge ODBC version 2.0 standard.

Prérequis

Pour utiliser ce connecteur ODBC, vous devez :

  • Configurer un Runtime d’intégration autohébergé. Pour plus d’informations, consultez l’article Runtime d’intégration autohébergé.
  • Installer le pilote ODBC 64 bits pour le magasin de données sur la machine exécutant le runtime d’intégration.

Prise en main

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 de données ODBC à l’aide de l’interface utilisateur

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

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

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

    Screenshot of the ODBC connector.

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

    Screenshot of linked service configuration for an ODBC data 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 spécifiques du connecteur ODBC.

Propriétés du service lié

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

Propriété Description Obligatoire
type La propriété type doit être définie sur : Odbc Oui
connectionString Chaîne de connexion sans la partie contenant les informations d’identification. Vous pouvez spécifier la chaîne de connexion avec un modèle comme Driver={SQL Server};Server=Server.database.windows.net; Database=TestDatabase;, ou utiliser le nom de source de données (DSN) du système que vous avez configuré sur la machine de l’Integration Runtime avec DSN=<name of the DSN on IR machine>; (vous devez toujours spécifier la partie informations d’identification dans le service lié en conséquence).
Vous pouvez également définir un mot de passe dans Azure Key Vault et extraire la configuration password de la chaîne de connexion. Pour plus d’informations, consultez la section Stocker des informations d’identification dans Azure Key Vault.
Oui
authenticationType Type d’authentification utilisé pour se connecter au magasin de données ODBC.
Les valeurs autorisées sont les suivantes : De base et Anonyme.
Oui
userName Spécifiez le nom d’utilisateur si vous utilisez l’authentification de base. Non
mot de passe Spécifiez le mot de passe du compte d’utilisateur que vous avez défini pour le nom d’utilisateur. 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
credential Partie de la chaîne de connexion contenant les informations d’accès, spécifiée dans un format de valeurs de propriété spécifique au pilote. Exemple : "RefreshToken=<secret refresh token>;". Marquez ce champ comme SecureString. Non
connectVia Runtime d’intégration à utiliser pour la connexion à la banque de données. Un Runtime d’intégration autohébergé est nécessaire comme indiqué dans Prérequis. Oui

Exemple 1 : utilisation d’une authentification de base

{
    "name": "ODBCLinkedService",
    "properties": {
        "type": "Odbc",
        "typeProperties": {
            "connectionString": "<connection string>",
            "authenticationType": "Basic",
            "userName": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Exemple 2 : utilisation d’une authentification anonyme

{
    "name": "ODBCLinkedService",
    "properties": {
        "type": "Odbc",
        "typeProperties": {
            "connectionString": "<connection string>",
            "authenticationType": "Anonymous",
            "credential": {
                "type": "SecureString",
                "value": "RefreshToken=<secret refresh token>;"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Propriétés du jeu de données

Pour obtenir la liste complète des sections et propriétés disponibles pour la définition de jeux de données, consultez l’article sur les jeux de données. Cette section contient la liste des propriétés prises en charge par le jeu de données ODBC.

Pour copier des données à partir/vers d’une banque de données compatible avec ODBC, les propriétés suivantes sont prises en charge :

Propriété Description Obligatoire
type La propriété type du jeu de données doit être définie sur : OdbcTable Oui
tableName Nom de la table dans le magasin de données ODBC. Non pour la source (si « query » est spécifié dans la source de l’activité) ;
Oui pour le récepteur

Exemple

{
    "name": "ODBCDataset",
    "properties": {
        "type": "OdbcTable",
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<ODBC linked service name>",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "tableName": "<table name>"
        }
    }
}

Si vous utilisiez un dataset typé RelationalTable, il reste pris en charge tel quel, mais nous vous suggérons d’utiliser désormais le nouveau dataset.

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

Pour obtenir la liste complète des sections et des propriétés disponibles pour la définition des activités, consultez l’article Pipelines. Cette section fournit la liste des propriétés prises en charge par la source ODBC.

ODBC en tant que source

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

Propriété Description Obligatoire
type La propriété type de la source d’activité de copie doit être définie sur : OdbcSource Oui
query Utiliser la requête SQL personnalisée pour lire les données. Par exemple : "SELECT * FROM MyTable". Non (si « tableName » est spécifié dans dataset)

Exemple :

"activities":[
    {
        "name": "CopyFromODBC",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<ODBC input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "OdbcSource",
                "query": "SELECT * FROM MyTable"
            },
            "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.

ODBC en tant que récepteur

Pour copier des données vers une banque de données compatible ODBC, définissez le type de récepteur dans l’activité de copie sur OdbcSink. Les propriétés prises en charge dans la section sink (récepteur) de l’activité de copie sont les suivantes :

Propriété Description Obligatoire
type La propriété type du récepteur d’activité de copie doit être définie sur : OdbcSink Oui
writeBatchTimeout Temps d’attente pour que l’opération d’insertion de lot soit terminée avant d’expirer.
Valeurs autorisées : timespan. Exemple : « 00:30:00 » (30 minutes).
Non
writeBatchSize Insère des données dans la table SQL lorsque la taille du tampon atteint writeBatchSize
Valeurs autorisées : integer (nombre de lignes).
Non (la valeur par défaut est 0, détectée automatiquement)
preCopyScript Spécifiez une requête SQL pour l’activité de copie à exécuter avant l’écriture de données dans la banque de données à chaque exécution. Vous pouvez utiliser cette propriété pour nettoyer des données préchargées. Non

Notes

Pour la valeur de « writeBatchSize », si celle-ci n’est pas définie (détectée automatiquement), l’activité de copie détecte d’abord si le pilote prend en charge les opérations par lot, puis définit la valeur sur 10000 si c’est le cas, ou sur 1 dans le cas contraire. Si vous définissez explicitement une valeur différente de 0, l’activité de copie respecte la valeur et le runtime échoue si le pilote ne prend pas en charge les opérations par lot.

Exemple :

"activities":[
    {
        "name": "CopyToODBC",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<ODBC output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "OdbcSink",
                "writeBatchSize": 100000
            }
        }
    }
]

Propriétés de l’activité Lookup

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

Résoudre les problèmes de connectivité

Pour résoudre les problèmes de connexion, utilisez l’onglet Diagnostics du Gestionnaire de configuration du runtime d’intégration.

  1. Lancez le Gestionnaire de configuration du runtime d’intégration.
  2. Basculez vers l’onglet Diagnostics .
  3. Dans la section « Tester la connexion », sélectionnez le type de banque de données (service lié).
  4. Spécifiez la chaîne de connexion utilisée pour se connecter à la banque de données, choisissez l’authentification, puis entrez le nom d’utilisateur, le mot de passe et/ou les informations d’identification.
  5. Cliquez sur Tester la connexion pour tester la connexion au magasin de données.

Pour obtenir une liste des magasins de données pris en charge comme sources et récepteurs par l’activité de copie, consultez la section sur les magasins de données pris en charge.