All Products
Search
Document Center

Realtime Compute for Apache Flink:Kelola variabel

Last Updated:Mar 27, 2026

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:

TypeScopeReference formatSupported scenarios
Deployment variableSingle deployment${Variable name}SQL drafts, JAR/Python deployment entry point arguments
Namespace variableEntire 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 dengan CREATE 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.

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

  2. 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}`;
  3. 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. image

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

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

    image

  5. Di halaman Deployments, temukan deployment target dan klik Start di kolom Actions. Di panel Start Job, perbarui nilai variabel sesuai kebutuhan.

    Penting

    Nilai yang diperbarui hanya berlaku untuk job start kali ini. Nilai yang ditentukan dalam SQL draft tetap tidak berubah.

    image

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

  1. Di panel navigasi sebelah kiri, pilih Security > Variables, lalu buat namespace variable.

  2. Pilih O&M > Deployments, lalu klik Create Deployment.

  3. 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}

    image

  4. Klik Deploy.

  5. Temukan deployment tersebut dan klik Start di kolom Actions.

Metode 2: Definisikan variabel secara inline dalam dialog deployment

  1. Di panel navigasi sebelah kiri, pilih O&M > Deployments, lalu klik Create Deployment.

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

    image

  3. Klik Deploy.

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

    image

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.
  1. Masuk ke Konsol Realtime Compute for Apache Flink. Temukan ruang kerja dan klik Console di kolom Actions.

  2. Di panel navigasi sebelah kiri, pilih Security > Variables, lalu klik Add Variable dan konfigurasikan parameter berikut:

    ParameterDescription
    Variable nameHarus unik dalam namespace. Tidak dapat diubah setelah dibuat.
    Variable valueCase-sensitive. Dapat diperbarui setelah dibuat. Untuk detailnya, lihat Edit or delete a variable.
    TypeTidak dapat diubah setelah dibuat. Plaintext: nilainya terlihat di halaman Variables. Ciphertext: nilainya disembunyikan.
  3. 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.

  1. Di panel navigasi sebelah kiri, pilih O&M > Deployments, lalu klik Create Deployment.

  2. Masukkan nama variabel di field Entry Point Main Arguments. Untuk parameter deployment lainnya, lihat Create a deployment.

    image

  3. Klik Deploy.

Deployment parameter configuration

Rujuk namespace variable dalam konfigurasi parameter deployment.

  1. Di panel navigasi sebelah kiri, pilih O&M > Deployments, lalu klik deployment target.

  2. Di tab Configuration, klik Edit di pojok kanan atas bagian Parameters. Masukkan referensi variabel sebagai nilai parameter.

    image

  3. Klik Save.

Log configuration

Rujuk namespace variable dalam konfigurasi ekspor log untuk menghindari penyimpanan kredensial dalam file konfigurasi log.

  1. Buka konfigurasi logging:

  2. Rujuk variabel dalam konfigurasi logging. Contoh berikut menggunakan variabel accessKeyId dan accessKeySecret untuk 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.

  1. Di panel navigasi sebelah kiri, klik Catalogs.

  2. Di kotak dialog Create Catalog, rujuk variabel di field konfigurasi yang relevan. Contoh berikut menggunakan variabel mysqlpassword untuk parameter password katalog MySQL.

    image.png

Edit atau hapus variabel

Peringatan

Mengedit atau menghapus variabel dapat menyebabkan kegagalan deployment atau memerlukan redeployment. Menghapus variabel tidak memengaruhi deployment yang sedang berjalan.

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

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

Langkah berikutnya

Referensi