All Products
Search
Document Center

Realtime Compute for Apache Flink:Manajemen variabel

Last Updated:Aug 20, 2026

Penggunaan variabel membantu Anda menghindari risiko keamanan yang terkait dengan kredensial dalam teks biasa, seperti AccessKey atau password. Penggunaan ulang variabel juga menghindari pengulangan kode dan nilai, sehingga menyederhanakan manajemen konfigurasi. Variabel didukung dalam pekerjaan SQL, penerapan JAR/Python, konfigurasi logging, dan pengaturan UI. Topik ini menjelaskan cara membuat dan menggunakan variabel dalam berbagai skenario.

Informasi latar belakang

Variabel terdiri dari nama dan nilai. Nama, yang Anda definisikan, berfungsi sebagai placeholder untuk data aktual dan biasanya mencerminkan maknanya. Nilai adalah data aktual yang diwakili oleh nama tersebut. Flink mendukung dua jenis variabel: variabel deployment dan variabel namespace. Perbedaannya sebagai berikut:

  • Variabel deployment: Hanya dapat digunakan dalam satu deployment saja, misalnya dalam pekerjaan ETL SQL atau sebagai argumen fungsi utama dalam deployment JAR/Python. Format untuk mereferensikan variabel deployment adalah ${variable_name}. Untuk informasi lebih lanjut, lihat Deployment variables.

  • Variabel namespace: Dapat digunakan di seluruh namespace. Ini mencakup penggunaan dalam Development (untuk ingesti data, ETL, dan skrip kueri), sebagai argumen fungsi utama dalam deployment JAR/Python, dalam konfigurasi parameter deployment, konfigurasi logging, dan pengaturan UI (seperti membuat Catalog). Format untuk mereferensikan variabel namespace adalah ${secret_values.variable_name}. Untuk mempelajari cara membuat dan menggunakannya, lihat Namespace variables.

Catatan penggunaan

  • Anda tidak dapat mengonfigurasi beberapa nilai untuk satu nama variabel.

  • Hindari penggunaan kata kunci sebagai nama variabel.

  • Dalam pekerjaan SQL, Anda hanya dapat menggunakan variabel dalam tabel temporary (CREATE TEMPORARY TABLE). Penggunaan variabel dalam tabel persisten (CREATE TABLE) menyebabkan tabel tidak berfungsi dengan baik.

Deployment variables

Catatan

Nama variabel deployment harus unik dalam satu deployment.

ETL (SQL job)

Anda dapat menggunakan variabel selama pengembangan pekerjaan SQL, termasuk sebagai argumen untuk fungsi kustom. Anda juga dapat mengubah nilai variabel saat memulai pekerjaan.

  1. Di panel navigasi sebelah kiri Konsol Realtime Compute for Apache Flink, klik Development > ETL.

  2. Di editor SQL untuk pekerjaan SQL target Anda, buat variabel menggunakan format ${variable_name}, seperti pada contoh berikut.

    • Saat digunakan sebagai parameter dalam klausa WITH, sertakan variabel dalam tanda kutip tunggal: '${variable_name}'.

    • Saat digunakan di lokasi lain (misalnya untuk nama tabel atau field SQL), sertakan variabel dalam 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}`;
  3. Flink secara otomatis mengenali variabel deployment yang menggunakan format ini dalam pekerjaan SQL. Anda harus memberikan nilai untuk variabel-variabel tersebut.

    • Metode 1: Panel Job Variables muncul di editor SQL. Masukkan nilai-nilai tersebut di panel ini.

      Di panel Job Variables, konfigurasikan pasangan kunci-nilai: source_name=datagen, test_name=name, dan blackhole=blackhole.

    • Metode 2: Klik More Configurations di sisi kanan. Masukkan nilai-nilai tersebut di bagian Job Variables.

      Misalnya, konfigurasikan variabel source_name sebagai datagen, test_name sebagai name, dan blackhole sebagai blackhole. Anda kemudian dapat mereferensikan nilai-nilai ini dalam kode SQL Anda dengan menggunakan sintaks ${variable_name}.

  4. Setelah pekerjaan diterapkan, Anda dapat melihat variabelnya di tab Deployment Details pada halaman detail pekerjaan di bawah Deployments.

    Di properti pekerjaan, baris Job Variables menampilkan variabel yang dikonfigurasi (seperti source_name, test_name, dan blackhole) beserta nilai-nilainya.

  5. Klik Start di kolom Actions untuk pekerjaan target. Anda dapat mengubah nilai variabel di panel startup pekerjaan.

    Penting

    Perubahan yang dilakukan pada nilai variabel di panel startup pekerjaan hanya berlaku untuk eksekusi pekerjaan saat ini. Perubahan tersebut tidak mengubah nilai yang ditetapkan dalam pekerjaan SQL.

    Di panel startup pekerjaan, Anda dapat memilih mode stateless start atau stateful start. Jika Anda memilih stateful start, Anda dapat mengonfigurasi opsi pemulihan, seperti Recover from latest state. Bagian Job Variables menampilkan variabel dan nilai default-nya, seperti source_name diatur ke datagen, test_name ke name, dan blackhole ke blackhole. Anda dapat mengubahnya sesuai kebutuhan lalu klik Start.

JAR/Python deployment

Anda dapat menggunakan variabel sebagai argumen untuk fungsi utama dalam deployment JAR/Python.

Metode 1: Gunakan variabel namespace

  1. Buat variabel baru. Untuk detailnya, lihat Create a variable.

  2. Di Konsol Realtime Compute for Apache Flink, navigasikan ke O&M > Deployments lalu klik Deploy Job.

  3. Di field Entry Point Main Arguments, masukkan argumen menggunakan format --variable_in_code ${secret_values.variable_in_management}.

    Jika nama variabel perlu menyertakan karakter khusus, lihat How do I pass special characters as parameters when I use Entry Point Main Arguments?.

    Misalnya, masukkan --akid ${secret_values.test1} dan --aksecret ${secret_values.test2}, dengan setiap parameter pada baris baru.

    Untuk detail parameter deployment lainnya, lihat Deploy a job.

  4. Klik Deploy.

  5. Klik Start di kolom Actions untuk deployment target.

Metode 2: Gunakan variabel deployment

  1. Di Konsol Realtime Compute for Apache Flink, navigasikan ke O&M > Deployments lalu klik Deploy Job.

  2. Di field Entry Point Main Arguments, masukkan argumen menggunakan format --variable_in_code ${deployment_variable_name}, lalu berikan nilai variabel di bagian Job Variables di bawahnya.

    Jika nama variabel perlu menyertakan karakter khusus, lihat How do I pass special characters as parameters when I use Entry Point Main Arguments?.

    Misalnya, masukkan --akid ${test1} --aksecret ${test2}, lalu tambahkan variabel test1 (AccessKey ID) dan test2 (AccessKey Secret) serta masukkan kredensial aktual sebagai nilai default-nya.

    Untuk detail parameter deployment lainnya, lihat Deploy a job.

  3. Klik Deploy.

  4. Klik Start di kolom Actions untuk deployment target. Anda dapat mengubah nilai variabel di panel startup pekerjaan.

    Pilih mode start: stateless start (tanpa status awal) atau stateful start (dari status yang ada). Anda juga dapat mengaktifkan Configuration Autotuning.

Namespace variables

Buat variabel

Catatan

Hanya anggota dengan izin editor atau lebih tinggi, atau anggota dengan izin khusus untuk membuat variabel, yang dapat membuat variabel.

  1. Login ke Konsol Realtime Compute for Apache Flink. Temukan ruang kerja target dan klik Console di kolom Actions.

  2. Di panel navigasi sebelah kiri, klik Security > Variables, lalu klik Add Variable.

    Parameter

    Deskripsi

    Variable Name

    Nama variabel harus unik dalam namespace dan tidak dapat diubah setelah dibuat.

    Variable Value

    Nilai variabel bersifat case-sensitive. Nilai dapat diubah setelah pembuatan. Untuk detailnya, lihat Edit or delete a variable.

    Type (Plaintext/Ciphertext)

    Tipe tidak dapat diubah setelah pembuatan.

    • Plaintext: Nilai variabel langsung terlihat di halaman Variables.

    • Ciphertext: Nilai variabel disembunyikan.

    Setelah variabel dibuat, Anda dapat melihat nama, tipe, nilai, dan waktu pembuatannya dalam daftar di halaman Variables. Anda juga dapat Edit atau Delete variabel tersebut.

  3. Klik OK.

Gunakan variabel

Setelah membuat variabel, Anda dapat mereferensikannya menggunakan format ${secret_values.variable_name}. Ganti "variable_name" dengan nama variabel Anda.

Development

Anda dapat menggunakan variabel namespace di bagian Development Konsol Realtime Compute for Apache Flink.

ETL (SQL)

Anda dapat menggunakan variabel dalam DDL pekerjaan SQL dengan mereferensikannya menggunakan format ${secret_values.variable_name}, seperti pada contoh berikut.

  • Saat digunakan sebagai parameter dalam klausa WITH, sertakan variabel dalam tanda kutip tunggal: '${secret_values.variable_name}'.

  • Saat digunakan di lokasi lain (misalnya untuk nama tabel atau field SQL), sertakan variabel dalam backtick: `${secret_values.variable_name}`.

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

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

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/Python deployment

Anda dapat menggunakan variabel sebagai argumen untuk fungsi utama dalam deployment JAR/Python.

  1. Di konsol pengembangan, navigasikan ke O&M > Deployments lalu klik Deploy Job.

  2. Di field Entry Point Main Arguments, masukkan argumen menggunakan format berikut.

    Contoh: --input ${secret_values.input}, di mana ${secret_values.variable_name} adalah sintaks untuk mereferensikan variabel.

    Untuk detail parameter deployment lainnya, lihat Deploy a job.

  3. Klik Deploy.

Konfigurasi parameter waktu proses

Anda dapat menggunakan variabel dalam parameter waktu proses pekerjaan.

  1. Navigasikan ke halaman O&M > Deployments lalu klik pekerjaan target.

  2. Di tab Deployment Details, klik Edit di pojok kanan atas bagian Runtime Parameter Configuration dan konfigurasikan parameter-parameter tersebut. Anda dapat menggunakan variabel sebagai nilai parameter, seperti pada contoh berikut.

    Di area teks Other Configurations, gunakan format ${secret_values.xxx} untuk mereferensikan variabel. Misalnya, untuk mengonfigurasi kredensial akses Jindo OSS, Anda dapat mengatur parameter seperti fs.oss.jindo.buckets, fs.oss.jindo.accessKeyId, dan fs.oss.jindo.accessKeySecret.

  3. Klik Save.

Konfigurasi logging

  1. Buka halaman konfigurasi logging.

  2. Gunakan variabel dalam konfigurasi logging.

    Misalnya, saat mengonfigurasi log pekerjaan untuk dikirim ke SLS, Anda dapat menggunakan variabel untuk 'accessKeyId' dan 'accessKeySecret'. Untuk informasi lengkap tentang konfigurasi output log, lihat Configure job log output.

    <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>

UI

Saat membuat Catalog melalui UI, Anda dapat menggunakan variabel dalam item konfigurasi.

  1. Di panel navigasi sebelah kiri Konsol Realtime Compute for Apache Flink, klik Catalogs.

  2. Gunakan variabel di halaman Create Catalog. Contoh berikut menunjukkan cara menggunakan variabel bernama mysqlpassword untuk parameter password dalam Catalog MySQL.

    Di field password, masukkan ${secret_values.mysqlpassword} untuk mereferensikan nilai rahasia tersebut.

Edit atau hapus variabel

Catatan

Berhati-hatilah saat mengedit atau menghapus variabel. Tindakan ini dapat menyebabkan deployment yang mereferensikannya gagal atau mengharuskan Anda menerapkan ulang pekerjaan online. Pekerjaan yang sedang berjalan tidak terpengaruh.

  1. Login ke Konsol Realtime Compute for Apache Flink. Temukan ruang kerja target dan klik Console di kolom Actions.

  2. Di panel navigasi sebelah kiri, klik Security > Variables. Temukan variabel target dan klik Edit atau Delete di kolom Actions.

    • Edit

      Anda dapat mengubah nilai variabel. Hanya anggota dengan izin editor atau lebih tinggi yang dapat mengedit variabel.

    • Delete

      Hanya anggota dengan izin editor atau lebih tinggi, atau anggota dengan izin khusus untuk menghapus variabel, yang dapat menghapus variabel.

Dokumen terkait