All Products
Search
Document Center

DataWorks:node MaxCompute SQL

Last Updated:Jun 10, 2026

Node MaxCompute SQL di DataWorks memungkinkan Anda menjadwalkan tugas MaxCompute SQL secara berkala. Tugas-tugas ini dapat diintegrasikan dengan jenis node lain dalam satu alur kerja terpadu. MaxCompute SQL menggunakan sintaks mirip SQL, sehingga ideal untuk pemrosesan data skala besar (tingkat TB) secara terdistribusi ketika hasil real-time tidak krusial. Topik ini menjelaskan cara mengembangkan tugas node MaxCompute SQL di DataWorks.

Pendahuluan

MaxCompute SQL digunakan untuk memproses dan mengkueri data di MaxCompute. Fitur ini mendukung operasi SQL umum seperti SELECT, INSERT, UPDATE, dan DELETE, serta sintaks dan fungsi khusus MaxCompute. Anda dapat mengkueri dan memproses data dengan menulis pernyataan mirip SQL tanpa perlu pemrograman kompleks. Untuk informasi lebih lanjut tentang sintaks SQL, lihat Ikhtisar SQL.

Prasyarat

  • Anda telah mengikat mesin komputasi MaxCompute ke ruang kerja DataWorks.

  • (Opsional, untuk pengguna RAM) Pengguna RAM yang bertanggung jawab atas pengembangan tugas harus menjadi anggota ruang kerja dan memiliki peran Development atau Workspace Administrator. Peran Workspace Administrator mencakup izin yang luas dan harus diberikan dengan hati-hati. Untuk informasi lebih lanjut tentang cara menambahkan anggota ke ruang kerja, lihat Menambahkan anggota ke ruang kerja.

    Catatan

    Jika Anda menggunakan Akun Alibaba Cloud, Anda dapat melewati langkah ini.

Batasan

Node MaxCompute SQL memiliki batasan berikut untuk pengembangan SQL:

Kategori

Deskripsi

Komentar

Hanya komentar satu baris yang dimulai dengan -- yang didukung. Komentar multi-baris (/* ... */) tidak didukung.

Untuk informasi lebih lanjut, lihat Komentar MaxCompute SQL.

Batasan berikut juga berlaku untuk komentar:

  • Anda tidak dapat menambahkan komentar setelah pernyataan yang hanya berisi kata kunci, seperti SET atau USE.

  • Jangan gunakan titik koma (;) dalam komentar.

  • Jangan tambahkan komentar setelah pernyataan yang diakhiri titik koma (;), yang menandai akhir pernyataan.

Pengiriman SQL

ODPS SQL tidak mendukung penggunaan pernyataan SET dan USE secara independen; keduanya harus dieksekusi bersama pernyataan SQL tertentu.

Pengembangan SQL

Ukuran kode SQL tidak boleh melebihi 128 KB, dan jumlah perintah SQL tidak boleh melebihi 200.

Hasil kueri

Hanya pernyataan yang dimulai dengan SELECT atau WITH yang menghasilkan set hasil terformat.

Batasan berikut berlaku untuk hasil kueri:

  • Jika hasil kueri melebihi 10.000 baris, hasil tersebut dipotong maksimal menjadi 10.000 baris.

  • Jika ukuran hasil kueri melebihi 10 MB, muncul error Result is too large, exceed the limit size: 10MB.

Catatan

Jika Anda mengalami batasan ini, Anda dapat mengunduh hasil kueri dengan salah satu metode berikut:

Catatan penggunaan

  • Pastikan akun yang digunakan untuk menjalankan tugas MaxCompute SQL memiliki izin yang diperlukan pada proyek MaxCompute terkait. Untuk detailnya, lihat Kontrol akses DataWorks On MaxCompute dan Izin MaxCompute.

  • Tugas MaxCompute SQL mengonsumsi kuota komputasi. Jika tugas berjalan lama, buka konsol MaxCompute untuk memantau konsumsi kuota dan pastikan sumber daya yang cukup tersedia untuk menjalankan tugas tersebut. Untuk informasi lebih lanjut, lihat Sumber daya komputasi—manajemen kuota.

  • Saat mengembangkan tugas node MaxCompute SQL, parameter khusus seperti alamat Object Storage Service (OSS) harus diapit tanda kutip ganda (""). Jika tidak ditambahkan tanda kutip, tugas mungkin gagal mengurai dan menjalankan.

  • Urutan eksekusi pernyataan yang mengandung kata kunci seperti SET dan USE bervariasi tergantung lingkungan DataWorks. Untuk informasi lebih lanjut, lihat Lampiran 1: Urutan eksekusi SQL di lingkungan berbeda.

  • Dalam beberapa kasus ekstrem, seperti mati listrik server atau alih bencana primary/secondary, DataWorks mungkin tidak dapat sepenuhnya menghentikan tugas MaxCompute terkait. Dalam situasi ini, buka proyek MaxCompute terkait untuk menghentikan pekerjaan.

Buat node MaxCompute SQL

Untuk petunjuknya, lihat Membuat node MaxCompute SQL.

Mengembangkan node MaxCompute SQL

Di halaman pengeditan node, lakukan operasi pengembangan berikut.

Kembangkan kode SQL

DataWorks menyediakan parameter penjadwalan untuk meneruskan nilai secara dinamis ke kode Anda saat waktu proses. Di node MaxCompute SQL, Anda dapat mendefinisikan variabel dengan format ${variable_name} dan memberikan nilainya di bagian Scheduling Parameters pada panel Scheduling Settings. Untuk informasi tentang format parameter penjadwalan yang didukung, lihat Sumber dan ekspresi untuk parameter penjadwalan. Perintah MaxCompute SQL mirip dengan sintaks SQL standar dan mendukung pernyataan Data Definition Language (DDL), Data Manipulation Language (DML), dan Data Query Language (DQL), serta sintaks khusus MaxCompute. Untuk sintaks dan contoh lengkap, lihat Ikhtisar SQL.

Bagian berikut memberikan contoh untuk berbagai kasus penggunaan:

Catatan
  • Jika Anda menggunakan tipe data baru dalam fungsi ekstensi MaxCompute 2.0, Anda harus menambahkan SET odps.sql.type.system.odps2=true; sebelum pernyataan SQL fungsi tersebut dan mengirimkannya bersama. Perintah ini mengaktifkan tipe data baru untuk sesi tersebut. Untuk informasi lebih lanjut tentang tipe data 2.0, lihat Edisi tipe data (2.0).

  • Urutan eksekusi pernyataan MaxCompute SQL berbeda antara Data Studio dan Operation Center. Untuk informasi lebih lanjut, lihat Lampiran 1: Urutan eksekusi SQL di lingkungan berbeda.

Buat tabel

Anda dapat menggunakan pernyataan CREATE TABLE untuk membuat tabel non-partisi, tabel partisi, tabel eksternal, dan tabel terkluster. Untuk informasi lebih lanjut, lihat CREATE TABLE. Contoh pernyataan SQL berikut:

-- Buat tabel partisi bernama students.
CREATE TABLE IF NOT EXISTS students
( id BIGINT,
  name STRING,
  age BIGINT,
  birth DATE)
partitioned BY (gender STRING); 
Masukkan data

Anda dapat menggunakan pernyataan INSERT INTO atau INSERT OVERWRITE untuk memasukkan atau menimpa data ke tabel target. Untuk informasi lebih lanjut, lihat Memasukkan atau menimpa data (INSERT INTO | INSERT OVERWRITE).

Hindari penggunaan pernyataan INSERT INTO karena dapat menyebabkan duplikasi data yang tidak diinginkan. Kami menyarankan Anda menggunakan INSERT OVERWRITE. Untuk informasi lebih lanjut, lihat Memasukkan atau menimpa data.

Kode berikut merupakan contohnya:

-- Masukkan data.
INSERT OVERWRITE students PARTITION(gender='boy') VALUES (1,'ZhangSan',15,DATE '2008-05-15') ;

Pernyataan INSERT dapat memicu perbandingan bidang DDL untuk membandingkan pernyataan SQL dalam klausa SELECT dengan bidang tabel target.

Fitur ini tidak didukung jika model skema tiga lapis diaktifkan untuk proyek MaxCompute tetapi tidak di tingkat penyewa.
-- Bandingkan bidang DDL.
INSERT OVERWRITE TABLE dws_user_info_all_di PARTITION (dt='${workflow.var}')
SELECT COALESCE(a.uid, b.uid) AS uid
    , b.gender
    , b.age_range
    , b.zodiac
    , a.region
    , a.device
    , a.identity
    , a.method
    , a.url
    , a.referer
    , a.time
-- Klausul FROM/JOIN dihilangkan di sini. Tambahkan sesuai logika bisnis Anda.
;
Kueri data

Anda dapat menggunakan pernyataan SELECT untuk melakukan operasi seperti kueri bersarang, kueri berkelompok, dan pengurutan. Untuk informasi lebih lanjut, lihat Sintaks SELECT. Berikut contoh SQL-nya:

-- (Opsional) Aktifkan pemindaian tabel penuh di tingkat proyek. Operasi ini memerlukan hak istimewa tinggi.
-- SETPROJECT odps.sql.allow.fullscan=true;  
-- Aktifkan pemindaian tabel penuh di tingkat sesi. Ini hanya berlaku untuk sesi saat ini.
SET odps.sql.allow.fullscan=true; 
-- Kueri informasi semua siswa laki-laki dan urutkan hasil berdasarkan ID secara ascending.
SELECT * FROM students WHERE gender='boy' ORDER BY id;
Catatan

Secara default, pengguna RAM tidak dapat mengkueri tabel produksi. Untuk mendapatkan izin ini, Anda harus mengajukannya di Security Center. Untuk informasi tentang preset izin data dan kontrol akses MaxCompute di DataWorks, lihat Detail kontrol izin data untuk MaxCompute. Untuk informasi tentang cara memberikan izin menggunakan perintah di MaxCompute, lihat Mengelola izin pengguna menggunakan perintah.

Gunakan fungsi SQL

MaxCompute mendukung fungsi bawaan dan user-defined function (UDF) untuk pengembangan dan analisis data. Anda dapat membuat dan menggunakan fungsi SQL sesuai kebutuhan bisnis. Untuk informasi lebih lanjut tentang fungsi bawaan, lihat Ikhtisar fungsi bawaan. Untuk informasi lebih lanjut tentang UDF, lihat Ikhtisar UDF MaxCompute. Contoh berikut menjelaskan cara menggunakan fungsi SQL.

  • Fungsi bawaan: Fungsi bawaan adalah fungsi yang disediakan oleh MaxCompute. Anda dapat memanggilnya langsung. Berdasarkan contoh sebelumnya tentang membuat tabel, memasukkan data, dan mengkueri data, perintah contoh berikut menggunakan fungsi dateadd untuk memodifikasi kolom birth berdasarkan unit dan jumlah tertentu:

    -- Aktifkan pemindaian tabel penuh di tingkat sesi. Ini hanya berlaku untuk sesi saat ini.
    SET odps.sql.allow.fullscan=true; 
    SELECT id, name, age, birth, dateadd(birth,1,'mm') AS birth_dateadd FROM students;
  • User-defined function (UDF): Untuk menggunakan UDF, Anda harus menulis kode fungsi, mengunggah kode sebagai resource, lalu mendaftarkan fungsi tersebut. Untuk langkah-langkah spesifiknya, lihat Resource Management.

Debug node MaxCompute SQL

  1. Di editor node, konfigurasikan parameter di panel Run Configuration di sebelah kanan.

    Parameter

    Deskripsi

    Compute Engine

    Pilih mesin komputasi MaxCompute yang telah diikat ke ruang kerja Anda.

    Kuota komputasi

    Pilih kuota komputasi yang telah Anda buat. Kuota ini menyediakan sumber daya komputasi yang diperlukan, seperti CPU dan memori, untuk pekerjaan komputasi.

    Jika tidak tersedia kuota komputasi, klik Create Computing Quota dalam daftar drop-down untuk membuka konsol MaxCompute dan mengonfigurasi kuota.

    Kelompok sumber daya

    Pilih kelompok sumber daya penjadwalan yang dapat terhubung ke mesin komputasi. Untuk informasi lebih lanjut, lihat Solusi koneksi jaringan.

  2. Di kotak dialog parameter pada bilah alat, pilih sumber data MaxCompute yang telah dibuat dan klik Run untuk menjalankan tugas MaxCompute SQL.

Lihat hasil

  • Anda dapat membuka hasil dalam spreadsheet atau menyalin kontennya ke file lokal.

    Catatan

    Karena penyesuaian zona waktu historis untuk Tiongkok, kueri SQL di DataWorks mungkin mengembalikan hasil dengan offset waktu untuk periode tertentu. Offset-nya adalah 5 menit 52 detik untuk tanggal dan waktu dari tahun 1900 hingga 1928, dan 9 detik untuk tanggal dan waktu sebelum tahun 1900.

  • Untuk melihat log eksekusi, klik tautan LogView di tab image. Untuk informasi lebih lanjut, lihat Melihat informasi pekerjaan menggunakan Logview 2.0.

  • Untuk mengurutkan hasil, klik panah drop-down di header kolom, pilih urutan ascending atau descending dari daftar Sort, lalu klik OK.

  • Untuk melihat bidang BLOB, klik ganda sel BLOB di hasil eksekusi. MaxCompute mendukung tipe data BLOB untuk menyimpan objek biner seperti gambar dan file audio. Di jendela Current Field Value yang muncul, Anda dapat melihat pratinjau kontennya. Gambar ditampilkan langsung, sedangkan teks ditampilkan dalam format read-only. Anda dapat beralih antara Blob View, Text View, dan JSON View menggunakan tombol di bagian bawah jendela.

Langkah berikutnya

  • Konfigurasi penjadwalan node: Jika node dalam direktori proyek perlu dijalankan secara berkala, Anda perlu mengatur Scheduling Policy dan mengonfigurasi properti penjadwalan terkait di bagian Scheduling Settings di sisi kanan node.

  • Menerbitkan node: Jika Anda perlu menerbitkan tugas ke lingkungan produksi untuk dieksekusi, klik ikon image untuk memulai proses penerbitan. Node dalam direktori proyek hanya dijadwalkan secara berkala setelah diterbitkan ke lingkungan produksi.

Lampiran 1: Urutan eksekusi SQL di lingkungan berbeda

Urutan eksekusi pernyataan yang mengandung kata kunci seperti SET dan USE dalam node MaxCompute SQL bervariasi tergantung lingkungan DataWorks.

  • Di Data Studio: Semua pernyataan SET dan USE dalam kode Anda digabungkan dan dieksekusi sebelum pernyataan SQL lainnya.

  • Di Operation Center (untuk penjadwalan dan O&M): Pernyataan dieksekusi sesuai urutan penulisannya.

Asumsikan kode berikut didefinisikan dalam node.

SET a=b;
CREATE TABLE name1(id string);
SET c=d;
CREATE TABLE name2(id string);

Urutan eksekusi di lingkungan berbeda adalah sebagai berikut:

Pernyataan SQL

Data Studio

Scheduling and O&M

Pernyataan SQL pertama

SET a=b;
SET c=d;
CREATE TABLE name1(id string);
SET a=b;
CREATE TABLE name1(id string);

Pernyataan SQL kedua

SET a=b;
SET c=d;
CREATE TABLE name2(id string);
SET c=d;
CREATE TABLE name2(id string);

Lampiran 2: Praktik danau data terpadu

Untuk membaca data dari atau menulis data ke tabel Data Lake Formation (DLF) dalam tugas MaxCompute SQL, Anda dapat menggunakan MaxCompute External Project. External Project memungkinkan akses real-time ke metadata dan data dengan memetakan katalog DLF. Fitur ini mendelegasikan pengelolaan izin ke DLF dan mendukung akses serta manipulasi metadata untuk data yang disimpan di OSS yang dikelola DLF. Untuk informasi lebih lanjut, lihat Paimon DLF External Project.

Topik terkait

Untuk contoh tambahan tugas MaxCompute SQL, lihat topik-topik berikut: