SQL デプロイメント
このサンプルでは、SQL デプロイメントを作成する方法を説明します。
-
workspace:ワークスペースの ID。この ID は、購入済みワークスペースの表示 時に返される ResourceId から取得できます。例:adf9e514****。
-
namespace:名前空間の名前。例:test-default。
-
body.name:ジョブの名前。例:mysql_data_holo_test。
-
body.engineVersion:エンジンバージョン。例:vvr-8.0.7-flink-1.17。サポートされているエンジンバージョンの一覧表示 により、サポートされているエンジンバージョンを取得できます。
-
body.sqlArtifact.sqlScript:SQL スクリプトの内容。例:CREATE TEMPORARY TABLE datagen_source( name VARCHAR ) WITH ( 'connector' = 'datagen' ); CREATE TEMPORARY TABLE blackhole_sink( name VARCHAR ) with ( 'connector' = 'blackhole' ); INSERT INTO blackhole_sink SELECT name from datagen_source;。
-
body.sqlArtifact.kind:ジョブの種類。例:SQLSCRIPT。
-
body.deploymentTarget.mode:デプロイモード。PER_JOB モードのみがサポートされています。
-
body.deploymentTarget.name:デプロイキューの名前。例:default-queue。
-
body.executionMode:実行モード。例:STREAMING (ストリーミングモード)。
-
body.streamingResourceSetting.resourceSettingMode:ストリーミングモードのリソースモード。例:BASIC。
-
body.streamingResourceSetting.basicResourceSetting.jobmanagerResourceSettingSpec.cpu:JobManager の CPU コア数。例:2。
-
body.streamingResourceSetting.basicResourceSetting.jobmanagerResourceSettingSpec.memory:JobManager のメモリ。例:4 GiB。
-
body.streamingResourceSetting.basicResourceSetting.taskmanagerResourceSettingSpec.cpu:TaskManager の CPU コア数。例:2。
-
body.streamingResourceSetting.basicResourceSetting.taskmanagerResourceSettingSpec.memory:TaskManager のメモリ。例:4 GiB。
package com.aliyun.sample;
import com.aliyun.tea.*;
public class Sample {
/**
* <b>description</b> :
* <p>AccessKey ID と AccessKey Secret を使用してクライアントを初期化します。</p>
* @return Client
*
* @throws Exception
*/
public static com.aliyun.teaopenapi.Client createClient() throws Exception {
// コード内に AccessKey ペアをハードコーディングすると、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが脅かされる可能性があります。以下のサンプルコードは参考用です。
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
// 必須。ランタイム環境で ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// 必須。ランタイム環境で ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
config.endpoint = "ververica.cn-beijing.aliyuncs.com";
return new com.aliyun.teaopenapi.Client(config);
}
/**
* <b>description</b> :
* <p>API パラメータ</p>
*
* @param path params
* @return OpenApi.Params
*/
public static com.aliyun.teaopenapi.models.Params createApiInfo(String namespace) throws Exception {
com.aliyun.teaopenapi.models.Params params = new com.aliyun.teaopenapi.models.Params()
// API オペレーションの名前。
.setAction("CreateDeployment")
// API オペレーションのバージョン。
.setVersion("2022-07-18")
// API オペレーションのプロトコル。
.setProtocol("HTTPS")
// API オペレーションの HTTP メソッド。
.setMethod("POST")
.setAuthType("AK")
.setStyle("ROA")
// API オペレーションのリクエストパス。
.setPathname("/api/v2/namespaces/" + namespace + "/deployments")
// リクエストボディの形式。
.setReqBodyType("json")
// レスポンスボディの形式。
.setBodyType("json");
return params;
}
public static void main(String[] args_) throws Exception {
java.util.List<String> args = java.util.Arrays.asList(args_);
com.aliyun.teaopenapi.Client client = Sample.createClient();
com.aliyun.teaopenapi.models.Params params = Sample.createApiInfo("test-default");
// body params
java.util.Map<String, Object> body = TeaConverter.buildMap(
new TeaPair("name", "mysql_data_holo_test"),
new TeaPair("engineVersion", "vvr-8.0.7-flink-1.17"),
new TeaPair("artifact", TeaConverter.buildMap(
new TeaPair("sqlArtifact", TeaConverter.buildMap(
new TeaPair("sqlScript", "CREATE TEMPORARY TABLE datagen_source( name VARCHAR ) WITH ( 'connector' = 'datagen' ); CREATE TEMPORARY TABLE blackhole_sink( name VARCHAR ) with ( 'connector' = 'blackhole' ); INSERT INTO blackhole_sink SELECT name from datagen_source;")
)),
new TeaPair("kind", "SQLSCRIPT")
)),
new TeaPair("deploymentTarget", TeaConverter.buildMap(
new TeaPair("mode", "PER_JOB"),
new TeaPair("name", "default-queue")
)),
new TeaPair("executionMode", "STREAMING"),
new TeaPair("streamingResourceSetting", TeaConverter.buildMap(
new TeaPair("resourceSettingMode", "BASIC"),
new TeaPair("basicResourceSetting", TeaConverter.buildMap(
new TeaPair("jobmanagerResourceSettingSpec", TeaConverter.buildMap(
new TeaPair("cpu", 2),
new TeaPair("memory", "4Gi")
)),
new TeaPair("taskmanagerResourceSettingSpec", TeaConverter.buildMap(
new TeaPair("cpu", 2),
new TeaPair("memory", "4Gi")
))
))
))
);
// header params
java.util.Map<String, String> headers = new java.util.HashMap<>();
headers.put("workspace", "ab2*******884d");
// runtime options
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
com.aliyun.teaopenapi.models.OpenApiRequest request = new com.aliyun.teaopenapi.models.OpenApiRequest()
.setHeaders(headers)
.setBody(body);
// このメソッドは Map を返します。マップからレスポンスボディ、レスポンスヘッダー、および HTTP ステータスコードを取得できます。
client.callApi(params, request, runtime);
java.util.Map<String, ?> response = client.callApi(params, request, runtime);
System.out.println(response);
}
}
JAR デプロイメント
このサンプルでは、JAR デプロイメントを作成する方法を説明します。
説明
-
JAR パッケージを OSS バケットにアップロードし、Realtime Compute for Apache Flink ワークスペースからアクセスできることを確認してください。詳細については、「シンプルアップロード」をご参照ください。
-
ファイルのアップロード後、ダウンロード URL は https://<Bucket>.oss-<Region>.aliyuncs.com/<FileName> の形式になります。
-
workspace:ワークスペースの ID。この ID は、購入済みワークスペースの表示 時に返される ResourceId から取得できます。例:adf9e514****。
-
namespace:名前空間の名前。例:test-default。
-
body.name:ジョブ名。例:my-test-jar。
-
body.engineVersion:エンジンバージョン。例:vvr-8.0.7-flink-1.17。サポートされているエンジンバージョンの一覧を取得する ことができます。
-
body.jarArtifact.kind:ジョブアーティファクトの種類。例:JAR。
-
body.jarArtifact.jarUri:JAR デプロイメントの完全な URL パス。例:https://myBucket.oss-cn-hangzhou.aliyuncs.com/test.jar。
-
body.jarArtifact.entryClass:エントリポイントクラス。完全修飾クラス名を指定する必要があります。例:org.apache.flink.test。
-
body.deploymentTarget.mode:デプロイモード。PER_JOB モードのみがサポートされています。
-
body.deploymentTarget.name:デプロイキューの名前。例:default-queue。
-
body.executionMode:実行モード。例:STREAMING (ストリーミングモード)。
-
body.streamingResourceSetting.resourceSettingMode:ストリーミングモードのリソースモード。例:BASIC。
-
body.streamingResourceSetting.basicResourceSetting.jobmanagerResourceSettingSpec.cpu:JobManager の CPU コア数。例:2。
-
body.streamingResourceSetting.basicResourceSetting.jobmanagerResourceSettingSpec.memory:JobManager のメモリ。例:4 GiB。
-
body.streamingResourceSetting.basicResourceSetting.taskmanagerResourceSettingSpec.cpu:TaskManager の CPU コア数。例:2。
-
body.streamingResourceSetting.basicResourceSetting.taskmanagerResourceSettingSpec.memory:TaskManager のメモリ。例:4 GiB。
package com.aliyun.sample;
import com.aliyun.tea.*;
public class Sample {
/**
* <b>description</b> :
* <p>AccessKey ID と AccessKey Secret を使用してクライアントを初期化します。</p>
* @return Client
*
* @throws Exception
*/
public static com.aliyun.teaopenapi.Client createClient() throws Exception {
// コード内に AccessKey ペアをハードコーディングすると、AccessKey ペアが漏洩し、アカウント内のすべてのリソースのセキュリティが脅かされる可能性があります。以下のサンプルコードは参考用です。
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
// 必須。ランタイム環境で ALIBABA_CLOUD_ACCESS_KEY_ID 環境変数が設定されていることを確認してください。
.setAccessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"))
// 必須。ランタイム環境で ALIBABA_CLOUD_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
.setAccessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));
config.endpoint = "ververica.cn-hangzhou.aliyuncs.com";
return new com.aliyun.teaopenapi.Client(config);
}
/**
* <b>description</b> :
* <p>API パラメータ</p>
*
* @param path params
* @return OpenApi.Params
*/
public static com.aliyun.teaopenapi.models.Params createApiInfo(String namespace) throws Exception {
com.aliyun.teaopenapi.models.Params params = new com.aliyun.teaopenapi.models.Params()
// API オペレーションの名前。
.setAction("CreateDeployment")
// API オペレーションのバージョン。
.setVersion("2022-07-18")
// API オペレーションのプロトコル。
.setProtocol("HTTPS")
// API オペレーションの HTTP メソッド。
.setMethod("POST")
.setAuthType("AK")
.setStyle("ROA")
// API オペレーションのリクエストパス。
.setPathname("/api/v2/namespaces/" + namespace + "/deployments")
// リクエストボディの形式。
.setReqBodyType("json")
// レスポンスボディの形式。
.setBodyType("json");
return params;
}
public static void main(String[] args_) throws Exception {
java.util.List<String> args = java.util.Arrays.asList(args_);
com.aliyun.teaopenapi.Client client = Sample.createClient();
com.aliyun.teaopenapi.models.Params params = Sample.createApiInfo("flink-default");
// body params
java.util.Map<String, Object> body = TeaConverter.buildMap(
new TeaPair("name", "my-test-jar"),
new TeaPair("engineVersion", "vvr-8.0.7-flink-1.17"),
new TeaPair("artifact", TeaConverter.buildMap(
new TeaPair("kind", "JAR"),
new TeaPair("jarArtifact", TeaConverter.buildMap(
new TeaPair("jarUri", "https://flink-test.oss-cn-hangzhou.aliyuncs.com/flinkDemo.jar?*****"),
new TeaPair("entryClass", "com.aliyun.FlinkDemo")
))
)),
new TeaPair("deploymentTarget", TeaConverter.buildMap(
new TeaPair("mode", "PER_JOB"),
new TeaPair("name", "default-queue")
)),
new TeaPair("executionMode", "STREAMING"),
new TeaPair("streamingResourceSetting", TeaConverter.buildMap(
new TeaPair("resourceSettingMode", "BASIC"),
new TeaPair("basicResourceSetting", TeaConverter.buildMap(
new TeaPair("jobmanagerResourceSettingSpec", TeaConverter.buildMap(
new TeaPair("cpu", 2),
new TeaPair("memory", "4Gi")
)),
new TeaPair("taskmanagerResourceSettingSpec", TeaConverter.buildMap(
new TeaPair("cpu", 2),
new TeaPair("memory", "4Gi")
))
))
))
);
// header params
java.util.Map<String, String> headers = new java.util.HashMap<>();
headers.put("workspace", "d05a*****e44");
// runtime options
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
com.aliyun.teaopenapi.models.OpenApiRequest request = new com.aliyun.teaopenapi.models.OpenApiRequest()
.setHeaders(headers)
.setBody(body);
// このメソッドは Map を返します。マップからレスポンスボディ、レスポンスヘッダー、および HTTP ステータスコードを取得できます。
java.util.Map<String, ?> response = client.callApi(params, request, runtime);
System.out.println(response);
}
}