Skip to content

Commit

Permalink
[Feature][scaleph-plugin-seatunnel-connectors] upgrade seatunnel conn…
Browse files Browse the repository at this point in the history
…ectors to 2.3.8 (#754)

* feature: update prometheus operator 部署

* feature: upgrade seatunnel to 2.3.6

* feature: upgrade seatunnel cassandra connector to 2.3.7

* feature: upgrade seatunnel oracle-cdc connector to 2.3.7

* feature: update minio bucket policy

* feature: upgrade seatunnel to 2.3.8

* feature: upgrade seatunnel clickhouse to 2.3.8

* feature: upgrade seatunnel doris to 2.3.8

* feature: upgrade seatunnel elasticsearch to 2.3.8

* feature: upgrade seatunnel email to 2.3.8

---------

Co-authored-by: wangqi <[email protected]>
  • Loading branch information
kalencaya and wangqi authored Oct 15, 2024
1 parent ad7f1ae commit dcfc0af
Show file tree
Hide file tree
Showing 25 changed files with 105 additions and 35 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/release-manual-docker-seatunnel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ on:
seatunnelVersion:
description: 'seatunnel version'
required: true
default: '2.3.7'
default: '2.3.8'
type: choice
options:
- 2.3.8
- 2.3.7
- 2.3.6
flinkVersion:
description: 'flink version'
required: true
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Scaleph is driven by personal interest and evolves actively through faithful dev
* Data Integration
* Web-ui click-and-drag data integration ways backended by [Apache SeaTunnel](https://seatunnel.apache.org/) on Flink engine.

* Support the latest 2.3.7 V2 out-of-the-box connectors and transforms.
* Support the latest 2.3.8 V2 out-of-the-box connectors and transforms.

* DataSource management.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public enum FlinkImageMapping {
SQL_1_17(FlinkJobType.SQL, OperatorFlinkVersion.v1_17, FlinkVersionMapping.V_1_17, "ghcr.io/flowerfine/scaleph-sql-template:1.17"),
SQL_1_18(FlinkJobType.SQL, OperatorFlinkVersion.v1_18, FlinkVersionMapping.V_1_18, "ghcr.io/flowerfine/scaleph-sql-template:1.18"),

SEATUNNEL_1_16(FlinkJobType.SEATUNNEL, OperatorFlinkVersion.v1_16, FlinkVersionMapping.V_1_16, "ghcr.io/flowerfine/scaleph-seatunnel:2.3.7-flink-1.16"),
SEATUNNEL_1_16(FlinkJobType.SEATUNNEL, OperatorFlinkVersion.v1_16, FlinkVersionMapping.V_1_16, "ghcr.io/flowerfine/scaleph-seatunnel:2.3.8-flink-1.16"),
FLINK_CDC_1_18(FlinkJobType.FLINK_CDC, OperatorFlinkVersion.v1_18, FlinkVersionMapping.V_1_18, "ghcr.io/flowerfine/scaleph-flink-cdc:3.0.0-flink-1.18"),
;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ public enum SeaTunnelVersion implements DictInstance {
V_2_3_5("2.3.5", "2.3.5"),
V_2_3_6("2.3.6", "2.3.6"),
V_2_3_7("2.3.7", "2.3.7"),
V_2_3_8("2.3.8", "2.3.8"),
;

@JsonCreator
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
package cn.sliew.scaleph.plugin.seatunnel.flink.connectors.clickhosue;

import cn.sliew.scaleph.plugin.framework.property.*;
import org.codehaus.jackson.JsonNode;

public enum ClickHouseProperties {
;
Expand Down Expand Up @@ -60,4 +61,13 @@ public enum ClickHouseProperties {
.addValidator(Validators.NON_BLANK_VALIDATOR)
.validateAndBuild();

public static final PropertyDescriptor<JsonNode> CLICKHOUSE_CONFIG = new PropertyDescriptor.Builder()
.name("clickhouse.config")
.description(
"clickhouse.* The way to specify the parameter is to add the prefix clickhouse. to the original parameter name. For example, the way to specify socket_timeout is: clickhouse.socket_timeout = 50000 . "
+ "If these non-essential parameters are not specified, they will use the default values given by clickhouse-jdbc.\n")
.type(PropertyType.OBJECT)
.parser(Parsers.JSON_PARSER)
.validateAndBuild();

}
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,6 @@ public enum ClickHouseSinkProperties {
.addValidator(Validators.NON_BLANK_VALIDATOR)
.validateAndBuild();

public static final PropertyDescriptor<JsonNode> CLICKHOUSE_CONFIG = new PropertyDescriptor.Builder()
.name("clickhouse.config")
.description(
"clickhouse.* The way to specify the parameter is to add the prefix clickhouse. to the original parameter name. For example, the way to specify socket_timeout is: clickhouse.socket_timeout = 50000 . "
+ "If these non-essential parameters are not specified, they will use the default values given by clickhouse-jdbc.\n")
.type(PropertyType.OBJECT)
.parser(Parsers.JSON_PARSER)
.validateAndBuild();

public static final PropertyDescriptor<Integer> BULK_SIZE = new PropertyDescriptor.Builder()
.name("bulk_size")
.description(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ public ClickHouseSourcePlugin() {
final List<PropertyDescriptor> props = new ArrayList<>();
props.add(SQL);
props.add(SERVER_TIME_ZONE);
props.add(CLICKHOUSE_CONFIG);
props.add(CommonProperties.PARALLELISM);
props.add(CommonProperties.RESULT_TABLE_NAME);
supportedProperties = Collections.unmodifiableList(props);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
import java.util.List;

import static cn.sliew.scaleph.plugin.seatunnel.flink.connectors.doris.DorisProperties.*;
import static cn.sliew.scaleph.plugin.seatunnel.flink.connectors.doris.DorisProperties.DORIS_BATCH_SIZE;
import static cn.sliew.scaleph.plugin.seatunnel.flink.connectors.doris.source.DorisSourceProperties.*;

@AutoService(SeaTunnelConnectorPlugin.class)
Expand All @@ -51,6 +52,7 @@ public DorisSourcePlugin() {
props.add(TABLE);
props.add(DORIS_READ_FIELD);
props.add(DORIS_FILTER_QUERY);
props.add(DORIS_BATCH_SIZE);
props.add(DORIS_REQUEST_CONNECT_TIMEOUT_MS);
props.add(DORIS_REQUEST_QUERY_TIMEOUT_S);
props.add(DORIS_REQUEST_READ_TIMEOUT_MS);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,10 @@ public ElasticsearchSourcePlugin() {
"Used to read data from Elasticsearch. support version >= 2.x and < 8.x.",
ElasticsearchSourcePlugin.class.getName());
final List<PropertyDescriptor> props = new ArrayList<>();
props.add(INDEX_LIST);
props.add(INDEX);
props.add(SOURCE);
props.add(ARRAY_COLUMN);
props.add(QUERY);
props.add(SCROLL_TIME);
props.add(SCROLL_SIZE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,14 @@
public enum ElasticsearchSourceProperties {
;

public static final PropertyDescriptor<JsonNode> INDEX_LIST = new PropertyDescriptor.Builder()
.name("index_list")
.description("The index_list is used to define multi-index synchronization tasks")
.type(PropertyType.OBJECT)
.parser(Parsers.JSON_PARSER)
.addValidator(Validators.NON_BLANK_VALIDATOR)
.validateAndBuild();

public static final PropertyDescriptor<JsonNode> SOURCE = new PropertyDescriptor.Builder()
.name("source")
.description("The fields of index.")
Expand All @@ -35,6 +43,14 @@ public enum ElasticsearchSourceProperties {
.addValidator(Validators.NON_BLANK_VALIDATOR)
.validateAndBuild();

public static final PropertyDescriptor<String> ARRAY_COLUMN = new PropertyDescriptor.Builder()
.name("array_column")
.description("The fields of array type")
.type(PropertyType.STRING)
.parser(Parsers.STRING_PARSER)
.addValidator(Validators.NON_BLANK_VALIDATOR)
.validateAndBuild();

public static final PropertyDescriptor<JsonNode> QUERY = new PropertyDescriptor.Builder()
.name("query")
.description("Elasticsearch DSL. You can control the range of data read.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ public EmailSinkPlugin() {
props.add(EMAIL_TRANSPORT_PROTOCOL);
props.add(EMAIL_FROM_ADDRESS);
props.add(EMAIL_SMTP_AUTH);
props.add(EMAIL_SMTP_PORT);
props.add(EMAIL_AUTHORIZATION_CODE);
props.add(EMAIL_TO_ADDRESS);
props.add(EMAIL_MESSAGE_HEADLINE);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
package cn.sliew.scaleph.plugin.seatunnel.flink.connectors.email.sink;

import cn.sliew.scaleph.plugin.framework.property.*;
import com.amazonaws.services.dynamodbv2.xspec.BOOL;

public enum EmailSinkProperties {
;
Expand Down Expand Up @@ -50,13 +51,20 @@ public enum EmailSinkProperties {
.addValidator(Validators.NON_BLANK_VALIDATOR)
.validateAndBuild();

public static final PropertyDescriptor<String> EMAIL_SMTP_AUTH = new PropertyDescriptor.Builder()
public static final PropertyDescriptor<BOOL> EMAIL_SMTP_AUTH = new PropertyDescriptor.Builder()
.name("email_smtp_auth")
.description("Whether to authenticate the customer")
.type(PropertyType.STRING)
.parser(Parsers.STRING_PARSER)
.properties(Property.Required)
.addValidator(Validators.NON_BLANK_VALIDATOR)
.type(PropertyType.BOOLEAN)
.parser(Parsers.BOOLEAN_PARSER)
.addValidator(Validators.BOOLEAN_VALIDATOR)
.validateAndBuild();

public static final PropertyDescriptor<Integer> EMAIL_SMTP_PORT = new PropertyDescriptor.Builder()
.name("email_smtp_port")
.description("Select port for authentication.")
.type(PropertyType.INT)
.parser(Parsers.INTEGER_PARSER)
.addValidator(Validators.INTEGER_VALIDATOR)
.validateAndBuild();

public static final PropertyDescriptor<String> EMAIL_AUTHORIZATION_CODE = new PropertyDescriptor.Builder()
Expand Down
5 changes: 4 additions & 1 deletion scaleph-ui-react/src/locales/zh-CN/pages/project.ts
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,7 @@ export default {
'pages.project.di.step.email.emailTransportProtocol': '邮件传输协议',
'pages.project.di.step.email.emailFromAddress': '邮件发送者地址',
'pages.project.di.step.email.emailSmtpAuth': '启用SMTP认证',
'pages.project.di.step.email.emailSmtpPort': 'SMTP端口号',
'pages.project.di.step.email.emailAuthorizationCode': 'SMTP认证代码',
'pages.project.di.step.email.emailToAddress': '邮件接收者地址',
'pages.project.di.step.email.emailMessageHeadline': '邮件标题',
Expand Down Expand Up @@ -611,6 +612,8 @@ export default {
'pages.project.di.step.elasticsearch.scrollSize': '滚动大小',
'pages.project.di.step.elasticsearch.source': '字段列表',
'pages.project.di.step.elasticsearch.source.tooltip': '字段列表',
'pages.project.di.step.elasticsearch.arrayColumn': '数组字段',
'pages.project.di.step.elasticsearch.arrayColumn.placeholder': '{tags = "array<string>",phones = "array<string>"}',

// neo4j
'pages.project.di.step.neo4j.uri': 'URI',
Expand Down Expand Up @@ -679,7 +682,7 @@ export default {
'pages.project.di.step.doris.sinkMaxRetries': '重试次数',
'pages.project.di.step.doris.sinkBufferSize': 'Buffer 大小',
'pages.project.di.step.doris.sinkBufferCount': 'Buffer 数量',
'pages.project.di.step.doris.dorisBatchSize': '批量写入数量',
'pages.project.di.step.doris.dorisBatchSize': '批量读取或写入数量',
'pages.project.di.step.doris.needsUnsupportedTypeCasting': '启用类型转换',
'pages.project.di.step.doris.needsUnsupportedTypeCasting.tooltip': '上游数据类型和 Doris 数据类型不匹配时,将上游数据转换成 Doris 支持的数据类型。如 Decimal64 转换成 Double',
'pages.project.di.step.doris.saveModeCreateTemplate': 'Schema 创建模板',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ const SeaTunnelConnectorDagNode = ({node}: { node: Node }) => {
>
<Popover title={<div>
<Typography.Text>{node.data.label}</Typography.Text>
<a href="https://seatunnel.apache.org/docs/2.3.7/about/" target="_blank">
<a href="https://seatunnel.apache.org/docs/2.3.8/about/" target="_blank">
<Button shape="default" type="link" icon={<InfoCircleOutlined/>}/>
</a>
</div>}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,7 @@ export const EmailParams = {
emailTransportProtocol: 'email_transport_protocol',
emailFromAddress: 'email_from_address',
emailSmtpAuth: 'email_smtp_auth',
emailSmtpPort: 'email_smtp_port',
emailAuthorizationCode: 'email_authorization_code',
emailToAddress: 'email_to_address',
emailMessageHeadline: 'email_message_headline',
Expand Down Expand Up @@ -500,6 +501,7 @@ export const ElasticsearchParams = {
scrollTime: "scroll_time",
scrollSize: "scroll_size",
source: "source",
arrayColumn: "array_column",
schema: "schema"
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React, {useEffect} from 'react';
import {Form} from 'antd';
import {
DrawerForm,
ProFormDependency,
ProFormDependency, ProFormDigit,
ProFormGroup,
ProFormSelect,
ProFormSwitch,
Expand Down Expand Up @@ -81,6 +81,12 @@ const SinkEmailStepForm: React.FC<ModalFormProps<Node>> = ({data, visible, onVis
if (email_smtp_auth) {
return (
<ProFormGroup>
<ProFormDigit
name={EmailParams.emailSmtpPort}
label={intl.formatMessage({id: 'pages.project.di.step.email.emailSmtpPort'})}
min={0}
initialValue={465}
/>
<ProFormTextArea
name={EmailParams.emailAuthorizationCode}
label={intl.formatMessage({id: 'pages.project.di.step.email.emailAuthorizationCode'})}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import React, {useEffect} from 'react';
import {Form} from 'antd';
import {InfoCircleOutlined} from "@ant-design/icons";
import {DrawerForm, ProFormText, ProFormTextArea,} from '@ant-design/pro-components';
import {DrawerForm, ProFormGroup, ProFormText, ProFormTextArea,} from '@ant-design/pro-components';
import {getIntl, getLocale} from "@umijs/max";
import {Node, XFlow} from '@antv/xflow';
import {ModalFormProps} from '@/typings';
import {ClickHouseParams, STEP_ATTR_TYPE} from '../constant';
import DataSourceItem from "../dataSource";
import CommonConfigItem
from "@/pages/Project/Workspace/DataIntegration/SeaTunnel/Dag/components/node/steps/common/config/commonConfig";

const SourceClickHouseStepForm: React.FC<ModalFormProps<Node>> = ({data, visible, onVisibleChange, onOK}) => {
const intl = getIntl(getLocale());
Expand Down Expand Up @@ -58,6 +60,17 @@ const SourceClickHouseStepForm: React.FC<ModalFormProps<Node>> = ({data, visible
icon: <InfoCircleOutlined/>,
}}
/>
<ProFormGroup
title={intl.formatMessage({id: 'pages.project.di.step.clickhosue.clickhouseConf'})}
tooltip={{
title: intl.formatMessage({id: 'pages.project.di.step.clickhosue.clickhouseConf.tooltip'}),
icon: <InfoCircleOutlined/>,
}}
collapsible={true}
defaultCollapsed={true}
>
<CommonConfigItem data={ClickHouseParams.clickhouseConf}/>
</ProFormGroup>
</DrawerForm>
</XFlow>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,15 @@ const SourceDorisStepForm: React.FC<ModalFormProps<Node>> = ({data, visible, onV
placeholder={intl.formatMessage({id: 'pages.project.di.step.doris.dorisFiterQuery.placeholder'})}
colProps={{span: 12}}
/>
<ProFormDigit
name={DorisParams.dorisBatchSize}
label={intl.formatMessage({id: 'pages.project.di.step.doris.dorisBatchSize'})}
initialValue={1024}
fieldProps={{
step: 1024,
min: 1
}}
/>
<ProFormDigit
name={DorisParams.dorisRequestConnectTimeoutMs}
label={intl.formatMessage({id: 'pages.project.di.step.doris.dorisRequestConnectTimeoutMs'})}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,12 @@ const SourceElasticsearchStepForm: React.FC<ModalFormProps<Node>> = ({data, visi
>
<CommonListItem data={ElasticsearchParams.source}/>
</ProFormGroup>
<FieldItem/>
<ProFormText
name={ElasticsearchParams.arrayColumn}
label={intl.formatMessage({id: 'pages.project.di.step.elasticsearch.arrayColumn'})}
placeholder={intl.formatMessage({id: 'pages.project.di.step.elasticsearch.arrayColumn.placeholder'})}
/>
{/*<FieldItem/>*/}
</DrawerForm>
</XFlow>
);
Expand Down
2 changes: 1 addition & 1 deletion tools/docker/build/scaleph-seatunnel/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ ARG FLINK_VERSION=1.16
ARG BASE_RELEASE_IMAGE=flink:${FLINK_VERSION}
FROM $BASE_RELEASE_IMAGE as release

ARG SEATUNNEL_VERSION=2.3.7
ARG SEATUNNEL_VERSION=2.3.8
ARG TAR_FILE=apache-seatunnel-${SEATUNNEL_VERSION}-bin.tar.gz

ENV SEATUNNEL_HOME=/opt/seatunnel
Expand Down
2 changes: 1 addition & 1 deletion tools/docker/build/scaleph-seatunnel/Dockerfile_backup
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ ARG FLINK_VERSION=1.15
ARG BASE_RELEASE_IMAGE=flink:${FLINK_VERSION}
FROM maven:3.8-eclipse-temurin-11 as build

ARG SEATUNNEL_VERSION=2.3.7
ARG SEATUNNEL_VERSION=2.3.8

ENV SEATUNNEL_HOME=/opt/seatunnel

Expand Down
2 changes: 1 addition & 1 deletion tools/docker/build/scaleph-seatunnel/Dockerfile_single
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ ARG FLINK_VERSION=1.15
ARG BASE_RELEASE_IMAGE=flink:${FLINK_VERSION}
FROM $BASE_RELEASE_IMAGE as release

ARG SEATUNNEL_VERSION=2.3.7
ARG SEATUNNEL_VERSION=2.3.8

ENV SEATUNNEL_HOME=/opt/seatunnel

Expand Down
2 changes: 1 addition & 1 deletion tools/docker/build/scaleph-seatunnel/install-plugin.sh
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
SEATUNNEL_HOME=$(cd $(dirname $0);cd ../;pwd)

# connector default version is 2.3.4, you can also choose a custom version. eg: 2.1.2: sh install-plugin.sh 2.1.2
version=2.3.7
version=2.3.8

if [ -n "$1" ]; then
version="$1"
Expand Down
2 changes: 1 addition & 1 deletion tools/docker/local/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ services:
environment:
- MINIO_ROOT_USER=admin
- MINIO_ROOT_PASSWORD=password
- MINIO_DEFAULT_BUCKETS=scaleph
- MINIO_DEFAULT_BUCKETS=scaleph,scaleph-public:public
ports:
- 9000:9000
- 9001:9001
Expand Down
14 changes: 7 additions & 7 deletions tools/docker/mysql/init.d/scaleph-ws-mysql.sql
Original file line number Diff line number Diff line change
Expand Up @@ -176,25 +176,25 @@ create table ws_artifact_seatunnel
) engine = innodb comment 'artifact seatunnel';
INSERT INTO ws_artifact_seatunnel(id, artifact_id, seatunnel_engine, flink_version, seatunnel_version, dag_id, current,
creator, editor)
VALUES (1, 4, 'seatunnel', '1.16.3', '2.3.7', 1, 1, 'sys', 'sys');
VALUES (1, 4, 'seatunnel', '1.16.3', '2.3.8', 1, 1, 'sys', 'sys');
INSERT INTO ws_artifact_seatunnel(id, artifact_id, seatunnel_engine, flink_version, seatunnel_version, dag_id, current,
creator, editor)
VALUES (2, 5, 'seatunnel', '1.16.3', '2.3.7', 2, 1, 'sys', 'sys');
VALUES (2, 5, 'seatunnel', '1.16.3', '2.3.8', 2, 1, 'sys', 'sys');
INSERT INTO ws_artifact_seatunnel(id, artifact_id, seatunnel_engine, flink_version, seatunnel_version, dag_id, current,
creator, editor)
VALUES (3, 11, 'seatunnel', '1.16.3', '2.3.7', 8, 1, 'sys', 'sys');
VALUES (3, 11, 'seatunnel', '1.16.3', '2.3.8', 8, 1, 'sys', 'sys');
INSERT INTO ws_artifact_seatunnel(id, artifact_id, seatunnel_engine, flink_version, seatunnel_version, dag_id, current,
creator, editor)
VALUES (4, 12, 'seatunnel', '1.16.3', '2.3.7', 9, '1', 'sys', 'sys');
VALUES (4, 12, 'seatunnel', '1.16.3', '2.3.8', 9, '1', 'sys', 'sys');
INSERT INTO `ws_artifact_seatunnel`(`id`, `artifact_id`, `seatunnel_engine`, `flink_version`, `seatunnel_version`,
`dag_id`, `current`, `creator`, `editor`)
VALUES (5, 13, 'seatunnel', '1.16.3', '2.3.7', 10, '1', 'sys', 'sys');
VALUES (5, 13, 'seatunnel', '1.16.3', '2.3.8', 10, '1', 'sys', 'sys');
INSERT INTO `ws_artifact_seatunnel`(`id`, `artifact_id`, `seatunnel_engine`, `flink_version`, `seatunnel_version`,
`dag_id`, `current`, `creator`, `editor`)
VALUES (6, 14, 'seatunnel', '1.16.3', '2.3.7', 11, '1', 'sys', 'sys');
VALUES (6, 14, 'seatunnel', '1.16.3', '2.3.8', 11, '1', 'sys', 'sys');
INSERT INTO `ws_artifact_seatunnel`(`id`, `artifact_id`, `seatunnel_engine`, `flink_version`, `seatunnel_version`,
`dag_id`, `current`, `creator`, `editor`)
VALUES (7, 15, 'seatunnel', '1.16.3', '2.3.7', 12, '1', 'sys', 'sys');
VALUES (7, 15, 'seatunnel', '1.16.3', '2.3.8', 12, '1', 'sys', 'sys');

DROP TABLE IF EXISTS ws_flink_kubernetes_template;
CREATE TABLE ws_flink_kubernetes_template
Expand Down

0 comments on commit dcfc0af

Please sign in to comment.