All Products
Search
Document Center

MaxCompute:Edisi tipe data MaxCompute V1.0

Last Updated:Jun 02, 2026

Latar Belakang

Edisi tipe data MaxCompute V1.0 merupakan salah satu dari tiga edisi tipe data di MaxCompute.

Edisi ini ditujukan untuk proyek MaxCompute awal yang komponen dependennya tidak mendukung edisi tipe data V2.0.

Konfigurasi Proyek

Sebuah proyek MaxCompute menggunakan edisi tipe data V1.0 jika ketiga properti proyek berikut diatur:

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.

Tipe Data yang Didukung

Tipe Data Dasar

Semua tipe data dasar mendukung nilai NULL.

Data type

Constant example

Description

BIGINT

100000000000L dan -1L

  • Integer bertanda 64-bit.

  • Rentang: -2⁶³ + 1 hingga 2⁶³ - 1.

DOUBLE

3.14159261E+7

Floating point biner 64-bit.

DECIMAL

3.5BD dan 99999999999.9999999BD

Tipe numerik eksak. Presisi default: decimal(54,18). Presisi dan skala tidak dapat disesuaikan. Rentang bagian integer: -10³⁶ + 1 hingga 10³⁶ - 1. Bagian desimal: akurat hingga 10⁻¹⁸. Untuk informasi selengkapnya, lihat Tipe data DECIMAL.

STRING

"abc", 'bcd', "alibaba", 'inc'

  • Tipe string.

  • Panjang maksimum: 8 MB.

DATETIME

DATETIME'2017-11-11 00:00:00'

  • Tipe tanggal dan waktu.

  • Rentang: 0000-01-01 hingga 9999-12-31.

  • Hasil kueri DATETIME tidak mencakup presisi milidetik. Untuk menampilkan milidetik, gunakan opsi -dfp dalam perintah Tunnel untuk menentukan format waktu.

  • Contoh: tunnel upload -dfp 'yyyy-MM-dd HH:mm:ss.SSS'. Untuk informasi selengkapnya, lihat Perintah Tunnel.

BOOLEAN

True dan False

  • Tipe boolean.

  • Rentang: True dan False.

Catatan Penggunaan

  • konstanta

    • Konstanta integer: Diproses sebagai BIGINT secara default. Jika konstanta melebihi rentang BIGINT (misalnya, 1,000,000,000,000,000,000,000,000), konstanta tersebut diproses sebagai DOUBLE. Contohnya, 1 dalam SELECT 1 + a; adalah BIGINT.

    • Konstanta DECIMAL: Saat memasukkan konstanta DECIMAL ke dalam bidang, gunakan format sufiks BD. Contoh:

      INSERT INTO test_tb(a) VALUES (3.5BD);
    • Konkatenasi STRING: Konstanta STRING dapat dikonkatenasi. Misalnya, abc dan xyz dikonkatenasi menjadi abcxyz.

  • Kolom kunci partisi: Kolom kunci partisi pada tabel partisi harus bertipe STRING.

  • Fungsi bawaan: Fungsi bawaan yang mencakup parameter tipe data MaxCompute V2.0 tidak dapat digunakan dalam edisi tipe data V1.0.

Perbedaan dari Edisi Tipe Data MaxCompute V2.0

  • Operasi LIMIT, ORDER BY, DISTRIBUTE BY, SORT BY, dan CLUSTER BY berperilaku berbeda antara edisi tipe data MaxCompute V1.0 dan MaxCompute V2.0.

    Contoh berikut menggunakan SELECT * FROM t1 UNION ALL SELECT * FROM t2 LIMIT 10;.

    Edition

    Equivalent statement

    MaxCompute V1.0

    SELECT * FROM t1 UNION ALL SELECT * FROM (SELECT * FROM t2 LIMIT 10) t2;

    MaxCompute V2.0

    SELECT * FROM (SELECT * FROM t1 UNION ALL SELECT * FROM t2) t LIMIT 10;

  • Ekspresi IN berperilaku berbeda antara edisi tipe data V1.0 dan V2.0.

    Contoh berikut menggunakan a IN (1, 2, 3).

    Edition

    Behavior

    MaxCompute V1.0

    Semua nilai dalam tanda kurung harus bertipe sama.

    MaxCompute V2.0

    Nilai dalam tanda kurung dapat dikonversi secara implisit ke tipe yang sama.

Tipe Data Kompleks

Tipe data kompleks dapat disarangkan satu sama lain. Untuk fungsi bawaan yang terkait dengan tipe kompleks, lihat ARRAY, MAP, dan STRUCT.

Data type

Definition

Constructor

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))