mq模式下adapter配置增加groupId属性对应

This commit is contained in:
mcy
2019-02-01 15:18:16 +08:00
parent 597a08ac37
commit 10276e254a
7 changed files with 33 additions and 35 deletions

View File

@@ -93,8 +93,10 @@ public class ESAdapter implements OuterAdapter {
String schema = matcher.group(2);
schemaItem.getAliasTableItems().values().forEach(tableItem -> {
Map<String, ESSyncConfig> esSyncConfigMap = dbTableEsSyncConfig
.computeIfAbsent(schema + "-" + tableItem.getTableName(), k -> new HashMap<>());
Map<String, ESSyncConfig> esSyncConfigMap = dbTableEsSyncConfig.computeIfAbsent(
StringUtils.trimToEmpty(config.getDestination()) + "-" + StringUtils
.trimToEmpty(config.getGroupId()) + "_" + schema + "-" + tableItem.getTableName(),
k -> new ConcurrentHashMap<>());
esSyncConfigMap.put(configName, config);
});
}
@@ -132,21 +134,11 @@ public class ESAdapter implements OuterAdapter {
public void sync(Dml dml) {
String database = dml.getDatabase();
String table = dml.getTable();
Map<String, ESSyncConfig> configMap = dbTableEsSyncConfig.get(database + "-" + table);
if (configMap != null) {
List<ESSyncConfig> configs = new ArrayList<>();
configMap.values().forEach(esConfig -> {
if (StringUtils.isNotEmpty(esConfig.getGroupId())) {
if (esConfig.getGroupId().equals(dml.getGroupId())) {
configs.add(esConfig);
}
} else {
configs.add(esConfig);
}
});
if (!configs.isEmpty()) {
esSyncService.sync(configs, dml);
}
Map<String, ESSyncConfig> configMap = dbTableEsSyncConfig
.get(StringUtils.trimToEmpty(dml.getDestination()) + "-" + StringUtils.trimToEmpty(dml.getGroupId()) + "_"
+ database + "-" + table);
if (configMap != null && !configMap.values().isEmpty()) {
esSyncService.sync(configMap.values(), dml);
}
}

View File

@@ -1,15 +1,14 @@
dataSourceKey: defaultDS
destination: example
groupId: g1
esMapping:
_index: mytest_user
_type: _doc
_id: _id
# pk: id
sql: "select a.id as _id, a.name as _name, a.role_id as _role_id, b.role_name as _role_name,
a.c_time as _c_time, c.labels as _labels from user a
left join role b on b.id=a.role_id
left join (select user_id, group_concat(label order by id desc separator ';') as labels from label
group by user_id) c on c.user_id=a.id"
a.c_time as _c_time from user a
left join role b on b.id=a.role_id"
# objFields:
# _labels: array:;
etlCondition: "where a.c_time>='{0}'"