Fungsi yang ditentukan pengguna (UDF) SQL membantu menyelesaikan keterbatasan bahwa MaxCompute hanya mendukung pembuatan UDF menggunakan Java atau Python. UDF SQL mendukung parameter bertipe fungsi, meningkatkan fleksibilitas ekspresi logika bisnis. Anda dapat membuat SQL UDF permanen dan sementara. Topik ini menjelaskan cara mengeksekusi pernyataan CREATE SQL FUNCTION untuk membuat SQL UDF permanen.
Perhatian
Saat menggunakan pernyataan SQL untuk mendefinisikan UDF, pastikan operasi dilakukan dalam mode skrip SQL. Jika tidak, kesalahan mungkin terjadi.
CatatanUntuk informasi lebih lanjut tentang mode skrip SQL MaxCompute, lihat SQL dalam mode skrip.
MaxCompute memungkinkan Anda mengeksekusi pernyataan
CREATE SQL FUNCTIONuntuk membuat UDF SQL permanen. Setelah dibuat, UDF tersebut disimpan dalam sistem metadata MaxCompute dan dapat dipanggil dalam query berikutnya.CatatanUntuk informasi lebih lanjut tentang cara membuat UDF SQL sementara, lihat FUNCTION.
Saat mendefinisikan UDF dengan pernyataan SQL, pastikan tipe data parameter input sesuai dengan tipe data yang didukung oleh MaxCompute. Untuk informasi lebih lanjut tentang tipe data yang didukung, lihat Edisi tipe data MaxCompute V2.0. Setelah UDF dibuat, pastikan tipe data parameter input UDF yang ingin Anda panggil sesuai dengan definisi awal.
Saat membuat, menanyakan, memanggil, atau menghapus UDF SQL, pastikan akun Alibaba Cloud yang digunakan memiliki izin tingkat fungsi yang diperlukan. Untuk informasi lebih lanjut tentang izin tingkat fungsi dan otorisasi, lihat Izin MaxCompute.
Sintaksis
create sql function <function_name>(@<parameter_in1> <datatype>[, @<parameter_in2> <datatype>...])
[returns @<parameter_out> <datatype>]
as [begin]
<function_expression>
[end];Parameter
function_name: Wajib. Menentukan nama UDF SQL yang akan dibuat. Nama fungsi harus unik dalam proyek dan tidak boleh sama dengan nama fungsi bawaan. Fungsi dengan nama yang sama hanya dapat didaftarkan sekali. Gunakan pernyataan LIST FUNCTIONS untuk memeriksa apakah nama fungsi sudah ada.
parameter_in: Wajib. Menentukan parameter input UDF SQL. Parameter input dapat berupa tipe fungsi, termasuk fungsi anonim. Untuk informasi lebih lanjut, lihat Contoh cara membuat UDF SQL dengan parameter input bertipe fungsi dan Contoh cara membuat UDF SQL dengan parameter input berupa fungsi anonim.
datatype: Wajib. Menentukan tipe data parameter input UDF. Untuk informasi lebih lanjut tentang tipe data yang didukung, lihat Edisi tipe data MaxCompute V2.0.
returns: Opsional. Menentukan nilai kembalian UDF. Nilai kembalian adalah variabel. Jika tidak ditentukan, nilai parameter function_name akan dikembalikan secara default.
parameter_out: Wajib. Menentukan parameter respons UDF.
function_expression: Wajib. Menentukan ekspresi (logika implementasi) UDF.
Contoh
Kode sampel berikut menunjukkan contoh UDF dengan logika sederhana.
create sql function my_add(@a BIGINT) as @a + 1;Dalam contoh sebelumnya,
@a + 1menunjukkan logika UDF SQL. Ekspresi dapat berupa operator bawaan, fungsi bawaan, atau UDF.Jika logika UDF kompleks, gunakan begin dan end dalam pernyataan SQL untuk menentukan rentang ekspresi UDF. Kode sampel berikut memberikan contoh.
create sql function my_sum(@a BIGINT, @b BIGINT, @c BIGINT) returns @my_sum BIGINT as begin @temp := @a + @b; @my_sum := @temp + @c; end;Parameter:
returns menentukan nilai kembalian UDF. Jika tidak ditentukan, nilai parameter function_name akan dikembalikan secara default.
Ekspresi dalam begin dan end adalah logika implementasi fungsi UDF SQL.
Parameter input UDF SQL dapat berupa tipe fungsi, seperti fungsi bawaan MaxCompute dan UDF lainnya. Untuk informasi lebih lanjut, lihat Contoh cara membuat UDF SQL dengan parameter input bertipe fungsi dan Contoh cara membuat UDF SQL dengan parameter input sebagai fungsi anonim.
Pernyataan terkait
FUNCTION: Membuat UDF SQL sementara. Jika Anda tidak perlu menyimpan UDF SQL dalam sistem metadata MaxCompute, Anda dapat membuat UDF SQL sementara.
DESC FUNCTION: Menampilkan informasi tentang UDF tertentu dalam proyek MaxCompute, termasuk nama, pemilik, waktu pembuatan, nama kelas, dan daftar sumber daya UDF.
LIST FUNCTIONS: Menampilkan informasi tentang semua UDF dalam proyek MaxCompute.
DROP FUNCTION: Menghapus UDF yang ada dari proyek MaxCompute.
SELECT FUNCTION: Memanggil UDF SQL.