Copiare dati da Amazon Redshift usando Azure Data Factory o Synapse Analytics

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .

Questo articolo illustra come usare l'attività di copia nelle pipeline di Azure Data Factory e Synapse Analytics per copiare dati da Amazon Redshift. Si basa sull'articolo di panoramica dell'attività di copia che presenta una panoramica generale sull'attività di copia.

Funzionalità supportate

Questo connettore Amazon Redshift è supportato per le funzionalità seguenti:

Funzionalità supportate IR
attività Copy (source/-) ① ②
Attività Lookup ① ②

(1) Runtime di integrazione di Azure (2) Runtime di integrazione self-hosted

Per un elenco degli archivi dati supportati come origini o sink dall'attività di copia, vedere la tabella relativa agli archivi dati supportati.

In particolare, il connettore Amazon Redshift supporta il recupero di dati da Redshift mediante l'uso di query o dello strumento UNLOAD Redshift.

Suggerimento

Per ottenere prestazioni ottimali quando si copiano grandi quantità di dati da Redshift, è possibile usare lo strumento UNLOAD Redshift predefinito tramite Amazon S3. Per informazioni dettagliate, vedere la sezione Usare UNLOAD per copiare i dati da Amazon Redshift.

Prerequisiti

  • Se si copiano dati in un archivio dati locale usando il runtime di integrazione self-hosted, concedere al runtime di integrazione (usare l'indirizzo IP del computer) l'accesso al cluster Amazon Redshift. Vedere Autorizzare l'accesso al cluster per le istruzioni.
  • Se si copiano dati in un archivio dati di Azure, vedere Azure Data Center IP Ranges (Intervalli IP del centro dati di Azure) per gli intervalli di indirizzi IP ed SQL di calcolo usati dai data center di Azure.

Introduzione

Per eseguire l'attività di copia con una pipeline, è possibile usare uno degli strumenti o SDK seguenti:

Creare un servizio collegato ad Amazon Redshift usando l'interfaccia utente

Usare la procedura seguente per creare un servizio collegato ad Amazon Redshift nell'interfaccia utente di portale di Azure.

  1. Passare alla scheda Gestisci nell'area di lavoro di Azure Data Factory o Synapse e selezionare Servizi collegati, quindi fare clic su Nuovo:

  2. Cercare Amazon e selezionare il connettore Amazon Redshift.

    Select the Amazon Redshift connector.

  3. Configurare i dettagli del servizio, testare la connessione e creare il nuovo servizio collegato.

    Configure a linked service to Amazon Redshift.

Dettagli di configurazione di Connessione or

Le sezioni seguenti riportano informazioni dettagliate sulle proprietà che vengono usate per definire entità di Data Factory specifiche per il connettore Amazon Redshift.

Proprietà del servizio collegato

Per il servizio collegato di Amazon Redshift sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
Tipo La proprietà type deve essere impostata su: AmazonRedshift
server Indirizzo IP o nome host del server Amazon Redshift.
port Il numero della porta TCP che il server Amazon Redshift usa per ascoltare le connessioni client. No, il valore predefinito è 5439
database Nome del database Amazon Redshift.
username Nome dell'utente che ha accesso al database.
password La password per l'account utente. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro o fare riferimento a un segreto archiviato in Azure Key Vault.
connectVia Il runtime di integrazione da usare per la connessione all'archivio dati. È possibile usare il runtime di integrazione di Azure o il runtime di integrazione self-hosted (se l'archivio dati si trova in una rete privata). Se non specificato, viene usato il runtime di integrazione di Azure predefinito. No

Esempio:

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

Proprietà del set di dati

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione di set di dati, vedere l'articolo sui set di dati. Questa sezione presenta un elenco delle proprietà supportate dal set di dati Amazon Redshift.

Per copiare dati da Amazon Redshift, sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
Tipo La proprietà type del set di dati deve essere impostata su: AmazonRedshiftTable
schema Nome dello schema. No (se nell'origine dell'attività è specificato "query")
table Nome della tabella. No (se nell'origine dell'attività è specificato "query")
tableName Nome della tabella con schema. Questa proprietà è supportata per garantire la compatibilità con le versioni precedenti. Per i nuovi carichi di lavoro, usare schema e table. No (se nell'origine dell'attività è specificato "query")

Esempio

{
    "name": "AmazonRedshiftDataset",
    "properties":
    {
        "type": "AmazonRedshiftTable",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Amazon Redshift linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

Il set di dati tipizzato RelationalTable è ancora supportato senza modifiche, ma è consigliato l'uso del nuovo per il futuro.

Proprietà dell'attività di copia

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere l'articolo sulle pipeline. Questa sezione presenta un elenco delle proprietà supportate dall'origine Amazon Redshift.

Amazon Redshift come origine

Per copiare dati da Amazon Redshift, impostare il tipo di origine nell'attività di copia su AmazonRedshiftSource. Nella sezione origine dell'attività di copia sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
Tipo La proprietà type dell'origine dell'attività di copia deve essere impostata su: AmazonRedshiftSource
query Usare la query personalizzata per leggere i dati. Ad esempio: selezionare * da MyTable. No (se nel set di dati è specificato "tableName")
redshiftUnloadSettings Gruppo di proprietà quando si usa lo strumento UNLOAD di Amazon Redshift. No
s3LinkedServiceName Fa riferimento a un'istanza di Amazon S3 da usare come archivio provvisorio specificando un nome di servizio collegato di tipo "AmazonS3". Sì, se si usa UNLOAD
bucketName Indicare il bucket S3 per archiviare i dati provvisori. Se non viene specificato, il servizio lo genera automaticamente. Sì, se si usa UNLOAD

Esempio: origine Amazon Redshift nell'attività di copia usando UNLOAD

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

Per altre informazioni su come usare UNLOAD per copiare in modo efficiente dati da Amazon Redshift, vedere la sezione successiva.

Usare UNLOAD per copiare i dati da Amazon Redshift

UNLOAD è un meccanismo fornito da Amazon Redshift, che consente di scaricare i risultati di una query in uno o più file in Amazon Simple Storage Service (Amazon S3). Si tratta del metodo consigliato da Amazon per la copia di set di dati di grandi dimensioni da Redshift.

Esempio: copiare dati da Amazon Redshift ad Azure Synapse Analytics usando UNLOAD, copia temporanea e PolyBase

Per questo caso d'uso di esempio, l'attività di copia scarica i dati da Amazon Redshift ad Amazon S3 come configurato in "redshiftUnload Impostazioni" e quindi copia i dati da Amazon S3 al BLOB di Azure come specificato in "staging Impostazioni", infine usare PolyBase per caricare i dati in Azure Synapse Analytics. Tutto il formato provvisorio viene gestito correttamente dall'attività di copia.

Redshift to Azure Synapse Analytics copy workflow

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

Mapping del tipo di dati di Amazon Redshift

Quando si copiano dati da Amazon Redshift, i mapping seguenti vengono usati dai tipi di dati Amazon Redshift ai tipi di dati provvisori usati internamente all'interno del servizio. Vedere Mapping dello schema e del tipo di dati per informazioni su come l'attività di copia esegue il mapping dello schema di origine e del tipo di dati al sink.

Tipo di dati di Amazon Redshift Tipo di dati del servizio provvisorio
bigint Int64
BOOLEAN Stringa
CHAR Stringa
DATE Data/Ora
DECIMAL Decimale
DOUBLE PRECISION Double
INTEGER Int32
REAL Singola
SMALLINT Int16
TEXT Stringa
TIMESTAMP Data/Ora
VARCHAR Stringa

Proprietà dell'attività Lookup

Per altre informazioni sulle proprietà, vedere Attività Lookup.

Per un elenco degli archivi dati supportati come origini e sink dall'attività di copia, vedere archivi dati supportati.