AnalyticDB for MySQL mendukung pengimporan data eksternal menggunakan tabel eksternal. Topik ini menjelaskan cara menggunakannya untuk mengimpor data dari OSS ke kluster AnalyticDB for MySQL.
Prasyarat
-
Kluster AnalyticDB for MySQL dan bucket OSS berada di wilayah yang sama. Untuk informasi selengkapnya, lihat Aktifkan OSS.
-
Anda telah mengunggah file data ke direktori OSS.
-
Akses antarmuka jaringan elastis (ENI) telah diaktifkan untuk kluster AnalyticDB for MySQL Edisi Data Warehouse.
Penting-
Masuk ke Konsol AnalyticDB for MySQL. Pada halaman Cluster Information, di bawah bagian Network Information, aktifkan sakelar jaringan ENI.
-
Mengaktifkan atau menonaktifkan jaringan ENI akan mengganggu konektivitas database selama sekitar 2 menit, sehingga operasi baca dan tulis tidak tersedia. Evaluasi dampaknya secara hati-hati sebelum mengaktifkan atau menonaktifkan jaringan ENI.
-
Persiapan data
Contoh ini mengunggah file data person.csv ke direktori testBucketName/adb/dt=2023-06-15 di OSS. File tersebut menggunakan line feed sebagai pemisah baris dan koma (,) sebagai pemisah kolom. File person.csv berisi data sampel berikut:
1,james,10,2023-06-15
2,bond,20,2023-06-15
3,jack,30,2023-06-15
4,lucy,40,2023-06-15
Prosedur
Edisi Perusahaan, Edisi Dasar, dan Edisi Danau Data Terpadu
-
Buka editor Pengembangan SQL.
Masuk ke Konsol AnalyticDB for MySQL. Di pojok kiri atas konsol, pilih wilayah. Di panel navigasi sebelah kiri, klik Clusters. Temukan kluster yang ingin Anda kelola dan klik ID kluster tersebut.
-
Di panel navigasi sebelah kiri, pilih .
-
Impor data.
Anda dapat mengimpor data menggunakan impor reguler (default) atau impor elastis. Dalam mode impor reguler, sistem membaca data sumber dari node komputasi dan membuat indeks pada node penyimpanan, sehingga mengonsumsi sumber daya komputasi dan penyimpanan. Metode impor elastis hanya didukung untuk kluster Edisi Perusahaan, Edisi Dasar, dan Edisi Danau Data Terpadu yang menjalankan kernel versi 3.1.10.0 atau lebih baru serta memiliki kelompok sumber daya jenis pekerjaan. Untuk informasi selengkapnya, lihat Metode impor data.
Impor reguler
-
Buat database eksternal.
CREATE EXTERNAL DATABASE adb_external_db; -
Buat tabel eksternal. Gunakan pernyataan CREATE EXTERNAL TABLE untuk membuat tabel eksternal OSS di database eksternal
adb_external_db. Topik ini menggunakan adb_external_db.person sebagai contoh.CatatanTabel eksternal AnalyticDB for MySQL harus memiliki nama bidang, jumlah bidang, urutan bidang, dan tipe data yang sama dengan file sumber OSS.
Untuk informasi selengkapnya tentang sintaksis pembuatan tabel eksternal OSS, lihat CREATE EXTERNAL TABLE.
-
Lakukan kueri data.
Setelah membuat tabel eksternal, Anda dapat menjalankan pernyataan SELECT di AnalyticDB for MySQL untuk mengkueri data dari OSS.
SELECT * FROM adb_external_db.person;Hasil berikut dikembalikan:
+------+-------+------+-----------+ | id | name | age | dt | +------+-------+------+-----------+ | 1 | james | 10 |2023-06-15 | | 2 | bond | 20 |2023-06-15 | | 3 | jack | 30 |2023-06-15 | | 4 | lucy | 40 |2023-06-15 | +------+-------+------+-----------+ -
Buat database di AnalyticDB for MySQL. Jika database sudah ada, Anda dapat melewati langkah ini. Berikut adalah contoh pernyataan:
CREATE DATABASE adb_demo; -
Buat tabel di AnalyticDB for MySQL untuk menyimpan data OSS yang diimpor. Berikut adalah contoh pernyataan:
CatatanTabel internal harus sesuai dengan tabel eksternal dari langkah b dalam hal nama bidang, jumlah bidang, urutan bidang, dan tipe data.
CREATE TABLE IF NOT EXISTS adb_demo.adb_import_test( id INT, name VARCHAR(1023), age INT, dt VARCHAR(1023) ) DISTRIBUTED BY HASH(id); -
Impor data ke dalam tabel.
-
Metode 1: Gunakan pernyataan
INSERT INTO. Jika terjadi duplikasi primary key, data baru akan diabaikan. Ini setara denganINSERT IGNORE INTO. Untuk informasi selengkapnya, lihat INSERT INTO. Contoh:INSERT INTO adb_demo.adb_import_test SELECT * FROM adb_external_db.person; -
Metode 2: Gunakan pernyataan
INSERT OVERWRITE INTOuntuk mengimpor data secara sinkron. Ini akan menimpa data yang sudah ada di tabel. Contoh:INSERT OVERWRITE INTO adb_demo.adb_import_test SELECT * FROM adb_external_db.person; -
Metode 3: Gunakan pernyataan
INSERT OVERWRITE INTOuntuk mengimpor data secara asinkron. Untuk informasi selengkapnya, lihat penulisan asinkron. Contoh:SUBMIT JOB INSERT OVERWRITE adb_demo.adb_import_test SELECT * FROM adb_external_db.person;
-
Impor elastis
-
Buat database. Jika database sudah ada, lewati langkah ini. Berikut adalah contoh pernyataan:
CREATE DATABASE adb_demo; -
Buat tabel eksternal.
Catatan-
Tabel eksternal AnalyticDB for MySQL harus memiliki nama bidang, jumlah bidang, urutan bidang, dan tipe data yang sama dengan file sumber OSS.
-
Impor elastis hanya mendukung pembuatan tabel eksternal dengan pernyataan
CREATE TABLE.
CREATE TABLE oss_import_test_external_table ( id INT(1023), name VARCHAR(1023), age INT, dt VARCHAR(1023) ) ENGINE='OSS' TABLE_PROPERTIES='{ "endpoint":"oss-cn-hangzhou-internal.aliyuncs.com", "url":"oss://testBucketName/adb/dt=2023-06-15/person.csv", "accessid":"accesskey_id", "accesskey":"accesskey_secret", "delimiter":"," }';PentingSaat membuat tabel eksternal, parameter TABLE_PROPERTIES yang didukung bervariasi berdasarkan format file (CSV, Parquet, atau ORC):
-
Format CSV: Hanya parameter
endpoint,url,accessid,accesskey,format,delimiter,null_value, danpartition_columnyang didukung. -
Format Parquet: Hanya parameter
endpoint,url,accessid,accesskey,format, danpartition_columnyang didukung. -
Format ORC: Hanya parameter
endpoint,url,accessid,accesskey,format, danpartition_columnyang didukung.
Untuk informasi selengkapnya tentang parameter yang dapat Anda atur untuk tabel eksternal dan deskripsinya, lihat Tabel eksternal OSS non-partisi dan Tabel eksternal OSS partisi.
-
-
Lakukan kueri data.
Setelah tabel eksternal dibuat, Anda dapat menjalankan pernyataan SELECT di AnalyticDB for MySQL untuk mengkueri data dari OSS.
SELECT * FROM oss_import_test_external_table;Hasil berikut dikembalikan:
+------+-------+------+-----------+ | id | name | age | dt | +------+-------+------+-----------+ | 1 | james | 10 |2023-06-15 | | 2 | bond | 20 |2023-06-15 | | 3 | jack | 30 |2023-06-15 | | 4 | lucy | 40 |2023-06-15 | +------+-------+------+-----------+ 4 rows in set (0.35 sec) -
Buat tabel di AnalyticDB for MySQL untuk menyimpan data OSS yang diimpor. Berikut adalah contoh pernyataan:
CatatanTabel internal harus sesuai dengan tabel eksternal dari langkah b dalam hal nama bidang, jumlah bidang, urutan bidang, dan tipe data.
CREATE TABLE adb_import_test ( id INT, name VARCHAR(1023), age INT, dt VARCHAR(1023) ) DISTRIBUTED BY HASH(id); -
Impor data.
PentingImpor elastis hanya mendukung pengimporan data menggunakan pernyataan
INSERT OVERWRITE INTO.-
Metode 1: Jalankan pernyataan INSERT OVERWRITE INTO untuk mengimpor data secara elastis, menimpa data yang sudah ada di tabel. Berikut adalah contoh pernyataan:
/*+elastic_load=true, elastic_load_configs=[adb.load.resource.group.name=resource_group]*/ INSERT OVERWRITE INTO adb_demo.adb_import_test SELECT * FROM adb_demo.oss_import_test_external_table;
-
Metode 2: Jalankan pernyataan INSERT OVERWRITE INTO secara asinkron untuk mengimpor data secara elastis. Anda dapat menggunakan pernyataan
SUBMIT JOBuntuk mengirimkan tugas asinkron yang dijadwalkan di latar belakang./*+elastic_load=true, elastic_load_configs=[adb.load.resource.group.name=resource_group]*/ SUBMIT JOB INSERT OVERWRITE INTO adb_demo.adb_import_test SELECT * FROM adb_demo.oss_import_test_external_table;PentingAnda tidak dapat mengatur antrian prioritas saat mengirimkan tugas impor elastis secara asinkron.
Hasil berikut dikembalikan:
+---------------------------------------+ | job_id | +---------------------------------------+ | 202308151719510210170190********** |
Setelah Anda mengirimkan tugas asinkron menggunakan
SUBMIT JOB, hasil yang dikembalikan hanya menunjukkan bahwa tugas berhasil dikirim. Anda dapat menggunakan job ID untuk menghentikan tugas asinkron atau memeriksa statusnya guna menentukan apakah tugas tersebut berhasil dieksekusi. Untuk informasi selengkapnya, lihat Kirimkan pekerjaan impor asinkron.Parameter hint:
-
elastic_load: menentukan apakah akan menggunakan impor elastis. Nilai yang valid: true dan false. Nilai default: false.
-
elastic_load_configs: parameter konfigurasi fitur impor elastis. Anda harus membungkus parameter dalam tanda kurung siku ([ ]) dan memisahkan beberapa parameter dengan tanda pipa vertikal (|). Tabel berikut menjelaskan parameter tersebut.
Parameter
Wajib
Deskripsi
adb.load.resource.group.name
Ya
Nama kelompok sumber daya pekerjaan yang menjalankan pekerjaan impor elastis.
adb.load.job.max.acu
Tidak
Jumlah maksimum sumber daya untuk pekerjaan impor elastis. Satuan: unit komputasi AnalyticDB (ACU). Nilai minimum: 5 ACU. Nilai default: jumlah shard ditambah 1.
Jalankan pernyataan berikut untuk mengkueri jumlah shard di kluster:
SELECT count(1) FROM information_schema.kepler_meta_shards;spark.driver.resourceSpec
Tidak
Jenis sumber daya Spark driver. Nilai default: small. Untuk informasi tentang nilai yang valid, lihat kolom Type pada tabel "Parameter konfigurasi aplikasi Spark" di topik parameter konfigurasi Conf.
spark.executor.resourceSpec
Tidak
Jenis sumber daya Spark executor. Nilai default: large. Untuk informasi tentang nilai yang valid, lihat kolom Type pada tabel "Parameter konfigurasi aplikasi Spark" di topik parameter konfigurasi Conf.
spark.adb.executorDiskSize
Tidak
Kapasitas disk Spark executor. Nilai yang valid: (0,100]. Satuan: GiB. Nilai default: 10 GiB. Untuk informasi selengkapnya, lihat bagian "Tentukan sumber daya driver dan executor" di topik parameter konfigurasi Conf.
-
-
(Opsional) Periksa apakah tugas impor yang dikirimkan merupakan tugas impor elastis.
SELECT job_name, (job_type = 3) AS is_elastic_load FROM INFORMATION_SCHEMA.kepler_meta_async_jobs where job_name = "2023081818010602101701907303151******";Hasil berikut dikembalikan:
+---------------------------------------+------------------+ | job_name | is_elastic_load | +---------------------------------------+------------------+ | 20230815171951021017019072*********** | 1 | +---------------------------------------+------------------+Jika nilai
is_elastic_loadadalah 1, tugas impor yang dikirimkan merupakan tugas impor elastis. Jika nilainya 0, tugas tersebut merupakan tugas impor reguler.
-
Edisi data warehouse
-
Hubungkan ke kluster dan buat database.
CREATE DATABASE adb_demo; -
Buat tabel eksternal. Gunakan sintaksis CREATE TABLE untuk membuat tabel eksternal OSS dalam format CSV, Parquet, atau ORC. Untuk informasi selengkapnya tentang sintaksis, lihat Sintaksis tabel eksternal OSS.
Topik ini menggunakan tabel eksternal non-partisi dalam format CSV sebagai contoh.
CREATE TABLE IF NOT EXISTS oss_import_test_external_table ( id INT, name VARCHAR(1023), age INT, dt VARCHAR(1023) ) ENGINE='OSS' TABLE_PROPERTIES='{ "endpoint":"oss-cn-hangzhou-internal.aliyuncs.com", "url":"oss://testBucketname/adb/dt=2023-06-15/person.csv", "accessid":"accesskey_id", "accesskey":"accesskey_secret", "delimiter":",", "skip_header_line_count":0, "charset":"utf-8" }'; -
Lakukan kueri data dari tabel eksternal
oss_import_test_external_table.CatatanUntuk file data CSV, Parquet, atau ORC, melakukan kueri pada tabel eksternal berukuran besar dapat menyebabkan overhead performa yang signifikan. Untuk meningkatkan efisiensi kueri, kami menyarankan agar Anda mengimpor data dari tabel eksternal OSS ke AnalyticDB for MySQL sebelum menjalankan kueri, seperti yang dijelaskan pada Langkah 4 dan 5.
SELECT * FROM oss_import_test_external_table; -
Buat tabel di AnalyticDB for MySQL untuk menyimpan data yang diimpor dari tabel eksternal OSS.
CREATE TABLE IF NOT EXISTS adb_oss_import_test ( id INT, name VARCHAR(1023), age INT, dt VARCHAR(1023) ) DISTRIBUTED BY HASH(id); -
Jalankan pernyataan INSERT untuk mengimpor data dari tabel eksternal OSS ke AnalyticDB for MySQL.
PentingSecara default, operasi impor data yang menggunakan
INSERT INTOatauINSERT OVERWRITE SELECTdijalankan secara sinkron. Untuk dataset berukuran besar, seperti ratusan gigabyte, klien harus mempertahankan koneksi persisten ke server AnalyticDB for MySQL dalam waktu lama. Selama periode ini, masalah jaringan dapat mengganggu koneksi dan menyebabkan impor gagal. Oleh karena itu, untuk volume data besar, kami menyarankan agar Anda menggunakanSUBMIT JOB INSERT OVERWRITE SELECTuntuk melakukan impor secara asinkron.-
Metode 1: Jalankan pernyataan
INSERT INTOuntuk mengimpor data. Jika terjadi duplikasi primary key, operasi penulisan saat ini akan diabaikan dan data tidak diperbarui. Perilaku ini setara denganINSERT IGNORE INTO. Untuk informasi selengkapnya, lihat INSERT INTO. Berikut adalah contoh pernyataan:INSERT INTO adb_oss_import_test SELECT * FROM oss_import_test_external_table; -
Metode 2: Jalankan pernyataan INSERT OVERWRITE untuk mengimpor data, menimpa data yang sudah ada di tabel. Berikut adalah contoh pernyataan:
INSERT OVERWRITE adb_oss_import_test SELECT * FROM oss_import_test_external_table; -
Metode 3: Jalankan pernyataan
INSERT OVERWRITEsecara asinkron untuk mengimpor data. Anda dapat menggunakanSUBMIT JOBuntuk mengirimkan tugas asinkron guna penjadwalan latar belakang. Anda dapat menambahkan hint (/*+ direct_batch_load=true*/) sebelum tugas penulisan untuk mempercepat tugas tersebut. Untuk informasi selengkapnya, lihat Penulisan asinkron. Berikut adalah contoh pernyataan:SUBMIT JOB INSERT OVERWRITE adb_oss_import_test SELECT * FROM oss_import_test_external_table;Hasil berikut dikembalikan:
+---------------------------------------+ | job_id | +---------------------------------------+ | 2020112122202917203100908203303****** |Untuk informasi selengkapnya tentang cara mengirimkan tugas asinkron, lihat Kirimkan pekerjaan impor asinkron.
-
Sintaksis tabel eksternal OSS
Edisi Perusahaan, Edisi Dasar, dan Edisi Danau Data Terpadu
Untuk informasi tentang sintaksis pembuatan tabel eksternal OSS di Edisi Perusahaan, Edisi Dasar, dan Edisi Danau Data Terpadu, lihat Tabel eksternal OSS.
Data Warehouse
Tabel eksternal OSS non-partisi
CREATE TABLE [IF NOT EXISTS] table_name
(column_name column_type[, …])
ENGINE='OSS'
TABLE_PROPERTIES='{
"endpoint":"endpoint",
"url":"OSS_LOCATION",
"accessid":"accesskey_id",
"accesskey":"accesskey_secret",
"format":"csv|orc|parquet|text
"delimiter|field_delimiter":";",
"skip_header_line_count":1,
"charset":"utf-8"
}';
|
Jenis tabel eksternal |
Parameter |
Wajib |
Deskripsi |
|
Tabel eksternal dalam format CSV, Parquet, dan ORC |
ENGINE='OSS' |
Ya |
Mesin tabel. Tetapkan nilainya ke OSS. |
|
endpoint |
Endpoint bucket OSS. Saat ini, AnalyticDB for MySQL hanya dapat mengakses OSS melalui jaringan VPC. Catatan
Masuk ke Konsol OSS, klik bucket target, dan lihat Endpoint pada halaman Overview bucket. |
||
|
url |
Jalur ke file atau direktori OSS.
|
||
|
accessid |
ID AccessKey dari Akun Alibaba Cloud atau Pengguna RAM yang memiliki izin OSS. Untuk informasi tentang cara memperoleh ID AccessKey, lihat Akun dan izin. |
||
|
accesskey |
Rahasia AccessKey dari Akun Alibaba Cloud atau Pengguna RAM yang memiliki izin OSS. Untuk memperoleh Rahasia AccessKey, lihat Akun dan izin. |
||
|
format |
Wajib bersyarat |
Format file.
|
|
|
Tabel eksternal dalam format CSV dan Text |
delimiter|field_delimiter |
Ya |
Pemisah kolom file data.
|
|
Tabel eksternal dalam format CSV |
null_value |
Tidak |
Menentukan apa yang merepresentasikan nilai Penting
Parameter ini memerlukan kluster dengan kernel versi 3.1.4.2 atau lebih baru. |
|
ossnull |
Menentukan aturan untuk menginterpretasikan nilai
Catatan
Contoh di atas mengasumsikan bahwa |
||
|
skip_header_line_count |
Jumlah baris yang dilewati dari awal file data. Misalnya, jika file CSV memiliki baris header, tetapkan parameter ini ke 1 untuk melewatinya. Nilai default adalah 0, yang berarti tidak ada baris yang dilewati. |
||
|
oss_ignore_quote_and_escape |
Jika diatur ke true, tanda kutip dan karakter escape dalam nilai bidang akan diabaikan. Default-nya adalah false. Penting
Parameter ini memerlukan kluster dengan kernel versi 3.1.4.2 atau lebih baru. |
||
|
charset |
Set karakter tabel eksternal OSS. Nilai yang valid:
Penting
Parameter ini memerlukan kluster dengan kernel versi 3.1.10.4 atau lebih baru. |
-
Nama kolom dan urutannya dalam pernyataan CREATE EXTERNAL TABLE harus sesuai dengan file sumber Parquet atau ORC. Nama kolom tidak peka terhadap huruf besar/kecil.
-
Anda dapat membuat tabel eksternal menggunakan subset kolom dari file sumber. Kolom yang tidak ditentukan dalam pernyataan CREATE EXTERNAL TABLE akan diabaikan.
-
Jika pernyataan CREATE EXTERNAL TABLE mencakup kolom yang tidak ada di file Parquet atau ORC, kueri pada kolom tersebut akan mengembalikan NULL.
AnalyticDB for MySQL dapat membaca dan menulis file Hive TEXT menggunakan tabel eksternal OSS dalam format CSV. Gunakan pernyataan berikut untuk membuat tabel:
CREATE TABLE adb_csv_hive_format_oss (
a tinyint,
b smallint,
c int,
d bigint,
e boolean,
f float,
g double,
h varchar,
i varchar, -- binary
j timestamp,
k DECIMAL(10, 4),
l varchar, -- char(10)
m varchar, -- varchar(100)
n date
) ENGINE = 'OSS' TABLE_PROPERTIES='{
"format": "csv",
"endpoint":"oss-cn-hangzhou-internal.aliyuncs.com",
"accessid":"accesskey_id",
"accesskey":"accesskey_secret",
"url":"oss://testBucketname/adb_data/",
"delimiter": "\\1",
"null_value": "\\\\N",
"oss_ignore_quote_and_escape": "true",
"ossnull": 2
}';
Perhatikan poin-poin berikut saat membuat tabel eksternal OSS dalam format CSV untuk membaca file Hive TEXT:
-
Pemisah kolom default untuk file Hive TEXT adalah
\1. Saat menggunakan tabel eksternal OSS berformat CSV untuk membaca atau menulis file tersebut, Anda harus menetapkan parameterdelimiterke nilai yang di-escape\\1. -
Nilai
NULLdefault untuk file Hive TEXT adalah\N. Saat menggunakan tabel eksternal OSS berformat CSV untuk membaca atau menulis file tersebut, Anda harus menetapkan parameternull_valueke nilai yang di-escape\\\\N. -
Tipe data dasar Hive lainnya, seperti
BOOLEAN, dipetakan langsung ke tipe data AnalyticDB for MySQL. Namun, tipeBINARY,CHAR(n), danVARCHAR(n)semuanya dipetakan ke tipe AnalyticDB for MySQLVARCHAR.
Lampiran: Pemetaan tipe data
-
Tipe data yang Anda tentukan saat membuat tabel harus sesuai dengan pemetaan dalam tabel berikut. Untuk tipe
DECIMAL, presisi juga harus sesuai. -
Tabel eksternal Parquet tidak mendukung tipe
STRUCT. Jika Anda menggunakan tipe ini, pembuatan tabel akan gagal. -
Tabel eksternal ORC tidak mendukung tipe kompleks seperti
LIST,STRUCT, danUNION. Jika Anda menggunakan tipe-tipe ini, pembuatan tabel akan gagal. Anda dapat membuat tabel eksternal ORC yang berisi kolom bertipeMAP, tetapi kueri terhadap tabel tersebut akan gagal.
Pemetaan tipe data file Parquet dan AnalyticDB for MySQL
|
Tipe primitif Parquet |
Tipe logis Parquet |
AnalyticDB for MySQL tipe |
|
BOOLEAN |
Tidak ada |
BOOLEAN |
|
INT32 |
INT_8 |
TINYINT |
|
INT32 |
INT_16 |
SMALLINT |
|
INT32 |
Tidak ada |
INT atau INTEGER |
|
INT64 |
Tidak ada |
BIGINT |
|
FLOAT |
Tidak ada |
FLOAT |
|
DOUBLE |
Tidak ada |
DOUBLE |
|
DECIMAL |
DECIMAL |
|
BINARY |
UTF-8 |
|
|
INT32 |
DATE |
DATE |
|
INT64 |
TIMESTAMP_MILLIS |
TIMESTAMP atau DATETIME |
|
INT96 |
Tidak ada |
TIMESTAMP atau DATETIME |
Pemetaan tipe data file ORC ke AnalyticDB for MySQL
|
Tipe ORC |
AnalyticDB for MySQL tipe |
|
BOOLEAN |
BOOLEAN |
|
BYTE |
TINYINT |
|
SHORT |
SMALLINT |
|
INT |
INT atau INTEGER |
|
LONG |
BIGINT |
|
DECIMAL |
DECIMAL |
|
FLOAT |
FLOAT |
|
DOUBLE |
DOUBLE |
|
|
|
TIMESTAMP |
TIMESTAMP atau DATETIME |
|
DATE |
DATE |
Pemetaan tipe data file Paimon dan AnalyticDB for MySQL
|
Tipe Paimon |
AnalyticDB for MySQL tipe |
|
CHAR |
VARCHAR |
|
VARCHAR |
VARCHAR |
|
BOOLEAN |
BOOLEAN |
|
BINARY |
VARBINARY |
|
VARBINARY |
VARBINARY |
|
DECIMAL |
DECIMAL |
|
TINYINT |
TINYINT |
|
SMALLINT |
SMALLINT |
|
INT |
INTEGER |
|
BIGINT |
BIGINT |
|
FLOAT |
REAL |
|
DOUBLE |
DOUBLE |
|
DATE |
DATE |
|
TIME |
Tidak didukung |
|
TIMESTAMP |
TIMESTAMP |
|
LocalZonedTIMESTAMP |
TIMESTAMP (mengabaikan informasi zona waktu lokal) |
|
ARRAY |
ARRAY |
|
MAP |
MAP |
|
ROW |
ROW |