Conversione dei dati durante l'esportazione in un bucket Amazon S3 per Amazon RDS - Amazon Relational Database Service

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 nella documentazione di Parquet.

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