All Products
Search
Document Center

MaxCompute:Ikhtisar fungsi bawaan

Last Updated:Aug 28, 2026

MaxCompute menyediakan berbagai fungsi bawaan yang mencakup sebagian besar kebutuhan pemrosesan data. Halaman ini menjelaskan jenis fungsi yang tersedia serta catatan penggunaan yang berlaku untuk semua fungsi bawaan.

Jenis fungsi

Fungsi bawaan MaxCompute terbagi menjadi tiga kategori utama:

  • Scalar functions — beroperasi pada satu baris dan mengembalikan satu nilai per pemanggilan. Termasuk fungsi tanggal dan waktu, matematika, string, enkripsi, jaringan, ARRAY, MAP, STRUCT, JSON, serta pemrosesan data tidak terstruktur.

  • Aggregate functions — menerima beberapa baris input dan mengembalikan satu nilai output.

  • Window functions — beroperasi pada subset baris dalam kolom window yang telah ditentukan dan mengembalikan satu nilai per baris.

Untuk pemetaan antara fungsi bawaan MaxCompute dan fungsi open source yang setara, lihat Pemetaan antara fungsi bawaan MaxCompute, Hive, MySQL, dan Oracle.

Jenis fungsi

Deskripsi

Fungsi tanggal dan waktu

Memanipulasi data DATE, DATETIME, dan TIMESTAMP — menambah atau mengurangi tanggal, menghitung selisih, mengekstrak bidang, dan mengonversi format.

Ikhtisar Fungsi Matematika

Menjalankan operasi numerik pada data BIGINT, DOUBLE, DECIMAL, dan FLOAT — mengonversi basis, membulatkan angka, dan menghasilkan nilai acak.

Fungsi window

Menghitung agregasi, peringkat, offset, dan sampel dalam kolom window yang telah ditentukan.

Fungsi agregat

Mengagregasi beberapa catatan input menjadi satu nilai output — jumlah, rata-rata, min/maks, parameter agregat, dan penggabungan string.

Fungsi HyperLogLog++

Fungsi agregat aproksimasi yang menghapus duplikat dan mempercepat kueri pada dataset besar dengan penggunaan memori minimal.

Ikhtisar Fungsi String

Memanipulasi data STRING — memotong, mengganti, mencari, mengubah kapitalisasi, dan mengonversi format. Lihat Batasan fungsi STRING.

Fungsi ARRAY

Memanipulasi data ARRAY — membuat, menghapus duplikat, mengagregasi, mengurutkan, dan menggabungkan array.

Fungsi MAP

Memanipulasi data MAP — mengekstrak pasangan kunci-nilai, membuat map, dan menggabungkan map.

Fungsi STRUCT

Memanipulasi data STRUCT — memperluas array STRUCT dan membuat struct.

Fungsi JSON

Memanipulasi data JSON — mengekstrak nilai bidang, menghasilkan objek atau array, menyisipkan atau memperbarui data, serta menangani struktur data kompleks. Lihat Batasan fungsi JSON.

Fungsi enkripsi

Mengenkripsi dan mendekripsi data tabel STRING dan BINARY.

Fungsi jaringan

Memproses data STRING dan BINARY yang terkait jaringan — mengonversi format alamat IP, mengurai URL, dan mendapatkan masker jaringan.

Fungsi pemrosesan data tidak terstruktur

Menghubungkan ke data tidak terstruktur dan metadata-nya yang disimpan di gudang data atau data lake melalui berbagai cara.

Fungsi geografi

Digunakan untuk membuat, mentransformasi, dan menganalisis data geospasial bertipe GEOGRAPHY. Fungsi-fungsi ini memungkinkan Anda membuat objek geografis seperti titik, garis, dan poligon dari koordinat lintang/bujur atau teks WKT/WKB, mengekstrak properti seperti koordinat dan kotak pembatas, menentukan hubungan spasial antar objek geografis seperti ketercakupan, irisan, dan cakupan, serta menghitung jarak antar objek geografis.

Fungsi lainnya

Fungsi tambahan untuk berbagai skenario bisnis.

Fungsi VECTOR

Mendukung pemrosesan tipe data VECTOR untuk melakukan komputasi jarak vektor dan pencarian vektor, serta dapat diterapkan pada skenario aplikasi seperti pencarian semantik, peningkatan model bahasa besar (LLM), dan AI generatif.

Catatan penggunaan

Perhatikan hal-hal berikut saat menggunakan fungsi bawaan:

  • Parameter input: Tipe, jumlah, dan format parameter input harus sesuai dengan sintaks yang ditentukan. Jika tidak, MaxCompute tidak dapat mengurai fungsi tersebut dan pernyataan SQL akan gagal.

  • Tipe data 2.0: Jika fungsi bawaan menggunakan tipe data 2.0 — TINYINT, SMALLINT, INT, FLOAT, VARCHAR, TIMESTAMP, atau BINARY — aktifkan tipe data 2.0 sebelum menjalankan fungsi. Jika tidak, sistem akan melaporkan error. Aktifkan tipe data 2.0 pada salah satu tingkat berikut:

    • Tingkat sesi (berlaku hanya untuk pernyataan SQL saat ini): Tambahkan pernyataan berikut sebelum pernyataan SQL Anda dan kirimkan bersamaan.

      SET odps.sql.type.system.odps2=true;
    • Tingkat proyek (berlaku untuk semua pernyataan SQL berikutnya, efektif dalam 10 hingga 15 menit): Pemilik proyek menjalankan perintah berikut.

      SETPROJECT odps.sql.type.system.odps2=true;
  • Konversi tipe implisit yang dinonaktifkan: Saat tipe data 2.0 diaktifkan, konversi tipe implisit berikut dinonaktifkan untuk mencegah kehilangan presisi atau error: STRING ke BIGINT, STRING ke DATETIME, DOUBLE ke BIGINT, DECIMAL ke DOUBLE, dan DECIMAL ke BIGINT. Gunakan fungsi CAST untuk konversi eksplisit, atau nonaktifkan tipe data 2.0.

  • Konflik nama UDF dan fungsi bawaan: Jika fungsi yang ditentukan pengguna (UDF) memiliki nama yang sama dengan fungsi bawaan, UDF akan didahulukan. Misalnya, jika terdapat UDF bernama CONCAT dalam suatu proyek, sistem akan memanggil UDF tersebut alih-alih fungsi CONCAT bawaan. Untuk memanggil fungsi bawaan, tambahkan awalan :: pada nama fungsi:

    SELECT ::CONCAT('ab', 'c');
  • Properti global: Hasil fungsi bawaan dapat berbeda tergantung pada properti global yang dikonfigurasi untuk proyek MaxCompute. Jalankan SETPROJECT; untuk melihat properti global saat ini.

Batasan fungsi JSON

Persyaratan versi SDK

  • Java SDK V0.44.0 atau yang lebih baru

  • PyODPS V0.11.4.1 atau yang lebih baru

Batasan operasi tabel

  • Menambahkan kolom JSON ke tabel tidak didukung.

  • Tabel terklaster tidak didukung.

  • Tabel bertipe Delta Table tidak didukung.

Batasan operasi SQL

  • Operasi perbandingan pada tipe JSON tidak didukung.

  • Klausa ORDER BY dan GROUP BY tidak dapat digunakan pada tipe JSON.

  • Kolom bertipe JSON tidak dapat digunakan sebagai kunci JOIN.

Presisi data

  • Bagian bilangan bulat dari NUMBER JSON disimpan sebagai BIGINT. Terjadi overflow jika nilainya berada di luar rentang BIGINT.

  • Bagian desimal dari NUMBER JSON disimpan sebagai DOUBLE. Kehilangan presisi dapat terjadi selama konversi.

Batasan karakter

Karakter Unicode \u0000 tidak didukung dalam string yang digunakan untuk menghasilkan data JSON.

Kompatibilitas mesin

Mesin lain — misalnya, Hologres — tidak dapat membaca tipe data JSON dari tabel MaxCompute.

Dukungan UDF

UDF Java dan UDF Python tidak mendukung tipe JSON.

Kedalaman bersarang

Tipe data JSON dapat disarangkan hingga kedalaman 20 level.

Alat pengembangan yang didukung

Alat yang didukung meliputi klien MaxCompute (odpscmd), MaxCompute Studio, dan DataWorks. Ekosistem eksternal seperti Dataphin tidak didukung. Pastikan kompatibilitas sebelum menggunakan tipe data JSON dengan sistem eksternal apa pun.

Saat menggunakan odpscmd, perhatikan hal berikut:

  • Perbarui klien ke V0.46.5 atau yang lebih baru. Versi sebelumnya tidak dapat menjalankan perintah DESC json_table atau mengunduh data JSON menggunakan Tunnel.

  • Dalam file conf\odps_config.ini di jalur instalasi klien, atur use_instance_tunnel ke false. Jika tidak, kueri akan gagal.

Batasan fungsi STRING

Fungsi string berikut hanya mendukung karakter Inggris:

  • TRIM / RTRIM / LTRIM: Parameter trimChars hanya mendukung karakter Inggris.

  • REVERSE: Hanya mendukung karakter Inggris dalam mode Hive.

  • SOUNDEX: Hanya mengonversi karakter Inggris.

  • TOLOWER: Mengonversi huruf kapital Inggris menjadi huruf kecil.

  • TOUPPER: Mengonversi huruf kecil Inggris menjadi huruf kapital.

  • INITCAP: Mengonversi huruf pertama setiap kata dalam bahasa Inggris menjadi kapital dan sisanya menjadi huruf kecil.