Caricamento di dati da una tabella Amazon DynamoDB - Amazon Redshift

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Caricamento di dati da una tabella Amazon DynamoDB

Puoi utilizzare il COPY comando per caricare una tabella con dati da una singola tabella Amazon DynamoDB.

Importante

La tabella Amazon DynamoDB che fornisce i dati deve essere creata nella AWS stessa regione del cluster a meno che non si utilizzi l'opzione per specificare REGION la regione in cui si trova AWS la tabella Amazon DynamoDB.

Il COPY comando utilizza l'architettura Amazon Redshift massively parallel processing MPP () per leggere e caricare dati in parallelo da una tabella Amazon DynamoDB. È possibile ottenere il massimo dall'elaborazione parallela impostando gli stili di distribuzione nelle tabelle Amazon Redshift. Per ulteriori informazioni, consulta Utilizzo degli stili di distribuzione dati.

Importante

Quando il COPY comando legge i dati dalla tabella Amazon DynamoDB, il trasferimento di dati risultante fa parte del throughput assegnato alla tabella.

Per evitare di utilizzare quantità eccessive di throughput di lettura assegnato, consigliamo di non caricare i dati dalle tabelle Amazon DynamoDB che si trovano in ambienti di produzione. Se carichi dati dalle tabelle di produzione, ti consigliamo di impostare l'READRATIOopzione molto più bassa della percentuale media di throughput assegnato non utilizzato. Un'READRATIOimpostazione bassa contribuirà a ridurre al minimo i problemi di limitazione. Per utilizzare l'intero throughput assegnato di una tabella Amazon DynamoDB, imposta su 100. READRATIO

Il COPY comando abbina i nomi degli attributi negli elementi recuperati dalla tabella DynamoDB ai nomi delle colonne in una tabella Amazon Redshift esistente utilizzando le seguenti regole:

  • Le colonne di una tabella Amazon Redshift corrispondono senza distinzione tra maiuscole e minuscole agli attributi degli elementi di Amazon DynamoDB. Se un elemento nella tabella DynamoDB contiene più attributi che differiscono solo per maiuscole e minuscole, come Price PRICE e, COPY il comando avrà esito negativo.

  • Le colonne della tabella Amazon Redshift che non corrispondono a un attributo nella tabella Amazon DynamoDB vengono caricate come una delle NULL due o vuote, a seconda del valore specificato con EMPTYASNULL l'opzione nel comando. COPY

  • Gli attributi di Amazon DynamoDB che non corrispondono a una colonna nella tabella Amazon Redshift vengono scartati. Gli attributi vengono letti prima di essere abbinati, quindi anche gli attributi eliminati utilizzano parte del throughput assegnato della tabella.

  • Sono supportati solo gli attributi di Amazon DynamoDB con tipi di dati NUMBER e STRING scalari. Amazon BINARY DynamoDB SET e i tipi di dati non sono supportati. Se un COPY comando tenta di caricare un attributo con un tipo di dati non supportato, il comando avrà esito negativo. Se l'attributo non corrisponde a una colonna della tabella Amazon Redshift, COPY non tenta di caricarlo e non genera alcun errore.

Il COPY comando utilizza la seguente sintassi per caricare dati da una tabella Amazon DynamoDB:

COPY <redshift_tablename> FROM 'dynamodb://<dynamodb_table_name>' authorization readratio '<integer>';

I valori per l'autorizzazione sono le AWS credenziali necessarie per accedere alla tabella Amazon DynamoDB. Se queste credenziali corrispondono a un utente, quell'utente deve disporre dell'autorizzazione SCAN e DESCRIBE della tabella Amazon DynamoDB che viene caricata.

I valori di autorizzazione forniscono l' AWS autorizzazione necessaria al cluster per accedere alla tabella Amazon DynamoDB. L'autorizzazione deve includere SCAN e DESCRIBE per la tabella Amazon DynamoDB che viene caricata. Per ulteriori informazioni sulle autorizzazioni richieste, consultare IAMautorizzazioni per, e COPY UNLOAD CREATE LIBRARY. Il metodo preferito per l'autenticazione consiste nello specificare il ROLE parametro IAM _ e fornire Amazon Resource Name (ARN) per un IAM ruolo con le autorizzazioni necessarie. Per ulteriori informazioni, consulta Controllo degli accessi basato sui ruoli.

Per autenticarsi utilizzando il parametro IAM _ROLE, <aws-account-id> e <role-name> come illustrato nella sintassi seguente.

IAM_ROLE 'arn:aws:iam::<aws-account-id>:role/<role-name>'

L'esempio seguente mostra l'autenticazione tramite un IAM ruolo.

COPY favoritemovies FROM 'dynamodb://ProductCatalog' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

Per ulteriori informazioni su altre opzioni di autorizzazione, consulta Parametri di autorizzazione

Se desideri convalidare i dati senza caricare effettivamente la tabella, usa l'NOLOADopzione con il COPY comando.

L'esempio seguente carica la FAVORITEMOVIES tabella con i dati della tabella DynamoDB my-favorite-movies-table. L'attività di lettura può utilizzare fino al 50% del throughput assegnato.

COPY favoritemovies FROM 'dynamodb://my-favorite-movies-table' IAM_ROLE 'arn:aws:iam::0123456789012:role/MyRedshiftRole' READRATIO 50;

Per massimizzare il throughput, il COPY comando carica i dati da una tabella Amazon DynamoDB in parallelo tra i nodi di calcolo del cluster.

Throughput assegnata con la compressione automatica

Per impostazione predefinita, il COPY comando applica la compressione automatica ogni volta che si specifica una tabella di destinazione vuota senza codifica di compressione. L'analisi della compressione automatica inizialmente campiona un numero elevato di righe dalla tabella Amazon DynamoDB. La dimensione del campione si basa sul valore del COMPROWS parametro. La versione predefinita è di 100.000 per sezione.

Dopo il campionamento, le righe di esempio vengono scartate e viene caricata l'intera tabella. Di conseguenza, molte righe vengono lette due volte. Per ulteriori informazioni sul funzionamento della compressione automatica, consultare Caricamento di tabelle con compressione automatica.

Importante

Quando il COPY comando legge i dati dalla tabella Amazon DynamoDB, incluse le righe utilizzate per il campionamento, il trasferimento di dati risultante fa parte del throughput assegnato a quella tabella.

Caricamento di dati multibyte da Amazon DynamoDB

Se i dati includono caratteri non ASCII multibyte (come caratteri cinesi o cirillici), devi caricare i dati in colonne. VARCHAR Il tipo di VARCHAR dati supporta UTF -8 caratteri a quattro byte, ma accetta solo caratteri a byte singolo. CHAR ASCII Non è possibile caricare caratteri a cinque byte o più lunghi nelle tabelle Amazon Redshift. Per ulteriori informazioni su CHAR and, vedere. VARCHAR Tipi di dati