Simpan nilai sensitif—seperti pasangan Kunci Akses dan kata sandi—sebagai variabel alih-alih menuliskannya dalam teks biasa. Variabel juga memungkinkan Anda menggunakan kembali nilai tersebut di berbagai konfigurasi tanpa harus mengulanginya. Topik ini menjelaskan cara membuat dan menggunakan variabel di Realtime Compute for Apache Flink.
Jenis variabel
Realtime Compute for Apache Flink mendukung dua jenis variabel dengan cakupan berbeda:
| Type | Scope | Reference format | Supported scenarios |
|---|---|---|---|
| Deployment variable | Single deployment | ${Variable name} | SQL drafts, JAR/Python deployment entry point arguments |
| Namespace variable | Entire namespace | ${secret_values.Variable name} | SQL drafts, data ingestion, data query, JAR/Python deployment entry point arguments, deployment parameter configuration, log configuration, UI-based parameter configuration (e.g., catalogs) |
Catatan penggunaan
Satu nama variabel hanya dapat memiliki satu nilai.
Jangan gunakan kata kunci SQL sebagai nama variabel.
Dalam SQL draft, rujuk variabel hanya pada tabel temporary (dibuat dengan
CREATE TEMPORARY TABLE). Merujuk variabel pada tabel persisten (dibuat denganCREATE TABLE) akan menyebabkan tabel tersebut tidak dapat digunakan.
Deployment variables
Nama deployment variable harus unik dalam satu deployment.
Rujuk variabel dalam SQL draft
Gunakan variabel dalam SQL draft untuk menghindari hardcoding nilai—misalnya, sebagai parameter input untuk fungsi kustom. Setelah deployment dimulai, Anda dapat memperbarui nilai variabel tanpa mengubah draft tersebut.
Di panel navigasi sebelah kiri Konsol Realtime Compute for Apache Flink, pilih Development > ETL.
Di editor SQL, definisikan variabel dalam format
${Variable name}. Ikuti aturan berikut:Variabel dalam klausa
WITH: bungkus dengan tanda kutip tunggal —'${Variable name}'Variabel sebagai nama tabel atau nama field: bungkus dengan tanda backtick — `
${Variable name}`
create temporary table `${source_name}`( id varchar, name varchar ) with ( 'connector' = 'datagen' ); create temporary table blackhole( id varchar, `${test_name}` varchar ) with ( 'connector' = '${blackhole}' ); insert into blackhole select * from `${source_name}`;Realtime Compute for Apache Flink secara otomatis mendeteksi variabel dalam draft tersebut. Tetapkan nilainya dengan salah satu metode berikut:
Panel Variables: masukkan nilai langsung di panel Variables pada editor SQL.

Tab Configurations: Klik tab Configurations di sisi kanan SQL Editor, lalu masukkan nilai pada bagian Variables.

Setelah menerapkan draft, verifikasi variabel yang dirujuk di tab Configuration pada halaman Deployments.

Di halaman Deployments, temukan deployment target dan klik Start di kolom Actions. Di panel Start Job, perbarui nilai variabel sesuai kebutuhan.
PentingNilai yang diperbarui hanya berlaku untuk job start kali ini. Nilai yang ditentukan dalam SQL draft tetap tidak berubah.

Rujuk variabel dalam deployment JAR atau Python
Gunakan deployment variable sebagai argumen entry point dalam fungsi Main pada deployment JAR atau Python. Tersedia dua metode.
Metode 1: Rujuk namespace variable dalam argumen entry point
Di panel navigasi sebelah kiri, pilih Security > Variables, lalu buat namespace variable.
Pilih O&M > Deployments, lalu klik Create Deployment.
Di field Entry Point Main Arguments, masukkan nama variabel dalam format berikut:
Untuk mengelola variabel di konsol, buka Security > Variables. Jika nama variabel mengandung karakter khusus, lihat Apa yang harus saya lakukan jika ingin menentukan karakter khusus dalam nilai parameter Entry Point Main Arguments?
--<Variable name in code> ${secret_values.<Variable name in console>}Contoh:
--akid ${secret_values.test1}
Klik Deploy.
Temukan deployment tersebut dan klik Start di kolom Actions.
Metode 2: Definisikan variabel secara inline dalam dialog deployment
Di panel navigasi sebelah kiri, pilih O&M > Deployments, lalu klik Create Deployment.
Di kotak dialog, masukkan nama variabel di field Entry Point Main Arguments, lalu masukkan nilai variabel di bagian Variables. Jika nama variabel mengandung karakter khusus, lihat Apa yang harus saya lakukan jika ingin menentukan karakter khusus dalam nilai parameter Entry Point Main Arguments? Untuk parameter deployment lainnya, lihat Create a deployment.

Klik Deploy.
Pilih O&M > Deployments. Temukan deployment target dan klik Start di kolom Actions. Di panel Start Job, perbarui nilai variabel untuk job start kali ini jika diperlukan.

Namespace variables
Namespace variable tersedia di seluruh namespace. Rujuk variabel tersebut dalam format ${secret_values.Variable name}.
Buat variabel
Hanya anggota dengan izin editor atau lebih tinggi, atau anggota yang memiliki izin pembuatan variabel, yang dapat membuat variabel.
Masuk ke Konsol Realtime Compute for Apache Flink. Temukan ruang kerja dan klik Console di kolom Actions.
Di panel navigasi sebelah kiri, pilih Security > Variables, lalu klik Add Variable dan konfigurasikan parameter berikut:
Parameter Description Variable name Harus unik dalam namespace. Tidak dapat diubah setelah dibuat. Variable value Case-sensitive. Dapat diperbarui setelah dibuat. Untuk detailnya, lihat Edit or delete a variable. Type Tidak dapat diubah setelah dibuat. Plaintext: nilainya terlihat di halaman Variables. Ciphertext: nilainya disembunyikan. Klik OK.
Rujuk variabel
Setelah membuat variabel, rujuk variabel tersebut dalam format ${secret_values.Variable name}. Contoh berikut menunjukkan cara merujuk namespace variable dalam berbagai skenario.
SQL draft
Dalam pernyataan DDL SQL draft, gunakan format ${secret_values.Variable name}. Ikuti aturan berikut:
Variabel dalam klausa
WITH: bungkus dengan tanda kutip tunggal —'${secret_values.Variable name}'Variabel sebagai nama tabel atau nama field: bungkus dengan tanda backtick — `
${secret_values.Variable name}`
Contoh:
create temporary table `${secret_values.source_name}`(
id varchar,
name varchar
) with (
'connector' = 'datagen'
);
create temporary table blackhole(
id varchar,
`${secret_values.test_name}` varchar
) with (
'connector' = '${secret_values.blackhole}'
);
insert into blackhole select * from `${secret_values.source_name}`;Data ingestion
Rujuk variabel dalam konfigurasi data ingestion berbasis YAML untuk menghindari penyimpanan kredensial dalam teks biasa. Contoh:
source:
type: mysql
name: Mysql Source
hostname: localhost
port: 3306
username: test
password: ${secret_values.mysqlpw}
tables: app_db.\.*
server-id: 5400-5404
···Data query
Rujuk variabel dalam kueri berbasis skrip. Contoh:
USE CATALOG paimon;
CREATE DATABASE IF NOT EXISTS `${secret_values.test_name}`;
CREATE TABLE paimon.`${secret_values.test_name}`.ods_user_log
(
item_id int NOT NULL,
`${secret_values.user}` varchar(50) NOT NULL,
action varchar(20) NOT NULL,
vtime timestamp,
ds varchar(10) NOT NULL
)
PARTITIONED BY (ds);
SELECT * from paimon.`${secret_values.test_name}`.ods_user_log LIMIT 10;JAR or Python deployment
Rujuk namespace variable sebagai argumen entry point dalam deployment JAR atau Python.
Di panel navigasi sebelah kiri, pilih O&M > Deployments, lalu klik Create Deployment.
Masukkan nama variabel di field Entry Point Main Arguments. Untuk parameter deployment lainnya, lihat Create a deployment.

Klik Deploy.
Deployment parameter configuration
Rujuk namespace variable dalam konfigurasi parameter deployment.
Di panel navigasi sebelah kiri, pilih O&M > Deployments, lalu klik deployment target.
Di tab Configuration, klik Edit di pojok kanan atas bagian Parameters. Masukkan referensi variabel sebagai nilai parameter.

Klik Save.
Log configuration
Rujuk namespace variable dalam konfigurasi ekspor log untuk menghindari penyimpanan kredensial dalam file konfigurasi log.
Buka konfigurasi logging:
Untuk mengonfigurasi ekspor log untuk satu deployment, lihat Configure parameters to export the logs of a deployment.
Untuk mengonfigurasi ekspor log untuk semua deployment dalam namespace, lihat Configure parameters to export the logs of all deployments in a namespace.
Rujuk variabel dalam konfigurasi logging. Contoh berikut menggunakan variabel
accessKeyIddanaccessKeySecretuntuk mengekspor log ke Simple Log Service:<Appender name="SLS" type="SLS"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/> <!-- The final effective log path is: ${baseUri}/logs/${namespace}/${deploymentId}/{jobId}/ --> <Property name="namespace">{{ namespace }}</Property> <!-- Do not modify this line --> <Property name="project">YOUR-SLS-PROJECT</Property> <Property name="logStore">YOUR-SLS-LOGSTORE</Property> <Property name="endpoint">YOUR-SLS-ENDPOINT</Property> <Property name="accessKeyId">${secret_values.accessKeyId}</Property> <Property name="accessKeySecret">${secret_values.accessKeySecret}</Property> <Property name="topic">{{ namespace }}:{{ deploymentId }}:{{ jobId }}</Property> <Property name="deploymentName">{{ deploymentName }}</Property> <Property name="flushIntervalSeconds">10</Property> <Property name="flushIntervalEventCount">100</Property> </Appender>Untuk konfigurasi lengkapnya, lihat Configure parameters to export logs of a deployment.
UI-based parameter configuration
Rujuk namespace variable saat mengonfigurasi parameter berbasis UI seperti kredensial katalog.
Di panel navigasi sebelah kiri, klik Catalogs.
Di kotak dialog Create Catalog, rujuk variabel di field konfigurasi yang relevan. Contoh berikut menggunakan variabel
mysqlpassworduntuk parameter password katalog MySQL.
Edit atau hapus variabel
Mengedit atau menghapus variabel dapat menyebabkan kegagalan deployment atau memerlukan redeployment. Menghapus variabel tidak memengaruhi deployment yang sedang berjalan.
Masuk ke Konsol Realtime Compute for Apache Flink. Temukan ruang kerja dan klik Console di kolom Actions.
Di panel navigasi sebelah kiri, pilih Security > Variables. Temukan variabel target dan klik Edit atau Delete di kolom Actions.
Edit: ubah nilai variabel. Hanya anggota dengan izin editor atau lebih tinggi yang dapat mengedit variabel.
Delete: hapus variabel. Hanya anggota dengan izin editor atau lebih tinggi, atau anggota yang memiliki izin penghapusan variabel, yang dapat menghapus variabel.