Konversi data saat mengekspor ke bucket Amazon S3 untuk Amazon RDS - Layanan Basis Data Relasional Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konversi data saat mengekspor ke bucket Amazon S3 untuk Amazon RDS

Saat Anda mengekspor snapshot DB ke bucket Amazon S3, Amazon RDS mengonversi data ke, mengekspor data dalam, dan menyimpan data dalam format Parquet. Untuk mengetahui informasi selengkapnya tentang Parquet, lihat situs web Parquet Apache.

Parquet menyimpan semua data sebagai salah satu jenis primitif berikut:

  • BOOLEAN

  • INT32

  • INT64

  • INT96

  • FLOAT

  • DOUBLE

  • BYTE_ARRAY – Array byte dengan panjang variabel, juga dikenal sebagai biner

  • FIXED_LEN_BYTE_ARRAY – Array byte dengan panjang tetap yang digunakan saat nilai memiliki ukuran konstan

Jenis data Parquet berjumlah sedikit untuk mengurangi kerumitan membaca dan menulis format. Parquet menyediakan jenis logis untuk memperluas jenis primitif. Jenis logis diimplementasikan sebagai anotasi dengan data di kolom metadata LogicalType. Anotasi jenis logis menjelaskan cara menginterpretasikan jenis primitif.

Saat jenis logis STRING yang menandai jenis BYTE_ARRAY, menunjukkan bahwa rangkaian byte harus diinterpretasikan sebagai string karakter yang dienkode UTF-8. Setelah tugas ekspor selesai, Amazon RDS memberi tahu Anda jika terjadi konversi string. Data ekspor yang mendasarinya selalu sama dengan data dari sumber. Namun, karena perbedaan encoding dalam UTF-8, beberapa karakter mungkin terlihat berbeda dari sumber saat dibaca di alat seperti Athena.

Untuk mengetahui informasi selengkapnya, lihat Parquet logical type definitions dalam dokumentasi Parquet.

Pemetaan jenis data MySQL dan MariaDB ke Parquet

Tabel berikut menunjukkan pemetaan dari jenis data MySQL dan MariaDB ke jenis data Parquet saat data dikonversi dan diekspor ke Amazon S3.

Jenis data sumber Jenis primitif Parquet Anotasi jenis logis Catatan konversi
Jenis data numerik
BIGINT INT64
BIGINT UNSIGNED FIXED_LEN_BYTE_ARRAY(9) DECIMAL(20,0) Parquet hanya mendukung jenis yang ditandatangani, sehingga pemetaannya memerlukan tambahan byte (8 plus 1) untuk menyimpan jenis BIGINT_UNSIGNED.
BIT BYTE_ARRAY
DECIMAL INT32 DECIMAL(p,s) Jika nilai sumber kurang dari 2 31, itu disimpan sebagai INT32.
INT64 DECIMAL(p,s) Jika nilai sumber adalah 2 31 atau lebih besar, tetapi kurang dari 2 63, itu disimpan sebagaiINT64.
FIXED_LEN_BYTE_ARRAY(N) DECIMAL(p,s) Jika nilai sumber adalah 263 atau lebih besar, maka nilai tersebut akan disimpan sebagai FIXED_LEN_BYTE_ARRAY(N).
BYTE_ARRAY STRING Parquet tidak mendukung presisi Desimal yang lebih besar dari 38. Nilai desimal dikonversi ke string dalam tipe BYTE_ARRAY dan dikodekan sebagai. UTF8
DOUBLE DOUBLE
FLOAT DOUBLE
INT INT32
INT UNSIGNED INT64
MEDIUMINT INT32
MEDIUMINT UNSIGNED INT64
NUMERIC INT32 DECIMAL(p,s)

Jika nilai sumber kurang dari 2 31, itu disimpan sebagaiINT32.

INT64 DECIMAL(p,s) Jika nilai sumber adalah 2 31 atau lebih besar, tetapi kurang dari 2 63, itu disimpan sebagaiINT64.
FIXED_LEN_ARRAY(N) DECIMAL(p,s) Jika nilai sumber adalah 263 atau lebih besar, maka nilai tersebut akan disimpan sebagai FIXED_LEN_BYTE_ARRAY(N).
BYTE_ARRAY STRING Parquet tidak mendukung presisi Numerik yang lebih besar dari 38. Nilai Numerik ini dikonversi ke string dalam tipe BYTE_ARRAY dan dikodekan sebagai. UTF8
SMALLINT INT32
SMALLINT UNSIGNED INT32
TINYINT INT32
TINYINT UNSIGNED INT32 INT (16, benar)
Jenis data string
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
Jenis data tanggal dan waktu
DATE BYTE_ARRAY STRING Tanggal dikonversi ke string dalam tipe BYTE_ARRAY dan dikodekan sebagai. UTF8
DATETIME INT64 TIMESTAMP_MICROS
TIME BYTE_ARRAY STRING Tipe TIME dikonversi ke string dalam BYTE_ARRAY dan dikodekan sebagai. UTF8
TIMESTAMP INT64 TIMESTAMP_MICROS
YEAR INT32
Jenis data geometris
GEOMETRY BYTE_ARRAY
GEOMETRYCOLLECTION BYTE_ARRAY
MULTIPOINT BYTE_ARRAY
MULTIPOLYGON BYTE_ARRAY
POINT BYTE_ARRAY
POLYGON BYTE_ARRAY
Jenis data JSON
JSON BYTE_ARRAY STRING

Pemetaan jenis data PostgreSQL ke Parquet

Tabel berikut menunjukkan pemetaan dari dan jenis data PostgreSQL ke jenis data Parquet saat data dikonversi dan diekspor ke Amazon S3.

Jenis data PostgreSQL Jenis primitif Parquet Anotasi jenis logis Catatan pemetaan
Jenis data numerik
BIGINT INT64
BIGSERIAL INT64
DECIMAL BYTE_ARRAY STRING Tipe DECIMAL dikonversi ke string dalam tipe BYTE_ARRAY dan dikodekan sebagai. UTF8

Konversi ini dimaksudkan untuk menghindari kerumitan akibat presisi data dan nilai data yang bukan berupa angka (NaN).

DOUBLE PRECISION DOUBLE
INTEGER INT32
MONEY BYTE_ARRAY STRING
REAL FLOAT
SERIAL INT32
SMALLINT INT32 INT (16, benar)
SMALLSERIAL INT32 INT (16, benar)
Jenis data string dan terkait
ARRAY BYTE_ARRAY STRING

Array dikonversi ke string dan dikodekan sebagai BINARY ()UTF8.

Konversi ini dimaksudkan untuk menghindari kerumitan akibat presisi data, nilai data yang bukan berupa angka (NaN), dan nilai data waktu.

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
Jenis data tanggal dan waktu
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
Jenis data geometris
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
Jenis data JSON
JSON BYTE_ARRAY STRING
JSONB BYTE_ARRAY STRING
Jenis data lainnya
BOOLEAN BOOLEAN
CIDR BYTE_ARRAY STRING Jenis data jaringan
COMPOSITE BYTE_ARRAY STRING
DOMAIN BYTE_ARRAY STRING
INET BYTE_ARRAY STRING Jenis data jaringan
MACADDR BYTE_ARRAY STRING
OBJECT IDENTIFIER N/A
PG_LSN BYTE_ARRAY STRING
RANGE BYTE_ARRAY STRING
UUID BYTE_ARRAY STRING