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, les exporte et les stocke au format Parquet. 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 – Tableau d'octets de longueur variable, également connu sous le nom de binaire
-
FIXED_LEN_BYTE_ARRAY – 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 logique STRING
annote un type BYTE_ARRAY
, il 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 RDS vous avertit si une conversion de chaîne s'est produite. 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 apparaître différents de la source lorsqu'ils sont lus dans des outils tels que Athena.
Pour plus d'informations, veuillez consulter Parquet Logical Type Definitions
Rubriques
Mappage de type de données MySQL et MariaDB vers Parquet
Le tableau suivant montre le mappage des types de données MySQL et MariaDB aux 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, de sorte que le mappage nécessite un octet supplémentaire (8 plus 1) pour stocker le type BIGINT_UNSIGNED. |
BIT | BYTE_ARRAY | ||
DECIMAL | INT32 | DECIMAL(p,s) | Si la valeur source est inférieure à 2 31, elle est stockée sous la forme INT32. |
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 à 263, 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 type BYTE_ARRAY et codée sous la forme. UTF8 | |
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 à 263, 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 type BYTE_ARRAY et codée sous la forme. UTF8 | |
SMALLINT | INT32 | ||
SMALLINT UNSIGNED | INT32 | ||
TINYINT | INT32 | ||
TINYINT UNSIGNED | INT32 | INT (16, vrai) | |
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 type BYTE_ARRAY et encodée sous la forme. UTF8 |
DATETIME | INT64 | TIMESTAMP_MICROS | |
TIME | BYTE_ARRAY | STRING | Un type TIME est converti en chaîne dans un BYTE_ARRAY et codé sous la forme. UTF8 |
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 | ||
Type de données JSON | |||
JSON | BYTE_ARRAY | STRING |
Mappage de type de données PostgreSQL vers Parquet
Le tableau suivant montre le mappage des types de données PostgreSQL aux types de données Parquet lorsque les données sont converties et exportées vers Amazon S3.
Type de données PostgreSQL | 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 type DECIMAL est converti en chaîne de type BYTE_ARRAY et codé sous la forme. UTF8 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, vrai) | |
SMALLSERIAL | INT32 | INT (16, vrai) | |
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 | |
Types de données JSON | |||
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 |