All Products
Search
Document Center

DataWorks:Tetapkan nilai ke bidang tabel target menggunakan ekspresi fungsi

Last Updated:Dec 20, 2025

DataWorks Data Integration memungkinkan Anda menggunakan ekspresi fungsi untuk menetapkan nilai ke bidang tabel target dalam task sinkronisasi database penuh real-time.

Limitations

Anda dapat menggunakan ekspresi fungsi untuk menetapkan nilai ke bidang tabel target hanya dalam task real-time full-database sync yang menggunakan MySQL atau PolarDB sebagai sumber dan MaxCompute atau Hologres sebagai tujuan.

Supported functions and syntax

Supported functions

Function name

Description

Parameters

Example expression

CONCAT

Menggabungkan string.

  • Parameter 1...n: Nilai bidang lain (#{col}), variabel bawaan, atau literal string ("string"). Parameter ini opsional. Anda dapat menentukan jumlah parameter tak terbatas.

concat(#{name},${table_name_src},"_01")

DATE_FORMAT

Mengonversi stempel waktu menjadi string waktu dalam format tertentu.

  • Parameter 1: Bidang tabel leluhur bertipe numerik. Nilainya dapat berupa Stempel waktu UNIX 10 digit atau stempel waktu milidetik 13 digit.

  • Parameter 2: Jenis stempel waktu. Nilai valid: unix (Stempel waktu UNIX 10 digit) dan millis (stempel waktu milidetik 13 digit).

  • Parameter 3: Zona waktu yang digunakan untuk konversi.

  • Parameter 4: Format string tanggal tujuan. Contoh: yyyy-MM-dd HH:mm:ss:SSS ZZ. yyyy menunjukkan tahun, MM menunjukkan bulan, dd menunjukkan hari, HH menunjukkan jam dalam format 24 jam, mm menunjukkan menit, ss menunjukkan detik, SSS menunjukkan milidetik, dan ZZ menunjukkan zona waktu.

date_format(#{timestamp},"millis","Asia/Shanghai","yyyy-MM-dd HH:mm:ss.SSS ZZ")

TO_TIMESTAMP

Mengonversi string waktu menjadi stempel waktu 10 digit atau 13 digit.

  • Parameter 1: Bidang tabel leluhur bertipe teks. Nilainya adalah string waktu dalam format tertentu.

  • Parameter 2: Format string waktu. Contoh: yyyy-MM-dd HH:mm:ss:SSS ZZ. yyyy menunjukkan tahun, MM menunjukkan bulan, dd menunjukkan hari, HH menunjukkan jam dalam format 24 jam, mm menunjukkan menit, ss menunjukkan detik, SSS menunjukkan milidetik, dan ZZ menunjukkan zona waktu.

  • Parameter 3: Zona waktu yang digunakan untuk konversi.

  • Parameter 4: Jenis stempel waktu tujuan. Nilai valid: unix (Stempel waktu UNIX 10 digit) dan millis (stempel waktu milidetik 13 digit).

to_timestamp(#{create_time},"yyyy-MM-dd HH:mm:ss","Asia/Shanghai","millis")

DATE_CONVERT

Mengonversi string waktu dengan format tertentu di zona waktu tertentu menjadi string waktu dengan format lain di zona waktu lain.

  • Parameter 1: Bidang tabel leluhur bertipe teks. Nilainya adalah string waktu dalam format tertentu.

  • Parameter 2: Format string waktu dalam bidang tabel leluhur. Contoh: yyyy-MM-dd HH:mm:ss:SSS ZZ. yyyy menunjukkan tahun, MM menunjukkan bulan, dd menunjukkan hari, HH menunjukkan jam dalam format 24 jam, mm menunjukkan menit, ss menunjukkan detik, SSS menunjukkan milidetik, dan ZZ menunjukkan zona waktu.

  • Parameter 3: Zona waktu sumber untuk konversi.

  • Parameter 4: Format string tanggal tujuan. Contoh: yyyy-MM-dd HH:mm:ss:SSS ZZ. yyyy menunjukkan tahun, MM menunjukkan bulan, dd menunjukkan hari, HH menunjukkan jam dalam format 24 jam, mm menunjukkan menit, ss menunjukkan detik, SSS menunjukkan milidetik, dan ZZ menunjukkan zona waktu.

  • Parameter 5: Zona waktu tujuan untuk konversi.

date_convert(#{create_time},"yyyy-MM-dd HH:mm:ss","Asia/Shanghai","yyyyMMdd","UTC")

SUBSTRING

Mengembalikan substring dari suatu string.

  • Parameter 1: Bidang tabel leluhur bertipe teks.

  • Parameter 2: Posisi awal substring. Substring mencakup karakter pada posisi awal. Posisi awal minimum adalah 0.

  • Parameter 3: (Opsional) Panjang substring. Jika panjangnya kurang dari atau sama dengan 0, substring dari posisi awal hingga akhir string akan dikembalikan.

substring(#{name},0,2)

LOWER

Mengonversi string menjadi huruf kecil.

  • Parameter 1: Bidang tabel leluhur bertipe teks atau variabel bawaan.

lower(#{name})

UPPER

Mengonversi string menjadi huruf besar.

  • Parameter 1: Bidang tabel leluhur bertipe teks atau variabel bawaan.

upper(#{name})

Supported syntax

  • Hanya ekspresi pemanggilan fungsi yang didukung. Ekspresi terdiri dari nama fungsi, tanda kurung, dan parameter. Jenis ekspresi lain tidak didukung. Contoh: DATE_FORMAT(#{create_time},"millis","Asia/Shanghai","yyyyMMdd").

  • Parameter ekspresi fungsi dapat mereferensikan konstanta string menggunakan tanda kutip ganda (""). Contoh: CONCAT("hello","world").

  • Parameter ekspresi fungsi dapat mereferensikan konstanta numerik menggunakan angka. Contoh: SUBSTRING(#{col1},0,10).

  • Parameter fungsi mendukung pemanggilan fungsi bersarang. Contoh: CONCAT(SUBSTRING(#{col1},0,10),"test").

  • Parameter ekspresi fungsi dapat mereferensikan nilai kolom output dari node leluhur menggunakan #{}.

  • Parameter fungsi dapat mereferensikan variabel bawaan menggunakan ${}. Variabel bawaan yang didukung sama dengan yang tersedia untuk kolom tambahan di setiap channel. Contoh: CONCAT(SUBSTRING(#{col1},0,10),${DATASOURCE_NAME_SRC}).

  • Nama fungsi dan nama variabel bawaan tidak peka huruf besar/kecil.

Prerequisites

  • Anda telah menyelesaikan konfigurasi sumber data, dengan MySQL atau PolarDB sebagai sumber dan MaxCompute atau Hologres sebagai tujuan.

  • Sebuah real-time full-database sync task telah dibuat.

Procedure

Step 1: Buka halaman konfigurasi task real-time

  1. Masuk ke DataWorks console. Di bilah navigasi atas, pilih wilayah yang diinginkan. Di panel navigasi kiri, pilih Data Integration > Data Integration. Pada halaman yang muncul, pilih ruang kerja yang diinginkan dari daftar drop-down lalu klik Go to Data Integration.

  2. Di panel navigasi kiri, klik image untuk membuka halaman task sinkronisasi.

  3. Temukan task sinkronisasi database penuh real-time yang telah dibuat, lalu klik More > Edit di kolom Actions untuk membuka halaman konfigurasi task sinkronisasi.

Step 2: Tambahkan kolom pemrosesan fungsi ke tabel target

Hasil ekspresi fungsi ditulis ke kolom dalam tabel target. Anda harus terlebih dahulu menambahkan bidang ke skema tabel target.

  1. Di halaman konfigurasi task real-time, klik Next. Di bagian Target Table Mapping, klik Refresh Mapping.

  2. Temukan tabel target tempat Anda ingin menambahkan kolom fungsi. Di kolom Target Table Name, klik tombol image untuk membuka halaman konfigurasi skema tabel target.

    image

  3. Di bagian Fields, klik Add Field. Setelah mengonfigurasi bidang tersebut, klik Apply And Refresh Mapping.

    image

    Anda juga dapat menggunakan opsi Target Table Schema - Batch Modify And Add Fields dalam Batch Operations untuk menambahkan kolom fungsi ke beberapa tabel target sekaligus.

    image

Step 3: Definisikan ekspresi fungsi

  1. Di kolom Target Table Field Assignment, klik Configure untuk membuka halaman penugasan bidang.

    image

  2. Di bagian Target Table Fields, temukan kolom fungsi yang telah Anda tambahkan. Atur Assignment Method menjadi Function. Kemudian, masukkan fungsi di kolom Assignment. Untuk informasi selengkapnya tentang fungsi dan sintaks yang didukung, lihat Supported functions and syntax.

    image