全部产品
Search
文档中心

MaxCompute:Ikhtisar fungsi bawaan

更新时间:Dec 31, 2025

MaxCompute menyediakan berbagai fungsi bawaan yang memenuhi sebagian besar kebutuhan pemrosesan data. Topik ini menjelaskan jenis-jenis fungsi bawaan dan cara menggunakannya.

Jenis fungsi

Function type

Description

Date and time functions

Memproses tipe data tanggal dan waktu, seperti DATE, DATETIME, dan TIMESTAMP. Fungsi-fungsi ini memungkinkan Anda menambah atau mengurangi tanggal, menghitung selisih tanggal, mengekstrak bagian tanggal, mendapatkan waktu saat ini, serta mengonversi format tanggal.

Mathematical functions

Memproses tipe data numerik, seperti BIGINT, DOUBLE, DECIMAL, dan FLOAT. Fungsi-fungsi ini memungkinkan Anda mengonversi basis bilangan, melakukan operasi matematika, membulatkan angka, serta mendapatkan bilangan acak.

Window functions

Menjalankan operasi dalam kolom window tertentu. Fungsi-fungsi ini memungkinkan Anda menghitung jumlah, mencari nilai maksimum dan minimum, menghitung rata-rata dan median, mengurutkan angka, menggeser nilai (offset), serta melakukan pengambilan sampel.

Aggregate functions

Mengagregasi beberapa input record menjadi satu nilai output. Fungsi-fungsi ini memungkinkan Anda menghitung jumlah, rata-rata, nilai maksimum dan minimum, mengagregasi parameter, serta menggabungkan string.

HyperLogLog++ functions

Ini adalah fungsi agregat perkiraan. Saat volume data sangat besar, fungsi HyperLogLog++ dapat menghapus duplikat secara cepat dan mempercepat kueri dengan menggunakan memori dalam jumlah kecil.

String functions

Memproses data STRING. Fungsi-fungsi ini memungkinkan Anda memotong, mengganti, dan mencari string, mengubah huruf kapital/kecil, serta mengonversi format string.

Untuk batasan fungsi string, lihat Limits of string functions.

ARRAY functions

Memproses data ARRAY. Fungsi-fungsi ini memungkinkan Anda membuat array, menghapus elemen duplikat, mengagregasi elemen, mengurutkan elemen, serta menggabungkan elemen.

MAP functions

Memproses data MAP. Fungsi-fungsi ini memungkinkan Anda mengekstrak pasangan kunci-nilai, membuat map, serta menggabungkan map.

STRUCT functions

Memproses data STRUCT. Fungsi-fungsi ini memungkinkan Anda memperluas array STRUCT dan membuat struct.

JSON functions

Memproses data JSON. Fungsi-fungsi ini memungkinkan Anda mengekstrak nilai bidang JSON, membuat objek atau array JSON, menyisipkan atau memperbarui data JSON, serta menangani struktur data kompleks.

Untuk batasan fungsi JSON, lihat Limits of JSON functions.

Encryption functions

Memproses data tabel STRING dan BINARY. Fungsi-fungsi ini memungkinkan Anda mengenkripsi dan mendekripsi data.

Network functions

Memproses data STRING dan BINARY yang terkait jaringan. Fungsi-fungsi ini memungkinkan Anda mengonversi format alamat IP, mengurai URL, serta mendapatkan masker jaringan.

Unstructured data processing functions

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

Other functions

MaxCompute juga menyediakan fungsi lain untuk berbagai skenario bisnis.

Untuk informasi lebih lanjut mengenai pemetaan antara fungsi MaxCompute dan fungsi open source, lihat Mapping between built-in functions of MaxCompute, Hive, MySQL, and Oracle.

Catatan

Perhatikan hal-hal berikut saat menggunakan fungsi bawaan:

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

  • Jika parameter input fungsi bawaan menggunakan tipe data 2.0, seperti TINYINT, SMALLINT, INT, FLOAT, VARCHAR, TIMESTAMP, atau BINARY, Anda harus mengaktifkan tipe data 2.0. Jika tidak, akan muncul error. Untuk mengaktifkan tipe data 2.0:

    • Tingkat sesi: Tambahkan SET odps.sql.type.system.odps2=true; sebelum pernyataan SQL dan kirimkan bersama-sama. Konfigurasi ini hanya berlaku untuk pernyataan SQL saat ini.

    • Tingkat proyek: Pemilik proyek dapat mengaktifkan pengaturan ini untuk seluruh proyek. Konfigurasi akan berlaku dalam 10 hingga 15 menit dan diterapkan pada semua pernyataan SQL berikutnya.

      SETPROJECT odps.sql.type.system.odps2=true;
  • Ketika tipe data 2.0 diaktifkan untuk proyek MaxCompute, beberapa konversi tipe implisit dinonaktifkan untuk mencegah potensi kehilangan presisi atau error. Konversi yang dinonaktifkan tersebut meliputi STRING ke BIGINT, STRING ke DATETIME, DOUBLE ke BIGINT, DECIMAL ke DOUBLE, dan DECIMAL ke BIGINT. Untuk mengatasi masalah ini, gunakan fungsi CAST untuk melakukan konversi eksplisit, atau nonaktifkan tipe data 2.0.

  • Jika user-defined function (UDF) memiliki nama yang sama dengan fungsi bawaan, UDF tersebut akan menimpa fungsi bawaan. Misalnya, jika terdapat UDF bernama CONCAT di proyek MaxCompute, sistem akan memanggil UDF tersebut secara default, bukan fungsi CONCAT bawaan. Untuk memanggil fungsi bawaan, tambahkan :: sebelum nama fungsi. Contohnya: SELECT ::CONCAT('ab', 'c');.

  • Hasil dari fungsi bawaan dapat berbeda tergantung pada properti global yang dikonfigurasi untuk proyek MaxCompute. Anda dapat menjalankan perintah SETPROJECT; untuk melihat properti global proyek tersebut.

Limits of JSON functions

  • SDK version requirements

    • Hanya Java SDK V0.44.0 dan versi yang lebih baru yang didukung.

    • Hanya PyODPS V0.11.4.1 dan versi yang lebih baru yang didukung.

  • Table operation limits

    • Anda tidak dapat menambahkan kolom JSON ke tabel.

    • Tabel clustered tidak didukung.

    • Tabel tipe Delta Table tidak didukung.

  • SQL operation limits

    • Operasi perbandingan pada tipe JSON tidak didukung.

    • Anda tidak dapat menggunakan klausa ORDER BY atau GROUP BY pada tipe JSON. Anda juga tidak dapat menggunakan kolom tipe JSON sebagai kunci JOIN.

  • Data precision

    • Bagian integer dari JSON NUMBER disimpan sebagai tipe BIGINT. Terjadi overflow jika integer tersebut berada di luar rentang BIGINT.

    • Bagian desimal dari JSON NUMBER disimpan sebagai tipe DOUBLE. Kehilangan presisi dapat terjadi saat bagian desimal dikonversi ke tipe DOUBLE.

  • Character limits: Karakter Unicode \u0000 tidak didukung dalam string yang digunakan untuk menghasilkan data JSON.

  • Engine compatibility: Jika Anda menggunakan engine lain, seperti Hologres, untuk membaca data dari tabel, tipe data JSON tidak dapat dibaca.

  • Java UDF dan Python UDF tidak mendukung tipe JSON.

  • Tipe data JSON dapat disusun bersarang hingga kedalaman 20 level.

  • Development tools

    Alat pengembangan yang didukung meliputi klien MaxCompute (odpscmd), MaxCompute Studio, dan DataWorks. Ekosistem eksternal seperti Dataphin tidak didukung. Jika Anda ingin menggunakan tipe data JSON dengan sistem eksternal, Anda harus memastikan kompatibilitasnya terlebih dahulu. Saat menggunakan klien odpscmd, perhatikan hal-hal berikut:

    • Anda harus melakukan upgrade klien ke V0.46.5 atau versi yang lebih baru. Jika tidak, Anda tidak dapat menjalankan perintah DESC json_table atau mengunduh data JSON menggunakan Tunnel.

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

Limits of string functions

Fungsi-fungsi berikut hanya mendukung karakter bahasa Inggris:

  • TRIM, RTRIM, dan LTRIM: Nilai parameter trimChars hanya boleh berisi karakter bahasa Inggris.

  • REVERSE: Fungsi ini hanya mendukung karakter bahasa Inggris pada edisi tipe data yang kompatibel dengan Hive.

  • SOUNDEX: Fungsi ini hanya mendukung karakter bahasa Inggris.

  • TOLOWER: Fungsi ini digunakan untuk mengonversi karakter bahasa Inggris dalam string menjadi huruf kecil.

  • TOUPPER: Fungsi ini digunakan untuk mengonversi karakter bahasa Inggris dalam string menjadi huruf kapital.

  • INITCAP: Fungsi ini digunakan untuk mengonversi huruf pertama setiap kata dalam bahasa Inggris dalam string menjadi huruf kapital, dan huruf lainnya dalam setiap kata menjadi huruf kecil.