Jika fungsi bawaan MaxCompute tidak memenuhi kebutuhan bisnis Anda, Anda dapat membuat fungsi user-defined (UDF) untuk memperluas fungsionalitasnya. Topik ini menjelaskan cara membuat UDF di DataWorks menggunakan antarmuka visual.
Latar Belakang
Fungsi user-defined (UDF) memperluas pustaka fungsi yang sudah ada, memungkinkan Anda menentukan logika kustom untuk kueri dan meningkatkan pemrosesan data. Untuk informasi selengkapnya, lihat Ikhtisar UDF. Selain menggunakan antarmuka visual di DataWorks, Anda juga dapat membuat UDF melalui MaxCompute Studio atau command line. Untuk informasi selengkapnya, lihat Buat UDF di MaxCompute Studio dan Buat UDF di MaxCompute menggunakan perintah.
Prasyarat
Sebelum membuat fungsi, Anda harus membuat dan mengunggah resource MaxCompute ke DataWorks. Untuk informasi selengkapnya, lihat Buat resource MaxCompute.
Untuk menyiapkan file resource Anda, lihat Kembangkan UDF (Java) atau Kembangkan UDF (Python 3).
Batasan
Di DataWorks, Anda hanya dapat melihat dan mengelola UDF yang diunggah melalui antarmuka visualnya. Jika UDF ditambahkan ke mesin komputasi MaxCompute menggunakan alat lain seperti MaxCompute Studio, Anda harus memuat UDF tersebut secara manual ke DataWorks melalui fitur MaxCompute Functions. Setelah itu, Anda dapat melihat dan mengelolanya di DataWorks. Untuk informasi selengkapnya, lihat Kelola fungsi MaxCompute.
Daftarkan fungsi
Masuk ke Konsol DataWorks. Di wilayah target, klik di panel navigasi sebelah kiri. Pilih ruang kerja dari daftar drop-down dan klik Go to Data Development.
-
Buat alur kerja. Untuk informasi selengkapnya, lihat Buat alur kerja berulang.
-
Buat fungsi.
-
Buka alur kerja, klik kanan MaxCompute, lalu pilih Create Function.
-
Di kotak dialog Create Function, masukkan Name dan pilih Path.
-
Klik Create.
-
Di kotak dialog Register Function, konfigurasikan parameter-parameter berikut.
Parameter
Deskripsi
Function Type
Pilih tipe fungsi. Nilai yang valid: Mathematical Operation Functions, Aggregate Functions, String Processing Functions, Date Functions, Window Functions, dan Other Functions. Untuk informasi selengkapnya, lihat Gunakan fungsi bawaan.
MaxCompute Engine Instance
Hanya-baca.
Function Name
Nama UDF, yang digunakan untuk mereferensikan fungsi dalam pernyataan SQL. Nama ini harus unik secara global dan tidak dapat diubah setelah fungsi didaftarkan.
Owner
Secara default, akun yang sedang login akan ditampilkan. Anda juga dapat memilih akun lain.
Class Name
Nama kelas UDF, dalam format
resource_name.class_name. Nama resource dapat berupa nama paket Java atau nama resource Python.Saat Anda membuat UDF di DataWorks, Anda dapat menggunakan resource MaxCompute bertipe JAR atau Python. Konfigurasi nama kelas berbeda tergantung pada tipe resource:
-
Jika tipe resource adalah JAR, Class Name berformat
package_name.actual_class_name. Anda dapat memperoleh nilai ini di IntelliJ IDEA menggunakan perintahcopy reference.Contohnya, jika nama paket Java adalah
com.aliyun.odps.examples.udfdan nama kelas aktual adalahUDAFExample, atur parameter Class Name menjadicom.aliyun.odps.examples.udf.UDAFExample. -
Jika tipe resource adalah Python, Class Name berformat
python_resource_name.actual_class_name.Contohnya, jika nama resource Python adalah
LcLognormDist_shdan nama kelas aktual adalahLcLognormDist_sh, atur parameter Class Name menjadiLcLognormDist_sh.LcLognormDist_sh.Catatan-
Jangan tambahkan sufiks .jar atau .py ke nama resource.
-
Resource harus dikomit dan dipublikasikan sebelum dapat digunakan. Untuk informasi selengkapnya, lihat Buat dan gunakan resource MaxCompute.
-
Resources
Pilih resource yang diperlukan untuk mendaftarkan fungsi.
-
Mode visual: Anda hanya dapat memilih resource yang telah diunggah atau ditambahkan ke DataWorks.
-
Editor kode: Anda dapat memilih semua resource di mesin komputasi MaxCompute yang sesuai.
Catatan-
Anda tidak perlu memasukkan path dari resource yang telah ditambahkan.
-
Jika UDF memanggil beberapa resource, pisahkan nama resource dengan koma (,).
Description
Deskripsi singkat mengenai tujuan UDF.
Expression Syntax
Contoh penggunaan UDF. Misalnya,
test.Parameter Description
Deskripsi mengenai tipe parameter input yang didukung dan tipe nilai kembali.
Return Value
Contoh nilai kembali, misalnya 1. Parameter ini opsional.
Example
Contoh penggunaan fungsi. Parameter ini opsional.
-
-
-
Klik ikon Save
di bilah alat untuk menyimpan fungsi. -
Komit fungsi tersebut.
-
Klik ikon Submit
di bilah alat. -
Di kotak dialog Submission, masukkan Change Description.
-
Klik OK.
-
Untuk informasi selengkapnya tentang cara melihat fungsi yang ada di mesin komputasi MaxCompute beserta riwayat perubahannya, lihat Kelola fungsi MaxCompute.
Lihat dan kembalikan versi fungsi sebelumnya
Klik kanan nama fungsi dan pilih View Earlier Versions untuk melihat riwayat versinya atau mengembalikannya.
Gunakan fungsi di node
Anda dapat langsung menggunakan nama fungsi user-defined. Untuk memasukkan nama fungsi dengan cepat ke editor node saat ini, pilih resource lalu klik kanan Insert Function. Di pohon file proyek di sebelah kiri, di bawah node Function, klik kanan fungsi target—misalnya getregion—lalu pilih Reference Function dari menu konteks untuk memasukkan fungsi tersebut ke editor SQL di sebelah kanan. Sebagai contoh, gunakan getregion(ip) AS region dalam pernyataan SELECT untuk memanggil UDF.
Lampiran 1: Lihat fungsi user-defined
-
Jalankan perintah
SHOW FUNCTIONSuntuk menampilkan semua UDF yang terdaftar di proyek MaxCompute yang terikat ke komponen DataStudio ruang kerja DataWorks Anda. -
MaxCompute menyediakan banyak fungsi bawaan. Untuk informasi selengkapnya, lihat Ikhtisar fungsi bawaan.
// Lihat fungsi di proyek saat ini.
SHOW FUNCTIONS;
Lampiran 2: Lihat detail fungsi
-
Jalankan perintah
DESCRIBEatauDESCdengan nama fungsi untuk melihat detail UDF.// Gunakan bentuk singkat untuk melihat detail UDF. DESC FUNCTION <function_name>; -
Jika fungsi yang ada di alur kerja tidak memenuhi kebutuhan Anda, tulis UDF MaxCompute. Kemudian, unggah dan asosiasikan resource-nya, seperti file JAR atau Python, untuk memperluas kemampuan pemrosesan data Anda. Untuk informasi selengkapnya, lihat Kelola resource MaxCompute.
Praktik terbaik
Setelah membuat UDF, lihat Berikan akses ke UDF tertentu kepada pengguna tertentu untuk menerapkan kontrol akses pada UDF tersebut.
Dokumen terkait
-
MaxCompute mendukung pengemasan satu-klik file JAR, pengunggahan resource JAR, dan pendaftaran UDF MaxCompute. Untuk informasi selengkapnya, lihat Package, upload, and register.
-
Untuk informasi mengenai masalah yang mungkin terjadi saat menulis UDF MaxCompute dalam Java, lihat FAQ tentang UDF MaxCompute yang ditulis dalam Java.
-
Untuk informasi mengenai masalah yang mungkin terjadi saat menulis UDF MaxCompute dalam Python, lihat FAQ tentang UDF MaxCompute yang ditulis dalam Python.
FAQ
T: Setelah saya mengunggah resource dan mendefinisikannya sebagai UDF di DataWorks, apakah saya dapat menggunakannya dalam kueri SQL di DataAnalysis selain di node ODPS SQL di DataStudio?
J: Ya. UDF yang didaftarkan di DataWorks disimpan di proyek MaxCompute yang mendasarinya, sehingga tersedia baik untuk node ODPS SQL maupun kueri SQL di DataAnalysis.