All Products
Search
Document Center

MaxCompute:Operasi konfigurasi zona waktu

Last Updated:Mar 26, 2026

Konfigurasikan zona waktu untuk Proyek MaxCompute menggunakan perintah SET. Secara default, MaxCompute menggunakan UTC+8 untuk semua bidang DATETIME, TIMESTAMP, dan DATE serta fungsi waktu bawaan terkait.

Jenis pekerjaan yang didukung

Konfigurasi zona waktu berlaku untuk jenis pekerjaan berikut:

  • MapReduce

  • Spark on MaxCompute

    • Tugas yang dikirim ke kluster komputasi MaxCompute secara otomatis mewarisi zona waktu proyek.

    • Tugas yang berjalan dalam mode YARN client (spark-shell, spark-sql, atau pyspark) memerlukan konfigurasi driver tambahan. Di spark-defaults.conf, tambahkan spark.driver.extraJavaOptions -Duser.timezone=America/Los_Angeles, ganti America/Los_Angeles dengan zona waktu yang ingin Anda gunakan.

  • Machine Learning Platform for AI (PAI)

  • Graph

Konfigurasikan zona waktu

MaxCompute mendukung dua cakupan konfigurasi:

CakupanSiapa yang dapat mengaturnya
Tingkat sessionSemua pengguna
Tingkat proyekHanya pemilik proyek

Atur zona waktu untuk session

Kirimkan SET odps.sql.timezone=<timezoneid>; bersama dengan pernyataan kueri Anda.

-- Atur zona waktu ke Asia/Tokyo untuk session ini.
SET odps.sql.timezone=Asia/Tokyo;

Untuk memverifikasi zona waktu aktif, jalankan SELECT getdate();:

SELECT getdate();

Output yang diharapkan:

+---------------------+
| _c0                 |
+---------------------+
| 2018-10-30 23:49:50 |
+---------------------+

Atur zona waktu untuk proyek

Jalankan perintah berikut sebagai pemilik proyek:

setProject odps.sql.timezone=<timezoneid>;
Penting

Setelah Anda mengubah zona waktu proyek, semua perhitungan waktu dalam proyek akan menggunakan zona waktu baru tersebut, termasuk data dari pekerjaan yang sudah ada. Untuk meminimalkan dampak, konfigurasikan zona waktu proyek hanya jika diperlukan, dan lebih baik mengaturnya pada proyek baru daripada proyek yang sedang aktif.

Batasan dan catatan penggunaan

Format zona waktu

Gunakan nama zona waktu IANA seperti Asia/Shanghai. Jangan gunakan format offset GMT+9.

Format GMT+N tidak mendukung daylight saving time, yang dapat menyebabkan perhitungan waktu salah. Nama zona waktu IANA menangani daylight saving time secara otomatis dan menghindari ambiguitas.

Kompatibilitas SDK dan client

  • Fungsi tanggal bawaan SQL, user-defined function (UDF), user-defined type (UDT), user-defined join (UDJ), dan pernyataan SELECT TRANSFORM semuanya dapat membaca atribut zona waktu proyek.

  • Jika zona waktu yang dikonfigurasi di SDK for Java berbeda dari zona waktu proyek, konfigurasikan zona waktu GMT di SDK agar konversi DATETIME ke STRING berjalan dengan benar.

  • Jika zona waktu lokal Anda bukan UTC+8 saat memperbarui MaxCompute, perbarui SDK for Java dan client terkait ke versi dengan akhiran -oversea. Hal ini memastikan bahwa hasil SQL dan data yang ditransfer menggunakan perintah Tunnel untuk tanggal setelah 1 Januari 1900 akurat dan konsisten.

Perbedaan datetime historis

Setelah mengonfigurasi zona waktu selain UTC+8, mungkin terdapat perbedaan antara waktu aktual dan output pernyataan SQL yang dijalankan di DataWorks:

Rentang tanggalSelisih waktu
Sebelum 1 Januari 19009 detik
1 Januari 1900 – 1 Januari 1928352 detik

Setelah memperbarui ke versi dengan akhiran `-oversea`:

  • Data DATETIME sebelum 1 Januari 1900 mungkin masih berbeda hingga 343 detik.

  • Data DATETIME sebelum 1 Januari 1928 yang diunggah sebelum pembaruan akan tampak 352 detik lebih awal di versi baru.

Tanpa pembaruan akhiran `-oversea`:

  • Hasil SQL mungkin berbeda dari data yang ditransfer oleh perintah Tunnel.

  • Sebelum 1 Januari 1900: selisih 9 detik.

  • 1 Januari 1900 hingga 1 Januari 1928: selisih 352 detik.

Zona waktu DataWorks

Mengubah zona waktu SDK for Java atau client tidak memengaruhi zona waktu server DataWorks. Evaluasi bagaimana hal ini memengaruhi pekerjaan DataWorks terjadwal Anda. Zona waktu server DataWorks berdasarkan wilayah:

WilayahZona waktu
Jepang (Tokyo)GMT+9
Singapura (Singapura)GMT+8

Client JDBC pihak ketiga

Jika Anda terhubung ke MaxCompute menggunakan client pihak ketiga melalui Java Database Connectivity (JDBC), konfigurasikan zona waktu yang sesuai di client agar tetap konsisten dengan server.