MaxCompute mendukung tiga edisi tipe data: MaxCompute V1.0, MaxCompute V2.0, dan Hive-compatible. Setiap edisi dikendalikan oleh serangkaian parameter tingkat proyek. Topik ini menjelaskan masing-masing edisi, kapan menggunakannya, serta cara melihat dan mengubah edisi yang aktif.
Pilih edisi tipe data
Anda dapat memilih edisi tipe data secara langsung saat membuat ruang kerja di Konsol DataWorks.
Edisi tipe data yang aktif memengaruhi:
Tipe data yang tersedia dalam tabel
Perilaku pernyataan DML dan fungsi bawaan
Kompatibilitas komponen pengembangan yang terhubung ke MaxCompute
Sebelum menetapkan edisi, baca perbedaan antara edisi tipe data MaxCompute V2.0 dan edisi tipe data lainnya untuk memahami dampaknya.
Tabel berikut merangkum kapan masing-masing edisi digunakan:
| Edition | Use when |
|---|---|
| MaxCompute V1.0 | Proyek Anda merupakan proyek MaxCompute lama yang komponen dependennya tidak mendukung edisi tipe data MaxCompute V2.0. |
| MaxCompute V2.0 | Proyek Anda tidak berisi data yang dihasilkan sebelum April 2020, dan semua komponen dependen mendukung edisi tipe data MaxCompute V2.0. |
| Hive-compatible | Proyek Anda dimigrasikan dari Hadoop, dan komponen dependen mendukung edisi tipe data MaxCompute V2.0. |
Referensi edisi tipe data
Setiap edisi dipetakan ke kombinasi tetap dari tiga parameter proyek berikut:
| Parameter | Description | Valid values |
|---|---|---|
odps.sql.type.system.odps2 | Mengaktifkan atau menonaktifkan edisi tipe data MaxCompute V2.0. | true atau false |
odps.sql.decimal.odps2 | Mengaktifkan atau menonaktifkan tipe DECIMAL di MaxCompute V2.0. | true atau false |
odps.sql.hive.compatible | Mengaktifkan atau menonaktifkan edisi tipe data Hive-compatible. Pada edisi Hive-compatible, beberapa tipe data dan pernyataan SQL kompatibel dengan Hive. | true atau false |
Edisi tipe data MaxCompute V1.0
setproject odps.sql.type.system.odps2=false; -- Nonaktifkan edisi 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 edisi tipe data Hive-compatible.Edisi tipe data MaxCompute V2.0
setproject odps.sql.type.system.odps2=true; -- Aktifkan edisi tipe data MaxCompute V2.0.
setproject odps.sql.decimal.odps2=true; -- Aktifkan tipe data DECIMAL di MaxCompute V2.0.
setproject odps.sql.hive.compatible=false; -- Nonaktifkan edisi tipe data Hive-compatible.Edisi tipe data Hive-compatible
setproject odps.sql.type.system.odps2=true; -- Aktifkan edisi tipe data MaxCompute V2.0.
setproject odps.sql.decimal.odps2=true; -- Aktifkan tipe data DECIMAL di MaxCompute V2.0.
setproject odps.sql.hive.compatible=true; -- Aktifkan edisi tipe data Hive-compatible.Untuk informasi tentang layanan dan komponen Alibaba Cloud yang kompatibel dengan masing-masing edisi, lihat Kompatibilitas antara komponen dan tipe data.
Lihat edisi tipe data suatu proyek
Jalankan perintah berikut pada client MaxCompute:
setproject;Periksa nilai odps.sql.type.system.odps2, odps.sql.decimal.odps2, dan odps.sql.hive.compatible dalam output untuk menentukan edisi yang aktif.
Ubah edisi tipe data suatu proyek
Untuk mengubah edisi tipe data, Anda harus menjadi pemilik proyek atau memiliki peran Super_Administrator.
Jalankan perintah berikut pada client MaxCompute, di Konsol DataWorks, atau di MaxCompute Studio:
-- Lihat edisi tipe data suatu proyek.
setproject;
-- Aktifkan atau nonaktifkan edisi tipe data MaxCompute V2.0.
setproject odps.sql.type.system.odps2=true/false;
-- Aktifkan atau nonaktifkan tipe DECIMAL di MaxCompute V2.0.
setproject odps.sql.decimal.odps2=true/false;
-- Aktifkan atau nonaktifkan edisi tipe data Hive-compatible.
setproject odps.sql.hive.compatible=true/false;Pada node ODPS SQL di DataStudio di Konsol DataWorks, perintah setproject tidak dapat dijalankan sendiri. Jalankan bersama pernyataan SQL SELECT atau INSERT.
Atasi masalah kompatibilitas saat mengganti edisi
Masalah: Proyek menggunakan V2.0, tetapi beberapa komponen memerlukan V1.0.
Opsi:
Ubah edisi tingkat proyek menjadi MaxCompute V1.0.
Pertahankan proyek pada V2.0 dan atur penggantian tingkat session untuk komponen yang terdampak:
set odps.sql.type.system.odps2=false;CatatanKirimkan perintah ini bersama perintah lain dalam session yang sama. Perintah harus ditulis dalam huruf kecil.
Masalah: Beberapa pernyataan SQL memerlukan V1.0, sementara yang lain bergantung pada fitur V2.0 seperti `current_timestamp`.
Opsi:
Pisahkan pernyataan yang bergantung pada V1.0 ke session terpisah dan atur edisi tipe data tingkat session ke V1.0 untuk session tersebut.
Tulis ulang pernyataan SQL untuk menghilangkan ketergantungan versi.
Masalah: Proyek awalnya menggunakan V2.0 tetapi harus kembali ke V1.0.
Sebelum beralih, konversikan kolom yang terdampak pada tabel yang menggunakan tipe data V2.0:
TINYINT, SMALLINT, atau INT → BIGINT
CHAR atau VARCHAR → STRING
Alternatifnya, buat tabel baru menggunakan tipe data V1.0 dan gunakan fungsi CAST untuk memigrasikan data dari tabel V2.0 ke tabel tersebut.