Partager via


Copier des données à partir d’Amazon Redshift à l’aide d’Azure Data Factory ou Azure 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 des pipelines Azure Data Factory et Azure Synapse Analytics pour copier des données à partir d’Amazon Redshift. Il s’appuie sur l’article Vue d’ensemble de l’activité de copie.

Important

Amazon Redshift version 2.0 (préversion) offre une prise en charge native d’Amazon Redshift améliorée. Si vous utilisez Amazon Redshift version 1.0 dans votre solution, vous êtes recommandé de mettre à niveau votre connecteur Amazon Redshift au plus tôt. Pour plus d’informations sur la différence entre la version 2.0 (préversion) et la version 1.0, consultez cette section .

Fonctionnalités prises en charge

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

Fonctionnalités prises en charge IR
Activité de copie (source/-) ① (uniquement pour la version 1.0) ②
Activité de recherche ① (uniquement pour la version 1.0) ②

① 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.

Pour la version 2.0 (préversion), vous devez installer manuellement le pilote ODBC Amazon Redshift . Pour la version 1.0, le service fournit un pilote intégré qui permet la connexion, vous n'avez donc pas besoin d'installer manuellement un pilote.

Le connecteur Amazon Redshift permet de récupérer des données à partir de Redshift en utilisant soit des requêtes, soit la prise en charge intégrée de Redshift UNLOAD.

Le connecteur prend en charge les versions Windows de cet article.

Conseil

Pour obtenir de meilleures performances lors de la copie de grandes quantités de données à partir de Redshift, utilisez le mécanisme Redshift intégré UNLOAD via Amazon S3. Consultez la section Utiliser UNLOAD pour copier des données à partir d’Amazon Redshift pour plus d’informations.

Prérequis

  • Si vous copiez des données vers une banque de données locale à l’aide du runtime d’intégration auto-hébergé, accordez au runtime d’intégration (en utilisant l’adresse IP de l’ordinateur) l’accès au cluster Amazon Redshift. Pour davantage d’instructions, consultez la rubrique Authorize access to the cluster (Autoriser l’accès au cluster). Si vous utilisez la version 2.0, votre version du runtime d’intégration auto-hébergée doit être 5.54.0.0 ou ultérieure.
  • Si vous copiez des données vers une banque de données Azure, consultez la page Plages IP des centres de données Azure pour connaître les plages d’adresses IP de calcul et SQL utilisées par les centres de données Azure.

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é à Amazon Redshift à l’aide de l’interface utilisateur

Utilisez les étapes suivantes pour créer un service lié à Amazon Redshift 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 cliquez sur Nouveau :

  2. Recherchez Amazon et sélectionnez le connecteur Amazon Redshift.

    Sélectionnez le connecteur Amazon Redshift.

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

    Configurer un service lié à Amazon Redshift.

Informations de configuration du connecteur

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 Amazon Redshift.

Propriétés du service lié

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

Propriété Descriptif Obligatoire
type La propriété type doit être définie sur : AmazonRedshift Oui
Version Version que vous spécifiez. Oui pour la version 2.0 (préversion).
serveur Nom d’hôte ou adresse IP du serveur Amazon Redshift. Oui
Port Le numéro du port TCP utilisé par le serveur Amazon Redshift pour écouter les connexions clientes. Non, la valeur par défaut est 5439
base de données Nom de la base de données Amazon Redshift. Oui
nom d'utilisateur Nom d’utilisateur ayant accès à la base de données. Oui
mot de passe Mot de passe du compte 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. Oui
connectVia Runtime d’intégration à utiliser pour la connexion à la banque de données.
Si vous sélectionnez la version 2.0 (préversion), vous pouvez uniquement utiliser le runtime d’intégration auto-hébergé et sa version doit être 5.54.0.0 ou ultérieure.
Si vous sélectionnez la version 1.0, vous pouvez utiliser Azure Integration Runtime ou Le runtime d’intégration auto-hébergé (si votre magasin de données se trouve dans un réseau privé). À défaut de spécification, le runtime d’intégration Azure par défaut est utilisé.
Non

Exemple : version 2.0 (préversion)

{
    "name": "AmazonRedshiftLinkedService",
    "properties":
    {
        "type": "AmazonRedshift",
        "version": "2.0",
        "typeProperties":
        {
            "server": "<server name>",
            "database": "<database name>",
            "username": "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Exemple : version 1.0

{
    "name": "AmazonRedshiftLinkedService",
    "properties":
    {
        "type": "AmazonRedshift",
        "typeProperties":
        {
            "server": "<server name>",
            "database": "<database name>",
            "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 Amazon Redshift.

Pour copier des données à partir d’Amazon Redshift, les propriétés suivantes sont prises en charge :

Propriété Descriptif Obligatoire
type La propriété type du jeu de données doit être définie sur : AmazonRedshiftTable 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": "AmazonRedshiftDataset",
    "properties":
    {
        "type": "AmazonRedshiftTable",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Amazon Redshift 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 Amazon Redshift en tant que source.

Amazon Redshift en tant que source

Pour copier des données d’Amazon Redshift, définissez AmazonRedshiftSource comme type de source dans l’activité de copie. Les propriétés prises en charge dans la section source de l’activité de copie sont les suivantes :

Propriété Descriptif Obligatoire
type La propriété type de la source d’activité de copie doit être définie sur : AmazonRedshiftSource Oui
requête Utilise la requête personnalisée pour lire des données. Par exemple : select * from MyTable. Non (si « tableName » est spécifié dans dataset)
redshiftDéchargerParamètres Groupe de propriétés lors de l’utilisation du mécanisme UNLOAD d’Amazon Redshift. Non
s3LinkedServiceName Fait référence à un service Amazon S3 à utiliser comme magasin temporaire en spécifiant un nom de service lié de type « AmazonS3 ». Oui, en cas d’utilisation de UNLOAD
bucketName Indiquez le compartiment S3 pour stocker les données intermédiaires. S’il n’est pas spécifié, le service le génère automatiquement. Oui, en cas d’utilisation de UNLOAD

Exemple : source Amazon Redshift dans une activité de copie utilisant UNLOAD

"source": {
    "type": "AmazonRedshiftSource",
    "query": "<SQL query>",
    "redshiftUnloadSettings": {
        "s3LinkedServiceName": {
            "referenceName": "<Amazon S3 linked service>",
            "type": "LinkedServiceReference"
        },
        "bucketName": "bucketForUnload"
    }
}

Apprenez-en davantage sur l’utilisation de UNLOAD pour copier efficacement des données d’Amazon Redshift en lisant la section suivante.

Utiliser UNLOAD pour copier des données à partir d’Amazon Redshift

UNLOAD est un mécanisme fourni par Amazon Redshift qui peut décharger les résultats d’une requête dans un ou plusieurs fichiers sur Amazon Simple Storage Service (Amazon S3). C’est le moyen recommandé par Amazon pour copier un jeu de données volumineux à partir de Redshift.

Exemple : copier des données d’Amazon Redshift vers Azure Synapse Analytics à l’aide de UNLOAD, une copie intermédiaire et PolyBase

Dans cet exemple de cas d’utilisation, l’activité de copie décharge les données d’Amazon Redshift sur Amazon S3, comme configuré dans « redshiftUnloadSettings », puis copie les données d’Amazon S3 dans un objet blob Azure, comme spécifié dans « stagingSettings », et enfin utilise PolyBase pour charger des données dans Azure Synapse Analytics. Tous les formats intermédiaires sont gérés correctement par l’activité de copie.

Workflow de la copie de Redshift vers Azure Synapse Analytics

"activities":[
    {
        "name": "CopyFromAmazonRedshiftToSQLDW",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "AmazonRedshiftDataset",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "AzureSQLDWDataset",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "AmazonRedshiftSource",
                "query": "select * from MyTable",
                "redshiftUnloadSettings": {
                    "s3LinkedServiceName": {
                        "referenceName": "AmazonS3LinkedService",
                        "type": "LinkedServiceReference"
                    },
                    "bucketName": "bucketForUnload"
                }
            },
            "sink": {
                "type": "SqlDWSink",
                "allowPolyBase": true
            },
            "enableStaging": true,
            "stagingSettings": {
                "linkedServiceName": "AzureStorageLinkedService",
                "path": "adfstagingcopydata"
            },
            "dataIntegrationUnits": 32
        }
    }
]

Mappage de type de données pour Amazon Redshift

Lorsque vous copiez des données à partir d’Amazon Redshift, les mappages suivants s’appliquent des types de données d’Amazon Redshift aux types de données internes utilisés par le service. Pour découvrir comment l’activité de copie mappe le schéma et le type de données la source au récepteur, consultez Mappage de schéma dans l’activité de copie.

Type de données d’Amazon Redshift Type de données de service intermédiaire (pour la version 2.0 (préversion)) Type de données de service intermédiaire (pour la version 1.0)
bigint Int64 Int64
BOOLÉEN Booléen Chaîne
CARBONISER Chaîne Chaîne
date Date et heure Date et heure
DECIMAL (Précision <= 28) Décimal Décimal
DÉCIMAL (Précision > 28) Chaîne Chaîne
DOUBLE PRÉCISION Double Double
ENTIER Int32 Int32
real Unique Unique
SMALLINT Int16 Int16
SMS Chaîne Chaîne
HORODATAGE Date et heure Date et heure
VARCHAR Chaîne Chaîne

Propriétés de l’activité Lookup

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

Mettre à niveau le connecteur Amazon Redshift

Voici les étapes qui vous aident à mettre à niveau le connecteur Amazon Redshift :

  1. Dans la page Modifier le service lié , sélectionnez la version 2.0 (préversion) et configurez le service lié en faisant référence aux propriétés du service lié.

  2. Le mappage de type de données pour le service lié Amazon Redshift version 2.0 (préversion) est différent de celui de la version 1.0. Pour découvrir le mappage de type de données le plus récent, consultez Mappage de type de données pour Amazon Redshift.

  3. Appliquez un runtime d’intégration auto-hébergé avec la version 5.54.0.0 ou ultérieure. Azure Integration Runtime n’est pas prise en charge par la version 2.0 (préversion).

Différences entre le connecteur Amazon Redshift version 2.0 (préversion) et la version 1.0

Le connecteur Amazon Redshift version 2.0 (préversion) offre de nouvelles fonctionnalités et est compatible avec la plupart des fonctionnalités de la version 1.0. Le tableau suivant présente les différences de fonctionnalités entre la version 2.0 (préversion) et la version 1.0.

Version 2.0 (préversion) Version 1.0
Prend uniquement en charge le runtime d’intégration auto-hébergé avec la version 5.54.0.0 ou ultérieure. Prendre en charge le runtime d’intégration Azure et le runtime d’intégration auto-hébergé.
Les mappages suivants sont utilisés à partir de types de données Amazon Redshift pour le type de données de service intermédiaire.

BOOLEAN -> Boolean
Les mappages suivants sont utilisés à partir de types de données Amazon Redshift pour le type de données de service intermédiaire.

BOOLEAN -> Chaîne

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.