Datenkonvertierung beim Export in einen Amazon S3 S3-Bucket für Amazon RDS - Amazon Relational Database Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Datenkonvertierung beim Export in einen Amazon S3 S3-Bucket für Amazon RDS

Wenn Sie einen DB-Snapshot in einen Amazon S3 S3-Bucket exportieren, RDS konvertiert Amazon Daten in das Parquet-Format, exportiert Daten in dieses und speichert Daten im Parquet-Format. Weitere Informationen über Parquet finden Sie auf der Website Apache Parquet.

Parquet speichert alle Daten als einen der folgenden primitiven Typen:

  • BOOLEAN

  • INT32

  • INT64

  • INT96

  • FLOAT

  • DOUBLE

  • BYTE_ ARRAY — Ein Byte-Array mit variabler Länge, auch als binär bezeichnet

  • FIXED_ _ LEN BYTE _ ARRAY — Ein Byte-Array mit fester Länge, das verwendet wird, wenn die Werte eine konstante Größe haben

Es gibt nur wenige Parquet-Datentypen, um die Komplexität beim Lesen und Schreiben des Formats zu reduzieren. Parquet bietet logische Typen zur Erweiterung primitiver Typen. Ein logischer Typ ist als Annotation, bei der Daten in einem LogicalType-Metadatenfeld implementiert sind. Die logische Typannotation beschreibt, wie der primitive Typ zu interpretieren ist.

Wenn der STRING logische Typ einen BYTE_ARRAY Typ annotiert, bedeutet dies, dass das Byte-Array als eine mit UTF -8 kodierte Zeichenfolge interpretiert werden sollte. Nach Abschluss einer Exportaufgabe RDS benachrichtigt Amazon Sie, wenn eine Zeichenkettenkonvertierung stattgefunden hat. Die zugrunde liegenden exportierten Daten entsprechen immer den Daten aus der Quelle. Aufgrund des Kodierungsunterschieds in UTF -8 können einige Zeichen jedoch anders aussehen als die Quelle, wenn sie in Tools wie Athena gelesen werden.

Weitere Informationen finden Sie unter Logische Typdefinitionen für Parquet in der Parquet-Dokumentation.

Zuordnung von My SQL - und MariaDB-Datentypen zu Parquet

Die folgende Tabelle zeigt die Zuordnung von My SQL - und MariaDB-Datentypen zu Parquet-Datentypen, wenn Daten konvertiert und nach Amazon S3 exportiert werden.

Quelldatentyp Parquet-Primitiv-Typ Logische Typannotation Anmerkungen zur Konvertierung
Numerische Datentypen
BIGINT INT64
BIGINT UNSIGNED FIXED_ _ LEN BYTE _ ARRAY (9) DECIMAL(20,0) Parquet unterstützt nur Typen mit Vorzeichen, daher benötigt das Mapping ein zusätzliches Byte (8 plus 1), um den UNSIGNED Typ BIGINT _ zu speichern.
BIT BYTE_ARRAY
DECIMAL INT32 DECIMAL(p, s) Wenn der Quellwert kleiner als 2 31 ist, wird er gespeichert alsINT32.
INT64 DECIMAL(p, s) Wenn der Quellwert 2 31 oder größer, aber kleiner als 2 63 ist, wird er gespeichert alsINT64.
FIXED_ LEN _ BYTE _ ARRAY (N) DECIMAL(p, s) Wenn der Quellwert 2 63 oder höher ist, wird er als FIXED _ _ LEN BYTE _ ARRAY (N) gespeichert.
BYTE_ARRAY STRING Parquet unterstützt maximal 38 Dezimalstellen. Der Dezimalwert wird in eine Zeichenfolge ARRAY vom Typ BYTE _ umgewandelt und als UTF8 codiert.
DOUBLE DOUBLE
FLOAT DOUBLE
INT INT32
INT UNSIGNED INT64
MEDIUMINT INT32
MEDIUMINT UNSIGNED INT64
NUMERIC INT32 DECIMAL(p, s)

Wenn der Quellwert kleiner als 2 31 ist, wird er gespeichert alsINT32.

INT64 DECIMAL(p, s) Wenn der Quellwert 2 31 oder größer, aber kleiner als 2 63 ist, wird er gespeichert alsINT64.
FIXED_ LEN _ ARRAY (N) DECIMAL(p, s) Wenn der Quellwert 2 63 oder höher ist, wird er als FIXED _ _ LEN BYTE _ ARRAY (N) gespeichert.
BYTE_ARRAY STRING Parquet unterstützt keine numerische Genauigkeit größer als 38. Dieser numerische Wert wird in eine Zeichenfolge ARRAY vom Typ BYTE _ konvertiert und als UTF8 codiert.
SMALLINT INT32
SMALLINT UNSIGNED INT32
TINYINT INT32
TINYINT UNSIGNED INT32
Zeichenfolgen-Datentypen
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
Datums- und Uhrzeit-Datentypen
DATE BYTE_ARRAY STRING Ein Datum wird in eine Zeichenfolge vom ARRAY Typ BYTE _ konvertiert und als codiert. UTF8
DATETIME INT64 TIMESTAMP_MICROS
TIME BYTE_ARRAY STRING Ein TIME Typ wird in eine Zeichenfolge in einem BYTE _ umgewandelt ARRAY und als codiert. UTF8
TIMESTAMP INT64 TIMESTAMP_MICROS
YEAR INT32
Geometrische Datentypen
GEOMETRY BYTE_ARRAY
GEOMETRYCOLLECTION BYTE_ARRAY
MULTIPOINT BYTE_ARRAY
MULTIPOLYGON BYTE_ARRAY
POINT BYTE_ARRAY
POLYGON BYTE_ARRAY
JSONDatentyp
JSON BYTE_ARRAY STRING

Zuordnung des SQL Postgre-Datentyps zu Parquet

Die folgende Tabelle zeigt die Zuordnung von SQL Postgre-Datentypen zu Parquet-Datentypen, wenn Daten konvertiert und nach Amazon S3 exportiert werden.

Postgre-Datentyp SQL Parquet-Primitiv-Typ Logische Typannotation Anmerkungen zum Mapping
Numerische Datentypen
BIGINT INT64
BIGSERIAL INT64
DECIMAL BYTE_ARRAY STRING Ein DECIMAL Typ wird in eine Zeichenfolge in einem BYTE ARRAY _-Typ konvertiert und als codiert. UTF8

Diese Konvertierung soll Komplikationen aufgrund von Datengenauigkeit und Datenwerten, die keine Zahlen sind (NaN), vermeiden.

DOUBLE PRECISION DOUBLE
INTEGER INT32
MONEY BYTE_ARRAY STRING
REAL FLOAT
SERIAL INT32
SMALLINT INT32 INT_16
SMALLSERIAL INT32 INT_16
Zeichenfolgen- und verwandte Datentypen
ARRAY BYTE_ARRAY STRING

Ein Array wird in eine Zeichenfolge umgewandelt und als BINARY () UTF8 codiert.

Diese Konvertierung dient dazu, Komplikationen aufgrund von Datengenauigkeit, Datenwerten, die keine Zahl sind (NaN), und Zeitdatenwerten zu vermeiden.

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
Datums- und Uhrzeit-Datentypen
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
Geometrische Datentypen
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
JSONDatentypen
JSON BYTE_ARRAY STRING
JSONB BYTE_ARRAY STRING
Weitere Datentypen
BOOLEAN BOOLEAN
CIDR BYTE_ARRAY STRING Network-Datentyp
COMPOSITE BYTE_ARRAY STRING
DOMAIN BYTE_ARRAY STRING
INET BYTE_ARRAY STRING Network-Datentyp
MACADDR BYTE_ARRAY STRING
OBJECT IDENTIFIER N/A
PG_ LSN BYTE_ARRAY STRING
RANGE BYTE_ARRAY STRING
UUID BYTE_ARRAY STRING