1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.data.pipeline.cdc.config.job;
19
20 import lombok.Getter;
21 import lombok.RequiredArgsConstructor;
22 import org.apache.shardingsphere.data.pipeline.api.type.ShardingSpherePipelineDataSourceConfiguration;
23 import org.apache.shardingsphere.data.pipeline.cdc.constant.CDCSinkType;
24 import org.apache.shardingsphere.data.pipeline.core.job.config.PipelineJobConfiguration;
25 import org.apache.shardingsphere.data.pipeline.core.datanode.JobDataNodeLine;
26 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
27
28 import java.util.List;
29 import java.util.Properties;
30
31
32
33
34 @RequiredArgsConstructor
35 @Getter
36 public final class CDCJobConfiguration implements PipelineJobConfiguration {
37
38 private final String jobId;
39
40 private final String databaseName;
41
42 private final List<String> schemaTableNames;
43
44 private final boolean full;
45
46 private final DatabaseType sourceDatabaseType;
47
48 private final ShardingSpherePipelineDataSourceConfiguration dataSourceConfig;
49
50 private final JobDataNodeLine tablesFirstDataNodes;
51
52 private final List<JobDataNodeLine> jobShardingDataNodes;
53
54 private final boolean decodeWithTX;
55
56 private final SinkConfiguration sinkConfig;
57
58 private final int concurrency;
59
60 private final int retryTimes;
61
62 @Override
63 public int getJobShardingCount() {
64 return jobShardingDataNodes.size();
65 }
66
67 @RequiredArgsConstructor
68 @Getter
69 public static class SinkConfiguration {
70
71 private final CDCSinkType sinkType;
72
73 private final Properties props;
74 }
75 }