All Products
Search
Document Center

DataWorks:Node SQL MaxCompute

Last Updated:Mar 27, 2026

Node SQL MaxCompute di DataWorks memungkinkan Anda menjadwalkan dan mengintegrasikan tugas SQL MaxCompute secara berkala dengan jenis node lainnya. Tugas SQL MaxCompute menggunakan sintaks yang mirip SQL dan cocok untuk memproses data dalam skala besar (tingkat terabyte) pada skenario yang tidak memerlukan real-time tinggi. Topik ini menjelaskan cara mengembangkan tugas node SQL MaxCompute di DataWorks.

Pendahuluan

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

Prasyarat

  • Resource komputasi MaxCompute telah ditautkan ke ruang kerja DataWorks.

  • (Opsional) Jika Anda menggunakan RAM user, pastikan mereka telah ditambahkan ke ruang kerja dan diberikan peran Development atau Workspace Admin. Berikan peran Workspace Admin dengan hati-hati karena mencakup izin yang luas. Untuk informasi lebih lanjut tentang cara menambahkan anggota ke ruang kerja, lihat Tambahkan anggota ke ruang kerja.

    Catatan

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

Batasan

Batasan berikut berlaku saat Anda menggunakan node SQL MaxCompute untuk mengembangkan tugas SQL:

Kategori

Deskripsi

Komentar

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

Untuk informasi lebih lanjut, lihat Komentar SQL MaxCompute.

Batasan berikut juga berlaku untuk komentar:

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

  • Anda tidak dapat menggunakan titik koma (;) dalam komentar.

  • Jangan tambahkan komentar setelah pernyataan yang diakhiri dengan titik koma (;).

Pengiriman SQL

Pernyataan yang hanya berisi SET atau USE harus dikirim bersama pernyataan SQL lainnya.

Pengembangan SQL

Kode SQL tidak boleh melebihi 128 KB ukurannya, dan jumlah perintah SQL tidak boleh melebihi 200.

Hasil kueri

Hanya pernyataan SELECT atau WITH yang dapat menghasilkan set hasil terformat.

Batasan berikut berlaku untuk hasil kueri:

  • Hasil kueri dipotong maksimal hingga 10.000 baris.

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

Catatan

Jika Anda mengalami batasan ini, Anda dapat mengunduh hasil kueri ke komputer lokal untuk dilihat menggunakan salah satu metode berikut:

Catatan penggunaan

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

  • Eksekusi tugas SQL MaxCompute mengonsumsi resource kuota. Jika tugas berjalan lama, buka konsol MaxCompute untuk memantau konsumsi resource dan pastikan kuota yang cukup tersedia. Untuk informasi lebih lanjut, lihat Resource Komputasi - Manajemen Kuota.

  • Apit parameter khusus, seperti alamat OSS, dengan tanda kutip ganda (""). Jika tidak, penguraian dapat gagal dan menyebabkan tugas gagal.

  • Urutan eksekusi pernyataan yang berisi kata kunci, seperti SET dan USE, berbeda tergantung pada lingkungan DataWorks tempatnya dijalankan. Untuk informasi lebih lanjut, lihat Lampiran: Urutan eksekusi SQL di lingkungan berbeda.

Buat node MaxCompute SQL

Untuk informasi lebih lanjut tentang cara membuat node SQL MaxCompute, lihat Buat node SQL MaxCompute.

Mengembangkan node MaxCompute SQL

Pada halaman pengeditan node, lakukan tugas pengembangan berikut.

Kembangkan kode SQL

DataWorks menyediakan parameter penjadwalan untuk meneruskan nilai secara dinamis ke variabel dalam kode Anda. Di node SQL MaxCompute, Anda dapat mendefinisikan variabel dalam format ${variable_name} dan memberikan nilai variabel tersebut di bagian Scheduling Parameters pada tab Schedule. Untuk informasi lebih lanjut tentang format parameter penjadwalan yang didukung, lihat Sumber dan ekspresi untuk parameter penjadwalan. Perintah SQL MaxCompute mirip dengan sintaks SQL standar. SQL ini mendukung pernyataan Data Definition Language (DDL), Data Manipulation Language (DML), dan Data Query Language (DQL), serta sintaks khusus MaxCompute. Untuk informasi lebih lanjut tentang sintaks dan contohnya, lihat Ikhtisar SQL.

Bagian berikut memberikan contoh untuk skenario berbeda:

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 untuk dieksekusi. Perintah ini mengaktifkan tipe data baru untuk sesi tersebut. Untuk informasi lebih lanjut tentang tipe data 2.0, lihat Edisi tipe data.

  • Urutan eksekusi pernyataan SQL MaxCompute berbeda antara Data Studio dan Operation Center. Untuk informasi lebih lanjut, lihat Lampiran: 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. Kode berikut memberikan contoh:

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

Gunakan pernyataan INSERT INTO atau INSERT OVERWRITE untuk menambahkan atau mengganti data di tabel tujuan. Untuk informasi lebih lanjut, lihat Masukkan atau timpa data (INSERT INTO | INSERT OVERWRITE).

Kami menyarankan Anda menggunakan INSERT OVERWRITE daripada INSERT INTO untuk mencegah duplikasi data yang tidak diinginkan. Untuk informasi lebih lanjut, lihat Masukkan atau timpa data.

Kode berikut memberikan contoh:

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

Pernyataan INSERT dapat memicu fitur Compare DDL Fields, yang memvalidasi bidang dalam klausa SELECT Anda terhadap skema tabel tujuan.

Fitur ini tidak didukung dalam skenario di mana proyek MaxCompute telah mengaktifkan model skema tiga lapis tetapi model tingkat penyewa belum diaktifkan.

image

Kueri data

Anda dapat menggunakan pernyataan SELECT untuk melakukan operasi seperti kueri bersarang, kueri berkelompok, dan pengurutan. Untuk informasi lebih lanjut, lihat Sintaks SELECT. Kode berikut memberikan contoh:

-- (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, RAM user tidak dapat mengkueri data dari tabel produksi. Untuk melakukannya, Anda harus mengajukan izin di Security Center. Untuk informasi lebih lanjut tentang izin data preset dan kontrol akses MaxCompute di DataWorks, lihat Detail kontrol izin data MaxCompute. Untuk informasi lebih lanjut tentang cara memberikan izin menggunakan perintah di MaxCompute, lihat Kelola 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 Anda. 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: MaxCompute menyediakan fungsi bawaan yang dapat Anda panggil langsung. Berdasarkan contoh sebelumnya tentang pembuatan tabel, pemasukan data, dan pengkuerian data, perintah contoh berikut menggunakan fungsi dateadd untuk mengubah nilai dalam kolom birth berdasarkan satuan dan interval 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, dan mendaftarkan fungsi tersebut. Untuk informasi lebih lanjut, lihat Resource Management.

Debug node SQL MaxCompute

  1. Di sisi kanan halaman pengeditan node, konfigurasikan parameter di panel Run Configuration.

    Parameter

    Deskripsi

    Resource komputasi

    Pilih resource komputasi MaxCompute yang telah Anda tautkan.

    Kuota komputasi

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

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

    Kelompok sumber daya

    Pilih kelompok sumber daya penjadwalan yang telah lulus uji konektivitas dengan resource 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 SQL MaxCompute.

Lihat hasil

  • Hasil eksekusi ditampilkan dalam buku kerja di dalam DataWorks. Dari sana, Anda dapat membuka hasilnya atau menyalin dan menempel kontennya ke spreadsheet lokal.

    Catatan

    Karena penyesuaian informasi zona waktu Tiongkok yang dirilis oleh Organisasi Internasional untuk Standardisasi, Anda mungkin mengalami selisih waktu untuk periode tertentu saat menjalankan pernyataan SQL terkait di DataWorks. Selisihnya adalah 5 menit 52 detik untuk tanggal dan waktu dari tahun 1900 hingga 1928, dan 9 detik untuk tanggal dan waktu sebelum tahun 1900.

  • Lihat log berjalan: Pada tab hasil berjalan image, klik tautan LogView. Untuk informasi lebih lanjut, lihat Gunakan Logview 2.0 untuk melihat informasi jalannya pekerjaan.

  • Urutkan hasil: Pada halaman hasil, klik panah drop-down untuk suatu bidang, pilih urutan ascending atau descending dari daftar Sort, lalu klik OK.

Langkah berikutnya

  • Konfigurasikan properti penjadwalan untuk node: Untuk menjalankan node secara berkala, konfigurasikan properti penjadwalannya, termasuk Scheduling Policies, di panel Schedule.

  • Penerbitan Node: Untuk men-deploy tugas ke lingkungan produksi, klik ikon image untuk memulai proses penerbitan. Node dalam direktori proyek hanya dijadwalkan secara berkala setelah diterbitkan ke lingkungan produksi.

Lampiran: Eksekusi SQL di lingkungan berbeda

Urutan eksekusi pernyataan yang berisi kata kunci, seperti SET dan USE, dalam node SQL MaxCompute berbeda tergantung pada lingkungan DataWorks tempatnya dijalankan.

  • Saat dijalankan di Data Studio: Semua pernyataan kata kunci seperti SET dan USE dalam kode tugas saat ini digabung dan dieksekusi sebelum semua pernyataan SQL lainnya.

  • Di lingkungan penjadwalan: 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 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);

Dokumen terkait

Untuk contoh tambahan tugas SQL MaxCompute, lihat topik berikut: