diff --git a/client-adapter/elasticsearch/src/main/java/com/alibaba/otter/canal/client/adapter/es/config/SchemaItem.java b/client-adapter/elasticsearch/src/main/java/com/alibaba/otter/canal/client/adapter/es/config/SchemaItem.java index bad97bd4..0faf2de4 100644 --- a/client-adapter/elasticsearch/src/main/java/com/alibaba/otter/canal/client/adapter/es/config/SchemaItem.java +++ b/client-adapter/elasticsearch/src/main/java/com/alibaba/otter/canal/client/adapter/es/config/SchemaItem.java @@ -87,10 +87,13 @@ public class SchemaItem { .forEach((fieldName, fieldItem) -> fieldItem.getColumnItems().forEach(columnItem -> { // TableItem tableItem = getAliasTableItems().get(columnItem.getOwner()); // if (!tableItem.isSubQuery()) { - List fieldItems = columnFields.computeIfAbsent( - columnItem.getOwner() + "." + columnItem.getColumnName(), - k -> new ArrayList<>()); - fieldItems.add(fieldItem); + //当数据列并非原始列时,columnName是空的,例如concat('px',id) + if(columnItem.getColumnName() != null) { + List fieldItems = columnFields.computeIfAbsent( + columnItem.getOwner() + "." + columnItem.getColumnName(), + k -> new ArrayList<>()); + fieldItems.add(fieldItem); + } // } else { // tableItem.getSubQueryFields().forEach(subQueryField -> { // List fieldItems = columnFields.computeIfAbsent(