diff --git a/.gitignore b/.gitignore index 4a81d849..15da462c 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ /datax-registry/target/ /datax-rpc/datax-rpc.iml /datax-rpc/target/ +/datax-all.iml \ No newline at end of file diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/dto/MongoDBWriterDto.java b/datax-admin/src/main/java/com/wugui/datax/admin/dto/MongoDBWriterDto.java index b90f6cd6..78f25d8e 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/dto/MongoDBWriterDto.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/dto/MongoDBWriterDto.java @@ -21,12 +21,6 @@ public class MongoDBWriterDto implements Serializable { private String collectionName; - /** - * 当设置为true时,表示针对相同的upsertKey做更新操作 - */ - private boolean isUpsert; - /** - * upsertKey指定了没行记录的业务主键。用来做更新时使用。 - */ - private String upsertKey; + private UpsertInfo upsertInfo; + } diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/dto/UpsertInfo.java b/datax-admin/src/main/java/com/wugui/datax/admin/dto/UpsertInfo.java new file mode 100644 index 00000000..26409540 --- /dev/null +++ b/datax-admin/src/main/java/com/wugui/datax/admin/dto/UpsertInfo.java @@ -0,0 +1,18 @@ +package com.wugui.datax.admin.dto; + +import lombok.Data; + +/** + * Created by mac on 2020/3/16. + */ +@Data +public class UpsertInfo { + /** + * 当设置为true时,表示针对相同的upsertKey做更新操作 + */ + private boolean isUpsert; + /** + * upsertKey指定了没行记录的业务主键。用来做更新时使用。 + */ + private String upsertKey; +} diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/tool/datax/DataxJsonHelper.java b/datax-admin/src/main/java/com/wugui/datax/admin/tool/datax/DataxJsonHelper.java index bda5537d..6e8a7a29 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/tool/datax/DataxJsonHelper.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/tool/datax/DataxJsonHelper.java @@ -323,8 +323,8 @@ public class DataxJsonHelper implements DataxJsonInterface { dataxMongoDBPojo.setAddress(writerDatasource.getJdbcUrl()); dataxMongoDBPojo.setDbName(mongoDBWriterDto.getDbName()); dataxMongoDBPojo.setCollectionName(mongoDBWriterDto.getCollectionName()); - dataxMongoDBPojo.setUpsert(mongoDBWriterDto.isUpsert()); - dataxMongoDBPojo.setUpsertKey(mongoDBWriterDto.getUpsertKey()); + + dataxMongoDBPojo.setUpsertInfo(mongoDBWriterDto.getUpsertInfo()); return writerPlugin.buildMongoDB(dataxMongoDBPojo); } } diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/tool/datax/writer/MongoDBWriter.java b/datax-admin/src/main/java/com/wugui/datax/admin/tool/datax/writer/MongoDBWriter.java index f30127f6..cc9bad4a 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/tool/datax/writer/MongoDBWriter.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/tool/datax/writer/MongoDBWriter.java @@ -1,6 +1,7 @@ package com.wugui.datax.admin.tool.datax.writer; import com.google.common.collect.Maps; +import com.wugui.datax.admin.dto.UpsertInfo; import com.wugui.datax.admin.tool.pojo.DataxMongoDBPojo; import java.util.Map; @@ -17,7 +18,6 @@ public class MongoDBWriter extends BaseWriterPlugin implements DataxWriterInterf } - @Override public Map buildMongoDB(DataxMongoDBPojo plugin) { //构建 @@ -29,12 +29,11 @@ public class MongoDBWriter extends BaseWriterPlugin implements DataxWriterInterf parameterObj.put("userPassword", plugin.getJdbcDatasource().getJdbcPassword()); parameterObj.put("dbName", plugin.getDbName()); parameterObj.put("collectionName", plugin.getCollectionName()); + UpsertInfo upsert = plugin.getUpsertInfo(); + if (upsert != null) { + parameterObj.put("upsertInfo", upsert); + } writerObj.put("parameter", parameterObj); - - Map upsertInfo = Maps.newLinkedHashMap(); - upsertInfo.put("isUpsert", plugin.isUpsert()); - parameterObj.put("upsertKey", plugin.getUpsertKey()); - writerObj.put("upsertInfo", upsertInfo); return writerObj; } } diff --git a/datax-admin/src/main/java/com/wugui/datax/admin/tool/pojo/DataxMongoDBPojo.java b/datax-admin/src/main/java/com/wugui/datax/admin/tool/pojo/DataxMongoDBPojo.java index 85397367..f4bcadeb 100644 --- a/datax-admin/src/main/java/com/wugui/datax/admin/tool/pojo/DataxMongoDBPojo.java +++ b/datax-admin/src/main/java/com/wugui/datax/admin/tool/pojo/DataxMongoDBPojo.java @@ -1,5 +1,6 @@ package com.wugui.datax.admin.tool.pojo; +import com.wugui.datax.admin.dto.UpsertInfo; import com.wugui.datax.admin.entity.JobDatasource; import lombok.Data; @@ -20,7 +21,7 @@ public class DataxMongoDBPojo { /** * hive列名 */ - private List> columns; + private List> columns; /** * 数据源信息 @@ -33,13 +34,6 @@ public class DataxMongoDBPojo { private String collectionName; - /** - * 当设置为true时,表示针对相同的upsertKey做更新操作 - */ - private boolean isUpsert; - /** - * upsertKey指定了没行记录的业务主键。用来做更新时使用。 - */ - private String upsertKey; -} + private UpsertInfo upsertInfo; +} \ No newline at end of file diff --git a/datax-all.iml b/datax-all.iml new file mode 100644 index 00000000..a0d4a1ea --- /dev/null +++ b/datax-all.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file