Sebelum menggunakan fungsi yang didefinisikan pengguna (UDF) dalam penyebaran SQL, Anda harus mendaftarkannya. Topik ini menjelaskan cara mendaftarkan, memperbarui, dan menghapus UDF.
Perhatian
Jika Anda ingin menggunakan pengguna RAM atau peran RAM untuk melakukan operasi seperti manajemen UDF di namespace, pastikan bahwa pengguna RAM atau peran RAM memiliki izin akses pada namespace tersebut. Untuk informasi lebih lanjut, lihat Memberikan izin pada namespace.
Untuk mencegah konflik antara dependensi file JAR saat mengembangkan UDF, perhatikan hal berikut:
Pastikan versi Flink yang dipilih di halaman SQL Editor sesuai dengan versi Flink yang ditentukan dalam dependensi POM.
Tentukan
<scope>provided</scope>untuk dependensi terkait Flink.Gunakan Plugin Shade untuk mengemas dependensi pihak ketiga lainnya. Untuk informasi lebih lanjut, lihat Apache Maven Shade Plugin.
CatatanUntuk informasi lebih lanjut tentang menangani konflik dependensi Flink antar file JAR, lihat Bagaimana cara saya menangani konflik dependensi Flink?
Mendaftarkan UDF
Mendaftarkan catalog UDF
Buka kotak dialog Register UDF Artifact.
Masuk ke Konsol Realtime Compute for Apache Flink.
Temukan ruang kerja yang ingin dikelola dan klik Console di kolom Actions.
Di panel navigasi kiri, klik .
Di sisi kiri halaman SQL Editor, klik tab UDFs.
Klik Register UDF Artifact.
Di kotak dialog Register UDF Artifact, unggah file JAR UDF.

Anda dapat menggunakan salah satu metode berikut untuk mengunggah file JAR UDF:
Upload a file: Klik Click to select di sebelah Select a file untuk mengunggah file JAR UDF yang diinginkan. Untuk mengunggah file dependensi, klik Click to select di sebelah Dependencies.
CatatanFile JAR UDF akan diunggah dan disimpan di direktori sql-artifacts dari Bucket Object Storage Service (OSS) yang dipilih.
Dependensi Java UDF dapat dikemas ke dalam file JAR UDF atau diunggah secara terpisah sebagai file dependensi. Untuk Python UDF, disarankan untuk mengunggah dependensi secara terpisah sebagai file dependensi.
External URL: Masukkan URL eksternal. Jika Anda ingin menggunakan file JAR UDF yang digunakan oleh layanan lain, gunakan URL eksternal untuk mendapatkan file UDF.
CatatanHanya dua jenis URL eksternal berikut yang didukung:
Titik akhir Bucket Object Storage Service (OSS) yang ditentukan saat membeli ruang kerja Realtime Compute for Apache Flink. Titik akhir Bucket OSS dapat dilihat dalam pesan Workspace Details di konsol manajemen Realtime Compute for Apache Flink.
Titik akhir sistem penyimpanan eksternal lain yang dapat diakses oleh Realtime Compute for Apache Flink. Daftar kontrol akses (ACL) dari sistem penyimpanan eksternal adalah publik-baca atau Realtime Compute for Apache Flink diberi izin untuk mengakses sistem penyimpanan eksternal.
Klik Confirm.
Di bagian Available Functions dari kotak dialog Kelola Fungsi, pilih satu atau beberapa UDF yang ingin didaftarkan dan klik Create Functions.
Di konsol Flink yang sepenuhnya dikelola, Flink menguraikan file JAR UDF dan memeriksa apakah kelas UDF, fungsi agregat yang didefinisikan pengguna (UDAF), dan antarmuka fungsi bernilai tabel yang didefinisikan pengguna (UDTF) Flink digunakan dalam file tersebut. Kemudian, Flink secara otomatis mengekstrak nama kelas dan mengisi nama kelas di kolom Nama Fungsi di kotak dialog Kelola Fungsi. Setelah UDF didaftarkan, Anda dapat melihat semua UDF yang telah didaftarkan di panel UDFs di sisi kiri halaman SQL Editor. Karakter fx yang disorot dengan warna kuning akan ditampilkan di sebelah kiri nama setiap UDF yang didaftarkan.
CatatanSecara default, versi terbaru Realtime Compute for Apache Flink digunakan untuk penguraian data saat Anda mendaftarkan catalog UDF. Jika Anda menggunakan catalog UDF dalam penyebaran dan memilih versi mesin Realtime Compute for Apache Flink yang lebih lama di bagian Dasar tab Konfigurasi, masalah ketidakcocokan mungkin terjadi. Untuk menyelesaikan masalah ini, implementasikan kode UDF berdasarkan versi mesin yang dibutuhkan oleh penyebaran Anda dan gunakan UDF tingkat penyebaran. Untuk informasi lebih lanjut, lihat Daftarkan UDF tingkat penyebaran.
Mendaftarkan UDF tingkat penyebaran
Hanya Realtime Compute for Apache Flink yang menggunakan Ververica Runtime (VVR) 8.0.3 atau lebih baru yang mendukung UDF Python tingkat penyebaran.
Jika Anda menggunakan UDF Python tingkat penyebaran, Anda dapat mengonfigurasi parameter seperti python.files atau python.archives di bagian Parameter tab Konfigurasi untuk menentukan file dependensi terkait.
Jika Anda menggunakan UDF Python tingkat penyebaran, Anda tidak dapat melakukan pemeriksaan sintaks pada draft. Anda harus melewati pemeriksaan sintaks sebelum menyebarkan draft sebagai penyebaran.
Untuk mendaftarkan UDF tingkat penyebaran, ikuti langkah-langkah berikut:
Unggah file JAR atau Python dari UDF.
Di panel navigasi kiri, klik Artifacts. Di halaman Artifak, klik Unggah Artifak untuk mengunggah file JAR atau Python dari UDF.
Tentukan UDF tingkat penyebaran dalam penyebaran Anda.
Di tab Konfigurasi halaman SQL Editor, pilih file JAR atau Python dari UDF dari Additional Dependencies.
Daftarkan UDF tingkat penyebaran.
Java UDF
CREATE TEMPORARY FUNCTION yourfunctionname;Python UDF
CREATE TEMPORARY FUNCTION yourfunctionname LANGUAGE Python;
Memperbarui UDF
Jika Anda menambahkan UDF ke file JAR UDF atau mengubah kode UDF yang terdaftar di file tersebut, Anda dapat melakukan operasi berikut untuk memperbarui file JAR UDF:
Buka kotak dialog Register UDF Artifact.
Masuk ke Konsol Realtime Compute for Apache Flink.
Temukan ruang kerja yang ingin dikelola dan klik Console di kolom Actions.
Di panel navigasi kiri, klik .
Di sisi kiri halaman SQL Editor, klik tab UDFs.
Di panel UDFs di sisi kiri halaman SQL Editor, arahkan pointer ke nama UDF yang file JAR-nya ingin diperbarui dan klik ikon
.Di kotak dialog Register UDF Artifact, unggah file JAR UDF.
PentingFile JAR UDF yang diunggah harus berisi semua kelas UDF yang terdaftar.
Kode dalam file JAR UDF baru hanya akan berlaku saat Anda memulai ulang draft untuk penyebaran atau menerbitkan draft baru. Kode dalam file JAR UDF baru tidak akan berlaku pada pekerjaan yang sedang berjalan. Pekerjaan yang sedang berjalan akan terus menggunakan file JAR UDF asli.
Klik Update.
Menghapus UDF
Sebelum menghapus file JAR UDF, pastikan bahwa UDF yang didaftarkan menggunakan file JAR UDF tidak dirujuk oleh penyebaran atau file SQL.
Jika Anda tidak lagi membutuhkan file JAR UDF, lakukan operasi berikut untuk menghapus file JAR UDF:
Buka kotak dialog Register UDF Artifact.
Masuk ke Konsol Realtime Compute for Apache Flink.
Temukan ruang kerja yang ingin dikelola dan klik Console di kolom Actions.
Di panel navigasi kiri, klik .
Di sisi kiri halaman SQL Editor, klik tab UDFs.
Di panel UDFs di sisi kiri halaman SQL Editor, arahkan pointer ke nama file JAR UDF yang ingin dihapus dan klik ikon
.Pilih Delete associated files.
Jika Anda ingin menghapus file JAR UDF, Anda harus menghapus semua UDF terdaftar dari file tersebut untuk menghindari data kotor.
Klik Confirm.
Referensi
Untuk informasi lebih lanjut tentang klasifikasi Java UDF, cara melewatkan parameter Java UDF di konsol Realtime Compute for Apache Flink, dan cara mengembangkan serta menggunakan Java UDF, lihat Java dan UDAFs.
Untuk informasi lebih lanjut tentang klasifikasi dan dependensi Python UDF dan cara men-debug, menyetel, mengembangkan, dan menggunakan Python UDF, lihat Python dan UDAFs.
Untuk informasi lebih lanjut tentang cara menggunakan UDAF untuk mengurutkan dan mengumpulkan data, lihat Gunakan UDAF untuk mengurutkan dan mengumpulkan data.