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 all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!
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 (origine/-) | (1) (2) |
Attività Lookup | (1) (2) |
① Azure Integration Runtime ② 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.
Il connettore supporta le versioni di Windows in questo articolo.
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:
- Strumento Copia dati
- Il portale di Azure
- .NET SDK
- SDK di Python
- Azure PowerShell
- API REST
- Modello di Azure Resource Manager
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.
Passare alla scheda Gestisci nell'area di lavoro di Azure Data Factory o Synapse e selezionare Servizi collegati, quindi fare clic su Nuovo:
Cercare Amazon e selezionare il connettore Amazon Redshift.
Configurare i dettagli del servizio, testare la connessione e creare il nuovo servizio collegato.
Dettagli di configurazione del connettore
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 |
---|---|---|
type | La proprietà type deve essere impostata su: AmazonRedshift | Sì |
server | Indirizzo IP o nome host del server Amazon Redshift. | Sì |
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. | Sì |
username | Nome dell'utente che ha accesso al database. | Sì |
password | La password per l'account utente. Contrassegnare questo campo come SecureString per archiviarlo in modo sicuro oppure fare riferimento a un segreto archiviato in Azure Key Vault. | Sì |
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 |
---|---|---|
type | La proprietà type del set di dati deve essere impostata su: AmazonRedshiftTable | Sì |
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 |
---|---|---|
type | La proprietà type dell'origine dell'attività di copia deve essere impostata su: AmazonRedshiftSource | Sì |
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 "redshiftUnloadSettings" e quindi copia i dati da Amazon S3 al BLOB di Azure come specificato in "stagingSettings", infine usare PolyBase per caricare i dati in Azure Synapse Analytics. Tutto il formato provvisorio viene gestito correttamente dall'attività 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, 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 | String |
CHAR | String |
DATE | Data/Ora |
DECIMAL | Decimale |
DOUBLE PRECISION | Double |
INTEGER | Int32 |
REAL | Singola |
SMALLINT | Int16 |
TEXT | String |
TIMESTAMP | Data/Ora |
VARCHAR | String |
Proprietà dell'attività Lookup
Per altre informazioni sulle proprietà, vedere Attività Lookup.
Contenuto correlato
Per un elenco degli archivi dati supportati come origini e sink dall'attività Copy, vedere Archivi dati supportati.