全部产品
Search
文档中心

DataWorks:Node SQL MaxCompute

更新时间:Feb 04, 2026

Node SQL MaxCompute di DataWorks memungkinkan Anda menjadwalkan tugas SQL MaxCompute secara berkala dan mengintegrasikannya dengan jenis node lain untuk penjadwalan gabungan. Tugas SQL MaxCompute menggunakan sintaks mirip SQL dan ideal untuk pemrosesan data skala besar (tingkat terabyte) secara terdistribusi dalam skenario yang tidak memerlukan kinerja 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. Dengan demikian, Anda dapat menulis pernyataan mirip SQL untuk mengkueri dan memproses data tanpa harus menulis logika pemrosesan data yang kompleks. Untuk informasi lebih lanjut tentang sintaks SQL, lihat Ikhtisar SQL.

Prasyarat

  • Resource komputasi MaxCompute telah disambungkan ke ruang kerja DataWorks.

  • (Opsional) Jika Anda adalah pengguna Resource Access Management (RAM), Anda harus menjadi anggota ruang kerja dengan peran Development atau Workspace Admin. Karena peran Workspace Admin mencakup izin yang luas, pemberian peran ini harus dilakukan dengan hati-hati. 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:

Kategori

Deskripsi

Komentar

Komentar satu baris yang diawali dengan -- didukung. Komentar multi-baris yang diapit oleh /* */ 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.

  • Anda tidak dapat menambahkan komentar di akhir pernyataan yang telah lengkap. Pernyataan dianggap lengkap jika diakhiri dengan titik koma (;).

Pengiriman SQL

Dalam ODPS SQL, Anda tidak dapat menjalankan pernyataan yang hanya berisi SET atau USE. Kata kunci ini harus digunakan bersama dengan pernyataan SQL tertentu.

Pengembangan SQL

Ukuran kode SQL tidak boleh melebihi 128 KB. Jumlah perintah SQL tidak boleh melebihi 200.

Hasil kueri

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

Batasan berikut berlaku untuk hasil kueri:

  • Jika hasil kueri berisi lebih dari 10.000 baris, maksimal hanya 10.000 baris yang dapat ditampilkan.

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

Catatan

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

Catatan

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

  • Eksekusi tugas SQL MaxCompute bergantung pada kuota resource. Jika tugas berjalan lama, buka konsol MaxCompute untuk memeriksa konsumsi kuota dan pastikan tersedia resource yang cukup untuk menjalankan tugas tersebut. Untuk informasi lebih lanjut, lihat Resource komputasi - Manajemen kuota.

  • Saat mengembangkan tugas node SQL MaxCompute, jika tugas melibatkan parameter khusus seperti alamat OSS, Anda harus membungkusnya dengan tanda kutip ganda (""). Jika tidak, tugas mungkin gagal diurai dan dijalankan.

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

  • Dalam kasus ekstrem tertentu, seperti pemadaman listrik server yang tidak normal atau alih bencana primary/secondary, DataWorks mungkin tidak dapat sepenuhnya menghentikan proses tugas MaxCompute terkait. Dalam hal ini, buka proyek MaxCompute yang sesuai dengan resource komputasi MaxCompute yang diinginkan untuk menghentikan tugas.

Buat node MaxCompute SQL

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

Kembangkan node MaxCompute SQL

Pada halaman pengeditan node, ikuti langkah-langkah berikut untuk mengembangkan node.

Kembangkan kode SQL

DataWorks menyediakan parameter penjadwalan yang memungkinkan Anda meneruskan nilai secara dinamis ke variabel dalam kode Anda. Di node SQL MaxCompute, Anda dapat mendefinisikan variabel dalam format ${variable_name}. Kemudian, Anda dapat memberikan nilai ke variabel tersebut di bagian Scheduling Parameters pada tab Schedule. Untuk informasi lebih lanjut tentang format parameter penjadwalan yang didukung, lihat Sumber dan ekspresi 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 contoh, lihat Ikhtisar SQL.

Bagian berikut menyediakan contoh untuk berbagai skenario:

Catatan
  • Jika Anda menggunakan tipe data baru dalam fungsi ekstensi MaxCompute V2.0, Anda harus menambahkan SET odps.sql.type.system.odps2=true; sebelum pernyataan SQL fungsi tersebut dan mengeksekusinya bersamaan. Hal ini memastikan tipe data baru dapat digunakan. Untuk informasi lebih lanjut tentang tipe data MaxCompute V2.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

Anda dapat menggunakan pernyataan INSERT INTO atau INSERT OVERWRITE untuk memasukkan atau memperbarui data di tabel tujuan. Untuk informasi lebih lanjut, lihat Masukkan atau timpa data (INSERT INTO | INSERT OVERWRITE).

Gunakan 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. Fitur ini memeriksa dan membandingkan bidang dalam klausa SELECT dengan bidang tabel tujuan.

Fitur ini tidak didukung jika proyek MaxCompute telah mengaktifkan model skema Lapisan 3, tetapi penyewa belum mengaktifkannya.

image

Kueri data

Anda dapat menggunakan pernyataan SELECT untuk melakukan operasi seperti kueri bersarang, kueri kelompok, 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 berdasarkan ID secara ascending.
SELECT * FROM students WHERE gender='boy' ORDER BY id;
Catatan

Secara default, pengguna RAM tidak memiliki izin untuk mengkueri data dari tabel produksi. Untuk mengkueri data dari tabel produksi, Anda harus mengajukan izin yang diperlukan 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. Untuk informasi lebih lanjut tentang fungsi bawaan, lihat Fungsi bawaan. Untuk informasi lebih lanjut tentang UDF, lihat UDF MaxCompute. Contoh berikut menjelaskan cara menggunakan fungsi SQL.

  • Fungsi bawaan: MaxCompute menyediakan fungsi bawaan yang dapat Anda panggil langsung. Berdasarkan contoh sebelumnya, perintah berikut menggunakan fungsi dateadd untuk memodifikasi nilai dalam kolom birth dengan menambahkan interval waktu tertentu:

    -- Aktifkan pemindaian tabel penuh di tingkat sesi. 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 bagian Debuging Configurations.

    Parameter

    Deskripsi

    Resource komputasi

    Pilih resource komputasi MaxCompute yang telah Anda sambungkan.

    Kuota komputasi

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

    Jika tidak tersedia kuota komputasi, 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. Pada kotak dialog parameter di bilah alat, pilih sumber data MaxCompute yang telah Anda buat dan klik Run untuk mengeksekusi tugas SQL MaxCompute.

Lihat hasil

  • Hasil eksekusi ditampilkan dalam buku kerja. Anda dapat membuka hasil di buku kerja, melakukan operasi lain di DataWorks, atau menyalin dan menempelkan konten ke file Excel 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 antara tahun 1900 hingga 1928, dan 9 detik untuk tanggal dan waktu sebelum tahun 1900.

  • Untuk melihat log berjalan, klik tautan LogView pada tab image di hasil berjalan. Untuk informasi lebih lanjut, lihat Gunakan Logview V2.0 untuk melihat informasi berjalan pekerjaan.

  • Untuk mengurutkan hasil di halaman hasil, klik panah drop-down pada suatu bidang, pilih urutan ascending atau descending dari daftar Sort, lalu klik OK.

Langkah selanjutnya

  • Jadwalkan node: Untuk menjadwalkan node di folder proyek, atur Scheduling Policies dan konfigurasikan properti penjadwalannya di bagian Schedule di sisi kanan node.

  • Publikasikan node: Jika tugas perlu dijalankan di lingkungan produksi, klik ikon image untuk mempublikasikan tugas ke lingkungan produksi. Node di folder proyek hanya dapat dijalankan sesuai jadwal setelah dipublikasikan ke lingkungan produksi.

Lampiran: Urutan eksekusi SQL di lingkungan berbeda

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

  • Di DataStudio: Semua pernyataan yang mengandung 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 yang dieksekusi

DataStudio

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

Referensi

Untuk contoh tambahan tugas SQL MaxCompute, lihat topik berikut: