Anda dapat menggunakan variabel untuk menghindari risiko keamanan yang disebabkan oleh informasi seperti pasangan AccessKey dan kata sandi dalam teks biasa. Dengan variabel, Anda tidak perlu menulis ulang kode atau nilai yang sama berulang kali, sehingga menyederhanakan pengelolaan konfigurasi. Variabel dapat direferensikan dalam berbagai skenario, seperti pengembangan draf SQL, penyebaran JAR atau Python, konfigurasi output log, serta konfigurasi parameter berbasis UI. Topik ini menjelaskan cara membuat dan menggunakan variabel dalam berbagai skenario.
Informasi latar belakang
Setiap variabel memiliki nama dan nilai. Nama mencerminkan arti dari nilai tersebut dan dapat disesuaikan, sedangkan nilai adalah data aktualnya. Realtime Compute for Apache Flink mendukung variabel penyebaran dan variabel namespace. Bagian berikut menjelaskan perbedaan di antara keduanya:
Variabel Penyebaran: Variabel ini hanya dapat digunakan dalam satu penyebaran. Contohnya, mereka dapat digunakan dalam draf SQL untuk ekstraksi, transformasi, dan pemuatan (ETL) atau sebagai parameter input dalam fungsi Main dari penyebaran JAR atau Python, dalam format
${Nama variabel}. Untuk informasi lebih lanjut tentang cara menggunakan variabel penyebaran, lihat bagian Variabel Penyebaran dalam topik ini.Variabel Namespace: Variabel ini dapat digunakan dalam sebuah namespace. Contohnya, mereka dapat digunakan untuk pengembangan data, seperti ingest data, ETL, dan query berbasis skrip. Mereka juga dapat digunakan sebagai parameter input dalam fungsi Main dari penyebaran JAR atau Python, dalam konfigurasi parameter penyebaran, konfigurasi log, dan konfigurasi parameter berbasis UI, seperti parameter katalog. Variabel namespace berada dalam format
${secret_values.Nama variabel}. Untuk informasi lebih lanjut tentang cara membuat dan menggunakan variabel namespace, lihat bagian Variabel Namespace dalam topik ini.
Catatan Penggunaan
Anda tidak dapat mengonfigurasi beberapa nilai untuk nama variabel.
Jangan gunakan kata kunci sebagai nama variabel.
Dalam draf SQL, Anda dapat mereferensikan variabel dalam tabel sementara (didefinisikan dengan pernyataan CREATE TEMPORARY TABLE). Jika Anda mereferensikan variabel dalam tabel permanen (didefinisikan dengan pernyataan CREATE TABLE), tabel yang Anda buat tidak dapat digunakan.
Variabel Penyebaran
Nama variabel penyebaran harus unik dalam satu penyebaran.
Referensikan variabel dalam draf SQL
Anda dapat menggunakan variabel saat mengembangkan draf SQL. Misalnya, Anda dapat menggunakan variabel sebagai parameter input dari fungsi kustom. Anda juga dapat mengubah nilai variabel setelah penyebaran dimulai.
Di panel navigasi kiri konsol Realtime Compute for Apache Flink, pilih .
Di editor SQL dari draf yang ingin dikembangkan, buat variabel dalam format
${Nama variabel}. Contoh kode berikut memberikan ilustrasi.Jika Anda mereferensikan variabel dalam klausa WITH, apit variabel dengan sepasang tanda kutip tunggal ('), dalam format
'${Nama variabel}'.Jika Anda mereferensikan variabel sebagai nama tabel atau nama bidang dalam pernyataan SQL, apit variabel dengan sepasang tanda aksen grave (`), dalam format
`${Nama variabel}`.
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 mengidentifikasi variabel dalam format yang diperlukan dalam draf. Gunakan salah satu metode berikut untuk mengonfigurasi nilai variabel:
Metode 1: Masukkan nilai variabel di panel Variables editor SQL.

Metode 2: Klik tab Configurations di sebelah kanan editor SQL. Di panel Konfigurasi, masukkan nilai variabel di bagian Variables.

Setelah draf disebarluaskan, lihat variabel yang direferensikan dalam penyebaran pada tab Configuration halaman Deployments.

Di halaman Deployments, cari deployment yang ingin Anda mulai, lalu klik Start pada kolom Actions. Anda dapat mengubah nilai variabel di panel Start Job.
PentingNilai variabel baru hanya berlaku untuk penyebaran tertentu yang akan dimulai. Nilai yang didefinisikan dalam draf SQL tetap tidak berubah.

Referensikan variabel dalam penyebaran JAR atau Python
Anda dapat menggunakan variabel sebagai parameter input dalam fungsi Main dari penyebaran JAR atau Python.
Metode 1
Di panel navigasi kiri, pilih . Kemudian, buat variabel.
Pilih . Di halaman Deployments, klik Create Deployment.
Di bidang Entry Point Main Arguments kotak dialog yang muncul, masukkan nama variabel dalam format
--<Nama variabel yang ditentukan dalam kode> ${secret_values.<Nama variabel yang dikonfigurasikan di konsol>}, seperti--akid ${secret_values.test1}.CatatanUntuk mengonfigurasi variabel di konsol, buka .
Jika nama variabel mengandung karakter khusus, ikuti petunjuk yang diberikan di Apa yang harus saya lakukan jika saya ingin menentukan karakter khusus dalam nilai parameter Argumen Utama Titik Masuk?.

Klik Deploy.
Temukan penyebaran target dan klik Start di kolom Actions.
Metode 2
Di panel navigasi kiri konsol pengembangan, pilih . Di halaman Penyebaran, klik Create Deployment.
Dalam kotak dialog yang muncul, masukkan nama variabel di bidang Entry Point Main Arguments, lalu masukkan nilai variabel di bagian Variables di bawahnya.
Jika nama variabel mengandung karakter khusus, ikuti petunjuk yang diberikan di Apa yang harus saya lakukan jika saya ingin menentukan karakter khusus dalam nilai parameter Argumen Utama Titik Masuk?.

Untuk informasi lebih lanjut tentang parameter penyebaran lainnya, lihat Buat Penyebaran.
Klik Deploy.
Buka . Di halaman Deployments, temukan penyebaran target dan klik Start di kolom Actions.
Panel Start Job muncul. Anda dapat mengubah nilai variabel untuk pekerjaan Flink ini.

Variabel Namespace
Buat variabel
Hanya anggota dengan izin editor atau lebih tinggi, atau anggota dengan izin pembuatan variabel yang dapat membuat variabel.
Masuk ke konsol pengembangan Realtime Compute for Apache Flink. Temukan ruang kerja yang ingin dikelola dan klik Console di kolom Actions.
Di panel navigasi kiri, pilih . Di halaman Variabel, klik Add Variable.
Parameter
Deskripsi
Nama Variabel
Nama variabel harus unik dalam namespace yang sama dan tidak dapat diubah setelah variabel dibuat.
Nilai Variabel
Nilai variabel bersifat case-sensitive. Perhatikan huruf besar/kecil saat memasukkan huruf dalam nilai variabel. Anda dapat mengubah nilai variabel setelah dibuat. Untuk informasi lebih lanjut, lihat bagian Edit atau hapus variabel dalam topik ini.
Tipe
Anda tidak dapat mengubah tipe variabel setelah dibuat. Nilai valid:
Teks biasa: Anda dapat langsung melihat nilai variabel di halaman Variabel.
Teks terenkripsi: Anda tidak dapat melihat nilai variabel.

Klik OK.
Referensikan variabel
Setelah membuat variabel, Anda dapat mereferensikan variabel dalam format ${secret_values.Nama variabel}. Bagian berikut memberikan contoh untuk mereferensikan variabel dalam berbagai skenario.
Referensikan variabel dalam pengembangan data
Anda dapat mereferensikan variabel namespace di modul Development konsol Realtime Compute for Apache Flink.
Draf SQL untuk ETL
Dalam pernyataan DDL draf SQL, Anda dapat mereferensikan variabel dalam format ${secret_values.Nama variabel}. Contoh kode berikut memberikan ilustrasi.
Jika Anda mereferensikan variabel dalam klausa WITH, apit variabel dengan sepasang tanda kutip tunggal ('), dalam format
'${secret_values.Nama variabel}'.Jika Anda mereferensikan variabel sebagai nama tabel atau nama bidang dalam pernyataan SQL, apit variabel dengan sepasang tanda aksen grave (`), dalam format
`${secret_values.Nama variabel}`.
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}`;Ingesti data
source:
type: mysql
name: Sumber MySQL
hostname: localhost
port: 3306
username: test
password: ${secret_values.mysqlpw}
tables: app_db.\.*
server-id: 5400-5404
···Query data
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;Referensikan variabel dalam penyebaran JAR atau Python
Anda dapat menggunakan variabel sebagai parameter input dalam fungsi Main dari penyebaran JAR atau Python.
Di konsol pengembangan Realtime Compute for Apache Flink, pilih . Di halaman Penyebaran, klik Create Deployment.
Masukkan nama variabel di bidang Entry Point Main Arguments. Gambar berikut menunjukkan konfigurasi.

Untuk informasi lebih lanjut tentang parameter penyebaran lainnya, lihat Buat Penyebaran.
Klik Deploy.
Referensikan variabel dalam konfigurasi parameter penyebaran
Anda dapat menggunakan variabel dalam konfigurasi parameter penyebaran.
Di konsol pengembangan Realtime Compute for Apache Flink, pilih . Di halaman Penyebaran, klik penyebaran yang ingin dikelola.
Pada tab Configuration, klik Edit di pojok kanan atas bagian Parameters untuk mengonfigurasi parameternya. Anda dapat menggunakan variabel sebagai nilai parameter. Gambar berikut menunjukkan konfigurasi tersebut.

Klik Save.
Referensikan variabel di bagian Logging
Buka bagian Logging.
Untuk informasi lebih lanjut tentang cara mengonfigurasi parameter untuk mengekspor log penyebaran, lihat Konfigurasikan SaluranKeluaran untuk Satu Penyebaran.
Untuk informasi lebih lanjut tentang cara mengonfigurasi parameter untuk mengekspor log semua penyebaran dalam namespace, lihat Konfigurasikan Saluran Keluaran untuk Semua Penyebaran dalam Namespace.
Referensikan variabel di bagian Logging.
Dalam contoh berikut, variabel bernama accessKeyId dan accessKeySecret digunakan untuk mengekspor log penyebaran ke Layanan Log Sederhana. Untuk informasi lebih lanjut tentang konfigurasi lengkap, lihat Konfigurasikan Parameter untuk Mengekspor Log Penyebaran.
<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"/> <!-- Jalur log efektif akhirnya adalah: ${baseUri}/logs/${namespace}/${deploymentId}/{jobId}/ --> <Property name="namespace">{{ namespace }}</Property> <!-- Jangan ubah baris ini --> <Property name="project">PROYEK-SLS-ANDA</Property> <Property name="logStore">LOGSTORE-SLS-ANDA</Property> <Property name="endpoint">TITIK-AKHIR-SLS-ANDA</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>
Referensikan variabel dalam konfigurasi parameter berbasis UI
Saat membuat katalog di konsol pengembangan Realtime Compute for Apache Flink, Anda dapat mereferensikan variabel dalam item konfigurasi.
Di konsol pengembangan Realtime Compute for Apache Flink, klik Catalogs di panel navigasi kiri.
Referensikan variabel di kotak dialog Buat Katalog. Dalam contoh ini, variabel bernama
mysqlpassworddigunakan untuk parameter kata sandi saat membuat katalog MySQL.
Edit atau hapus variabel
Berhati-hatilah saat mengedit atau menghapus variabel. Operasi yang tidak disengaja dapat menyebabkan kegagalan penyebaran draf atau perlunya menyebarluaskan ulang draf. Jika Anda menghapus variabel yang ada, penyebaran yang sedang berjalan tidak akan terpengaruh.
Masuk ke konsol Realtime Compute for Apache Flink. Temukan ruang kerja yang ingin dikelola dan klik Console di kolom Actions.
Di panel navigasi kiri, pilih . Di halaman Variabel, temukan variabel yang ingin diedit atau dihapus dan klik Edit atau Delete di kolom Actions.
Edit Variabel
Anda dapat mengubah nilai variabel. Hanya anggota dengan izin editor atau lebih tinggi yang dapat mengedit variabel.
Hapus Variabel
Hanya anggota dengan izin editor atau lebih tinggi, atau anggota dengan izin penghapusan variabel yang dapat menghapus variabel.
Referensi
Untuk informasi lebih lanjut tentang cara mengembangkan draf SQL, lihat Kembangkan Draf SQL.
Untuk informasi lebih lanjut tentang parameter penyebaran JAR atau Python, lihat Buat Penyebaran.
Untuk informasi lebih lanjut tentang cara membuat dan menggunakan katalog, lihat Kelola Katalog.
Untuk informasi lebih lanjut tentang konektor yang didukung oleh Realtime Compute for Apache Flink, lihat Konektor yang Didukung.