Modelli da Amazon RDS ad Amazon Redshift - AWS Data Pipeline

AWS Data Pipeline non è più disponibile per i nuovi clienti. I clienti esistenti di AWS Data Pipeline possono continuare a utilizzare il servizio normalmente. Ulteriori informazioni

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

Modelli da Amazon RDS ad Amazon Redshift

I due modelli seguenti copiano le tabelle da Amazon RDS MySQL ad Amazon Redshift utilizzando uno script di traduzione, che crea una tabella Amazon Redshift utilizzando lo schema della tabella di origine con le seguenti avvertenze:

  • Se non viene specificata una chiave di distribuzione, la prima chiave primaria della tabella Amazon RDS viene impostata come chiave di distribuzione.

  • Non puoi saltare una colonna presente in una tabella Amazon RDS MySQL quando esegui una copia su Amazon Redshift.

  • (Facoltativo) Puoi fornire una mappatura del tipo di dati delle colonne da Amazon RDS MySQL ad Amazon Redshift come uno dei parametri del modello. Se viene specificato, lo script lo utilizza per creare la tabella Amazon Redshift.

Se viene utilizzata la modalità di inserimento di Overwrite_Existing Amazon Redshift:

  • Se non viene fornita una chiave di distribuzione, viene utilizzata una chiave primaria nella tabella Amazon RDS MySQL.

  • Se ci sono chiavi primarie composite nella tabella, la prima viene usata come chiave di distribuzione se la chiave di distribuzione non viene fornita. Solo la prima chiave composita viene impostata come chiave primaria nella tabella Amazon Redshift.

  • Se non viene fornita una chiave di distribuzione e non esiste una chiave primaria nella tabella Amazon RDS MySQL, l'operazione di copia non riesce.

Per ulteriori informazioni su Amazon Redshift, consulta i seguenti argomenti:

La tabella seguente spiega come lo script traduce i tipi di dati:

Traduzioni dei tipi di dati tra MySQL e Amazon Redshift
Tipi di dati MySQL Tipo di dati Amazon Redshift Note

TINYINT,

TINYINT (dimensioni)

SMALLINT

MySQL: -da 128 a 127. Il numero massimo di cifre può essere specificato tra parentesi.

Amazon Redshift:. INT2 Intero a due byte firmato

TINYINT UNSIGNED,

TINYINT (dimensione) UNSIGNED

SMALLINT

MySQL: da 0 a 255 UNSIGNED. Il numero massimo di cifre può essere specificato tra parentesi.

Amazon Redshift:. INT2 Intero a due byte firmato

SMALLINT,

SMALLINT (dimensioni)

SMALLINT

MySQL: - da 32768 a 32767 normale. Il numero massimo di cifre può essere specificato tra parentesi.

Amazon Redshift:. INT2 Intero a due byte firmato

SMALLINT UNSIGNED,

SMALLINT(dimensione) UNSIGNED,

INTEGER

MySQL: da 0 a 65535 UNSIGNED*. Il numero massimo di cifre può essere specificato tra parentesi

Amazon Redshift:. INT4 Intero a quattro byte firmato

MEDIUMINT,

MEDIUMINT(dimensione)

INTEGER

MySQL: da 388608 a 8388607. Il numero massimo di cifre può essere specificato tra parentesi

Amazon Redshift:. INT4 Intero a quattro byte firmato

MEDIUMINT UNSIGNED,

MEDIUMINT(dimensione)

UNSIGNED

INTEGER

MySQL: da 0 a 16777215. Il numero massimo di cifre può essere specificato tra parentesi

Amazon Redshift:. INT4 Intero a quattro byte firmato

INT,

INT(dimensione)

INTEGER

MySQL: da 147483648 a 2147483647

Amazon Redshift:. INT4 Intero a quattro byte firmato

INT UNSIGNED,

INT(dimensione) UNSIGNED

BIGINT

MySQL: da 0 a 4294967295

Amazon Redshift:. INT8 Intero a otto byte firmato

BIGINT

BIGINT (dimensione)

BIGINT

Amazon Redshift:. INT8 Intero a otto byte firmato

BIGINT UNSIGNED

BIGINT(dimensione) UNSIGNED

VARCHAR(20*4)

MySQL: da 0 a 18446744073709551615

Amazon Redshift: nessun equivalente nativo, quindi utilizza un array di caratteri.

FLOAT

FLOAT (dimensioni, d)

FLOAT (dimensioni, d) UNSIGNED

REAL

Il numero massimo di cifre può essere specificato nel parametro della dimensione. Il numero di cifre alla destra del punto decimale viene specificato nel parametro d.

Amazon Redshift: FLOAT4

DOUBLE (dimensioni, d)

DOUBLE PRECISION

Il numero massimo di cifre può essere specificato nel parametro della dimensione. Il numero di cifre alla destra del punto decimale viene specificato nel parametro d.

Amazon Redshift: FLOAT8

DECIMAL (dimensioni, d)

DECIMAL (dimensioni, d)

Un DOUBLE memorizzato come stringa, consentendo una virgola decimale fissa. Il numero massimo di cifre può essere specificato nel parametro della dimensione. Il numero di cifre alla destra del punto decimale viene specificato nel parametro d.

Amazon Redshift: nessun equivalente nativo.

CHAR(dimensione)

VARCHAR (dimensione* 4)

Contiene una stringa di lunghezza fissa, che può contenere lettere, numeri e caratteri speciali. La dimensione fissa viene specificata come parametro tra parentesi. Può contenere fino a 255 caratteri.

Riempito a destra con spazi.

Amazon Redshift: il tipo di dati CHAR non supporta caratteri multibyte, quindi viene utilizzato VARCHAR.

Il numero massimo di byte per carattere è 4 in base a, il che limita la tabella dei caratteri a RFC3629U+10FFFF.

VARCHAR(dimensione) VARCHAR (dimensione* 4)

Può contenere fino a 255 caratteri.

VARCHAR non supporta i seguenti punti di codice UTF-8 non validi: 0xD800- 0xDFFF, (sequenze in byte: ED A0 80- ED BF BF), 0xFDD0- 0xFDEF, 0xFFFE e 0xFFFF (sequenze in byte: EF B7 90- EF B7 AF, EF BF BE e EF BF BF)

TINYTEXT VARCHAR(255*4) Contiene una stringa con un massimo di 255 caratteri
TEXT VARCHAR(max)

Contiene una stringa con un massimo di 65.535 caratteri.

MEDIUMTEXT VARCHAR(max)

Da 0 a 16.777.215 char

LONGTEXT VARCHAR(max) Da 0 a 4.294.967.295 char

BOOLEAN

BOOL

TINYINT(1)

BOOLEAN

MySQL: questi tipi sono sinonimi di TINYINT (1). Il valore zero è considerato falso. I valori diversi da zero sono considerati veri.

BINARY[(M)] varchar(255)

M è da 0 a 255 byte, FIXED

VARBINARY(M) VARCHAR(max)

Da 0 a 65.535 byte

TINYBLOB VARCHAR(255) Da 0 a 255 byte
BLOB VARCHAR(max)

Da 0 a 65.535 byte

MEDIUMBLOB VARCHAR(max)

Da 0 a 16.777.215 byte

LONGBLOB VARCHAR(max)

Da 0 a 4.294.967.295 byte

ENUM VARCHAR(255*2) Il limite non è alla lunghezza della stringa di enumerazione letterale, bensì sulla definizione della tabella per il numero di valori di enumerazione.
SET VARCHAR(255*2) Come enum.
DATE DATE

(YYYY-MM-DD)

da "1000-01-01" a "9999-12-31"

TIME VARCHAR(10*4)

(hh:mm:ss)

da "-838:59:59" a "838:59:59"

DATETIME TIMESTAMP

(hh:mm:ss) YYYY-MM-DD

da 1000-01-01 00:00:00" a "9999-12-31 23:59:59"

TIMESTAMP TIMESTAMP

(YYYYMMDDhhmmss)

da 19700101000000 a 2037+

ANNO VARCHAR(4*4)

(YYYY)

Da 1900 a 2155

colonna SERIAL

generazione di ID/Questo attributo non è necessario per un data warehouse OLAP poiché questa colonna è copiata.

La parola chiave SERIAL non viene aggiunta durante la traduzione.

SERIAL è un'entità denominata SEQUENCE. Esiste indipendentemente dal resto della tabella.

colonna GENERATED BY DEFAULT

equivalente a:

Nome CREATE SEQUENCE; tabella CREATE TABLE (colonna INTEGER NOT NULL DEFAULT nextval (name));

colonna BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE

generazione di ID/Questo attributo non è necessario per un data warehouse OLAP poiché questa colonna è copiata.

Quindi, la parola chiave SERIAL non viene aggiunta durante la traduzione.

SERIAL è un'entità denominata SEQUENCE. Esiste indipendentemente dal resto della tabella.

colonna GENERATED BY DEFAULT

equivalente a:

Nome CREATE SEQUENCE; tabella CREATE TABLE (colonna INTEGER NOT NULL DEFAULT nextval (name));

ZEROFILL La parola chiave ZEROFILL non viene aggiunta durante la traduzione.

INT UNSIGNED ZEROFILL NOT NULL

ZEROFILL riempie il valore visualizzato del campo con zeri fino alla larghezza di visualizzazione specificata nella definizione della colonna. I valori superiori alla larghezza di visualizzazione non sono troncati. Si noti che l'utilizzo di ZEROFILL implica anche UNSIGNED.