You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

147 lines
3.4 KiB

6 months ago
### 一、环境准备
#### 1.mysql 需开启binlog及gtidseatunnel-cdc会伪装成mysql从库实现数据同步
mysql 8 版本参考配置如下:
```text
[mysqld]
# binlog
server-id = 1
log-bin = mysql-bin
expire_logs_days = 7
binlog_format = row
max_binlog_size = 100m
# enable gtid mode
gtid_mode = on
enforce_gtid_consistency = on
```
执行SQL验证是否开启binlog
```sql
show variables where variable_name in ('log_bin', 'binlog_format', 'binlog_row_image', 'gtid_mode', 'enforce_gtid_consistency');
```
![[Pasted image 20250227171647.png]]
#### 2.开启gtid
按顺序执行以下语句
```sql
set global gtid_mode = OFF_PERMISSIVE;
set global gtid_mode = ON_PERMISSIVE;
set global enforce_gtid_consistency = ON;
set global gtid_mode=ON;
```
### 二、source配置
6 months ago
```text
source {
  MySQL-CDC {
    base-url = "jdbc:mysql://172.31.51.244:3306/bjpt_v4_wlmq"
    username = "manager"
    password = "manager2!@#"
  database-names = ["bjpt_v4_wlmq"]
    table-names = ["bjpt_v4_wlmq.ryhcs_t_bqgl"]
    startup.mode = "initial"
  schema-changes.enabled = true
  server-id = "6500-7500"
  table-names-config = [
      {
        table = "bjpt_v4_wlmq.ryhcs_t_bqgl"
        primaryKeys = ["ID"]
      }
    ]
  }
}
6 months ago
```
### 三、示例
```hocon
env {
parallelism = 1
job.mode = "STREAMING"
}
source {
MySQL-CDC {
base-url = "jdbc:mysql://10.2.0.7:3306/bjpt_hekou_v3"
username = "root"
password = "root@123"
database-names = ["bjpt_hekou_v3"]
table-names = ["bjpt_hekou_v3.ms_t_crjry"]
startup.mode = "initial"
schema-changes.enabled = true
server-id = "6500-7500"
table-names-config = [
{
table = "bjpt_hekou_v3.ms_t_crjry"
primaryKeys = ["WYBS"]
}
]
}
}
sink {
Doris {
fenodes = "172.31.51.142:8030"
query-port = 9030
username = admin
password = "6G_FahdUxAh@K"
schema_save_mode = "CREATE_SCHEMA_WHEN_NOT_EXIST"
database = "bjbj"
table = "cdc_test_ms_t_crjry"
sink.enable-2pc = "true"
sink.enable-delete = "true"
sink.label-prefix = "cdc_test_ms_t_crjry"
doris.config = {
format="json"
read_json_by_line="true"
}
}
}
```
5 months ago
```text
env {
parallelism = 1
job.mode = "STREAMING"
}
source {
MySQL-CDC {
base-url = "jdbc:mysql://172.31.51.244:3306/bjpt_hekou_v3"
username = "manager"
password = "manager2!@#"
database-names = ["bjpt_hekou_v3"]
table-names = ["bjpt_hekou_v3.ms_t_crjry","bjpt_hekou_v3.ms_t_crjjtgj","bjpt_hekou_v3.ms_t_crjry_jhw"]
startup.mode = "initial"
schema-changes.enabled = true
server-id = "6500-7500"
table-names-config = [
{
table = "bjpt_hekou_v3.ms_t_crjry"
primaryKeys = ["WYBS"]
},
{
table = "bjpt_hekou_v3.ms_t_crjjtgj"
primaryKeys = ["WYBS"]
},
{
table = "bjpt_hekou_v3.ms_t_crjry_jhw"
primaryKeys = ["WYBS"]
}
]
}
}
sink {
Doris {
fenodes = "172.31.51.142:8030"
query-port = 9030
username = admin
password = "6G_FahdUxAh@K"
schema_save_mode = "CREATE_SCHEMA_WHEN_NOT_EXIST"
database = "bjbj"
table = "${table_name}_cdc_test"
sink.enable-2pc = "true"
sink.enable-delete = "true"
sink.label-prefix = "cdc_test_ms"
doris.config = {
format="json"
read_json_by_line="true"
}
}
}
```