Просмотр исходного кода

Merge remote-tracking branch 'origin/V_1.0.0_Beta' into yjwang

yjwang 3 лет назад
Родитель
Сommit
8fdb2a0251

+ 8 - 2
README.md

@@ -1,5 +1,5 @@
 ## 介绍
-DBSyncer是一款开源的数据同步中间件,提供Mysql、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、SQL(Mysql/Oracle/SqlServer/PostgreSQL)等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。
+DBSyncer是一款开源的数据同步中间件,提供Mysql、Oracle、SqlServer、PostgreSQL、Elasticsearch(ES)、Kafka、File、SQL(Mysql/Oracle/SqlServer/PostgreSQL)等同步场景。支持上传插件自定义同步转换业务,提供监控全量和增量数据统计图、应用性能预警等。
 
 > 特点
 * 组合驱动,自定义库同步到库组合,关系型数据库与非关系型之间组合,任意搭配表同步映射关系
@@ -53,6 +53,12 @@ DBSyncer是一款开源的数据同步中间件,提供Mysql、Oracle、SqlServ
                 <td>✔</td>
                 <td>2.10-0.9.0.0以上</td>
             </tr>
+            <tr>
+                <td>File</td>
+                <td>✔</td>
+                <td>开发中</td>
+                <td>*.txt, *.unl</td>
+            </tr>
             <tr>
                 <td>SQL</td>
                 <td>✔</td>
@@ -60,7 +66,7 @@ DBSyncer是一款开源的数据同步中间件,提供Mysql、Oracle、SqlServ
                 <td>支持以上关系型数据库</td>
             </tr>
             <tr>
-                <td>最近计划</td>
+                <td>后期计划</td>
                 <td colspan="3">Redis</td>
             </tr>
         </tbody>

+ 5 - 2
dbsyncer-listener/src/main/java/org/dbsyncer/listener/file/FileExtractor.java

@@ -5,6 +5,7 @@ import org.dbsyncer.common.event.RowChangedEvent;
 import org.dbsyncer.common.util.JsonUtil;
 import org.dbsyncer.common.util.NumberUtil;
 import org.dbsyncer.common.util.RandomUtil;
+import org.dbsyncer.common.util.StringUtil;
 import org.dbsyncer.connector.config.FileConfig;
 import org.dbsyncer.connector.constant.ConnectorConstant;
 import org.dbsyncer.connector.file.FileConnectorMapper;
@@ -148,8 +149,10 @@ public class FileExtractor extends AbstractExtractor {
             String line;
             while (null != (line = pipelineResolver.readLine())) {
                 snapshot.put(filePosKey, String.valueOf(raf.getFilePointer()));
-                List<Object> row = fileResolver.parseList(pipelineResolver.fields, separator, line);
-                changedEvent(new RowChangedEvent(fileName, ConnectorConstant.OPERTION_UPDATE, Collections.EMPTY_LIST, row));
+                if (StringUtil.isNotBlank(line)) {
+                    List<Object> row = fileResolver.parseList(pipelineResolver.fields, separator, line);
+                    changedEvent(new RowChangedEvent(fileName, ConnectorConstant.OPERTION_UPDATE, Collections.EMPTY_LIST, row));
+                }
             }
 
         }

+ 13 - 13
dbsyncer-web/src/main/resources/public/connector/addFile.html

@@ -45,53 +45,53 @@
                         "fields": [
                             {
                                 "name": "id",
-                                "typeName": "String",
-                                "type": 12,
+                                "typeName": "integer",
+                                "type": 4,
                                 "pk": true
                             },
                             {
-                                "name": "age",
-                                "typeName": "Integer",
-                                "type": 4
+                                "name": "name",
+                                "typeName": "string",
+                                "type": 12
                             },
                             {
                                 "name": "count",
-                                "typeName": "Long",
+                                "typeName": "long",
                                 "type": -5
                             },
                             {
                                 "name": "type",
-                                "typeName": "Short",
+                                "typeName": "short",
                                 "type": 5
                             },
                             {
                                 "name": "money",
-                                "typeName": "Float",
+                                "typeName": "float",
                                 "type": 6
                             },
                             {
                                 "name": "score",
-                                "typeName": "Double",
+                                "typeName": "double",
                                 "type": 8
                             },
                             {
                                 "name": "status",
-                                "typeName": "Boolean",
+                                "typeName": "boolean",
                                 "type": -7
                             },
                             {
                                 "name": "create_date",
-                                "typeName": "Date",
+                                "typeName": "date",
                                 "type": 91
                             },
                             {
                                 "name": "time",
-                                "typeName": "Time",
+                                "typeName": "time",
                                 "type": 92
                             },
                             {
                                 "name": "update_time",
-                                "typeName": "Timestamp",
+                                "typeName": "timestamp",
                                 "type": 93
                             }
                         ]