This is an automated email from the ASF dual-hosted git repository.
benjobs pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
The following commit(s) were added to refs/heads/dev by this push:
new 74d2c6572 [Improve] reclassify resource type and add engine type for
better extensibility (#2721)
74d2c6572 is described below
commit 74d2c6572402953dc807121cfaa59cfaddd572af
Author: zhoulii <[email protected]>
AuthorDate: Thu May 4 20:36:20 2023 +0800
[Improve] reclassify resource type and add engine type for better
extensibility (#2721)
Co-authored-by: zhoulii <[email protected]>
---
.../main/assembly/script/schema/mysql-schema.sql | 3 ++-
.../main/assembly/script/schema/pgsql-schema.sql | 2 ++
.../main/assembly/script/upgrade/mysql/2.2.0.sql | 1 +
.../main/assembly/script/upgrade/pgsql/2.2.0.sql | 2 ++
.../streampark/console/core/entity/Resource.java | 3 +++
.../enums/{ResourceType.java => EngineType.java} | 23 ++++++----------
.../console/core/enums/ResourceType.java | 19 +++++++------
.../src/main/resources/db/schema-h2.sql | 1 +
.../main/resources/mapper/core/ResourceMapper.xml | 1 +
.../src/api/flink/resource/model/resourceModel.ts | 2 ++
.../src/locales/lang/en/flink/resource.ts | 4 +++
.../src/locales/lang/zh-CN/flink/resource.ts | 4 +++
.../src/views/flink/app/hooks/useFlinkRender.tsx | 4 +--
.../src/views/flink/resource/View.vue | 31 ++++++++++++++--------
.../flink/resource/components/ResourceDrawer.vue | 26 +++++++++++++-----
.../src/views/flink/resource/resource.data.ts | 16 ++++++++---
16 files changed, 93 insertions(+), 49 deletions(-)
diff --git
a/streampark-console/streampark-console-service/src/main/assembly/script/schema/mysql-schema.sql
b/streampark-console/streampark-console-service/src/main/assembly/script/schema/mysql-schema.sql
index bd484b520..246e72693 100644
---
a/streampark-console/streampark-console-service/src/main/assembly/script/schema/mysql-schema.sql
+++
b/streampark-console/streampark-console-service/src/main/assembly/script/schema/mysql-schema.sql
@@ -315,7 +315,8 @@ drop table if exists `t_resource`;
create table `t_resource` (
`id` bigint not null auto_increment,
`resource_name` varchar(128) collate utf8mb4_general_ci not null comment
'The name of the resource file',
- `resource_type` int not null comment '0:app 1:common 2:connector 3:format
4:udf',
+ `resource_type` int not null comment '0:app 1:common 2:connector 3:format
4:udf',
+ `engine_type` int not null comment 'compute engine type, 0:apache flink
1:apache spark',
`main_class` varchar(255) collate utf8mb4_general_ci default null,
`description` text collate utf8mb4_general_ci default null comment 'More
detailed description of resource',
`creator_id` bigint collate utf8mb4_general_ci not null comment 'user id of
creator',
diff --git
a/streampark-console/streampark-console-service/src/main/assembly/script/schema/pgsql-schema.sql
b/streampark-console/streampark-console-service/src/main/assembly/script/schema/pgsql-schema.sql
index c6252700c..52f2dafa8 100644
---
a/streampark-console/streampark-console-service/src/main/assembly/script/schema/pgsql-schema.sql
+++
b/streampark-console/streampark-console-service/src/main/assembly/script/schema/pgsql-schema.sql
@@ -609,6 +609,7 @@ create table "public"."t_resource" (
"id" int8 not null default
nextval('streampark_t_resource_id_seq'::regclass),
"resource_name" varchar(128) collate
"pg_catalog"."default" not null,
"resource_type" int4,
+ "engine_type" int4,
"main_class" varchar(255) collate
"pg_catalog"."default",
"description" text collate
"pg_catalog"."default" default null,
"creator_id" int8 not null,
@@ -620,6 +621,7 @@ create table "public"."t_resource" (
comment on column "public"."t_resource"."id" is 'Resource id';
comment on column "public"."t_resource"."resource_name" is 'Resource name';
comment on column "public"."t_resource"."resource_type" is '0:app 1:common
2:connector 3:format 4:udf';
+comment on column "public"."t_resource"."engine_type" is 'compute engine type,
0:apache flink 1:apache spark';
comment on column "public"."t_resource"."main_class" is 'The program main
class';
comment on column "public"."t_resource"."description" is 'More detailed
description of resource';
comment on column "public"."t_resource"."creator_id" is 'user id of creator';
diff --git
a/streampark-console/streampark-console-service/src/main/assembly/script/upgrade/mysql/2.2.0.sql
b/streampark-console/streampark-console-service/src/main/assembly/script/upgrade/mysql/2.2.0.sql
index 073759f9c..3bc697b3a 100644
---
a/streampark-console/streampark-console-service/src/main/assembly/script/upgrade/mysql/2.2.0.sql
+++
b/streampark-console/streampark-console-service/src/main/assembly/script/upgrade/mysql/2.2.0.sql
@@ -28,6 +28,7 @@ create table `t_resource` (
`id` bigint not null auto_increment,
`resource_name` varchar(128) collate
utf8mb4_general_ci not null comment 'The name of the resource file',
`resource_type` int not null comment '0:app
1:common 2:connector 3:format 4:udf',
+ `engine_type` int not null comment 'compute
engine type, 0:apache flink 1:apache spark',
`main_class` varchar(255) collate
utf8mb4_general_ci default null,
`description` text collate utf8mb4_general_ci
default null comment 'More detailed description of resource',
`creator_id` bigint collate utf8mb4_general_ci
not null comment 'user id of creator',
diff --git
a/streampark-console/streampark-console-service/src/main/assembly/script/upgrade/pgsql/2.2.0.sql
b/streampark-console/streampark-console-service/src/main/assembly/script/upgrade/pgsql/2.2.0.sql
index a64a57b66..e42d2624a 100644
---
a/streampark-console/streampark-console-service/src/main/assembly/script/upgrade/pgsql/2.2.0.sql
+++
b/streampark-console/streampark-console-service/src/main/assembly/script/upgrade/pgsql/2.2.0.sql
@@ -25,6 +25,7 @@ create table "public"."t_resource" (
"id" int8 not null default
nextval('streampark_t_resource_id_seq'::regclass),
"resource_name" varchar(128) collate
"pg_catalog"."default" not null,
"resource_type" int4,
+ "engine_type" int4,
"main_class" varchar(255) collate
"pg_catalog"."default",
"description" text collate
"pg_catalog"."default" default null,
"creator_id" int8 not null,
@@ -36,6 +37,7 @@ create table "public"."t_resource" (
comment on column "public"."t_resource"."id" is 'Resource id';
comment on column "public"."t_resource"."resource_name" is 'Resource name';
comment on column "public"."t_resource"."resource_type" is '0:app 1:common
2:connector 3:format 4:udf';
+comment on column "public"."t_resource"."engine_type" is 'compute engine type,
0:apache flink 1:apache spark';
comment on column "public"."t_resource"."main_class" is 'The program main
class';
comment on column "public"."t_resource"."description" is 'More detailed
description of resource';
comment on column "public"."t_resource"."creator_id" is 'user id of creator';
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Resource.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Resource.java
index d516c0376..93e181254 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Resource.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/entity/Resource.java
@@ -17,6 +17,7 @@
package org.apache.streampark.console.core.entity;
+import org.apache.streampark.console.core.enums.EngineType;
import org.apache.streampark.console.core.enums.ResourceType;
import com.baomidou.mybatisplus.annotation.IdType;
@@ -49,6 +50,8 @@ public class Resource implements Serializable {
private ResourceType resourceType;
+ private EngineType engineType;
+
private String mainClass;
/** user name of creator */
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/enums/ResourceType.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/enums/EngineType.java
similarity index 75%
copy from
streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/enums/ResourceType.java
copy to
streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/enums/EngineType.java
index de6754ea1..b47b7da3e 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/enums/ResourceType.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/enums/EngineType.java
@@ -21,25 +21,18 @@ import com.baomidou.mybatisplus.annotation.EnumValue;
import java.util.Arrays;
-/** The resource type. */
-public enum ResourceType {
+/** Compute engine type. */
+public enum EngineType {
- /** User app */
- APP(0),
- /** Common resource, like mysql-jdbc */
- COMMON(1),
+ /** Apache Flink: activated by default */
+ FLINK(0),
- /** Flink connector plugin */
- CONNECTOR(2),
- /** Flink format plugin */
- FORMAT(3),
-
- /** User designed function, including udf/udaf/udtf */
- UDF(4);
+ /** Apache Spark */
+ SPARK(1);
@EnumValue private final int code;
- ResourceType(int code) {
+ EngineType(int code) {
this.code = code;
}
@@ -47,7 +40,7 @@ public enum ResourceType {
return code;
}
- public static ResourceType of(Integer code) {
+ public static EngineType of(Integer code) {
return Arrays.stream(values()).filter((x) -> x.code ==
code).findFirst().orElse(null);
}
}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/enums/ResourceType.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/enums/ResourceType.java
index de6754ea1..e6aa46353 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/enums/ResourceType.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/enums/ResourceType.java
@@ -24,18 +24,17 @@ import java.util.Arrays;
/** The resource type. */
public enum ResourceType {
- /** User app */
- APP(0),
- /** Common resource, like mysql-jdbc */
- COMMON(1),
+ /** Flink application */
+ FLINK_APP(0),
+
+ /** connector plugin */
+ CONNECTOR(1),
- /** Flink connector plugin */
- CONNECTOR(2),
- /** Flink format plugin */
- FORMAT(3),
+ /** User defined function, including udf/udaf/udtf */
+ UDXF(2),
- /** User designed function, including udf/udaf/udtf */
- UDF(4);
+ /** Common resource, like mysql-jdbc */
+ NORMAL_JAR(3);
@EnumValue private final int code;
diff --git
a/streampark-console/streampark-console-service/src/main/resources/db/schema-h2.sql
b/streampark-console/streampark-console-service/src/main/resources/db/schema-h2.sql
index 0ca748de1..9b4f31031 100644
---
a/streampark-console/streampark-console-service/src/main/resources/db/schema-h2.sql
+++
b/streampark-console/streampark-console-service/src/main/resources/db/schema-h2.sql
@@ -220,6 +220,7 @@ create table if not exists `t_resource` (
`id` bigint generated by default as identity not null,
`resource_name` varchar(128) not null comment 'The name of the resource
file',
`resource_type` int not null comment '0:app 1:common 2:connector 3:format
4:udf',
+ `engine_type` int not null comment 'compute engine type, 0:apache flink
1:apache spark',
`main_class` varchar(255) default null,
`description` text default null comment 'More detailed description of
resource',
`creator_id` bigint not null comment 'user id of creator',
diff --git
a/streampark-console/streampark-console-service/src/main/resources/mapper/core/ResourceMapper.xml
b/streampark-console/streampark-console-service/src/main/resources/mapper/core/ResourceMapper.xml
index 53fd85caa..5ddd4a57f 100644
---
a/streampark-console/streampark-console-service/src/main/resources/mapper/core/ResourceMapper.xml
+++
b/streampark-console/streampark-console-service/src/main/resources/mapper/core/ResourceMapper.xml
@@ -22,6 +22,7 @@
<result column="resource_name" jdbcType="VARCHAR"
property="resourceName"/>
<result column="description" jdbcType="VARCHAR"
property="description"/>
<result column="resource_type" jdbcType="BIGINT"
property="resourceType"/>
+ <result column="engine_type" jdbcType="BIGINT" property="engineType"/>
<result column="creator_id" jdbcType="BIGINT" property="creatorId"/>
<result column="team_id" jdbcType="BIGINT" property="teamId"/>
<result column="create_time" jdbcType="TIMESTAMP"
property="createTime"/>
diff --git
a/streampark-console/streampark-console-webapp/src/api/flink/resource/model/resourceModel.ts
b/streampark-console/streampark-console-webapp/src/api/flink/resource/model/resourceModel.ts
index 8f9b2754d..684e34e84 100644
---
a/streampark-console/streampark-console-webapp/src/api/flink/resource/model/resourceModel.ts
+++
b/streampark-console/streampark-console-webapp/src/api/flink/resource/model/resourceModel.ts
@@ -18,6 +18,7 @@ export interface ResourceListRecord {
id: string;
resourceName: string;
resourceType: string;
+ engineType: string;
mainClass: string;
description: string;
creatorId: string;
@@ -32,6 +33,7 @@ export interface ResourceListRecord {
export interface ResourceParam {
id?: string;
resourceName: string;
+ engineType: string;
description: string;
}
diff --git
a/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/resource.ts
b/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/resource.ts
index 3e523ee7a..fc8262254 100644
---
a/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/resource.ts
+++
b/streampark-console/streampark-console-webapp/src/locales/lang/en/flink/resource.ts
@@ -22,6 +22,8 @@ export default {
deletePopConfirm: 'Are you sure delete this resource ?',
uploadResource: 'Upload Resource',
resourceType: 'Resource Type',
+ engineType: 'Engine Type',
+ engineTypePlaceholder: 'Please select compute engine type',
add: 'Add',
success: ' successful',
fail: ' failed',
@@ -37,6 +39,8 @@ export default {
},
form: {
descriptionMessage: 'exceeds maximum length limit of 100 characters',
+ engineTypeIsRequiredMessage: 'compute engine type is required',
+ resourceTypeIsRequiredMessage: 'resource type is required',
exists: 'Sorry, the Resource already exists',
empty: 'Resource cannot be empty',
},
diff --git
a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/resource.ts
b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/resource.ts
index d46507bbd..827d4e369 100644
---
a/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/resource.ts
+++
b/streampark-console/streampark-console-webapp/src/locales/lang/zh-CN/flink/resource.ts
@@ -22,6 +22,8 @@ export default {
deletePopConfirm: '你确定要删除这个资源?',
uploadResource: '上传资源',
resourceType: '资源类型',
+ engineType: '计算引擎类型',
+ engineTypePlaceholder: '请选择计算引擎类型',
add: '添加',
success: '成功',
fail: '失败',
@@ -37,6 +39,8 @@ export default {
},
form: {
descriptionMessage: '超过 100 个字符的最大长度限制',
+ engineTypeIsRequiredMessage: '计算引擎类型必选',
+ resourceTypeIsRequiredMessage: '资源类型必选',
exists: '资源已存在',
empty: '资源不能为空',
},
diff --git
a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useFlinkRender.tsx
b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useFlinkRender.tsx
index 0dd50afc8..1053b33f2 100644
---
a/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useFlinkRender.tsx
+++
b/streampark-console/streampark-console-webapp/src/views/flink/app/hooks/useFlinkRender.tsx
@@ -534,7 +534,7 @@ export const renderStreamParkResource = ({ model, resources
},) => {
const renderOptions = () => {
console.log('resources', resources);
return (resources || [])
- .filter((item) => item.resourceType !== ResourceTypeEnum.APP )
+ .filter((item) => item.resourceType !== ResourceTypeEnum.FLINK_APP )
.map((resource) => {
return (
<Select.Option
@@ -583,7 +583,7 @@ export const renderStreamParkJarApp = ({ model, resources
},) => {
const renderOptions = () => {
console.log('resources', resources);
return (resources || [])
- .filter((item) => item.resourceType == ResourceTypeEnum.APP )
+ .filter((item) => item.resourceType == ResourceTypeEnum.FLINK_APP )
.map((resource) => {
return (
<Select.Option
diff --git
a/streampark-console/streampark-console-webapp/src/views/flink/resource/View.vue
b/streampark-console/streampark-console-webapp/src/views/flink/resource/View.vue
index a3a970f21..df46ce398 100644
---
a/streampark-console/streampark-console-webapp/src/views/flink/resource/View.vue
+++
b/streampark-console/streampark-console-webapp/src/views/flink/resource/View.vue
@@ -29,16 +29,16 @@
<Tag
class="bold-tag"
color="#52c41a"
- v-if="record.resourceType == ResourceTypeEnum.APP"
+ v-if="record.resourceType == ResourceTypeEnum.FLINK_APP"
>
- APP
+ FLINK_APP
</Tag>
<Tag
class="bold-tag"
color="#2db7f5"
- v-if="record.resourceType == ResourceTypeEnum.COMMON"
+ v-if="record.resourceType == ResourceTypeEnum.NORMAL_JAR"
>
- COMMON
+ NORMAL_JAR
</Tag>
<Tag
class="bold-tag"
@@ -49,17 +49,26 @@
</Tag>
<Tag
class="bold-tag"
- color="#102541"
- v-if="record.resourceType == ResourceTypeEnum.FORMAT"
+ color="#79f379"
+ v-if="record.resourceType == ResourceTypeEnum.UDXF"
>
- FORMAT
+ UDXF
</Tag>
+ </template>
+ <template v-if="column.dataIndex === 'engineType'">
<Tag
class="bold-tag"
- color="#79f379"
- v-if="record.resourceType == ResourceTypeEnum.UDF"
+ color="#e65270"
+ v-if="record.engineType == EngineTypeEnum.FLINK"
+ >
+ FLINK
+ </Tag>
+ <Tag
+ class="bold-tag"
+ color="#f5be07"
+ v-if="record.engineType == EngineTypeEnum.SPARK"
>
- UDF
+ SPARK
</Tag>
</template>
<template v-if="column.dataIndex === 'action'">
@@ -106,7 +115,7 @@
import Icon from '/@/components/Icon';
import { useRouter } from 'vue-router';
import { fetchResourceDelete, fetchResourceList } from
"/@/api/flink/resource";
- import { ResourceTypeEnum } from "/@/views/flink/resource/resource.data";
+ import { EngineTypeEnum, ResourceTypeEnum } from
"/@/views/flink/resource/resource.data";
import { Tag } from 'ant-design-vue';
const router = useRouter();
diff --git
a/streampark-console/streampark-console-webapp/src/views/flink/resource/components/ResourceDrawer.vue
b/streampark-console/streampark-console-webapp/src/views/flink/resource/components/ResourceDrawer.vue
index 12478bfb2..af1b39610 100644
---
a/streampark-console/streampark-console-webapp/src/views/flink/resource/components/ResourceDrawer.vue
+++
b/streampark-console/streampark-console-webapp/src/views/flink/resource/components/ResourceDrawer.vue
@@ -59,7 +59,7 @@
import UploadJobJar from '/@/views/flink/app/components/UploadJobJar.vue';
import { fetchUpload } from "/@/api/flink/app/app";
import { fetchAddResource, fetchUpdateResource } from
"/@/api/flink/resource";
- import { ResourceTypeEnum } from "/@/views/flink/resource/resource.data";
+ import { EngineTypeEnum, ResourceTypeEnum } from
"/@/views/flink/resource/resource.data";
const emit = defineEmits(['success', 'register']);
@@ -78,13 +78,27 @@
component: 'Select',
componentProps: {
options: [
- { label: 'APP', value: ResourceTypeEnum.APP },
- { label: 'COMMON', value: ResourceTypeEnum.COMMON },
+ { label: 'FLINK_APP', value: ResourceTypeEnum.FLINK_APP },
{ label: 'CONNECTOR', value: ResourceTypeEnum.CONNECTOR },
- { label: 'FORMAT', value: ResourceTypeEnum.FORMAT },
- { label: 'UDF', value: ResourceTypeEnum.UDF },
+ { label: 'UDXF', value: ResourceTypeEnum.UDXF },
+ { label: 'NORMAL_JAR', value: ResourceTypeEnum.NORMAL_JAR },
],
},
+ rules: [{ required: true, message:
t('flink.resource.form.resourceTypeIsRequiredMessage') }],
+ },
+ {
+ field: 'engineType',
+ label: t('flink.resource.engineType'),
+ component: 'Select',
+ defaultValue: EngineTypeEnum.FLINK,
+ componentProps: {
+ placeholder: t('flink.resource.engineTypePlaceholder'),
+ options: [
+ { label: 'apache flink', value: EngineTypeEnum.FLINK, disabled:
false },
+ { label: 'apache spark', value: EngineTypeEnum.SPARK, disabled:
true },
+ ],
+ },
+ rules: [{ required: true, message:
t('flink.resource.form.engineTypeIsRequiredMessage') }],
},
{
field: 'resourceName',
@@ -97,7 +111,7 @@
label: t('flink.app.mainClass'),
component: 'Input',
componentProps: { placeholder:
t('flink.app.addAppTips.mainClassPlaceholder') },
- ifShow: ({ values }) => values?.resourceType == 'APP',
+ ifShow: ({ values }) => values?.resourceType == 'FLINK_APP',
rules: [{ required: true, message:
t('flink.app.addAppTips.mainClassIsRequiredMessage') }],
},
{
diff --git
a/streampark-console/streampark-console-webapp/src/views/flink/resource/resource.data.ts
b/streampark-console/streampark-console-webapp/src/views/flink/resource/resource.data.ts
index 0137633d1..df0c02162 100644
---
a/streampark-console/streampark-console-webapp/src/views/flink/resource/resource.data.ts
+++
b/streampark-console/streampark-console-webapp/src/views/flink/resource/resource.data.ts
@@ -19,11 +19,15 @@ import { useI18n } from '/@/hooks/web/useI18n';
const { t } = useI18n();
export enum ResourceTypeEnum {
- APP = 'APP',
- COMMON = 'COMMON',
+ FLINK_APP = 'FLINK_APP',
CONNECTOR = 'CONNECTOR',
- FORMAT = 'FORMAT',
- UDF = 'UDF',
+ UDXF = 'UDXF',
+ NORMAL_JAR = 'NORMAL_JAR',
+}
+
+export enum EngineTypeEnum {
+ FLINK = 'FLINK',
+ SPARK = 'SPARK',
}
export const columns: BasicColumn[] = [
@@ -40,6 +44,10 @@ export const columns: BasicColumn[] = [
title: t('flink.resource.resourceType'),
dataIndex: 'resourceType',
},
+ {
+ title: t('flink.resource.engineType'),
+ dataIndex: 'engineType',
+ },
{
title: t('common.createTime'),
dataIndex: 'createTime',