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à.
Conversione dei dati durante l'esportazione in un bucket Amazon S3 per Amazon RDS
Quando esporti uno snapshot DB in un bucket Amazon S3, RDS Amazon converte i dati, li esporta e li archivia nel formato Parquet. Per ulteriori informazioni su Parquet, consultare il sito Web Apache Parquet
Parquet archivia tutti i dati in uno dei seguenti tipi primitivi:
-
BOOLEAN
-
INT32
-
INT64
-
INT96
-
FLOAT
-
DOUBLE
-
BYTE_ ARRAY — Un array di byte a lunghezza variabile, noto anche come binario
-
FIXED_ _ LEN BYTE _ ARRAY — Un array di byte a lunghezza fissa utilizzato quando i valori hanno una dimensione costante
I tipi di dati Parquet sono pochi per ridurre la complessità di lettura e scrittura del formato. Parquet fornisce tipi logici per estendere i tipi primitivi. Un tipo logico viene implementato come annotazione con i dati in un campo di metadati LogicalType
. L'annotazione di tipo logico spiega come interpretare il tipo primitivo.
Quando il tipo STRING
logico annota un BYTE_ARRAY
tipo, indica che l'array di byte deve essere interpretato come una UTF stringa di caratteri con codifica -8. Al termine di un'attività di esportazione, Amazon ti RDS avvisa se si è verificata una conversione di stringhe. I dati sottostanti esportati sono sempre uguali ai dati provenienti dall'origine. Tuttavia, a causa della differenza di codifica in UTF -8, alcuni caratteri potrebbero apparire diversi dalla fonte quando vengono letti con strumenti come Athena.
Per ulteriori informazioni, consultare la sezione relativa alle definizioni dei tipi logici di Parquet
Argomenti
Mappatura dei tipi di dati My SQL e MariaDB su Parquet
La tabella seguente mostra la mappatura dai tipi di dati My SQL e MariaDB ai tipi di dati Parquet quando i dati vengono convertiti ed esportati in Amazon S3.
Tipo di dati origine | Tipo Parquet primitivo | Annotazione del tipo logico | Note di conversione |
---|---|---|---|
Tipi di dati numerici | |||
BIGINT | INT64 | ||
BIGINT UNSIGNED | FIXED_ _ _ (9LEN) BYTE ARRAY | DECIMAL(20,0) | Parquet supporta solo i tipi firmati, quindi la mappatura richiede un byte aggiuntivo (8 più 1) per memorizzare il tipo _. BIGINT UNSIGNED |
BIT | BYTE_ARRAY | ||
DECIMAL | INT32 | DECIMAL(p, s) | Se il valore di origine è inferiore a 2 31, viene archiviato comeINT32. |
INT64 | DECIMAL(p, s) | Se il valore di origine è 2 31 o superiore, ma inferiore a 2 63, viene memorizzato comeINT64. | |
FIXED_ LEN _ BYTE _ ARRAY (N) | DECIMAL(p, s) | Se il valore di origine è 2 63 o superiore, viene memorizzato come FIXED _ LEN _ BYTE _ ARRAY (N). | |
BYTE_ARRAY | STRING | Parquet non supporta la precisione decimale superiore a 38. Il valore decimale viene convertito in una stringa di ARRAY tipo BYTE _ e codificato come. UTF8 | |
DOUBLE | DOUBLE | ||
FLOAT | DOUBLE | ||
INT | INT32 | ||
INT UNSIGNED | INT64 | ||
MEDIUMINT | INT32 | ||
MEDIUMINT UNSIGNED | INT64 | ||
NUMERIC | INT32 | DECIMAL(p, s) |
Se il valore di origine è inferiore a 2 31, viene archiviato comeINT32. |
INT64 | DECIMAL(p, s) | Se il valore di origine è 2 31 o superiore, ma inferiore a 2 63, viene memorizzato comeINT64. | |
FIXED_ LEN _ ARRAY (N) | DECIMAL(p, s) | Se il valore di origine è 2 63 o superiore, viene memorizzato come FIXED _ LEN _ BYTE _ ARRAY (N). | |
BYTE_ARRAY | STRING | Parquet non supporta la precisione numerica superiore a 38. Questo valore numerico viene convertito in una stringa di ARRAY tipo BYTE _ e codificato come. UTF8 | |
SMALLINT | INT32 | ||
SMALLINT UNSIGNED | INT32 | ||
TINYINT | INT32 | ||
TINYINT UNSIGNED | INT32 | ||
Tipi di dati stringa | |||
BINARY | BYTE_ARRAY | ||
BLOB | BYTE_ARRAY | ||
CHAR | BYTE_ARRAY | ||
ENUM | BYTE_ARRAY | STRING | |
LINESTRING | BYTE_ARRAY | ||
LONGBLOB | BYTE_ARRAY | ||
LONGTEXT | BYTE_ARRAY | STRING | |
MEDIUMBLOB | BYTE_ARRAY | ||
MEDIUMTEXT | BYTE_ARRAY | STRING | |
MULTILINESTRING | BYTE_ARRAY | ||
SET | BYTE_ARRAY | STRING | |
TEXT | BYTE_ARRAY | STRING | |
TINYBLOB | BYTE_ARRAY | ||
TINYTEXT | BYTE_ARRAY | STRING | |
VARBINARY | BYTE_ARRAY | ||
VARCHAR | BYTE_ARRAY | STRING | |
Tipi di dati data e ora | |||
DATE | BYTE_ARRAY | STRING | Una data viene convertita in una stringa di ARRAY tipo BYTE _ e codificata come. UTF8 |
DATETIME | INT64 | TIMESTAMP_MICROS | |
TIME | BYTE_ARRAY | STRING | Un TIME tipo viene convertito in una stringa in un BYTE _ ARRAY e codificato come. UTF8 |
TIMESTAMP | INT64 | TIMESTAMP_MICROS | |
YEAR | INT32 | ||
Tipi di dati geometrici | |||
GEOMETRY | BYTE_ARRAY | ||
GEOMETRYCOLLECTION | BYTE_ARRAY | ||
MULTIPOINT | BYTE_ARRAY | ||
MULTIPOLYGON | BYTE_ARRAY | ||
POINT | BYTE_ARRAY | ||
POLYGON | BYTE_ARRAY | ||
JSONtipo di dati | |||
JSON | BYTE_ARRAY | STRING |
mappatura SQL dei tipi di dati Postgre su Parquet
La tabella seguente mostra la mappatura dai tipi di dati Postgre ai tipi di SQL dati Parquet quando i dati vengono convertiti ed esportati in Amazon S3.
Tipo di dati Postgre SQL | Tipo Parquet primitivo | Annotazione del tipo logico | Note relative alla mappatura |
---|---|---|---|
Tipi di dati numerici | |||
BIGINT | INT64 | ||
BIGSERIAL | INT64 | ||
DECIMAL | BYTE_ARRAY | STRING | Un DECIMAL tipo viene convertito in una stringa di ARRAY tipo BYTE _ e codificato come. UTF8 Questa conversione serve a evitare complicazioni dovute alla precisione dei dati e ai valori di dati che non sono un numero (NaN). |
DOUBLE PRECISION | DOUBLE | ||
INTEGER | INT32 | ||
MONEY | BYTE_ARRAY | STRING | |
REAL | FLOAT | ||
SERIAL | INT32 | ||
SMALLINT | INT32 | INT_16 | |
SMALLSERIAL | INT32 | INT_16 | |
Tipi di dati stringa e correlati | |||
ARRAY | BYTE_ARRAY | STRING |
Un array viene convertito in una stringa e codificato come BINARY ()UTF8. Questa conversione serve a evitare complicazioni dovute alla precisione dei dati, ai valori di dati che non sono un numero (NaN) e ai valori di dati temporali. |
BIT | BYTE_ARRAY | STRING | |
BIT VARYING | BYTE_ARRAY | STRING | |
BYTEA | BINARY | ||
CHAR | BYTE_ARRAY | STRING | |
CHAR(N) | BYTE_ARRAY | STRING | |
ENUM | BYTE_ARRAY | STRING | |
NAME | BYTE_ARRAY | STRING | |
TEXT | BYTE_ARRAY | STRING | |
TEXT SEARCH | BYTE_ARRAY | STRING | |
VARCHAR(N) | BYTE_ARRAY | STRING | |
XML | BYTE_ARRAY | STRING | |
Tipi di dati data e ora | |||
DATE | BYTE_ARRAY | STRING | |
INTERVAL | BYTE_ARRAY | STRING | |
TIME | BYTE_ARRAY | STRING | |
TIME WITH TIME ZONE | BYTE_ARRAY | STRING | |
TIMESTAMP | BYTE_ARRAY | STRING | |
TIMESTAMP WITH TIME ZONE | BYTE_ARRAY | STRING | |
Tipi di dati geometrici | |||
BOX | BYTE_ARRAY | STRING | |
CIRCLE | BYTE_ARRAY | STRING | |
LINE | BYTE_ARRAY | STRING | |
LINESEGMENT | BYTE_ARRAY | STRING | |
PATH | BYTE_ARRAY | STRING | |
POINT | BYTE_ARRAY | STRING | |
POLYGON | BYTE_ARRAY | STRING | |
JSONtipi di dati | |||
JSON | BYTE_ARRAY | STRING | |
JSONB | BYTE_ARRAY | STRING | |
Altri tipi di dati | |||
BOOLEAN | BOOLEAN | ||
CIDR | BYTE_ARRAY | STRING | Tipo di dati di rete |
COMPOSITE | BYTE_ARRAY | STRING | |
DOMAIN | BYTE_ARRAY | STRING | |
INET | BYTE_ARRAY | STRING | Tipo di dati di rete |
MACADDR | BYTE_ARRAY | STRING | |
OBJECT IDENTIFIER | N/D | ||
PG_ LSN | BYTE_ARRAY | STRING | |
RANGE | BYTE_ARRAY | STRING | |
UUID | BYTE_ARRAY | STRING |