Copier des données de PostgreSQL en utilisant Azure Data Factory ou Synapse Analytics (hérité)
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 des pipelines Azure Data Factory et Synapse Analytics pour copier des données à partir d’une base de données PostgreSQL. Il s’appuie sur l’article Vue d’ensemble de l’activité de copie.
Important
Le connecteur PostgreSQL V2 offre un meilleur support natif de PostgreSQL. Si vous utilisez le connecteur PostgreSQL V1 dans votre solution, veuillez mettre à jour votre connecteur PostgreSQL car la V1 est en phase de fin de prise en charge. Pour plus de détails sur les différences entre la V2 et la V1, reportez-vous à cette section.
Fonctionnalités prises en charge
Ce connecteur PostgreSQL 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 banques de données prises en charge en tant que sources ou récepteurs par l’activité de copie, consultez le tableau Banques de données prises en charge.
Plus précisément, ce connecteur PostgreSQL prend en charge PostgreSQL version 7.4 et versions ultérieures.
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.
Le runtime d’intégration fournit un pilote PostgreSQL intégré à partir de la version 3.7. Ainsi, vous n’avez pas besoin d’installer manuellement un pilote.
Prise en main
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é à PostgreSQL à l’aide de l’interface utilisateur
Utilisez les étapes suivantes pour créer un service lié à PostgreSQL dans l’interface utilisateur du portail Azure.
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 :
Recherchez Postgre et sélectionnez le connecteur PostgreSQL.
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 spécifiques du connecteur PostgreSQL.
Propriétés du service lié
Les propriétés prises en charge pour le service lié PostgreSQL sont les suivantes :
Propriété | Description | Obligatoire |
---|---|---|
type | La propriété type doit être définie sur : PostgreSql | Oui |
connectionString | Chaîne de connexion ODBC permettant de se connecter à Azure Database pour PostgreSQL. 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, reportez-vous aux exemples suivants et à l’article Stocker des informations d’identification dans Azure Key Vault. |
Oui |
connectVia | Runtime d’intégration à utiliser pour la connexion à la banque de données. Pour plus d’informations, consultez la section Conditions préalables. À défaut de spécification, le runtime d’intégration Azure par défaut est utilisé. | Non |
Voici un exemple de chaîne de connexion typique : Server=<server>;Database=<database>;Port=<port>;UID=<username>;Password=<Password>
. Selon votre cas de figure, vous pouvez définir d’autres propriétés :
Propriété | Description | Options | Obligatoire |
---|---|---|---|
EncryptionMethod (EM) | La méthode utilisée par le pilote pour chiffrer les données envoyées entre le pilote et le serveur de base de données. Par exemple : EncryptionMethod=<0/1/6>; |
0 (aucun chiffrement) (par défaut) / 1 (SSL) / 6 (RequestSSL) | Non |
ValidateServerCertificate (VSC) | Détermine si le pilote valide le certificat envoyé par le serveur de base de données lorsque le chiffrement SSL est activé (EncryptionMethod = 1). Par exemple : ValidateServerCertificate=<0/1>; |
0 (désactivé) (par défaut) / 1 (activé) | Non |
Notes
Pour disposer d’une vérification SSL complète via la connexion ODBC lors de l’utilisation d’Integration Runtime auto-hébergé (SHIR), vous devez utiliser explicitement une connexion de type ODBC au lieu du connecteur PostgreSQL et effectuer la configuration suivante :
- Configurez le DSN sur tous les serveurs SHIR.
- Placez le certificat approprié pour PostgreSQL dans C:\Windows\ServiceProfiles\DIAHostService\AppData\Roaming\postgresql\root.crt sur les serveurs SHIR. C’est là que le pilote ODBC recherche > le certificat SSL à vérifier lorsqu’il se connecte à la base de données.
- Dans votre connexion de fabrique de données, utilisez une connexion de type ODBC, avec votre chaîne de connexion pointant vers le DSN que vous avez créé sur vos serveurs SHIR.
Exemple :
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSql",
"typeProperties": {
"connectionString": "Server=<server>;Database=<database>;Port=<port>;UID=<username>;Password=<Password>"
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Exemple : stockage du mot de passe dans Azure Key Vault
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSql",
"typeProperties": {
"connectionString": "Server=<server>;Database=<database>;Port=<port>;UID=<username>;",
"password": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<Azure Key Vault linked service name>",
"type": "LinkedServiceReference"
},
"secretName": "<secretName>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Si vous utilisiez le service lié PostgreSQL avec la charge utile suivante, il reste pris en charge tel quel, mais nous vous suggérons d’utiliser le nouveau à l’avenir.
Charge utile précédente :
{
"name": "PostgreSqlLinkedService",
"properties": {
"type": "PostgreSql",
"typeProperties": {
"server": "<server>",
"database": "<database>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"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 fournit la liste des propriétés prises en charge par le jeu de données PostgreSQL.
Pour copier des données à partir de PostgreSQL, 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 : PostgreSqlTable | Oui |
schéma | Nom du schéma. | Non (si « query » dans la source de l’activité est spécifié) |
table | Nom de la table. | Non (si « query » dans la source de l’activité est spécifié) |
tableName | Nom de la table avec le schéma. Cette propriété est prise en charge pour la compatibilité descendante. Utilisez schema et table pour une nouvelle charge de travail. |
Non (si « query » dans la source de l’activité est spécifié) |
Exemple
{
"name": "PostgreSQLDataset",
"properties":
{
"type": "PostgreSqlTable",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<PostgreSQL linked service name>",
"type": "LinkedServiceReference"
}
}
}
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 PostgreSQL.
PostgreSQL en tant que source
Pour copier des données à partir de PostgreSQL, 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é type de la source d’activité de copie doit être définie sur : PostgreSqlSource | Oui |
query | Utiliser la requête SQL personnalisée pour lire les données. Par exemple : "query": "SELECT * FROM \"MySchema\".\"MyTable\"" . |
Non (si « tableName » est spécifié dans dataset) |
Notes
Les noms de schéma et de table respectent la casse. Encadrez-les avec des guillemets doubles (""
) dans la requête.
Exemple :
"activities":[
{
"name": "CopyFromPostgreSQL",
"type": "Copy",
"inputs": [
{
"referenceName": "<PostgreSQL input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "PostgreSqlSource",
"query": "SELECT * FROM \"MySchema\".\"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.
Propriétés de l’activité Lookup
Pour en savoir plus sur les propriétés, consultez Activité Lookup.
Contenu connexe
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.