Daftarkan user-defined function (UDF) sebelum menggunakannya dalam penerapan SQL. Topik ini menjelaskan cara mendaftarkan, memperbarui, dan menghapus UDF di Realtime Compute for Apache Flink.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Izin akses namespace diberikan kepada Pengguna RAM atau Peran RAM Anda. Untuk informasi selengkapnya, lihat Memberikan izin namespace.
Menyiapkan file JAR UDF (untuk UDF Java) atau file Python (untuk UDF Python) yang siap diunggah.
Hindari konflik dependensi JAR:
Saat membuat file JAR UDF, ikuti aturan berikut untuk mencegah konflik dependensi pada waktu proses:
Gunakan versi Flink yang sama di proyek UDF Anda dengan versi engine yang dipilih di SQL Editor.
Tandai dependensi terkait Flink sebagai
<scope>provided</scope>dalam file POM Anda.Paket dependensi pihak ketiga ke dalam JAR menggunakan Apache Maven Shade Plugin.
Untuk langkah-langkah pemecahan masalah, lihat Bagaimana Memecahkan Masalah Konflik Dependensi Flink?
Persyaratan UDF Python (hanya tingkat deployment):
Memerlukan Ververica Runtime (VVR) 8.0.3 atau yang lebih baru.
Konfigurasikan file dependensi (seperti
python.filesataupython.archives) di bagian Parameters pada tab Configuration.Pemeriksaan sintaks tidak didukung pada draf UDF Python. Lewati pemeriksaan sintaks sebelum melakukan deployment.
Pilih antara catalog UDF dan deployment-level UDF
Realtime Compute for Apache Flink mendukung dua cakupan UDF. Pilih berdasarkan kasus penggunaan Anda:
| Aspek | Catalog UDF | Deployment-level UDF |
|---|---|---|
| Cakupan | Tersedia di semua deployment dalam ruang kerja | Terikat pada satu deployment saja |
| Cara Mendaftar | SQL Editor > tab UDFs > Register UDF Artifact | Unggah artefak > pilih di Additional Dependencies > CREATE TEMPORARY FUNCTION dalam SQL |
| Versi Mesin | Secara default, versi terbaru Realtime Compute for Apache Flink digunakan untuk penguraian data — dapat menyebabkan konflik dengan deployment lama | Terikat pada versi engine dan kumpulan dependensi deployment tersebut |
Jika catalog UDF menyebabkan ketidakcocokan dengan versi engine lama dalam deployment Anda, gunakan deployment-level UDF sebagai gantinya.
Daftarkan catalog UDF
Masuk ke Konsol Realtime Compute for Apache Flink.
Temukan ruang kerja dan klik Console di kolom Actions.
Di panel navigasi kiri, klik Development > ETL.
Di sisi kiri halaman SQL Editor, klik tab UDFs, lalu klik Register UDF Artifact.
Pada kotak dialog Register UDF Artifact, unggah file JAR UDF Anda.

Pilih salah satu metode unggah berikut:
Upload a file: Klik Click to select di samping Select a file untuk mengunggah file JAR. Untuk menambahkan file dependensi, klik Click to select di samping Dependencies.
CatatanFile JAR disimpan di direktori
sql-artifactsBucket OSS yang terkait dengan ruang kerja Anda. Untuk UDF Java, dependensi dapat dikemas ke dalam JAR atau diunggah secara terpisah. Untuk UDF Python, unggah dependensi sebagai file dependensi terpisah.
External URL: Masukkan URL file JAR UDF yang sudah ada di lokasi eksternal.
CatatanHanya URL eksternal berikut yang didukung:
Titik akhir Bucket Object Storage Service (OSS) yang ditentukan saat Anda membeli ruang kerja. Lihat titik akhir ini di Workspace Details di Konsol Realtime Compute for Apache Flink.
Titik akhir sistem penyimpanan eksternal yang dapat diakses oleh Realtime Compute for Apache Flink, dengan daftar kontrol akses (ACL) baca-publik atau dengan akses yang secara eksplisit diberikan kepada Flink.
Klik Confirm.
Di bagian Available Functions pada kotak dialog Manage Functions, pilih UDF yang akan didaftarkan dan klik Create Functions. Flink mengurai file JAR dan secara otomatis mendeteksi kelas yang mengimplementasikan antarmuka UDF, fungsi agregat yang didefinisikan pengguna (UDAF), atau user-defined table-valued function (UDTF). Nama kelas diisi secara otomatis di kolom Function Name. Setelah pendaftaran, UDF muncul di panel UDFs di sisi kiri SQL Editor, masing-masing diawali dengan karakter fx yang disorot kuning.
CatatanSecara default, versi terbaru Realtime Compute for Apache Flink digunakan untuk penguraian data saat Anda mendaftarkan catalog UDF. Jika deployment Anda menggunakan versi engine lama (dikonfigurasi di bagian Basic pada tab Configuration), masalah ketidakcocokan dapat terjadi. Dalam kasus tersebut, gunakan deployment-level UDF sebagai gantinya. Lihat Register a deployment-level UDF.

Daftarkan deployment-level UDF
Deployment-level UDF memiliki cakupan hanya untuk satu deployment. Gunakan pendekatan ini jika deployment Anda berjalan pada versi engine lama, atau jika Anda memerlukan dukungan UDF Python.
Unggah file JAR atau file Python. Di panel navigasi kiri, klik Artifacts. Di halaman Artifacts, klik Upload Artifact dan unggah file JAR atau file Python Anda.
Tambahkan file tersebut sebagai dependensi dalam deployment Anda. Di tab Configurations halaman SQL Editor, pilih file JAR atau file Python dari Additional Dependencies.
Daftarkan UDF dalam draf SQL Anda menggunakan salah satu pernyataan berikut:
Java UDF:
CREATE TEMPORARY FUNCTION yourfunctionname;Python UDF:
CREATE TEMPORARY FUNCTION yourfunctionname LANGUAGE Python;
Perbarui UDF
Jika Anda memodifikasi kode UDF atau menambahkan fungsi ke file JAR yang sudah ada, perbarui artefak untuk menerapkan perubahan Anda.
File JAR baru harus mencakup semua kelas UDF yang sebelumnya telah didaftarkan — bukan hanya yang diubah.
Kode yang diperbarui hanya berlaku setelah Anda melakukan restart draf untuk deployment tersebut atau menerbitkan draf baru. Pekerjaan yang sedang berjalan tetap menggunakan file JAR asli.
Masuk ke Konsol Realtime Compute for Apache Flink.
Temukan ruang kerja dan klik Console di kolom Actions.
Di panel navigasi kiri, klik Development > ETL.
Di sisi kiri halaman SQL Editor, klik tab UDFs.
Di panel UDFs, arahkan kursor ke nama UDF dan klik ikon
.Pada kotak dialog Register UDF Artifact, unggah file JAR baru.

Klik Update.
Hapus UDF
Sebelum menghapus file JAR UDF, pastikan tidak ada deployment atau file SQL yang mereferensikan UDF apa pun yang didaftarkan dari file tersebut.
Masuk ke Konsol Realtime Compute for Apache Flink.
Temukan ruang kerja dan klik Console di kolom Actions.
Di panel navigasi kiri, klik Development > ETL.
Di sisi kiri halaman SQL Editor, klik tab UDFs.
Di panel UDFs, arahkan kursor ke nama file JAR UDF dan klik ikon
.Pilih Delete associated files untuk menghapus semua UDF yang didaftarkan dari file tersebut. Hal ini mencegah data kotor tersisa di ruang kerja Anda.
Klik Confirm.
Langkah berikutnya
Untuk mengembangkan UDF Java, termasuk klasifikasi UDF, pengiriman parameter, dan penggunaan, lihat Java UDF development guide. Untuk fungsi agregat yang didefinisikan pengguna, lihat UDAFs.
Untuk mengembangkan UDF Python, termasuk klasifikasi, dependensi, debugging, dan penggunaan, lihat Python UDF development guide. Untuk fungsi agregat yang didefinisikan pengguna, lihat UDAFs.
Untuk mengurutkan dan mengagregasi data menggunakan UDAF, lihat Use a UDAF to sort and aggregate data.