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