|
30 | 30 | import org.apache.flink.cdc.common.source.DataSource; |
31 | 31 | import org.apache.flink.cdc.common.utils.StringUtils; |
32 | 32 | import org.apache.flink.cdc.connectors.mysql.source.MySqlDataSource; |
| 33 | +import org.apache.flink.cdc.connectors.mysql.source.config.ChunkKeyCompareMode; |
33 | 34 | import org.apache.flink.cdc.connectors.mysql.source.config.MySqlSourceConfigFactory; |
34 | 35 | import org.apache.flink.cdc.connectors.mysql.source.config.ServerIdRange; |
35 | 36 | import org.apache.flink.cdc.connectors.mysql.source.offset.BinlogOffset; |
|
80 | 81 | import static org.apache.flink.cdc.connectors.mysql.source.MySqlDataSourceOptions.SCAN_INCREMENTAL_SNAPSHOT_BACKFILL_SKIP; |
81 | 82 | import static org.apache.flink.cdc.connectors.mysql.source.MySqlDataSourceOptions.SCAN_INCREMENTAL_SNAPSHOT_CHUNK_KEY_COLUMN; |
82 | 83 | import static org.apache.flink.cdc.connectors.mysql.source.MySqlDataSourceOptions.SCAN_INCREMENTAL_SNAPSHOT_CHUNK_SIZE; |
| 84 | +import static org.apache.flink.cdc.connectors.mysql.source.MySqlDataSourceOptions.SCAN_INCREMENTAL_SNAPSHOT_STRING_KEY_COMPARE_MODE; |
83 | 85 | import static org.apache.flink.cdc.connectors.mysql.source.MySqlDataSourceOptions.SCAN_INCREMENTAL_SNAPSHOT_UNBOUNDED_CHUNK_FIRST_ENABLED; |
84 | 86 | import static org.apache.flink.cdc.connectors.mysql.source.MySqlDataSourceOptions.SCAN_NEWLY_ADDED_TABLE_ENABLED; |
85 | 87 | import static org.apache.flink.cdc.connectors.mysql.source.MySqlDataSourceOptions.SCAN_SNAPSHOT_FETCH_SIZE; |
@@ -167,6 +169,9 @@ public DataSource createDataSource(Context context) { |
167 | 169 | boolean useLegacyJsonFormat = config.get(USE_LEGACY_JSON_FORMAT); |
168 | 170 | boolean isAssignUnboundedChunkFirst = |
169 | 171 | config.get(SCAN_INCREMENTAL_SNAPSHOT_UNBOUNDED_CHUNK_FIRST_ENABLED); |
| 172 | + ChunkKeyCompareMode chunkKeyCompareMode = |
| 173 | + ChunkKeyCompareMode.fromValue( |
| 174 | + config.get(SCAN_INCREMENTAL_SNAPSHOT_STRING_KEY_COMPARE_MODE)); |
170 | 175 |
|
171 | 176 | validateIntegerOption(SCAN_INCREMENTAL_SNAPSHOT_CHUNK_SIZE, splitSize, 1); |
172 | 177 | validateIntegerOption(CHUNK_META_GROUP_SIZE, splitMetaGroupSize, 1); |
@@ -220,6 +225,7 @@ public DataSource createDataSource(Context context) { |
220 | 225 | .treatTinyInt1AsBoolean(treatTinyInt1AsBoolean) |
221 | 226 | .useLegacyJsonFormat(useLegacyJsonFormat) |
222 | 227 | .assignUnboundedChunkFirst(isAssignUnboundedChunkFirst) |
| 228 | + .chunkKeyCompareMode(chunkKeyCompareMode) |
223 | 229 | .skipSnapshotBackfill(skipSnapshotBackfill); |
224 | 230 |
|
225 | 231 | List<TableId> tableIds = MySqlSchemaUtils.listTables(configFactory.createConfig(0), null); |
@@ -358,6 +364,7 @@ public Set<ConfigOption<?>> optionalOptions() { |
358 | 364 | options.add(PARSE_ONLINE_SCHEMA_CHANGES); |
359 | 365 | options.add(SCAN_INCREMENTAL_SNAPSHOT_UNBOUNDED_CHUNK_FIRST_ENABLED); |
360 | 366 | options.add(SCAN_INCREMENTAL_SNAPSHOT_BACKFILL_SKIP); |
| 367 | + options.add(SCAN_INCREMENTAL_SNAPSHOT_STRING_KEY_COMPARE_MODE); |
361 | 368 | return options; |
362 | 369 | } |
363 | 370 |
|
|
0 commit comments