Jika fungsi bawaan yang disediakan oleh MaxCompute tidak memadai untuk kebutuhan bisnis Anda, Anda dapat membuat fungsi kustom (User-Defined Function/UDF) untuk memenuhi kebutuhan tersebut. Artikel ini menjelaskan cara membuat UDF secara visual di DataWorks.
Latar Belakang
UDF digunakan untuk memperluas pustaka fungsi yang sudah ada, memungkinkan Anda menambahkan logika dan perhitungan kustom sesuai kebutuhan saat menjalankan query, sehingga memberikan kemampuan pemrosesan data yang lebih kaya. Untuk informasi selengkapnya, lihat Ikhtisar UDF. Selain cara visual yang disediakan oleh DataWorks, Anda juga dapat membuat UDF menggunakan MaxCompute Studio atau melalui command line di MaxCompute. Untuk detailnya, lihat Buat Fungsi Kustom dengan MaxCompute Studio dan Buat Fungsi Kustom melalui Command Line di MaxCompute.
Prasyarat
Anda harus membuat fungsi berdasarkan sumber daya. Oleh karena itu, sebelum membuat fungsi, pastikan Anda telah membuat sumber daya MaxCompute dan mengunggah atau menambahkannya ke DataWorks. Untuk informasi selengkapnya, lihat Buat Sumber Daya MaxCompute.
Saat membuat sumber daya MaxCompute, Anda dapat merujuk pada Develop a UDF in Java dan UDF development (Python 3) untuk menyiapkan file sumber daya MaxCompute.
Batasan Penggunaan
DataWorks hanya mendukung peninjauan dan pengelolaan fungsi kustom yang diunggah melalui antarmuka visual DataWorks. Fungsi kustom yang ditambahkan ke engine MaxCompute menggunakan alat lain (misalnya, MaxCompute Studio) harus dimuat secara manual ke DataWorks melalui fitur MaxCompute Functions agar dapat dilihat dan dikelola di DataWorks. Untuk informasi selengkapnya, lihat Manage MaxCompute functions.
Daftarkan Fungsi
Masuk ke DataWorks console. Di wilayah target, klik di panel navigasi kiri. Pilih ruang kerja dari daftar drop-down, lalu klik Go to Data Development.
-
Buat alur kerja. Untuk informasi selengkapnya, lihat Create an auto triggered workflow.
-
Buat fungsi baru.
-
Buka alur kerja yang sesuai, klik kanan MaxCompute, lalu pilih Create Function.
-
Di dialog Create Function, masukkan Name dan pilih Path.
-
Klik Create.
-
Di dialog Register Function, konfigurasikan parameter berikut.

Parameter
Deskripsi
Function Type
Pilih jenis fungsi, termasuk Mathematical Operation Functions, Aggregate Functions, String Processing Functions, Date Functions, Window Functions, dan Other Functions. Untuk informasi selengkapnya, lihat Use built-in functions.
MaxCompute Engine Instance
Tidak dapat diubah secara default.
Function Name
Nama fungsi UDF, yaitu nama yang digunakan untuk mereferensikan fungsi tersebut dalam SQL. Nama ini harus unik secara global dan tidak dapat diubah setelah fungsi didaftarkan.
Owner
Secara default menampilkan akun yang sedang login, tetapi Anda juga dapat memilih akun lain.
Class Name
Nama kelas fungsi UDF, dengan format
nama_sumber_daya.nama_kelas. Nama sumber daya dapat berupa nama paket Java atau nama sumber daya Python.DataWorks mendukung dua jenis sumber daya MaxCompute untuk pembuatan fungsi kustom, yaitu JAR dan Python. Konfigurasi Class Name untuk masing-masing jenis adalah sebagai berikut:
-
Ketika jenis sumber daya adalah JAR, Class Name dikonfigurasi dalam format
Java package name.actual class name, yang dapat Anda peroleh di IDEA menggunakan perintahcopy reference.Contohnya,
com.aliyun.odps.examples.udfadalah nama paket Java, danUDAFExampleadalah nama kelas sebenarnya, maka parameter Class Name dikonfigurasi sebagaicom.aliyun.odps.examples.udf.UDAFExample. -
Jika jenis sumber daya adalah Python, format Class Name adalah
nama_sumber_daya_Python.nama_kelas_sebenarnya.Contohnya,
LcLognormDist_shadalah nama sumber daya Python, danLcLognormDist_shadalah nama kelas sebenarnya, maka parameter Class Name dikonfigurasi sebagaiLcLognormDist_sh.LcLognormDist_sh.Catatan-
Saat mengisi nama sumber daya, jangan tambahkan ekstensi .jar atau .py.
-
Sumber daya harus diajukan dan dipublikasikan terlebih dahulu sebelum dapat digunakan. Untuk informasi selengkapnya, lihat Create and use MaxCompute resources.
-
Resources
Pilih sumber daya yang diperlukan untuk mendaftarkan fungsi.
-
Mode visual: hanya mendukung pemilihan sumber daya yang telah diunggah atau ditambahkan ke DataWorks.
-
Mode skrip: mendukung pemilihan semua sumber daya di engine MaxCompute yang sesuai.
Catatan-
Tidak perlu mengisi path sumber daya yang telah ditambahkan.
-
Jika UDF memanggil beberapa sumber daya, pisahkan nama sumber daya tersebut dengan koma Inggris (,).
Description
Deskripsi singkat mengenai fungsi UDF ini.
Expression Syntax
Contoh penggunaan spesifik UDF ini, misalnya
test.Parameter Description
Penjelasan rinci mengenai tipe parameter input yang didukung serta tipe nilai kembaliannya.
Return Value
Nilai kembalian, contohnya 1. Opsional.
Example
Contoh penggunaan fungsi. Opsional.
-
-
-
Klik ikon
di bilah alat untuk menyimpan fungsi. -
Ajukan fungsi.
-
Klik ikon
di bilah alat. -
Di dialog Submission, masukkan Change Description.
-
Klik OK.
-
Untuk informasi tentang cara melihat fungsi yang ada di engine komputasi MaxCompute, riwayat perubahan fungsi, dan operasi terkait lainnya, lihat Manage MaxCompute functions.
Lihat Versi Fungsi dan Lakukan Rollback
Klik kanan nama fungsi yang sesuai, lalu klik View Earlier Versions untuk melihat informasi versi historis fungsi atau melakukan operasi rollback.

Gunakan Fungsi Kustom di Node
Anda dapat langsung menggunakan nama fungsi kustom. Pilih sumber daya, klik kanan Insert Function, lalu nama fungsi kustom akan secara otomatis dihasilkan di halaman edit node saat ini.
Lampiran I: Lihat Daftar Fungsi Kustom
-
Gunakan perintah
SHOW FUNCTIONSuntuk menampilkan semua fungsi kustom yang telah didaftarkan di proyek engine komputasi MaxCompute yang terikat dengan ruang kerja DataWorks. -
MaxCompute memiliki banyak fungsi bawaan. Untuk informasi selengkapnya, lihat: Ikhtisar Fungsi Bawaan.
// Lihat fungsi di proyek saat ini.
SHOW FUNCTIONS;
Lampiran II: Lihat Detail Fungsi Kustom
-
Gunakan perintah
DESCRIBEatau bentuk singkatnyaDESCdiikuti nama fungsi untuk melihat informasi detail fungsi kustom.// Gunakan bentuk singkat untuk melihat detail fungsi kustom DESC FUNCTION <function_name>; -
Di DataWorks, jika logika pemrosesan yang Anda butuhkan dalam alur kerja tidak dapat diimplementasikan dengan fungsi yang tersedia, Anda dapat menulis fungsi kustom MaxCompute dan mengunggah serta mengaitkan sumber daya terkait (seperti file JAR, file Python, dll.) untuk mengelola dan memperluas kemampuan pemrosesan data Anda. Untuk informasi selengkapnya, lihat Manage MaxCompute resources.
Praktik Terbaik
Setelah fungsi kustom dibuat, Anda dapat merujuk pada Best practice: Grant specific user access to a UDF untuk mengelola kontrol akses UDF.
Dokumen Terkait
-
MaxCompute mendukung pembuatan paket JAR satu klik, pengunggahan sumber daya JAR, dan pendaftaran fungsi kustom MaxCompute (UDF). Untuk informasi selengkapnya, lihat Package, upload, and register.
-
Jika mengalami masalah saat menulis UDF MaxCompute menggunakan Java, lihat Masalah Umum Penulisan UDF MaxCompute Menggunakan Java.
-
Jika Anda mengalami masalah saat menulis UDF MaxCompute dengan Python, lihat Masalah Umum Penulisan UDF MaxCompute dengan Bahasa Python.
Pertanyaan Umum
T: Setelah sumber daya diunggah melalui DataWorks dan didefinisikan sebagai fungsi UDF, apakah fungsi tersebut dapat digunakan dalam query SQL Analisis Data selain di node ODPS SQL di Data Development?
J: Ya. Fungsi UDF yang didaftarkan melalui DataWorks sebenarnya disimpan di proyek MaxCompute, sehingga tidak hanya dapat digunakan di node ODPS SQL, tetapi juga dalam query SQL Analisis Data.