全部产品
Search
文档中心

MaxCompute:FUNGSI

更新时间:Jul 02, 2025

Fungsi yang ditentukan pengguna (UDF) SQL memperluas fungsionalitas MaxCompute, mendukung lebih banyak tipe parameter dan jenis fungsi sebagai input. Topik ini menjelaskan cara membuat UDF SQL sementara menggunakan pernyataan FUNCTION.

Perhatian

  • Saat menggunakan pernyataan SQL untuk mendefinisikan UDF, pastikan operasi dilakukan dalam mode skrip SQL. Jika tidak, kesalahan mungkin terjadi.

    Catatan

    Untuk informasi lebih lanjut tentang mode skrip SQL di MaxCompute, lihat SQL dalam Mode Skrip.

  • MaxCompute memungkinkan Anda mengeksekusi pernyataan FUNCTION untuk membuat UDF SQL. UDF yang dibuat dengan pernyataan ini adalah UDF SQL sementara. Setelah UDF dibuat menggunakan pernyataan FUNCTION, UDF tidak disimpan dalam sistem metadata MaxCompute. Anda tidak dapat menanyakan UDF dalam daftar fungsi MaxCompute. UDF SQL hanya dapat dipanggil di dalam skrip tempat UDF didefinisikan dan tidak dapat dipanggil di lingkungan kueri lainnya.

    Catatan

    Untuk informasi lebih lanjut tentang cara membuat UDF SQL permanen, lihat BUAT FUNGSI SQL.

  • Saat menggunakan pernyataan SQL untuk mendefinisikan UDF, pastikan tipe data parameter input UDF adalah tipe data yang didukung oleh MaxCompute. Untuk informasi lebih lanjut tentang tipe data yang didukung oleh MaxCompute, lihat Edisi Tipe Data MaxCompute V2.0. Setelah UDF dibuat, pastikan tipe data parameter input UDF SQL yang ingin Anda panggil sesuai dengan tipe data parameter input UDF yang telah didefinisikan.

  • 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 operasi otorisasi, lihat Izin MaxCompute.

Sintaksis

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 sebuah proyek dan tidak boleh sama dengan nama fungsi bawaan. Fungsi dengan nama yang sama hanya dapat didaftarkan sekali. Anda dapat mengeksekusi pernyataan DAFTAR FUNGSI untuk melihat semua fungsi dalam sebuah proyek dan memeriksa apakah ada fungsi yang sudah ada dengan nama yang sama seperti fungsi yang ingin Anda buat.

  • parameter_in: Wajib. Menentukan parameter input UDF SQL yang ingin Anda buat. Parameter input dapat berupa tipe fungsi, termasuk fungsi anonim. Untuk informasi lebih lanjut tentang cara membuat UDF SQL yang parameter inputnya merupakan tipe fungsi, lihat Contoh Cara Membuat UDF SQL yang Parameter Inputnya Merupakan Tipe Fungsi. Untuk informasi lebih lanjut tentang cara membuat UDF SQL yang parameter inputnya merupakan fungsi anonim, lihat Contoh Cara Membuat UDF SQL yang Parameter Inputnya Merupakan Fungsi Anonim.

  • datatype: Wajib. Menentukan tipe data parameter input UDF. Untuk informasi lebih lanjut tentang tipe data yang didukung oleh MaxCompute, lihat Edisi Tipe Data MaxCompute V2.0.

  • returns: Opsional. Menentukan nilai balik UDF. Nilai balik 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

function my_add(@a BIGINT) as @a + 1;

Pernyataan terkait

  • BUAT FUNGSI SQL: Membuat UDF SQL permanen. Setelah UDF SQL permanen dibuat dan disimpan dalam sistem metadata MaxCompute, semua operasi kueri dapat memanggil UDF tersebut.

  • DESKRIPSI FUNGSI: Menanyakan informasi tentang UDF yang tersimpan secara permanen, termasuk nama fungsi, pemilik, waktu pembuatan, nama kelas, dan daftar sumber daya. UDF SQL sementara tidak dapat ditanyakan menggunakan pernyataan ini.

  • HAPUS FUNGSI: Menghapus UDF yang ada dari proyek MaxCompute.

  • PILIH FUNGSI: Memanggil UDF SQL. UDF SQL sementara hanya dapat dipanggil di dalam skrip tempat UDF didefinisikan dan tidak dapat dipanggil di lingkungan kueri lainnya.