This is an automated email from the ASF dual-hosted git repository.

gosonzhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-inlong.git


The following commit(s) were added to refs/heads/master by this push:
     new 31a33832a [INLONG-3542][Manager] Add Iceberg params and change SQL 
files (#3555)
31a33832a is described below

commit 31a33832ae4b6961302c7bb3ab7593058b67a889
Author: healchow <[email protected]>
AuthorDate: Thu Apr 7 09:36:57 2022 +0800

    [INLONG-3542][Manager] Add Iceberg params and change SQL files (#3555)
---
 .../manager/common/pojo/sink/SinkFieldBase.java    | 12 ++++++
 .../manager/common/pojo/sink/SinkForSortDTO.java   |  3 +-
 .../manager/common/pojo/sink/SinkListResponse.java |  4 +-
 .../manager/common/pojo/sink/SinkRequest.java      |  6 +--
 .../manager/common/pojo/sink/SinkResponse.java     | 15 ++++----
 .../common/pojo/sink/iceberg/IcebergSinkDTO.java   | 44 +++++++++++++++++++--
 .../pojo/sink/iceberg/IcebergSinkListResponse.java | 20 +++++++++-
 .../pojo/sink/iceberg/IcebergSinkRequest.java      | 31 ++++++++++++++-
 .../pojo/sink/iceberg/IcebergSinkResponse.java     | 33 ++++++++++++++--
 .../manager/dao/entity/StreamSinkEntity.java       |  2 +-
 .../manager/dao/entity/StreamSinkFieldEntity.java  |  6 +++
 .../resources/mappers/StreamSinkEntityMapper.xml   | 26 ++++++-------
 .../mappers/StreamSinkFieldEntityMapper.xml        | 45 +++++++++++++++-------
 .../service/sink/hive/HiveStreamSinkOperation.java |  2 +-
 .../sink/iceberg/IcebergStreamSinkOperation.java   |  4 +-
 .../core/sink/IcebergStreamSinkServiceTest.java    |  3 +-
 .../main/resources/sql/apache_inlong_manager.sql   | 34 ++++++++--------
 .../manager-web/sql/apache_inlong_manager.sql      | 34 ++++++++--------
 18 files changed, 235 insertions(+), 89 deletions(-)

diff --git 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkFieldBase.java
 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkFieldBase.java
index a737e402c..ff355e32c 100644
--- 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkFieldBase.java
+++ 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkFieldBase.java
@@ -43,6 +43,18 @@ public class SinkFieldBase {
     @ApiModelProperty("Source field type")
     private String sourceFieldType;
 
+    @ApiModelProperty("Field length")
+    private Integer fieldLength;
+
+    @ApiModelProperty("Field precision")
+    private Integer fieldPrecision;
+
+    @ApiModelProperty("Field scale")
+    private Integer fieldScale;
+
+    @ApiModelProperty("Partition strategy, including: Identity, Year, Month, 
Day, Hour, Bucket")
+    private String partitionStrategy;
+
     @ApiModelProperty("Field format, including: MICROSECONDS, MILLISECONDS, 
SECONDS, SQL, ISO_8601"
             + " and custom such as 'yyyy-MM-dd HH:mm:ss'. This is mainly used 
for time format")
     private String fieldFormat;
diff --git 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkForSortDTO.java
 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkForSortDTO.java
index 6b6d356eb..581f6e8de 100644
--- 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkForSortDTO.java
+++ 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkForSortDTO.java
@@ -32,7 +32,7 @@ public class SinkForSortDTO {
     private String inlongStreamId;
     private String sinkType;
     private String sinkName;
-    private Integer storagePeriod;
+    private String description;
     private Integer enableCreateResource;
     private String extParams;
     private Integer status;
@@ -42,7 +42,6 @@ public class SinkForSortDTO {
     private String mqResourceObj;
     private String dataSourceType;
     private String dataType;
-    private String description;
     private String sourceSeparator; // Source separator configured in the 
stream info
     private String dataEscapeChar;
 
diff --git 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkListResponse.java
 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkListResponse.java
index 4c46022d2..b8212a99b 100644
--- 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkListResponse.java
+++ 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkListResponse.java
@@ -48,8 +48,8 @@ public class SinkListResponse {
     @ApiModelProperty("Sink name, unique in one stream.")
     private String sinkName;
 
-    @ApiModelProperty("Sink period, unit: day")
-    private Integer storagePeriod;
+    @ApiModelProperty("Sink description")
+    private String description;
 
     @ApiModelProperty(value = "Whether to enable create sink resource? 0: 
disable, 1: enable. default is 1")
     private Integer enableCreateResource;
diff --git 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkRequest.java
 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkRequest.java
index 68bbc24c4..52793f588 100644
--- 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkRequest.java
+++ 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkRequest.java
@@ -22,11 +22,11 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo.Id;
 import com.google.common.collect.Maps;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import java.util.Map;
 import lombok.Data;
 
 import javax.validation.constraints.NotNull;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Request of sink
@@ -54,8 +54,8 @@ public class SinkRequest {
     @NotNull
     private String sinkName;
 
-    @ApiModelProperty("Data storage period, unit: day")
-    private Integer storagePeriod;
+    @ApiModelProperty("Sink description")
+    private String description;
 
     @ApiModelProperty(value = "Whether to enable create sink resource? 0: 
disable, 1: enable. default is 1")
     private Integer enableCreateResource = 1;
diff --git 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkResponse.java
 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkResponse.java
index e0683faee..6b25928fc 100644
--- 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkResponse.java
+++ 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/SinkResponse.java
@@ -20,12 +20,12 @@ package org.apache.inlong.manager.common.pojo.sink;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import java.util.Map;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 import java.util.Date;
 import java.util.List;
-import lombok.NoArgsConstructor;
+import java.util.Map;
 
 /**
  * Response of the stream sink
@@ -35,6 +35,10 @@ import lombok.NoArgsConstructor;
 @NoArgsConstructor
 public class SinkResponse {
 
+    @ApiModelProperty("Sink type, including: HIVE, ICEBERG, etc.")
+    protected String sinkType;
+
+    @ApiModelProperty("Sink id")
     private Integer id;
 
     @ApiModelProperty("Inlong group id")
@@ -46,11 +50,8 @@ public class SinkResponse {
     @ApiModelProperty("Sink name, unique in one stream.")
     private String sinkName;
 
-    @ApiModelProperty("Sink type, including: HIVE, ES, etc.")
-    protected String sinkType;
-
-    @ApiModelProperty("Data storage period, unit: day")
-    private Integer storagePeriod;
+    @ApiModelProperty("Sink description")
+    private String description;
 
     @ApiModelProperty(value = "Whether to enable create sink resource? 0: 
disable, 1: enable. default is 1",
             notes = "Such as create Hive table")
diff --git 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkDTO.java
 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkDTO.java
index 7d4737c84..27f716a95 100644
--- 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkDTO.java
+++ 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkDTO.java
@@ -20,7 +20,6 @@ package org.apache.inlong.manager.common.pojo.sink.iceberg;
 import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import io.swagger.annotations.ApiModelProperty;
-import java.util.Map;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -29,6 +28,7 @@ import org.apache.inlong.manager.common.enums.ErrorCodeEnum;
 import org.apache.inlong.manager.common.exceptions.BusinessException;
 
 import javax.validation.constraints.NotNull;
+import java.util.Map;
 
 /**
  * Iceberg sink info
@@ -41,8 +41,35 @@ public class IcebergSinkDTO {
 
     private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
 
-    @ApiModelProperty("table Location like hdfs://")
-    private String tableLocation;
+    @ApiModelProperty("Hive JDBC URL")
+    private String jdbcUrl;
+
+    @ApiModelProperty("Username for JDBC URL")
+    private String username;
+
+    @ApiModelProperty("User password")
+    private String password;
+
+    @ApiModelProperty("Target database name")
+    private String dbName;
+
+    @ApiModelProperty("Target table name")
+    private String tableName;
+
+    @ApiModelProperty("Data path, such as: 
hdfs://ip:port/user/hive/warehouse/test.db")
+    private String dataPath;
+
+    @ApiModelProperty("File format, support: Parquet, Orc, Avro")
+    private String fileFormat;
+
+    @ApiModelProperty("Data encoding type")
+    private String dataEncoding;
+
+    @ApiModelProperty("Data field separator")
+    private String dataSeparator;
+
+    @ApiModelProperty("Data consistency strategy, support: 
EXACTLY_ONCE(default), AT_LEAST_ONCE")
+    private String dataConsistency;
 
     @ApiModelProperty("Properties for iceberg")
     private Map<String, Object> properties;
@@ -52,7 +79,16 @@ public class IcebergSinkDTO {
      */
     public static IcebergSinkDTO getFromRequest(IcebergSinkRequest request) {
         return IcebergSinkDTO.builder()
-                .tableLocation(request.getTableLocation())
+                .jdbcUrl(request.getJdbcUrl())
+                .username(request.getUsername())
+                .password(request.getPassword())
+                .dbName(request.getDbName())
+                .tableName(request.getTableName())
+                .dataPath(request.getDataPath())
+                .fileFormat(request.getFileFormat())
+                .dataEncoding(request.getDataEncoding())
+                .dataSeparator(request.getDataSeparator())
+                .dataConsistency(request.getDataConsistency())
                 .properties(request.getProperties())
                 .build();
     }
diff --git 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkListResponse.java
 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkListResponse.java
index 7aa495c5b..7458e65a5 100644
--- 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkListResponse.java
+++ 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkListResponse.java
@@ -31,6 +31,22 @@ import 
org.apache.inlong.manager.common.pojo.sink.SinkListResponse;
 @ApiModel("Response of Iceberg sink paging list")
 public class IcebergSinkListResponse extends SinkListResponse {
 
-    @ApiModelProperty("table Location like hdfs://")
-    private String tableLocation;
+    @ApiModelProperty("target database name")
+    private String dbName;
+
+    @ApiModelProperty("target table name")
+    private String tableName;
+
+    @ApiModelProperty("username")
+    private String username;
+
+    @ApiModelProperty("JDBC URL")
+    private String jdbcUrl;
+
+    @ApiModelProperty("Data path, such as: 
hdfs://ip:port/user/hive/warehouse/test.db")
+    private String dataPath;
+
+    @ApiModelProperty("partition type, like: H-hour, D-day, W-week, M-month, 
O-once, R-regulation")
+    private String partitionType;
+
 }
diff --git 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkRequest.java
 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkRequest.java
index fa0ba9f6b..1fb0a24f4 100644
--- 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkRequest.java
+++ 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkRequest.java
@@ -36,7 +36,34 @@ import org.apache.inlong.manager.common.util.JsonTypeDefine;
 @JsonTypeDefine(value = Constant.SINK_ICEBERG)
 public class IcebergSinkRequest extends SinkRequest {
 
-    @ApiModelProperty("table Location like hdfs://")
-    private String tableLocation;
+    @ApiModelProperty("Hive JDBC URL")
+    private String jdbcUrl;
+
+    @ApiModelProperty("Username for JDBC URL")
+    private String username;
+
+    @ApiModelProperty("User password")
+    private String password;
+
+    @ApiModelProperty("Target database name")
+    private String dbName;
+
+    @ApiModelProperty("Target table name")
+    private String tableName;
+
+    @ApiModelProperty("Data path, such as: 
hdfs://ip:port/user/hive/warehouse/test.db")
+    private String dataPath;
+
+    @ApiModelProperty("File format, support: Parquet, Orc, Avro")
+    private String fileFormat;
+
+    @ApiModelProperty("Data encoding type")
+    private String dataEncoding;
+
+    @ApiModelProperty("Data field separator")
+    private String dataSeparator;
+
+    @ApiModelProperty("Data consistency strategy, support: 
EXACTLY_ONCE(default), AT_LEAST_ONCE")
+    private String dataConsistency;
 
 }
diff --git 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkResponse.java
 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkResponse.java
index 1abe819b0..f40ceb8bc 100644
--- 
a/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkResponse.java
+++ 
b/inlong-manager/manager-common/src/main/java/org/apache/inlong/manager/common/pojo/sink/iceberg/IcebergSinkResponse.java
@@ -34,10 +34,37 @@ import 
org.apache.inlong.manager.common.pojo.sink.SinkResponse;
 @ApiModel(value = "Response of the Iceberg sink")
 public class IcebergSinkResponse extends SinkResponse {
 
+    @ApiModelProperty("Hive JDBC URL")
+    private String jdbcUrl;
+
+    @ApiModelProperty("Username for JDBC URL")
+    private String username;
+
+    @ApiModelProperty("User password")
+    private String password;
+
+    @ApiModelProperty("Target database name")
+    private String dbName;
+
+    @ApiModelProperty("Target table name")
+    private String tableName;
+
+    @ApiModelProperty("Data path, such as: 
hdfs://ip:port/user/hive/warehouse/test.db")
+    private String dataPath;
+
+    @ApiModelProperty("File format, support: Parquet, Orc, Avro")
+    private String fileFormat;
+
+    @ApiModelProperty("Data encoding type")
+    private String dataEncoding;
+
+    @ApiModelProperty("Data field separator")
+    private String dataSeparator;
+
+    @ApiModelProperty("Data consistency strategy, support: 
EXACTLY_ONCE(default), AT_LEAST_ONCE")
+    private String dataConsistency;
+
     public IcebergSinkResponse() {
         this.sinkType = Constant.SINK_ICEBERG;
     }
-
-    @ApiModelProperty("table Location like hdfs://")
-    private String tableLocation;
 }
diff --git 
a/inlong-manager/manager-dao/src/main/java/org/apache/inlong/manager/dao/entity/StreamSinkEntity.java
 
b/inlong-manager/manager-dao/src/main/java/org/apache/inlong/manager/dao/entity/StreamSinkEntity.java
index dff355d70..cd49ad404 100644
--- 
a/inlong-manager/manager-dao/src/main/java/org/apache/inlong/manager/dao/entity/StreamSinkEntity.java
+++ 
b/inlong-manager/manager-dao/src/main/java/org/apache/inlong/manager/dao/entity/StreamSinkEntity.java
@@ -31,7 +31,7 @@ public class StreamSinkEntity implements Serializable {
     private String inlongStreamId;
     private String sinkType;
     private String sinkName;
-    private Integer storagePeriod;
+    private String description;
     private Integer enableCreateResource;
 
     private String operateLog;
diff --git 
a/inlong-manager/manager-dao/src/main/java/org/apache/inlong/manager/dao/entity/StreamSinkFieldEntity.java
 
b/inlong-manager/manager-dao/src/main/java/org/apache/inlong/manager/dao/entity/StreamSinkFieldEntity.java
index b2ac03437..00dee4daf 100644
--- 
a/inlong-manager/manager-dao/src/main/java/org/apache/inlong/manager/dao/entity/StreamSinkFieldEntity.java
+++ 
b/inlong-manager/manager-dao/src/main/java/org/apache/inlong/manager/dao/entity/StreamSinkFieldEntity.java
@@ -37,6 +37,12 @@ public class StreamSinkFieldEntity implements Serializable {
     private Integer isRequired;
     private String sourceFieldName;
     private String sourceFieldType;
+
+    private Integer fieldLength;
+    private Integer fieldPrecision;
+    private Integer fieldScale;
+    private String partitionStrategy; // For Iceberg, including: Identity, 
Year, Month, Day, Hour, Bucket
+
     private Integer isMetaField;
     private String fieldFormat;
     private Short rankNum;
diff --git 
a/inlong-manager/manager-dao/src/main/resources/mappers/StreamSinkEntityMapper.xml
 
b/inlong-manager/manager-dao/src/main/resources/mappers/StreamSinkEntityMapper.xml
index a1ecfc5c9..4e07890ab 100644
--- 
a/inlong-manager/manager-dao/src/main/resources/mappers/StreamSinkEntityMapper.xml
+++ 
b/inlong-manager/manager-dao/src/main/resources/mappers/StreamSinkEntityMapper.xml
@@ -27,7 +27,7 @@
         <result column="inlong_stream_id" jdbcType="VARCHAR" 
property="inlongStreamId"/>
         <result column="sink_type" jdbcType="VARCHAR" property="sinkType"/>
         <result column="sink_name" jdbcType="VARCHAR" property="sinkName"/>
-        <result column="storage_period" jdbcType="INTEGER" 
property="storagePeriod"/>
+        <result column="description" jdbcType="INTEGER" 
property="description"/>
         <result column="enable_create_resource" jdbcType="TINYINT" 
property="enableCreateResource"/>
         <result column="ext_params" jdbcType="VARCHAR" property="extParams"/>
         <result column="operate_log" jdbcType="VARCHAR" property="operateLog"/>
@@ -42,8 +42,7 @@
     </resultMap>
 
     <sql id="Base_Column_List">
-        id
-        , inlong_group_id, inlong_stream_id, sink_type, sink_name, 
storage_period, enable_create_resource, ext_params,
+        id, inlong_group_id, inlong_stream_id, sink_type, sink_name, 
description, enable_create_resource, ext_params,
         operate_log, status, previous_status, is_deleted, creator, modifier, 
create_time, modify_time
     </sql>
 
@@ -164,7 +163,7 @@
         sink.inlong_group_id,
         sink.inlong_stream_id,
         sink.sink_type,
-        sink.storage_period,
+        sink.description,
         sink.enable_create_resource,
         sink.ext_params,
         sink.status,
@@ -173,7 +172,6 @@
         stream.mq_resource_obj,
         stream.data_source_type,
         stream.data_type,
-        stream.description,
         stream.data_separator as sourceSeparator,
         stream.data_escape_char
         from inlong_stream stream, stream_sink sink
@@ -198,13 +196,13 @@
     <insert id="insert" useGeneratedKeys="true" keyProperty="id"
             
parameterType="org.apache.inlong.manager.dao.entity.StreamSinkEntity">
         insert into stream_sink (id, inlong_group_id, inlong_stream_id,
-                                 sink_type, sink_name, storage_period,
+                                 sink_type, sink_name, description,
                                  enable_create_resource, ext_params,
                                  operate_log, status, previous_status,
                                  is_deleted, creator, modifier,
                                  create_time, modify_time)
         values (#{id,jdbcType=INTEGER}, #{inlongGroupId,jdbcType=VARCHAR}, 
#{inlongStreamId,jdbcType=VARCHAR},
-                #{sinkType,jdbcType=VARCHAR}, #{sinkName,jdbcType=VARCHAR}, 
#{storagePeriod,jdbcType=INTEGER},
+                #{sinkType,jdbcType=VARCHAR}, #{sinkName,jdbcType=VARCHAR}, 
#{description,jdbcType=VARCHAR},
                 #{enableCreateResource,jdbcType=TINYINT}, 
#{extParams,jdbcType=VARCHAR},
                 #{operateLog,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER}, 
#{previousStatus,jdbcType=INTEGER},
                 #{isDeleted,jdbcType=INTEGER}, #{creator,jdbcType=VARCHAR}, 
#{modifier,jdbcType=VARCHAR},
@@ -229,8 +227,8 @@
             <if test="sinkName != null">
                 sink_name,
             </if>
-            <if test="storagePeriod != null">
-                storage_period,
+            <if test="description != null">
+                description,
             </if>
             <if test="enableCreateResource != null">
                 enable_create_resource,
@@ -279,8 +277,8 @@
             <if test="sinkName != null">
                 #{sinkName,jdbcType=VARCHAR},
             </if>
-            <if test="storagePeriod != null">
-                #{storagePeriod,jdbcType=INTEGER},
+            <if test="description != null">
+                #{description,jdbcType=VARCHAR},
             </if>
             <if test="enableCreateResource != null">
                 #{enableCreateResource,jdbcType=TINYINT},
@@ -325,8 +323,8 @@
             <if test="inlongStreamId != null">
                 inlong_stream_id = #{inlongStreamId,jdbcType=VARCHAR},
             </if>
-            <if test="storagePeriod != null">
-                storage_period = #{storagePeriod,jdbcType=INTEGER},
+            <if test="description != null">
+                description = #{description,jdbcType=VARCHAR},
             </if>
             <if test="sinkType != null">
                 sink_type = #{sinkType,jdbcType=VARCHAR},
@@ -373,7 +371,7 @@
             inlong_stream_id       = #{inlongStreamId,jdbcType=VARCHAR},
             sink_type              = #{sinkType,jdbcType=VARCHAR},
             sink_name              = #{sinkName,jdbcType=VARCHAR},
-            storage_period         = #{storagePeriod,jdbcType=INTEGER},
+            description            = #{description,jdbcType=VARCHAR},
             enable_create_resource = #{enableCreateResource,jdbcType=TINYINT},
             ext_params             = #{extParams,jdbcType=VARCHAR},
             operate_log            = #{operateLog,jdbcType=VARCHAR},
diff --git 
a/inlong-manager/manager-dao/src/main/resources/mappers/StreamSinkFieldEntityMapper.xml
 
b/inlong-manager/manager-dao/src/main/resources/mappers/StreamSinkFieldEntityMapper.xml
index 132c356bf..3b2f7ff43 100644
--- 
a/inlong-manager/manager-dao/src/main/resources/mappers/StreamSinkFieldEntityMapper.xml
+++ 
b/inlong-manager/manager-dao/src/main/resources/mappers/StreamSinkFieldEntityMapper.xml
@@ -31,28 +31,41 @@
         <result column="field_comment" jdbcType="VARCHAR" 
property="fieldComment"/>
         <result column="source_field_name" jdbcType="VARCHAR" 
property="sourceFieldName"/>
         <result column="source_field_type" jdbcType="VARCHAR" 
property="sourceFieldType"/>
+        <result column="field_length" jdbcType="INTEGER" 
property="fieldLength"/>
+        <result column="field_precision" jdbcType="INTEGER" 
property="fieldPrecision"/>
+        <result column="field_scale" jdbcType="INTEGER" property="fieldScale"/>
+        <result column="partition_strategy" jdbcType="VARCHAR" 
property="partitionStrategy"/>
         <result column="is_meta_field" jdbcType="SMALLINT" 
property="isMetaField"/>
         <result column="field_format" jdbcType="VARCHAR" 
property="fieldFormat"/>
         <result column="rank_num" jdbcType="SMALLINT" property="rankNum"/>
         <result column="is_deleted" jdbcType="INTEGER" property="isDeleted"/>
     </resultMap>
     <sql id="Base_Column_List">
-        id, sink_id, field_name, field_type, field_comment,
-        source_field_name, source_field_type, is_meta_field, field_format, 
rank_num, is_deleted
+        id, sink_id, field_name, field_type, field_comment, source_field_name, 
source_field_type,
+        field_length, field_precision, field_scale, partition_strategy, 
is_meta_field, field_format,
+        rank_num, is_deleted
     </sql>
 
     <insert id="insert" useGeneratedKeys="true" keyProperty="id"
             
parameterType="org.apache.inlong.manager.dao.entity.StreamSinkFieldEntity">
-        insert into stream_sink_field (id, inlong_group_id, inlong_stream_id,
-                                       sink_id, sink_type, field_name,
-                                       field_type, field_comment, 
source_field_name,
-                                       source_field_type, is_meta_field, 
field_format,
+        insert into stream_sink_field (id, inlong_group_id,
+                                       inlong_stream_id, sink_id,
+                                       sink_type, field_name,
+                                       field_type, field_comment,
+                                       source_field_name, source_field_type,
+                                       field_length, field_precision,
+                                       field_scale, partition_strategy,
+                                       is_meta_field, field_format,
                                        rank_num, is_deleted)
-        values (#{id,jdbcType=INTEGER}, #{inlongGroupId,jdbcType=VARCHAR}, 
#{inlongStreamId,jdbcType=VARCHAR},
-                #{sinkId,jdbcType=INTEGER}, #{sinkType,jdbcType=VARCHAR}, 
#{fieldName,jdbcType=VARCHAR},
-                #{fieldType,jdbcType=VARCHAR}, 
#{fieldComment,jdbcType=VARCHAR}, #{sourceFieldName,jdbcType=VARCHAR},
-                #{sourceFieldType,jdbcType=VARCHAR}, 
#{isMetaField,jdbcType=SMALLINT},
-                #{fieldFormat,jdbcType=VARCHAR}, #{rankNum,jdbcType=SMALLINT}, 
#{isDeleted,jdbcType=INTEGER})
+        values (#{id,jdbcType=INTEGER}, #{inlongGroupId,jdbcType=VARCHAR},
+                #{inlongStreamId,jdbcType=VARCHAR}, #{sinkId,jdbcType=INTEGER},
+                #{sinkType,jdbcType=VARCHAR}, #{fieldName,jdbcType=VARCHAR},
+                #{fieldType,jdbcType=VARCHAR}, 
#{fieldComment,jdbcType=VARCHAR},
+                #{sourceFieldName,jdbcType=VARCHAR}, 
#{sourceFieldType,jdbcType=VARCHAR},
+                #{fieldLength,jdbcType=INTEGER}, 
#{fieldPrecision,jdbcType=INTEGER},
+                #{fieldScale,jdbcType=INTEGER}, 
#{partitionStrategy,jdbcType=VARCHAR},
+                #{isMetaField,jdbcType=SMALLINT}, 
#{fieldFormat,jdbcType=VARCHAR},
+                #{rankNum,jdbcType=SMALLINT}, #{isDeleted,jdbcType=INTEGER})
     </insert>
     <insert id="insertAll">
         insert into stream_sink_field (
@@ -61,7 +74,10 @@
         sink_type, field_name,
         field_type, field_comment,
         source_field_name, source_field_type,
-        is_meta_field, field_format, rank_num, is_deleted
+        field_length, field_precision,
+        field_scale, partition_strategy,
+        is_meta_field, field_format,
+        rank_num, is_deleted
         )
         values
         <foreach collection="list" index="index" item="item" separator=",">
@@ -71,9 +87,10 @@
             #{item.sinkType,jdbcType=VARCHAR}, 
#{item.fieldName,jdbcType=VARCHAR},
             #{item.fieldType,jdbcType=VARCHAR}, 
#{item.fieldComment,jdbcType=VARCHAR},
             #{item.sourceFieldName,jdbcType=VARCHAR}, 
#{item.sourceFieldType,jdbcType=VARCHAR},
+            #{item.fieldLength,jdbcType=INTEGER}, 
#{item.fieldPrecision,jdbcType=INTEGER},
+            #{item.fieldScale,jdbcType=INTEGER}, 
#{item.partitionStrategy,jdbcType=VARCHAR},
             #{item.isMetaField,jdbcType=SMALLINT}, 
#{item.fieldFormat,jdbcType=VARCHAR},
-            #{item.rankNum,jdbcType=SMALLINT},
-            #{item.isDeleted,jdbcType=INTEGER}
+            #{item.rankNum,jdbcType=SMALLINT}, 
#{item.isDeleted,jdbcType=INTEGER}
             )
         </foreach>
     </insert>
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/hive/HiveStreamSinkOperation.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/hive/HiveStreamSinkOperation.java
index 8b3e6d869..92eea579c 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/hive/HiveStreamSinkOperation.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/hive/HiveStreamSinkOperation.java
@@ -109,7 +109,7 @@ public class HiveStreamSinkOperation implements 
StreamSinkOperation {
     @Override
     public void saveFieldOpt(SinkRequest request) {
         List<SinkFieldRequest> fieldList = request.getFieldList();
-        LOGGER.info("begin to save field={}", fieldList);
+        LOGGER.info("begin to save hive field={}", fieldList);
         if (CollectionUtils.isEmpty(fieldList)) {
             return;
         }
diff --git 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/iceberg/IcebergStreamSinkOperation.java
 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/iceberg/IcebergStreamSinkOperation.java
index 56a3d8ee5..284cbf7ad 100644
--- 
a/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/iceberg/IcebergStreamSinkOperation.java
+++ 
b/inlong-manager/manager-service/src/main/java/org/apache/inlong/manager/service/sink/iceberg/IcebergStreamSinkOperation.java
@@ -103,7 +103,7 @@ public class IcebergStreamSinkOperation implements 
StreamSinkOperation {
     @Override
     public void saveFieldOpt(SinkRequest request) {
         List<SinkFieldRequest> fieldList = request.getFieldList();
-        LOGGER.info("begin to save field={}", fieldList);
+        LOGGER.info("begin to save iceberg field={}", fieldList);
         if (CollectionUtils.isEmpty(fieldList)) {
             return;
         }
@@ -128,7 +128,7 @@ public class IcebergStreamSinkOperation implements 
StreamSinkOperation {
         }
 
         sinkFieldMapper.insertAll(entityList);
-        LOGGER.info("success to save hive field");
+        LOGGER.info("success to save iceberg field");
     }
 
     @Override
diff --git 
a/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/core/sink/IcebergStreamSinkServiceTest.java
 
b/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/core/sink/IcebergStreamSinkServiceTest.java
index 0eb91d8e2..b3ad88ca9 100644
--- 
a/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/core/sink/IcebergStreamSinkServiceTest.java
+++ 
b/inlong-manager/manager-service/src/test/java/org/apache/inlong/manager/service/core/sink/IcebergStreamSinkServiceTest.java
@@ -43,13 +43,12 @@ public class IcebergStreamSinkServiceTest extends 
ServiceBaseTest {
 
     public Integer saveSink() {
         streamServiceTest.saveInlongStream(globalGroupId, globalStreamId, 
globalOperator);
-
         IcebergSinkRequest sinkInfo = new IcebergSinkRequest();
         sinkInfo.setInlongGroupId(globalGroupId);
         sinkInfo.setInlongStreamId(globalStreamId);
         sinkInfo.setSinkType(Constant.SINK_ICEBERG);
         sinkInfo.setEnableCreateResource(Constant.DISABLE_CREATE_RESOURCE);
-        sinkInfo.setTableLocation("hdfs://127.0.0.1:8020/data");
+        sinkInfo.setDataPath("hdfs://127.0.0.1:8020/data");
         sinkInfo.setSinkName(sinkName);
         return sinkService.save(sinkInfo, globalOperator);
     }
diff --git 
a/inlong-manager/manager-test/src/main/resources/sql/apache_inlong_manager.sql 
b/inlong-manager/manager-test/src/main/resources/sql/apache_inlong_manager.sql
index 220e5f6f6..052726244 100644
--- 
a/inlong-manager/manager-test/src/main/resources/sql/apache_inlong_manager.sql
+++ 
b/inlong-manager/manager-test/src/main/resources/sql/apache_inlong_manager.sql
@@ -489,7 +489,7 @@ CREATE TABLE `stream_sink`
     `inlong_stream_id`       varchar(256) NOT NULL COMMENT 'Owning inlong 
stream id',
     `sink_type`              varchar(15)           DEFAULT 'HIVE' COMMENT 
'Sink type, including: HIVE, ES, etc',
     `sink_name`              varchar(128) NOT NULL DEFAULT '' COMMENT 'Sink 
name',
-    `storage_period`         int(11)               DEFAULT '10' COMMENT 'Data 
storage period, unit: day',
+    `description`            varchar(500) NULL COMMENT 'Sink description',
     `enable_create_resource` tinyint(2)            DEFAULT '1' COMMENT 
'Whether to enable create sink resource? 0: disable, 1: enable. default is 1',
     `ext_params`             text COMMENT 'Another fields, will saved as JSON 
type',
     `operate_log`            varchar(5000)         DEFAULT NULL COMMENT 
'Background operate log',
@@ -527,20 +527,24 @@ CREATE TABLE `stream_sink_ext`
 DROP TABLE IF EXISTS `stream_sink_field`;
 CREATE TABLE `stream_sink_field`
 (
-    `id`                int(11)      NOT NULL AUTO_INCREMENT COMMENT 
'Incremental primary key',
-    `inlong_group_id`   varchar(256) NOT NULL COMMENT 'Inlong group id',
-    `inlong_stream_id`  varchar(256) NOT NULL COMMENT 'Inlong stream id',
-    `sink_id`           int(11)      NOT NULL COMMENT 'Sink id',
-    `sink_type`         varchar(15)  NOT NULL COMMENT 'Sink type',
-    `source_field_name` varchar(50)   DEFAULT NULL COMMENT 'Source field name',
-    `source_field_type` varchar(50)   DEFAULT NULL COMMENT 'Source field type',
-    `field_name`        varchar(50)  NOT NULL COMMENT 'Field name',
-    `field_type`        varchar(50)  NOT NULL COMMENT 'Field type',
-    `field_comment`     varchar(2000) DEFAULT NULL COMMENT 'Field description',
-    `is_meta_field`     smallint(3)   DEFAULT '0' COMMENT 'Is this field a 
meta field? 0: no, 1: yes',
-    `field_format`      varchar(50)   DEFAULT NULL COMMENT 'Field format, 
including: MICROSECONDS, MILLISECONDS, SECONDS, SQL, ISO_8601 and custom such 
as yyyy-MM-dd HH:mm:ss',
-    `rank_num`          smallint(6)   DEFAULT '0' COMMENT 'Field order 
(front-end display field order)',
-    `is_deleted`        int(11)       DEFAULT '0' COMMENT 'Whether to delete, 
0: not deleted, > 0: deleted',
+    `id`                 int(11)      NOT NULL AUTO_INCREMENT COMMENT 
'Incremental primary key',
+    `inlong_group_id`    varchar(256) NOT NULL COMMENT 'Inlong group id',
+    `inlong_stream_id`   varchar(256) NOT NULL COMMENT 'Inlong stream id',
+    `sink_id`            int(11)      NOT NULL COMMENT 'Sink id',
+    `sink_type`          varchar(15)  NOT NULL COMMENT 'Sink type',
+    `source_field_name`  varchar(50)   DEFAULT NULL COMMENT 'Source field 
name',
+    `source_field_type`  varchar(50)   DEFAULT NULL COMMENT 'Source field 
type',
+    `field_name`         varchar(50)  NOT NULL COMMENT 'Field name',
+    `field_type`         varchar(50)  NOT NULL COMMENT 'Field type',
+    `field_comment`      varchar(2000) DEFAULT NULL COMMENT 'Field 
description',
+    `field_length`       int(4)        DEFAULT NULL COMMENT 'Field length',
+    `field_precision`    int(4)        DEFAULT NULL COMMENT 'Field precision',
+    `field_scale`        int(4)        DEFAULT NULL COMMENT 'Field scale',
+    `partition_strategy` varchar(20)   DEFAULT NULL COMMENT 'Field partition 
strategy',
+    `is_meta_field`      smallint(3)   DEFAULT '0' COMMENT 'Is this field a 
meta field? 0: no, 1: yes',
+    `field_format`       varchar(50)   DEFAULT NULL COMMENT 'Field format, 
including: MICROSECONDS, MILLISECONDS, SECONDS, SQL, ISO_8601 and custom such 
as yyyy-MM-dd HH:mm:ss',
+    `rank_num`           smallint(6)   DEFAULT '0' COMMENT 'Field order 
(front-end display field order)',
+    `is_deleted`         int(11)       DEFAULT '0' COMMENT 'Whether to delete, 
0: not deleted, > 0: deleted',
     PRIMARY KEY (`id`)
 );
 
diff --git a/inlong-manager/manager-web/sql/apache_inlong_manager.sql 
b/inlong-manager/manager-web/sql/apache_inlong_manager.sql
index 47848a947..987ec4820 100644
--- a/inlong-manager/manager-web/sql/apache_inlong_manager.sql
+++ b/inlong-manager/manager-web/sql/apache_inlong_manager.sql
@@ -514,7 +514,7 @@ CREATE TABLE `stream_sink`
     `inlong_stream_id`       varchar(256) NOT NULL COMMENT 'Owning inlong 
stream id',
     `sink_type`              varchar(15)           DEFAULT 'HIVE' COMMENT 
'Sink type, including: HIVE, ES, etc',
     `sink_name`              varchar(128) NOT NULL DEFAULT '' COMMENT 'Sink 
name',
-    `storage_period`         int(11)               DEFAULT '10' COMMENT 'Data 
storage period, unit: day',
+    `description`            varchar(500) NULL COMMENT 'Sink description',
     `enable_create_resource` tinyint(1)            DEFAULT '1' COMMENT 
'Whether to enable create sink resource? 0: disable, 1: enable. default is 1',
     `ext_params`             text         NULL COMMENT 'Another fields, will 
saved as JSON type',
     `operate_log`            text                  DEFAULT NULL COMMENT 
'Background operate log',
@@ -554,20 +554,24 @@ CREATE TABLE `stream_sink_ext`
 DROP TABLE IF EXISTS `stream_sink_field`;
 CREATE TABLE `stream_sink_field`
 (
-    `id`                int(11)      NOT NULL AUTO_INCREMENT COMMENT 
'Incremental primary key',
-    `inlong_group_id`   varchar(256) NOT NULL COMMENT 'Inlong group id',
-    `inlong_stream_id`  varchar(256) NOT NULL COMMENT 'Inlong stream id',
-    `sink_id`           int(11)      NOT NULL COMMENT 'Sink id',
-    `sink_type`         varchar(15)  NOT NULL COMMENT 'Sink type',
-    `source_field_name` varchar(50)   DEFAULT NULL COMMENT 'Source field name',
-    `source_field_type` varchar(50)   DEFAULT NULL COMMENT 'Source field type',
-    `field_name`        varchar(50)  NOT NULL COMMENT 'Field name',
-    `field_type`        varchar(50)  NOT NULL COMMENT 'Field type',
-    `field_comment`     varchar(2000) DEFAULT NULL COMMENT 'Field description',
-    `is_meta_field`     smallint(3)   DEFAULT '0' COMMENT 'Is this field a 
meta field? 0: no, 1: yes',
-    `field_format`      varchar(50)   DEFAULT NULL COMMENT 'Field format, 
including: MICROSECONDS, MILLISECONDS, SECONDS, SQL, ISO_8601 and custom such 
as yyyy-MM-dd HH:mm:ss',
-    `rank_num`          smallint(6)   DEFAULT '0' COMMENT 'Field order 
(front-end display field order)',
-    `is_deleted`        int(11)       DEFAULT '0' COMMENT 'Whether to delete, 
0: not deleted, > 0: deleted',
+    `id`                 int(11)      NOT NULL AUTO_INCREMENT COMMENT 
'Incremental primary key',
+    `inlong_group_id`    varchar(256) NOT NULL COMMENT 'Inlong group id',
+    `inlong_stream_id`   varchar(256) NOT NULL COMMENT 'Inlong stream id',
+    `sink_id`            int(11)      NOT NULL COMMENT 'Sink id',
+    `sink_type`          varchar(15)  NOT NULL COMMENT 'Sink type',
+    `source_field_name`  varchar(50)   DEFAULT NULL COMMENT 'Source field 
name',
+    `source_field_type`  varchar(50)   DEFAULT NULL COMMENT 'Source field 
type',
+    `field_name`         varchar(50)  NOT NULL COMMENT 'Field name',
+    `field_type`         varchar(50)  NOT NULL COMMENT 'Field type',
+    `field_comment`      varchar(2000) DEFAULT NULL COMMENT 'Field 
description',
+    `field_length`       int(4)        DEFAULT NULL COMMENT 'Field length',
+    `field_precision`    int(4)        DEFAULT NULL COMMENT 'Field precision',
+    `field_scale`        int(4)        DEFAULT NULL COMMENT 'Field scale',
+    `partition_strategy` varchar(20)   DEFAULT NULL COMMENT 'Field partition 
strategy',
+    `is_meta_field`      smallint(3)   DEFAULT '0' COMMENT 'Is this field a 
meta field? 0: no, 1: yes',
+    `field_format`       varchar(50)   DEFAULT NULL COMMENT 'Field format, 
including: MICROSECONDS, MILLISECONDS, SECONDS, SQL, ISO_8601 and custom such 
as yyyy-MM-dd HH:mm:ss',
+    `rank_num`           smallint(6)   DEFAULT '0' COMMENT 'Field order 
(front-end display field order)',
+    `is_deleted`         int(11)       DEFAULT '0' COMMENT 'Whether to delete, 
0: not deleted, > 0: deleted',
     PRIMARY KEY (`id`)
 ) ENGINE = InnoDB
   DEFAULT CHARSET = utf8mb4 COMMENT ='Stream sink field table';

Reply via email to