変数を使用すると、AccessKey ペアやプレーンテキストのパスワードなどの情報によって引き起こされるセキュリティリスクを防ぐことができます。変数を使用することで、同じコードや値を繰り返し記述する必要がなくなります。これにより、構成管理が簡素化されます。 SQL ドラフトや JAR または Python デプロイメントの開発、ログ出力構成、UI ベースのパラメーター構成など、さまざまなシナリオで変数を参照できます。このトピックでは、さまざまなシナリオで変数を作成および使用する方法について説明します。
背景情報
各変数には名前と値があります。名前は値の意味を反映しており、カスタマイズできます。値は実際のデータです。 Realtime Compute for Apache Flink は、デプロイメント変数と名前空間変数をサポートしています。次のセクションでは、これらの違いについて説明します。
デプロイメント変数: これらの変数は、単一のデプロイメントでのみ使用できます。たとえば、抽出、変換、書き出し (ETL) 用の SQL ドラフトで使用したり、JAR または Python デプロイメントの Main 関数で入力パラメーターとして
${変数名}の形式で使用したりできます。デプロイメント変数の使用方法の詳細については、このトピックのデプロイメント変数セクションをご参照ください。名前空間変数: これらの変数は、名前空間で使用できます。たとえば、データ インジェスチョン、ETL、スクリプトベースのクエリなどのデータ開発に使用できます。また、JAR または Python デプロイメントの Main 関数での入力パラメーター、デプロイメントのパラメーター構成、ログ構成、およびカタログのパラメーターなどの UI ベースのパラメーター構成にも使用できます。名前空間変数は、
${secret_values.変数名}の形式です。名前空間変数の作成と使用方法の詳細については、このトピックの名前空間変数セクションをご参照ください。
使用上の注意
変数名に複数の値を構成することはできません。
キーワードを変数名として使用しないでください。
SQL ドラフトでは、一時テーブル (CREATE TEMPORARY TABLE 文で定義) で変数を参照できます。永続テーブル (CREATE TABLE 文を使用して定義) で変数を参照する場合、作成したテーブルは使用できません。
デプロイメント変数
デプロイメント変数名は、単一のデプロイメント内で一意である必要があります。
SQL ドラフトで変数を参照する
SQL ドラフトを開発するときに、変数を使用できます。たとえば、カスタム関数の入力パラメーターとして変数を使用できます。ドラフトのデプロイメントが開始された後、変数値を変更することもできます。
Realtime Compute for Apache Flink コンソールの左側のナビゲーションウィンドウで、 を選択します。
開発するドラフトの SQL エディターで、
${変数名}形式で変数を作成します。次のサンプルコードは例を示しています。WITH 句で変数を参照する場合は、変数を一対の単一引用符 (') で囲み、
'${変数名}'形式にする必要があります。SQL 文で変数をテーブル名またはフィールド名として参照する場合は、変数を一対のグレイブアクセント (`) で囲み、
`${変数名}`形式にする必要があります。
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 は、ドラフトで必要な形式の変数を自動的に識別します。変数値を構成するには、次のいずれかの方法を使用する必要があります。
方法 1: SQL エディターの [変数] パネルに変数値を入力します。

方法 2: SQL エディターの右側にある [構成] タブをクリックします。 [構成] パネルの 構成[変数] セクションに変数値を入力します。

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

[デプロイメント] ページで、開始するデプロイメントを見つけ、[操作] 列の [開始] をクリックします。 [ジョブの開始] パネルで変数値を変更できます。
重要新しい変数値は、開始されるこの特定のデプロイメントに対してのみ有効になります。 SQL ドラフトで定義されたものは変更されません。

JAR または Python デプロイメントで変数を参照する
JAR または Python デプロイメントの Main 関数で、変数を入力パラメーターとして使用できます。
方法 1
左側のナビゲーションウィンドウで、 を選択します。次に、変数を作成します。
を選択します。 [デプロイメント] ページで、[デプロイメントの作成] をクリックします。
表示されるダイアログボックスの [エントリポイントのメイン引数] フィールドに、
--<コードで指定された変数名> ${secret_values.<コンソールで構成された変数名>}の形式で変数名を入力します (例:--akid ${secret_values.test1})。説明コンソールで変数を構成するには、 に移動します。
変数名に特殊文字が含まれている場合は、エントリポイントのメイン引数パラメーターの値に特殊文字を指定したい場合はどうすればよいですか?に記載されている手順に従ってください。

[デプロイ] をクリックします。
ターゲットデプロイメントを見つけ、[操作] 列の [開始] をクリックします。
方法 2
開発コンソールの左側のナビゲーションウィンドウで、 を選択します。 [デプロイメント] ページで、デプロイ[デプロイメントの作成] をクリックします。
表示されるダイアログボックスで、[エントリポイントのメイン引数] フィールドに変数名を入力します。次に、フィールドの下にある [変数] セクションに変数値を入力します。
変数名に特殊文字が含まれている場合は、エントリポイントのメイン引数パラメーターの値に特殊文字を指定したい場合はどうすればよいですか?に記載されている手順に従ってください。

その他のデプロイメントパラメーターの詳細については、デプロイメントを作成するをご参照ください。
[デプロイ] をクリックします。
に移動します。 [デプロイメント] ページで、ターゲットデプロイメントを見つけ、[操作] 列の [開始] をクリックします。
[ジョブの開始] パネルが表示されます。この特定の Flink ジョブの変数値を変更できます。

名前空間変数
変数の作成
エディター権限以上のメンバー、または変数作成権限を持つメンバーのみが変数を作成できます。
Realtime Compute for Apache Flink の開発コンソール にログインします。管理するワークスペースを見つけ、[操作] 列の [コンソール] をクリックします。
左側のナビゲーションウィンドウで、 を選択します。[変数] ページで、[変数の追加] をクリックします。
パラメーター
説明
変数名
変数名は同じ名前空間内で一意である必要があり、変数の作成後は変更できません。
変数値
変数値は大文字と小文字が区別されます。変数値に文字を入力する際は、大文字と小文字に注意してください。変数の値は、作成後に変更できます。詳細については、このトピックの 変数の編集または削除 セクションをご参照ください。
タイプ
変数のタイプは、作成後に変更できません。有効な値:
プレーンテキスト:[変数] ページで変数値を直接表示できます。
暗号テキスト:変数値を表示できません。

[OK] をクリックします。
変数の参照
変数を作成した後、${secret_values.変数名} 形式で変数を参照できます。次のセクションでは、さまざまなシナリオで変数を参照する例を示します。
データ開発での変数の参照
Realtime Compute for Apache Flink コンソールの [開発] モジュールで名前空間変数を参照できます。
ETL 用の SQL ドラフト
SQL ドラフトの DDL 文では、${secret_values.変数名} 形式で変数を参照できます。次のサンプルコードは例を示しています。
WITH 句で変数を参照する場合は、
'${secret_values.変数名}'形式で、変数を一重引用符(')で囲む必要があります。SQL 文で変数をテーブル名またはフィールド名として参照する場合は、
`${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}`;データの取り込み
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 デプロイメントの Main 関数で、変数を入力パラメーターとして使用できます。
Realtime Compute for Apache Flink の開発コンソールで、 を選択します。[デプロイメント] ページで、[デプロイメントの作成] をクリックします。
[エントリポイントのメイン引数] フィールドに変数名を入力します。次の図は構成を示しています。

その他のデプロイメントパラメーターの詳細については、「デプロイメントを作成する」をご参照ください。
[デプロイ] をクリックします。
デプロイメントのパラメーター構成での変数の参照
デプロイメントのパラメーター構成で変数を使用できます。
Realtime Compute for Apache Flink の開発コンソールで、 を選択します。[デプロイメント] ページで、管理するデプロイメントをクリックします。
[構成] タブで、[パラメーター] セクションの右上隅にある [編集] をクリックし、パラメーターを構成します。変数をパラメーター値として使用できます。次の図は構成を示しています。

[保存] をクリックします。
[ログ] セクションでの変数の参照
[ログ] セクションに移動します。
デプロイメントのログをエクスポートするためのパラメーターを構成する方法の詳細については、「デプロイメントのログをエクスポートするためのパラメーターを構成する」をご参照ください。
名前空間内のすべてのデプロイメントのログをエクスポートするためのパラメーターを構成する方法の詳細については、「名前空間内のすべてのデプロイメントのログをエクスポートするためのパラメーターを構成する」をご参照ください。
[ログ] セクションで変数を参照します。
次の例では、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 ベースのパラメーター構成での変数の参照
Realtime Compute for Apache Flink の開発コンソールでカタログを作成する場合、構成項目で変数を参照できます。
Realtime Compute for Apache Flink の開発コンソールで、左側のナビゲーションウィンドウの [カタログ] をクリックします。
[カタログの作成] ダイアログボックスで変数を参照します。この例では、MySQL カタログを作成するときに、
mysqlpasswordという名前の変数がパスワードパラメーターに使用されています。
変数の編集または削除
変数を編集または削除する際は注意してください。誤った操作を行うと、ドラフトデプロイメントが失敗したり、ドラフトを再デプロイする必要が生じる場合があります。既存の変数を削除しても、実行中のデプロイメントは影響を受けません。
Realtime Compute for Apache Flink コンソール にログインします。管理するワークスペースを見つけ、[操作] 列の [コンソール] をクリックします。
左側のナビゲーションウィンドウで、 を選択します。[変数] ページで、編集または削除する変数を見つけ、[操作] 列の [編集] または [削除] をクリックします。
変数の編集
変数の値を変更できます。エディター権限以上のメンバーのみが変数を編集できます。
変数の削除
エディター権限以上のメンバー、または変数削除権限を持つメンバーのみが変数を削除できます。
参照資料
SQL ドラフトの開発方法の詳細については、「SQL ドラフトを開発する」をご参照ください。
JAR または Python デプロイメントのデプロイメント パラメーターの詳細については、「デプロイメントを作成する」をご参照ください。
カタログの作成および使用方法の詳細については、「カタログを管理する」をご参照ください。
Realtime Compute for Apache Flink でサポートされているコネクタの詳細については、「サポートされているコネクタ」をご参照ください。