diff --git a/client-adapter/clickhouse/src/main/java/com/alibaba/otter/canal/client/adapter/clickhouse/service/ClickHouseEtlService.java b/client-adapter/clickhouse/src/main/java/com/alibaba/otter/canal/client/adapter/clickhouse/service/ClickHouseEtlService.java index 59bab110..994dbd08 100644 --- a/client-adapter/clickhouse/src/main/java/com/alibaba/otter/canal/client/adapter/clickhouse/service/ClickHouseEtlService.java +++ b/client-adapter/clickhouse/src/main/java/com/alibaba/otter/canal/client/adapter/clickhouse/service/ClickHouseEtlService.java @@ -40,7 +40,7 @@ public class ClickHouseEtlService extends AbstractEtlService { public EtlResult importData(List params) { DbMapping dbMapping = config.getDbMapping(); DruidDataSource dataSource = DatasourceConfig.DATA_SOURCES.get(config.getDataSourceKey()); - String sql = "SELECT * FROM " + SyncUtil.getDbTableName(dbMapping, dataSource.getDbType()); + String sql = "SELECT * FROM " + SyncUtil.getSourceDbTableName(dbMapping, dataSource.getDbType()); return importData(sql, params); } diff --git a/client-adapter/clickhouse/src/main/java/com/alibaba/otter/canal/client/adapter/clickhouse/support/SyncUtil.java b/client-adapter/clickhouse/src/main/java/com/alibaba/otter/canal/client/adapter/clickhouse/support/SyncUtil.java index ad38a3b4..2909fc77 100644 --- a/client-adapter/clickhouse/src/main/java/com/alibaba/otter/canal/client/adapter/clickhouse/support/SyncUtil.java +++ b/client-adapter/clickhouse/src/main/java/com/alibaba/otter/canal/client/adapter/clickhouse/support/SyncUtil.java @@ -268,6 +268,17 @@ public class SyncUtil { return result; } + public static String getSourceDbTableName(MappingConfig.DbMapping dbMapping, String dbType) { + String result = ""; + String backtick = getBacktickByDbType(dbType); + if (StringUtils.isNotEmpty(dbMapping.getDatabase())) { + result += (backtick + dbMapping.getDatabase() + backtick + "."); + } + + result += (backtick + dbMapping.getTable() + backtick); + return result; + } + /** * 根据DbType返回反引号或空字符串 * diff --git a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbEtlService.java b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbEtlService.java index eea014e2..92ec1455 100644 --- a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbEtlService.java +++ b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/service/RdbEtlService.java @@ -39,7 +39,7 @@ public class RdbEtlService extends AbstractEtlService { DbMapping dbMapping = config.getDbMapping(); // 获取源数据源,根据数据库类型拼装数据库名和表名 DruidDataSource dataSource = DatasourceConfig.DATA_SOURCES.get(config.getDataSourceKey()); - String sql = "SELECT * FROM " + SyncUtil.getDbTableName(dbMapping, dataSource.getDbType()); + String sql = "SELECT * FROM " + SyncUtil.getSourceDbTableName(dbMapping, dataSource.getDbType()); return importData(sql, params); } diff --git a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/support/SyncUtil.java b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/support/SyncUtil.java index e8ea0209..a8219c5c 100644 --- a/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/support/SyncUtil.java +++ b/client-adapter/rdb/src/main/java/com/alibaba/otter/canal/client/adapter/rdb/support/SyncUtil.java @@ -284,6 +284,17 @@ public class SyncUtil { return result; } + public static String getSourceDbTableName(MappingConfig.DbMapping dbMapping, String dbType) { + String result = ""; + String backtick = getBacktickByDbType(dbType); + if (StringUtils.isNotEmpty(dbMapping.getDatabase())) { + result += (backtick + dbMapping.getDatabase() + backtick + "."); + } + + result += (backtick + dbMapping.getTable() + backtick); + return result; + } + /** * 根据DbType返回反引号或空字符串 *