DataWorks Data Integration memungkinkan Anda menggunakan ekspresi fungsi untuk menetapkan nilai ke bidang tabel tujuan dalam tugas sinkronisasi real-time seluruh database.
Batasan
Anda dapat menggunakan ekspresi fungsi untuk menentukan penugasan bidang pada tabel tujuan hanya dalam tugas whole-database real-time synchronization yang menggunakan MySQL atau PolarDB sebagai sumber dan MaxCompute atau Hologres sebagai tujuan.
Fungsi dan sintaks yang didukung
Fungsi yang didukung
|
Nama Fungsi |
Deskripsi |
Parameter |
Contoh ekspresi |
|
CONCAT |
Menggabungkan string. |
|
|
|
DATE_FORMAT |
Mengonversi stempel waktu menjadi string waktu dalam format tertentu. |
|
|
|
TO_TIMESTAMP |
Mengonversi string waktu menjadi stempel waktu 10 digit atau 13 digit. |
|
|
|
DATE_CONVERT |
Mengonversi string waktu dari satu format dan zona waktu ke format dan zona waktu lainnya. |
|
|
|
SUBSTRING |
Mengekstrak substring dari sebuah string. |
|
|
|
LOWER |
Mengonversi string menjadi huruf kecil. |
|
|
|
UPPER |
Mengonversi string menjadi huruf besar. |
|
|
Sintaks yang didukung
-
Hanya ekspresi pemanggilan fungsi yang didukung. Ekspresi harus terdiri dari nama fungsi, tanda kurung, dan parameter. Jenis ekspresi lain tidak didukung. Contohnya,
DATE_FORMAT(#{create_time},"millis","Asia/Shanghai","yyyyMMdd"). -
Literal string dalam parameter ekspresi fungsi harus diapit tanda kutip ganda (
""). Contohnya,CONCAT("hello","world"). -
Literal numerik dalam parameter ekspresi fungsi dapat ditulis langsung sebagai angka. Contohnya,
SUBSTRING(#{col1},0,10). -
Pemanggilan fungsi dapat disarangkan dalam parameter. Contohnya,
CONCAT(SUBSTRING(#{col1},0,10),"test"). -
Gunakan
#{}untuk mereferensikan nilai kolom output dari node leluhur. -
Gunakan
${}untuk mereferensikan variabel bawaan. Jenis variabel bawaan yang didukung sama dengan yang tersedia dalam pengaturan kolom tambahan untuk setiap channel. Contohnya,CONCAT(SUBSTRING(#{col1},0,10),${DATASOURCE_NAME_SRC}). -
Nama fungsi dan nama variabel bawaan tidak peka terhadap huruf besar/kecil.
Prasyarat
-
Sumber data telah dikonfigurasi. Sumber harus berupa MySQL atau PolarDB, dan tujuan harus berupa MaxCompute atau Hologres. Untuk informasi lebih lanjut, lihat Konfigurasi Sumber Data.
-
Tugas whole-database real-time sinkronisasi telah dibuat.
Prosedur
Langkah 1: Buka halaman pengeditan tugas whole-database real-time
-
Masuk ke Konsol DataWorks. Di wilayah target, klik di panel navigasi kiri. Pilih ruang kerja dari daftar drop-down dan klik Go to Data Integration.
-
Di panel navigasi kiri, klik
untuk membuka halaman tugas sinkronisasi. -
Temukan tugas sinkronisasi real-time seluruh database yang diinginkan. Di kolom Tindakan, pilih untuk membuka halaman konfigurasi tugas sinkronisasi.
Langkah 2: Tambahkan kolom hasil pemrosesan fungsi ke tabel tujuan
Anda harus menambahkan kolom hasil pemrosesan fungsi ke skema tabel tujuan sebelum dapat menulis data ke dalamnya.
-
Di halaman konfigurasi tugas real-time seluruh database, klik Next. Di bagian Target Table Mapping, klik Refresh Mapping.
-
Temukan tabel target tempat Anda ingin menambahkan kolom hasil pemrosesan fungsi, lalu klik ikon
di kolom Destination Table Name untuk membuka halaman konfigurasi skema tabel. -
Di bagian Field, klik Add Fields. Setelah mengonfigurasi bidang tersebut, klik Apply and Refresh Mapping.
Anda juga dapat memilih Target Table Structure - Batch Modify and Add Fields di Operasi Batch untuk menambahkan kolom hasil pemrosesan fungsi ke beberapa tabel tujuan.
Langkah 3: Tentukan ekspresi fungsi
-
Di kolom Value assignment, klik Configure untuk membuka halaman penugasan bidang.
-
Di bagian Destination Table Field, temukan kolom hasil pemrosesan fungsi yang telah Anda tambahkan. Atur Assignment Method menjadi Function. Lalu, masukkan ekspresi fungsi di kolom Assign. Untuk informasi lebih lanjut, lihat Fungsi dan sintaks yang didukung.
Parameter Assignment Method menyediakan tiga opsi: Manual Assignment, Select Variable, dan Function. Anda hanya dapat menetapkan nilai ke bidang yang tidak ada di tabel sumber. Jika tidak, nilai bidang dengan nama yang sama dari tabel sumber akan digunakan.