Copiare dati da Amazon Redshift usando Azure Data Factory

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Questo articolo illustra come usare l'attività di copia in Azure Data Factory 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 Amazon Redshift connettore è supportato per le attività seguenti:

È possibile copiare dati da Amazon Redshift a qualsiasi archivio dati di sink supportato. Per un elenco degli archivi dati supportati come origini/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.

Guida introduttiva

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

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 Obbligatoria
type 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 in Azure Data Factory oppure 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 Amazon Redshift, sono supportate le proprietà seguenti:

Proprietà Descrizione Obbligatoria
type La proprietà type del set di dati deve essere impostata su: AmazonRedshiftTable
schema Nome dello schema. No (se nell'origine dell'attività è specificato "query")
tabella 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 Obbligatoria
type 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 Data Factory 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 i dati da Amazon Redshift Azure Synapse Analytics usando UNLOAD, la copia a fasi 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 "redshiftUnloadSettings" e quindi copia i dati da Amazon S3 al BLOB di Azure come specificato in "stagingSettings", infine usa PolyBase per caricare i dati in Azure Synapse Analytics. Tutto il formato provvisorio viene gestito correttamente dall'attività di copia.

Eseguire il redshift per Azure Synapse Analytics flusso di lavoro di copia

"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, vengono usati i mapping seguenti tra i tipi di dati Amazon Redshift e i tipi di dati provvisori di Azure Data Factory. 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 provvisori di Data Factory
bigint Int64
BOOLEAN Stringa
CHAR string
DATE DataOra
DECIMAL Decimal
DOUBLE PRECISION Double
INTEGER Int32
REAL Single
SMALLINT Int16
TEXT Stringa
timestamp DataOra
VARCHAR string

Proprietà dell'attività Lookup

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

Passaggi successivi

Per un elenco degli archivi dati supportati come origini o sink dall'attività di copia in Azure Data Factory, vedere gli archivi dati supportati.