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.
CatatanJika 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 Untuk informasi lebih lanjut, lihat Komentar SQL MaxCompute. Batasan berikut juga berlaku untuk komentar:
|
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:
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:
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 menggunakanINSERT OVERWRITEdaripadaINSERT INTOuntuk 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.

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;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
dateadduntuk mengubah nilai dalam kolombirthberdasarkan 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
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.
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.
CatatanKarena 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
, 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
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 | | |
Pernyataan SQL kedua | | |
Dokumen terkait
Untuk contoh tambahan tugas SQL MaxCompute, lihat topik berikut: