

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
<a name="USER_ExportSnapshot.data-types"></a>

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](https://parquet.apache.org/docs/).

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. 

Ketika tipe `STRING` logis membubuhi keterangan `BYTE_ARRAY` tipe, ini menunjukkan bahwa array byte harus ditafsirkan sebagai string karakter yang UTF-8 dikodekan. 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 pengkodean UTF-8, beberapa karakter mungkin tampak berbeda dari sumbernya saat dibaca di alat seperti Athena.

Untuk mengetahui informasi selengkapnya, lihat [Parquet logical type definitions](https://github.com/apache/parquet-format/blob/master/LogicalTypes.md) dalam dokumentasi Parquet.

**Topics**
+ [Pemetaan jenis data MySQL dan MariaDB ke Parquet](#USER_ExportSnapshot.data-types.MySQL)
+ [Pemetaan jenis data PostgreSQL ke Parquet](#USER_ExportSnapshot.data-types.PostgreSQL)

## Pemetaan jenis data MySQL dan MariaDB ke Parquet
<a name="USER_ExportSnapshot.data-types.MySQL"></a>

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


<table>
<thead>
  <tr><th>Jenis data sumber</th><th>Jenis primitif Parquet</th><th>Anotasi jenis logis</th><th>Catatan konversi</th></tr>
</thead>
<tbody>
  <tr><td colspan="4">Jenis data numerik</td></tr>
  <tr><td>BIGINT</td><td>INT64</td><td></td><td> </td></tr>
  <tr><td>BIGINT UNSIGNED</td><td>FIXED\_LEN\_BYTE\_ARRAY(9) </td><td>DECIMAL(20,0)</td><td>Parquet hanya mendukung jenis yang ditandatangani, sehingga pemetaannya memerlukan tambahan byte (8 plus 1) untuk menyimpan jenis BIGINT\_UNSIGNED.</td></tr>
  <tr><td>BIT</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td rowspan="4">DECIMAL</td><td>INT32</td><td>DECIMAL(p,s)</td><td>Jika nilai sumber kurang dari 231, maka nilai tersebut akan disimpan sebagai INT32. </td></tr>
  <tr><td>INT64</td><td>DECIMAL(p,s)</td><td>Jika nilai sumber adalah 231 atau lebih besar, tetapi kurang dari 263, maka nilai tersebut akan disimpan sebagai INT64.</td></tr>
  <tr><td>FIXED\_LEN\_BYTE\_ARRAY(N)</td><td>DECIMAL(p,s)</td><td>Jika nilai sumber adalah 263 atau lebih besar, maka nilai tersebut akan disimpan sebagai FIXED\_LEN\_BYTE\_ARRAY(N).</td></tr>
  <tr><td>BYTE\_ARRAY</td><td>STRING</td><td>Parquet tidak mendukung presisi Desimal yang lebih besar dari 38. Nilai Desimal akan dikonversi menjadi string dalam jenis BYTE\_ARRAY dan dienkode sebagai UTF8.</td></tr>
  <tr><td>DOUBLE</td><td>DOUBLE</td><td></td><td> </td></tr>
  <tr><td>FLOAT</td><td>DOUBLE</td><td></td><td> </td></tr>
  <tr><td>INT</td><td>INT32</td><td></td><td> </td></tr>
  <tr><td>INT UNSIGNED</td><td>INT64</td><td></td><td> </td></tr>
  <tr><td>MEDIUMINT</td><td>INT32</td><td></td><td> </td></tr>
  <tr><td>MEDIUMINT UNSIGNED</td><td>INT64</td><td></td><td> </td></tr>
  <tr><td rowspan="4"> NUMERIC</td><td>INT32</td><td>DECIMAL(p,s)</td><td>Jika nilai sumber kurang dari 231, maka nilai tersebut akan disimpan sebagai INT32.</td></tr>
  <tr><td>INT64</td><td>DECIMAL(p,s)</td><td>Jika nilai sumber adalah 231 atau lebih besar, tetapi kurang dari 263, maka nilai tersebut akan disimpan sebagai INT64.</td></tr>
  <tr><td>FIXED\_LEN\_ARRAY(N)</td><td>DECIMAL(p,s)</td><td>Jika nilai sumber adalah 263 atau lebih besar, maka nilai tersebut akan disimpan sebagai FIXED\_LEN\_BYTE\_ARRAY(N).</td></tr>
  <tr><td>BYTE\_ARRAY</td><td>STRING</td><td>Parquet tidak mendukung presisi Numerik yang lebih besar dari 38. Nilai Numerik ini akan dikonversi menjadi string dalam jenis BYTE\_ARRAY dan dienkode sebagai UTF8.</td></tr>
  <tr><td>SMALLINT</td><td>INT32</td><td></td><td> </td></tr>
  <tr><td>SMALLINT UNSIGNED</td><td>INT32</td><td></td><td> </td></tr>
  <tr><td>TINYINT</td><td>INT32</td><td></td><td> </td></tr>
  <tr><td>TINYINT UNSIGNED</td><td>INT32</td><td>INT (16, benar)</td><td> </td></tr>
  <tr><td colspan="4">Jenis data string</td></tr>
  <tr><td>BINARY</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td>BLOB</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td>CHAR</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td>ENUM</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>LINESTRING</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td>LONGBLOB</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td>LONGTEXT</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>MEDIUMBLOB</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td>MEDIUMTEXT</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>MULTILINESTRING</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td>SET</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>TEXT</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>TINYBLOB</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td>TINYTEXT</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>VARBINARY</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td>VARCHAR</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td colspan="4">Jenis data tanggal dan waktu</td></tr>
  <tr><td>DATE</td><td>BYTE\_ARRAY</td><td>STRING</td><td>Tanggal akan dikonversi menjadi string dalam jenis BYTE\_ARRAY dan dienkode sebagai UTF8.</td></tr>
  <tr><td>DATETIME</td><td>INT64 </td><td>TIMESTAMP\_MICROS</td><td> </td></tr>
  <tr><td>TIME</td><td>BYTE\_ARRAY</td><td>STRING</td><td>Jenis TIME akan dikonversi menjadi string dalam jenis BYTE\_ARRAY dan dienkode sebagai UTF8.</td></tr>
  <tr><td>TIMESTAMP</td><td>INT64 </td><td>TIMESTAMP\_MICROS</td><td> </td></tr>
  <tr><td>YEAR</td><td>INT32</td><td></td><td> </td></tr>
  <tr><td colspan="4">Jenis data geometris</td></tr>
  <tr><td>GEOMETRY</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td>GEOMETRYCOLLECTION</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td>MULTIPOINT</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td>MULTIPOLYGON</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td>POINT</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td>POLYGON</td><td>BYTE\_ARRAY</td><td></td><td> </td></tr>
  <tr><td colspan="4">Jenis data JSON</td></tr>
  <tr><td>JSON </td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
</tbody>
</table>


## Pemetaan jenis data PostgreSQL ke Parquet
<a name="USER_ExportSnapshot.data-types.PostgreSQL"></a>

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


<table>
<thead>
  <tr><th>Jenis data PostgreSQL</th><th>Jenis primitif Parquet</th><th>Anotasi jenis logis</th><th>Catatan pemetaan</th></tr>
</thead>
<tbody>
  <tr><td colspan="4">Jenis data numerik</td></tr>
  <tr><td>BIGINT</td><td>INT64</td><td></td><td> </td></tr>
  <tr><td>BIGSERIAL</td><td>INT64</td><td></td><td> </td></tr>
  <tr><td>DECIMAL</td><td>BYTE\_ARRAY</td><td>STRING</td><td>Jenis DECIMAL akan dikonversi ke string dalam jenis BYTE\_ARRAY dan dienkode sebagai UTF8.Konversi ini dimaksudkan untuk menghindari kerumitan akibat presisi data dan nilai data yang bukan berupa angka (NaN).</td></tr>
  <tr><td>DOUBLE PRECISION</td><td>DOUBLE</td><td></td><td> </td></tr>
  <tr><td>INTEGER</td><td>INT32</td><td></td><td> </td></tr>
  <tr><td>MONEY</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>REAL</td><td>FLOAT</td><td></td><td> </td></tr>
  <tr><td>SERIAL</td><td>INT32</td><td></td><td> </td></tr>
  <tr><td>SMALLINT</td><td>INT32</td><td>INT (16, benar)</td><td> </td></tr>
  <tr><td>SMALLSERIAL</td><td>INT32</td><td>INT (16, benar)</td><td> </td></tr>
  <tr><td colspan="3">Jenis data string dan terkait</td><td></td></tr>
  <tr><td>ARRAY</td><td>BYTE\_ARRAY</td><td>STRING</td><td>Array akan dikonversi menjadi string dan dienkode sebagai BINARY (UTF8).<br />Konversi ini dimaksudkan untuk menghindari kerumitan akibat presisi data, nilai data yang bukan berupa angka (NaN), dan nilai data waktu.</td></tr>
  <tr><td>BIT</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>BIT VARYING</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>BYTEA</td><td>BINARY</td><td></td><td> </td></tr>
  <tr><td>CHAR</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>CHAR(N)</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>ENUM</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>NAME</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>TEXT</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>TEXT SEARCH</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>VARCHAR(N)</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>XML</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td colspan="4">Jenis data tanggal dan waktu</td></tr>
  <tr><td>DATE</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>INTERVAL</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>TIME</td><td>BYTE\_ARRAY</td><td>STRING</td><td></td></tr>
  <tr><td>TIME WITH TIME ZONE</td><td>BYTE\_ARRAY</td><td>STRING</td><td></td></tr>
  <tr><td>TIMESTAMP</td><td>BYTE\_ARRAY</td><td>STRING</td><td></td></tr>
  <tr><td>TIMESTAMP WITH TIME ZONE</td><td>BYTE\_ARRAY</td><td>STRING</td><td></td></tr>
  <tr><td colspan="4">Jenis data geometris</td></tr>
  <tr><td>BOX</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>CIRCLE</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>LINE</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>LINESEGMENT</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>PATH</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>POINT</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>POLYGON</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td colspan="4">Jenis data JSON</td></tr>
  <tr><td>JSON</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>JSONB</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td colspan="4">Jenis data lainnya</td></tr>
  <tr><td>BOOLEAN</td><td>BOOLEAN</td><td></td><td> </td></tr>
  <tr><td>CIDR</td><td>BYTE\_ARRAY</td><td>STRING</td><td> Jenis data jaringan</td></tr>
  <tr><td>COMPOSITE</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>DOMAIN</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>INET</td><td>BYTE\_ARRAY</td><td>STRING</td><td> Jenis data jaringan</td></tr>
  <tr><td>MACADDR</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>OBJECT IDENTIFIER</td><td>N/A</td><td></td><td></td></tr>
  <tr><td>PG\_LSN</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>RANGE</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
  <tr><td>UUID</td><td>BYTE\_ARRAY</td><td>STRING</td><td> </td></tr>
</tbody>
</table>
