Edisi tipe data MaxCompute V1.0 adalah salah satu dari tiga edisi tipe data MaxCompute, yang hanya mendukung tipe data MaxCompute V1.0. Topik ini menjelaskan edisi tipe data MaxCompute V1.0 dalam hal definisi, tipe data yang didukung, dan perbedaan dengan edisi tipe data lainnya.
Definisi
Jika edisi tipe data MaxCompute V1.0 digunakan dalam proyek Anda, tipe data didefinisikan berdasarkan kode berikut:
setproject odps.sql.type.system.odps2=false; -- Nonaktifkan tipe data MaxCompute V2.0.
setproject odps.sql.decimal.odps2=false; -- Nonaktifkan tipe DECIMAL di MaxCompute V2.0.
setproject odps.sql.hive.compatible=false; -- Nonaktifkan tipe data yang kompatibel dengan Hive.Skenario
Edisi tipe data MaxCompute V1.0 cocok untuk skenario di mana proyek Anda merupakan versi MaxCompute yang lebih lama dan bergantung pada komponen yang tidak mendukung edisi tipe data MaxCompute V2.0.
Tipe data
Tipe data | Contoh konstanta | Deskripsi |
BIGINT | 100000000000L dan -1L | Tipe integer bertanda 64-bit. Nilai valid: -263 + 1 hingga 263 -1. |
DOUBLE | 3.14159261E+7 | Tipe floating point biner 64-bit. |
DECIMAL | 3.5BD dan 99999999999.9999999BD | Tipe numerik eksak berbasis sistem desimal. Secara default, diatur ke Nilai valid untuk bagian integer: -1036 + 1 hingga 1036 -1. Bagian desimal akurat hingga 10-18. |
STRING | "abc", 'bcd', "alibaba", dan 'inc' | Tipe string. Panjang maksimum adalah 8 MB. |
DATETIME | DATETIME'2017-11-11 00:00:00' | Tipe DATETIME. Nilai valid: 0000-01-01 hingga 9999-12-31. |
BOOLEAN | True dan False | Tipe BOOLEAN. Nilai valid: True dan False. |
Saat menggunakan edisi tipe data MaxCompute V1.0, perhatikan poin-poin berikut:
Semua tipe data di atas mendukung nilai NULL.
Secara default, konstanta integer diproses sebagai tipe BIGINT. Jika konstanta melebihi rentang nilai tipe BIGINT, seperti 1,000,000,000,000,000,000,000,000, konstanta tersebut diproses sebagai tipe DOUBLE. Contohnya, konstanta integer 1 dalam
SELECT 1 + a;diproses sebagai tipe BIGINT.Jika edisi tipe data MaxCompute V1.0 digunakan, fungsi bawaan yang berisi parameter tipe data MaxCompute V2.0 tidak dapat digunakan.
Kolom kunci partisi tabel terpartisi harus bertipe STRING.
Konstanta tipe STRING dapat digabungkan. Contohnya, abc dan xyz dapat digabungkan menjadi abcxyz.
Jika konstanta dimasukkan ke dalam bidang tipe DECIMAL, ekspresi konstanta harus sesuai dengan format dalam definisi konstanta. Contoh:
3.5BDdalam kode sampel berikut:INSERT INTO test_tb(a) VALUES (3.5BD);Nilai tipe DATETIME tidak termasuk komponen milidetik. Anda dapat menambahkan
-dfpdalam perintah Tunnel untuk menentukan format waktu yang akurat hingga milidetik, sepertitunnel upload -dfp 'yyyy-MM-dd HH:mm:ss.SSS'. Untuk informasi lebih lanjut tentang perintah Tunnel, lihat Perintah Tunnel.
Perbedaan antara edisi tipe data MaxCompute V1.0 dan edisi tipe data lainnya
Operasi LIMIT, ORDER BY, DISTRIBUTE BY, SORT BY, dan CLUSTER BY berbeda antara edisi tipe data MaxCompute V1.0 dan edisi tipe data MaxCompute V2.0.
Dalam contoh ini, pernyataan
SELECT * FROM t1 UNION ALL SELECT * FROM t2 LIMIT10;digunakan.Jika edisi tipe data MaxCompute V1.0 digunakan, pernyataan tersebut dinyatakan sebagai
SELECT * FROM t1 UNION ALL SELECT * FROM ( SELECT * FROM t2 LIMIT 10) t2;.Jika edisi tipe data MaxCompute V2.0 digunakan, pernyataan tersebut dinyatakan sebagai
SELECT * FROM (SELECT * FROM t1 UNION ALL SELECT * FROM t2 ) t LIMIT 10;.
Ekspresi IN berbeda antara edisi tipe data MaxCompute V1.0 dan edisi tipe data MaxCompute V2.0.
Dalam contoh ini, ekspresi
a IN (1, 2, 3)digunakan.Jika edisi tipe data MaxCompute V1.0 digunakan, semua nilai yang terlampir dalam tanda kurung () harus bertipe sama.
Jika edisi tipe data MaxCompute V2.0 digunakan, semua nilai yang terlampir dalam tanda kurung () dapat dikonversi secara implisit ke tipe yang sama.
Tipe data kompleks
Tipe data | Definisi | Konstruktor |
ARRAY |
|
|
MAP |
|
|
STRUCT |
|
|