すべてのプロダクト
Search
ドキュメントセンター

Realtime Compute for Apache Flink:変数の管理

最終更新日:Mar 27, 2026

AccessKey ペアやパスワードなどの機密値を、平文で記述する代わりに変数として保存します。また、変数を使用すると、構成間で値を繰り返し記述することなく再利用できます。本トピックでは、Realtime Compute for Apache Flink における変数の作成および使用方法について説明します。

変数の種類

Realtime Compute for Apache Flink では、スコープが異なる以下の 2 種類の変数をサポートしています。

種類スコープリファレンス形式対応するシナリオ
デプロイメント変数単一のデプロイメント内${変数名}SQL ドラフト、JAR/Python デプロイメントのエントリポイント引数
名前空間変数名前空間全体${secret_values.変数名}SQL ドラフト、データインジェスト、データクエリ、JAR/Python デプロイメントのエントリポイント引数、デプロイメントパラメーター構成、ログ構成、UI を使用したパラメーター構成(例:カタログ)

注意事項

  • 変数名には、1 つの値のみを設定できます。

  • SQL キーワードを変数名として使用しないでください。

  • SQL ドラフトでは、一時テーブル(CREATE TEMPORARY TABLE で作成)内でのみ変数を参照できます。CREATE TABLE で作成された永続テーブル内で変数を参照すると、そのテーブルは使用できなくなります。

デプロイメント変数

デプロイメント変数の名前は、単一のデプロイメント内で一意である必要があります。

SQL ドラフト内での変数の参照

値をハードコードせずに SQL ドラフト内で変数を使用します(例:カスタム関数の入力パラメーターとして)。デプロイメントが開始された後でも、ドラフトを変更せずに変数の値を更新できます。

  1. Realtime Compute for Apache Flink コンソールの左側ナビゲーションウィンドウで、開発 > ETL を選択します。

  2. SQL エディターで、${変数名} の形式で変数を定義します。以下のルールに従ってください。例:

    • WITH 句内の変数:シングルクォートで囲む — '${変数名}'

    • テーブル名またはフィールド名として使用する変数:バックティックで囲む — ` ${変数名} `

    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 がドラフト内の変数を自動的に検出します。以下のいずれかの方法で値を設定してください。

    • 変数パネル:SQL エディターの右側にある 変数 パネルで、直接値を入力します。image

    • 構成タブ:SQL エディターの右側にある 構成 タブをクリックし、変数 セクションで値を入力します。image

  4. ドラフトをデプロイした後、構成 タブの デプロイメント ページで、参照されている変数を確認します。

    image

  5. デプロイメント ページで対象のデプロイメントを見つけ、操作 列の 開始 をクリックします。ジョブの開始 パネルで、必要に応じて変数の値を更新します。

    重要

    更新された値は、この特定のジョブ開始時のみ有効です。SQL ドラフトで定義された値は変更されません。

    image

JAR または Python デプロイメント内での変数の参照

JAR または Python デプロイメントの Main 関数のエントリポイント引数として、デプロイメント変数を使用します。以下の 2 つの方法があります。

方法 1:エントリポイント引数内で名前空間変数を参照

  1. 左側ナビゲーションウィンドウで、セキュリティ > 変数 を選択し、名前空間変数を作成します。

  2. O&M > デプロイメント を選択し、デプロイメントの作成 をクリックします。

  3. エントリポイント Main 引数 フィールドに、以下の形式で変数名を入力します。

    コンソールで変数を管理するには、[セキュリティ] > [変数] へ移動します。変数名に特殊文字が含まれている場合は、エントリポイントのメイン引数パラメーターの値に特殊文字を指定したい場合はどうすればよいですか?
    --<コード内の変数名> ${secret_values.<コンソール上の変数名>}

    例:--akid ${secret_values.test1}

    image

  4. デプロイ をクリックします。

  5. 対象のデプロイメントを見つけ、操作 列の 開始 をクリックします。

方法 2:デプロイメントダイアログ内で変数をインライン定義

  1. 左側ナビゲーションウィンドウで、O&M > デプロイメント を選択し、デプロイメントの作成 をクリックします。

  2. ダイアログボックスで、エントリポイント Main 引数 フィールドに変数名を入力し、変数 セクションに変数の値を入力します。変数名に特殊文字が含まれる場合は、「エントリポイント Main 引数パラメーターの値に特殊文字を指定したい場合の対応方法」をご参照ください。その他のデプロイメントパラメーターについては、「デプロイメントの作成」をご参照ください。

    image

  3. デプロイ をクリックします。

  4. O&M > デプロイメント を選択します。対象のデプロイメントを見つけ、操作 列の 開始 をクリックします。ジョブの開始 パネルで、必要に応じてこのジョブ開始時の変数値を更新します。

    image

名前空間変数

名前空間変数は、名前空間全体で利用可能です。${secret_values.変数名} の形式で参照します。

変数の作成

編集者以上の権限を持つメンバー、または変数作成権限を持つメンバーのみが、変数を作成できます。
  1. Realtime Compute for Apache Flink コンソール にログインします。ワークスペースを見つけ、操作 列の コンソール をクリックします。

  2. 左側ナビゲーションウィンドウで、セキュリティ > 変数 を選択し、変数の追加 をクリックして、以下のパラメーターを設定します。

    パラメーター説明
    変数名名前空間内で一意である必要があります。作成後に変更できません。
    変数値大文字と小文字を区別します。作成後に更新できます。詳細については、「変数の編集または削除」をご参照ください。
    種類作成後に変更できません。プレーンテキスト:変数値は「変数」ページ上で表示されます。暗号化テキスト:変数値は非表示になります。
  3. OK をクリックします。

変数の参照

変数を作成した後は、${secret_values.Variable name} フォーマットで参照します。以下の例では、さまざまなシナリオで名前空間の変数を参照する方法を示します。

SQL ドラフト

SQL ドラフトの DDL 文で、${secret_values.変数名} の形式を使用します。以下のルールに従ってください。

  • WITH 句内の変数:シングルクォートで囲む — '${secret_values.変数名}'

  • テーブル名またはフィールド名として使用する変数:バックティックで囲む — ` ${secret_values.変数名} `

例:

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}`;

データインジェスト

認証情報を平文で保存しないために、YAML 形式のデータインジェスト構成内で変数を参照します。例:

source:
  type: mysql
  name: Mysql Source
  hostname: localhost
  port: 3306
  username: test
  password: ${secret_values.mysqlpw}
  tables: app_db.\.*
  server-id: 5400-5404

···

データクエリ

スクリプトベースのクエリ内で変数を参照します。例:

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 デプロイメント

JAR または Python デプロイメントのエントリポイント引数として、名前空間変数を参照します。

  1. 左側ナビゲーションウィンドウで、O&M > デプロイメント を選択し、デプロイメントの作成 をクリックします。

  2. エントリポイント Main 引数 フィールドに変数名を入力します。その他のデプロイメントパラメーターについては、「デプロイメントの作成」をご参照ください。

    image

  3. デプロイ をクリックします。

デプロイメントパラメーター構成

デプロイメントのパラメーター構成内で、名前空間変数を参照します。

  1. 左側のナビゲーションウィンドウで、[O&M][デプロイメント] を選択し、対象のデプロイメントをクリックします。

  2. 構成 タブで、パラメーター セクションの右上隅にある 編集 をクリックします。パラメーター値として変数のリファレンスを入力します。

    image

  3. 保存 をクリックします。

ログ構成

ログ構成ファイル内に認証情報を平文で保存しないために、ログエクスポート構成内で名前空間変数を参照します。

  1. ログ構成に移動します。

  2. ログ構成内で変数を参照します。以下の例では、accessKeyId および accessKeySecret 変数を使用して、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"/>
    
      <!-- 最終的な有効なログパスは、${baseUri}/logs/${namespace}/${deploymentId}/{jobId}/ です -->
      <Property name="namespace">{{ namespace }}</Property> <!-- この行は変更しないでください -->
      <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 を使用したパラメーター構成

カタログの認証情報など、UI を使用したパラメーター構成時に名前空間変数を参照します。

  1. 左側ナビゲーションウィンドウで、カタログ をクリックします。

  2. カタログの作成 ダイアログボックスで、関連する構成フィールドに変数を参照します。以下の例では、MySQL カタログのパスワードパラメーターに mysqlpassword 変数を使用しています。

    image.png

変数の編集または削除

警告

変数の編集または削除により、デプロイメントが失敗する可能性があります。また、再デプロイが必要になる場合があります。ただし、すでに実行中のデプロイメントには影響しません。

  1. Realtime Compute for Apache Flink コンソール にログインします。ワークスペースを見つけ、操作 列の コンソール をクリックします。

  2. 左側ナビゲーションウィンドウで、セキュリティ > 変数 を選択します。対象の変数を見つけ、操作 列の 編集 または 削除 をクリックします。

    • [編集]: 変数の値を変更します。エディター以上の権限を持つメンバーのみが変数を編集できます。

    • 削除:変数を削除します。削除者は、編集者以上の権限を持つメンバー、または変数削除権限を持つメンバーのみが変数を削除できます。

次のステップ

参考