SQL作業
建立一個已部署SQL作業,必填請求參數如下。
-
workspace:工作空間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:JM CPU核心數。例如2。
-
body.streamingResourceSetting.basicResourceSetting.jobmanagerResourceSettingSpec.memory:JM記憶體。例如4.0 GiB。
-
body.streamingResourceSetting.basicResourceSetting.taskmanagerResourceSettingSpec.cpu:TM CPU核心數。例如2。
-
body.streamingResourceSetting.basicResourceSetting.taskmanagerResourceSettingSpec.memory:TM記憶體。例如4.0 GiB。
package com.aliyun.sample;
import com.aliyun.tea.*;
public class Sample {
/**
* <b>description</b> :
* <p>使用AK&SK初始化帳號Client</p>
* @return Client
*
* @throws Exception
*/
public static com.aliyun.teaopenapi.Client createClient() throws Exception {
// 工程代碼泄露可能會導致 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()
// 介面名稱
.setAction("CreateDeployment")
// 介面版本
.setVersion("2022-07-18")
// 介面協議
.setProtocol("HTTPS")
// 介面 HTTP 方法
.setMethod("POST")
.setAuthType("AK")
.setStyle("ROA")
// 介面 PATH
.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", "4")
)),
new TeaPair("taskmanagerResourceSettingSpec", TeaConverter.buildMap(
new TeaPair("cpu", 2),
new TeaPair("memory", "4")
))
))
))
);
// 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 類型,可從 Map 中獲得三類資料:響應體 body、回應標頭 headers、HTTP 返回的狀態代碼 statusCode。
client.callApi(params, request, runtime);
java.util.Map<String, ?> response = client.callApi(params, request, runtime);
System.out.println(response);
}
}
JAR作業
建立並部署一個JAR作業,必填請求參數如下。
-
workspace:工作空間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/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:JM CPU核心數。例如2。
-
body.streamingResourceSetting.basicResourceSetting.jobmanagerResourceSettingSpec.memory:JM記憶體。例如4.0 GiB。
-
body.streamingResourceSetting.basicResourceSetting.taskmanagerResourceSettingSpec.cpu:TM CPU核心數。例如2。
-
body.streamingResourceSetting.basicResourceSetting.taskmanagerResourceSettingSpec.memory:TM記憶體。例如4.0 GiB。
package com.aliyun.sample;
import com.aliyun.tea.*;
public class Sample {
/**
* <b>description</b> :
* <p>使用AK&SK初始化帳號Client</p>
* @return Client
*
* @throws Exception
*/
public static com.aliyun.teaopenapi.Client createClient() throws Exception {
// 工程代碼泄露可能會導致 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()
// 介面名稱
.setAction("CreateDeployment")
// 介面版本
.setVersion("2022-07-18")
// 介面協議
.setProtocol("HTTPS")
// 介面 HTTP 方法
.setMethod("POST")
.setAuthType("AK")
.setStyle("ROA")
// 介面 PATH
.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", "4")
)),
new TeaPair("taskmanagerResourceSettingSpec", TeaConverter.buildMap(
new TeaPair("cpu", 2),
new TeaPair("memory", "4")
))
))
))
);
// 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 類型,可從 Map 中獲得三類資料:響應體 body、回應標頭 headers、HTTP 返回的狀態代碼 statusCode。
java.util.Map<String, ?> response = client.callApi(params, request, runtime);
System.out.println(response);
}
}