Conversion de données lors de l'exportation vers un compartiment Amazon S3 pour Amazon RDS - Amazon Relational Database Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Conversion de données lors de l'exportation vers un compartiment Amazon S3 pour Amazon RDS

Lorsque vous exportez un instantané de base de données vers un compartiment Amazon S3, Amazon RDS convertit les données au format Parquet, les exporte et les stocke. Pour plus d'informations sur Parquet, veuillez consulter le site web Apache Parquet.

Parquet stocke toutes les données sous l'un des types primitifs suivants :

  • BOOLEAN

  • INT32

  • INT64

  • INT96

  • FLOAT

  • DOUBLE

  • BYTE_ ARRAY — Un tableau d'octets de longueur variable, également appelé binaire

  • FIXED_ LEN _ BYTE _ ARRAY — Un tableau d'octets de longueur fixe utilisé lorsque les valeurs ont une taille constante

Les types de données Parquet sont peu nombreux afin de la complexité de la lecture et de l'écriture du format. Parquet fournit des types logiques pour étendre les types primitifs. Un type logique est implémenté sous forme d'annotation avec les données dans un champ de métadonnées LogicalType. L'annotation de type logique explique comment interpréter le type primitif.

Lorsque le type STRING logique annote un BYTE_ARRAY type, cela indique que le tableau d'octets doit être interprété comme une chaîne de caractères codée en UTF -8. Une fois la tâche d'exportation terminée, Amazon vous RDS avertit si une conversion de chaîne a eu lieu. Les données sous-jacentes exportées sont toujours les mêmes que celles de la source. Cependant, en raison de la différence d'encodage en UTF -8, certains caractères peuvent sembler différents de ceux de la source lorsqu'ils sont lus dans des outils tels qu'Athena.

Pour plus d'informations, veuillez consulter Parquet Logical Type Definitions dans la documentation Parquet.

Mon SQL mappage du type de données et de MariaDB vers Parquet

Le tableau suivant montre le mappage entre les types de données My SQL et MariaDB et les types de données Parquet lorsque les données sont converties et exportées vers Amazon S3.

Type de données source Type primitif du format Parquet Annotation de type logique Notes de conversion
Types de données numériques
BIGINT INT64
BIGINT UNSIGNED FIXED_ LEN _ BYTE _ ARRAY (9) DECIMAL(20,0) Parquet ne prend en charge que les types signés. Le mappage nécessite donc un octet supplémentaire (8 plus 1) pour stocker le UNSIGNED type BIGINT _.
BIT BYTE_ARRAY
DECIMAL INT32 DECIMAL(p, s) Si la valeur source est inférieure à 2 31, elle est stockée sous la formeINT32.
INT64 DECIMAL(p, s) Si la valeur source est supérieure ou égale à 2 31, mais inférieure à 2 63, elle est stockée sous la formeINT64.
FIXED_ LEN _ BYTE _ ARRAY (N) DECIMAL(p, s) Si la valeur source est supérieure ou égale à 2 63, elle est stockée sous la forme FIXED LEN _ BYTE _ _ ARRAY (N).
BYTE_ARRAY STRING Parquet ne prend pas en charge une précision décimale supérieure à 38. La valeur décimale est convertie en chaîne de ARRAY type BYTE _ et codée sous UTF8 la forme.
DOUBLE DOUBLE
FLOAT DOUBLE
INT INT32
INT UNSIGNED INT64
MEDIUMINT INT32
MEDIUMINT UNSIGNED INT64
NUMERIC INT32 DECIMAL(p, s)

Si la valeur source est inférieure à 2 31, elle est stockée sous la formeINT32.

INT64 DECIMAL(p, s) Si la valeur source est supérieure ou égale à 2 31, mais inférieure à 2 63, elle est stockée sous la formeINT64.
FIXED_ LEN _ ARRAY (N) DECIMAL(p, s) Si la valeur source est supérieure ou égale à 2 63, elle est stockée sous la forme FIXED LEN _ BYTE _ _ ARRAY (N).
BYTE_ARRAY STRING Parquet ne prend pas en charge la précision numérique supérieure à 38. Cette valeur numérique est convertie en chaîne de ARRAY type BYTE _ et codée sous UTF8 la forme.
SMALLINT INT32
SMALLINT UNSIGNED INT32
TINYINT INT32
TINYINT UNSIGNED INT32
Types de données chaîne
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
Types de données de date et d'heure
DATE BYTE_ARRAY STRING Une date est convertie en chaîne de ARRAY type BYTE _ et codée sous la formeUTF8.
DATETIME INT64 TIMESTAMP_MICROS
TIME BYTE_ARRAY STRING Un TIME type est converti en chaîne dans un BYTE _ ARRAY et codé sous la formeUTF8.
TIMESTAMP INT64 TIMESTAMP_MICROS
YEAR INT32
Types de données géométriques
GEOMETRY BYTE_ARRAY
GEOMETRYCOLLECTION BYTE_ARRAY
MULTIPOINT BYTE_ARRAY
MULTIPOLYGON BYTE_ARRAY
POINT BYTE_ARRAY
POLYGON BYTE_ARRAY
JSONtype de données
JSON BYTE_ARRAY STRING

mappage du type SQL de données Postgre vers Parquet

Le tableau suivant montre le mappage entre les types de SQL données Postgre et les types de données Parquet lorsque les données sont converties et exportées vers Amazon S3.

Type de SQL données Postgre Type primitif du format Parquet Annotation de type logique Notes de mappage
Types de données numériques
BIGINT INT64
BIGSERIAL INT64
DECIMAL BYTE_ARRAY STRING Un DECIMAL type est converti en chaîne de ARRAY type BYTE _ et codé sous la formeUTF8.

Cette conversion vise à éviter les complications dues à la précision des données et aux valeurs de données qui ne sont pas un nombre (NaN).

DOUBLE PRECISION DOUBLE
INTEGER INT32
MONEY BYTE_ARRAY STRING
REAL FLOAT
SERIAL INT32
SMALLINT INT32 INT_16
SMALLSERIAL INT32 INT_16
Types de chaînes et de données associés
ARRAY BYTE_ARRAY STRING

Un tableau est converti en chaîne et codé sous la forme BINARY (UTF8).

Cette conversion vise à éviter les complications dues à la précision des données, aux valeurs de données qui ne sont pas un nombre (NaN) et aux valeurs de données horaires.

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
Types de données de date et d'heure
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
Types de données géométriques
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
JSONtypes de données
JSON BYTE_ARRAY STRING
JSONB BYTE_ARRAY STRING
Autres types de données
BOOLEAN BOOLEAN
CIDR BYTE_ARRAY STRING Type de données de réseau
COMPOSITE BYTE_ARRAY STRING
DOMAIN BYTE_ARRAY STRING
INET BYTE_ARRAY STRING Type de données de réseau
MACADDR BYTE_ARRAY STRING
OBJECT IDENTIFIER N/A
PG_ LSN BYTE_ARRAY STRING
RANGE BYTE_ARRAY STRING
UUID BYTE_ARRAY STRING