全部产品
Search
文档中心

MaxCompute:Edisi tipe data MaxCompute V1.0

更新时间:Sep 16, 2025

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 decimal(54,18), dan presisi serta rentang tidak dapat disesuaikan.

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.5BD dalam kode sampel berikut:

    INSERT INTO test_tb(a) VALUES (3.5BD);
  • Nilai tipe DATETIME tidak termasuk komponen milidetik. Anda dapat menambahkan -dfp dalam perintah Tunnel untuk menentukan format waktu yang akurat hingga milidetik, seperti tunnel 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

  • ARRAY<BIGINT>

  • ARRAY<STRUCT<a:BIGINT, b:STRING>>

  • ARRAY(1, 2, 3)

  • ARRAY(NAMED_STRUCT('a', 1, 'b', '2'), NAMED_STRUCT('a', 3, 'b', '4'))

MAP

  • MAP<STRING, STRING>

  • MAP<BIGINT, ARRAY<STRING>>

  • MAP("k1", "v1", "k2", "v2")

  • MAP(1L, ARRAY('a', 'b'), 2L, ARRAY('x', 'y'))

STRUCT

  • STRUCT<'x', BIGINT, 'y', BIGINT>

  • STRUCT<'field1', BIGINT, 'field2', ARRAY<BIGINT>, 'field3', MAP<BIGINT>>

  • NAMED_STRUCT('x', 1, 'y', 2)

  • NAMED_STRUCT('field1', 100L, 'field2', ARRAY(1, 2), 'field3', MAP(1, 100, 2, 200))

Catatan

Di MaxCompute, tipe data kompleks dapat bersarang. Untuk informasi lebih lanjut tentang fungsi bawaan terkait, lihat ARRAY, MAP, dan STRUCT.