相關配置如下:
```
rule:
-
schema: eseap #數據庫名稱
table: t_user #表名稱
#order_by_column: id #排序字段,存量數據同步時不能為空
#column_lower_case:false #列名稱轉為小寫,默認為false
#column_upper_case:false#列名稱轉為大寫,默認為false
column_underscore_to_camel: true #列名稱下劃線轉駝峰,默認為false
# 包含的列,多值逗號分隔,如:id,name,age,area_id 為空時表示包含全部列
#include_columns: ID,USER_NAME,PASSWORD
#exclude_columns: BIRTHDAY,MOBIE # 排除掉的列,多值逗號分隔,如:id,name,age,area_id 默認為空
#column_mappings: USER_NAME=account #列名稱映射,多個映射關系用逗號分隔,如:USER_NAME=account 表示將字段名USER_NAME映射為account
#default_column_values: source=binlog,area_name=合肥 #默認的列-值,多個用逗號分隔,如:source=binlog,area_name=合肥
#date_formatter: yyyy-MM-dd #date類型格式化, 不填寫默認yyyy-MM-dd
#datetime_formatter: yyyy-MM-dd HH:mm:ss #datetime、timestamp類型格式化,不填寫默認yyyy-MM-dd HH:mm:ss
value_encoder: json #值編碼,支持json、kv-commas、v-commas;默認為json
#value_formatter: '{{.ID}}|{{.USER_NAME}}' # 值格式化表達式,如:{{.ID}}|{{.USER_NAME}},{{.ID}}表示ID字段的值、{{.USER_NAME}}表示USER_NAME字段的值
#rabbitmq相關
rabbitmq_queue: user_topic #queue名稱,可以為空,默認使用表(Table)名稱
#reserve_raw_data: false #保留update之前的數據,針對rocketmq、kafka、rabbitmq有用;默認為false
```
其中,
value_encoder表示值編碼格式,支持json、kv-commas、v-commas三種格式,不填寫默認為json,具體如下表:
<table>
<tr>
<th width="15%">格式</th>
<th width="20%">說明</th>
<th>舉例</th>
</tr>
<td>json</td>
<td>json</td>
<td>{"id": "1001","userName": "admin","password": "123456",
"createTime": "2020-07-20 14:29:19"}</td>
</tr>
<tr>
<td>kv-commas</td>
<td>key-value逗號分隔</td>
<td>id=1001,userName=admin,password=123456,createTime=2020-07-20 14:29:19</td>
</tr>
<tr>
<td>v-commas</td>
<td>value逗號分隔</td>
<td>1001,admin,123456,2020-07-20 14:29:19</td>
</tr>
</table>
value_formatter表示值的格式化表達式,具體模板語法參見"表達式模板"章節,當value_formatter不為空時value_encoder無效。
reserve_raw_data表示是否保留update之前的數據,即保留修改之前的老數據,默認不保留
# **示例**
t_user表,數據如下:

## **示例一**
使用上述配置
insert事件,同步到RabbitMQ的數據如下:

update事件,同步到RabbitMQ的數據如下:

reserve\_raw\_data設置為true,update事件,同步到RabbitMQ的數據如下:

其中,raw屬性為update之前的舊數據
delete事件,同步到RabbitMQ的數據如下:

## 示例二
配置如下:
```
rule:
-
schema: eseap #數據庫名稱
table: t_user #表名稱
#order_by_column: id #排序字段,存量數據同步時不能為空
column_lower_case: true #列名稱轉為小寫,默認為false
#column_upper_case:false#列名稱轉為大寫,默認為false
#column_underscore_to_camel: true #列名稱下劃線轉駝峰,默認為false
# 包含的列,多值逗號分隔,如:id,name,age,area_id 為空時表示包含全部列
#include_columns: ID,USER_NAME,PASSWORD
#exclude_columns: BIRTHDAY,MOBIE # 排除掉的列,多值逗號分隔,如:id,name,age,area_id 默認為空
column_mappings: USER_NAME=account #列名稱映射,多個映射關系用逗號分隔,如:USER_NAME=account 表示將字段名USER_NAME映射為account
default_column_values: area_name=合肥 #默認的列-值,多個用逗號分隔,如:source=binlog,area_name=合肥
#date_formatter: yyyy-MM-dd #date類型格式化, 不填寫默認yyyy-MM-dd
#datetime_formatter: yyyy-MM-dd HH:mm:ss #datetime、timestamp類型格式化,不填寫默認yyyy-MM-dd HH:mm:ss
value_encoder: json #值編碼,支持json、kv-commas、v-commas;默認為json
#value_formatter: '{{.ID}}|{{.USER_NAME}}|{{.REAL_NAME}}|{{if eq .STATUS 0}}停用{{else}}啟用{{end}}'
#rabbitmq相關
rabbitmq_queue: user_topic #queue名稱,可以為空,默認使用表(Table)名稱
#reserve_raw_data: false #保留update之前的數據,針對rocketmq、kafka、rabbitmq有用;默認為false
```
其中,
column_mappings表示對列名稱進行重新映射
insert事件,同步到RabbitMQ的數據如下:

其中,屬性名稱USER\_NAME變為了account
## 示例三
配置如下:
```
rule:
-
schema: eseap #數據庫名稱
table: t_user #表名稱
#order_by_column: id #排序字段,存量數據同步時不能為空
column_lower_case: true #列名稱轉為小寫,默認為false
#column_upper_case:false#列名稱轉為大寫,默認為false
#column_underscore_to_camel: true #列名稱下劃線轉駝峰,默認為false
# 包含的列,多值逗號分隔,如:id,name,age,area_id 為空時表示包含全部列
#include_columns: ID,USER_NAME,PASSWORD
#exclude_columns: BIRTHDAY,MOBIE # 排除掉的列,多值逗號分隔,如:id,name,age,area_id 默認為空
#column_mappings: USER_NAME=account #列名稱映射,多個映射關系用逗號分隔,如:USER_NAME=account 表示將字段名USER_NAME映射為account
default_column_values: area_name=合肥 #默認的列-值,多個用逗號分隔,如:source=binlog,area_name=合肥
#date_formatter: yyyy-MM-dd #date類型格式化, 不填寫默認yyyy-MM-dd
#datetime_formatter: yyyy-MM-dd HH:mm:ss #datetime、timestamp類型格式化,不填寫默認yyyy-MM-dd HH:mm:ss
value_encoder: v-commas #值編碼,支持json、kv-commas、v-commas;默認為json
#value_formatter: '{{.ID}}|{{.USER_NAME}}|{{.REAL_NAME}}|{{if eq .STATUS 0}}停用{{else}}啟用{{end}}'
#rabbitmq相關
rabbitmq_queue: user_topic #queue名稱,可以為空,默認使用表(Table)名稱
#reserve_raw_data: false #保留update之前的數據,針對rocketmq、kafka、rabbitmq有用;默認為false
```
其中,
default_column_values表示默認的值
value_encoder配置項表示消息編碼方式
insert事件,同步到RabbitMQ的數據如下:

- 簡介
- 部署運行
- 高可用集群
- 同步數據到Redis
- Redis配置
- 基于規則同步
- 基于Lua腳本同步
- 同步數據到MongoDB
- MongoDB配置
- 基于規則同步
- 基于Lua腳本同步
- 同步數據到RocketMQ
- RocketMQ配置
- 基于規則同步
- 基于Lua腳本同步
- 同步數據到Kafka
- Kafka配置
- 基于規則同步
- 基于Lua腳本同步
- 同步數據到RabbitMQ
- RabbitMQ配置
- 基于規則同步
- 基于Lua腳本同步
- 同步數據到Elasticsearch
- Elasticsearch配置
- 基于規則同步
- 基于Lua腳本同步
- 全量數據導入
- Lua腳本
- 基礎模塊
- Json模塊
- HttpClient模塊
- DBClient模塊
- 監控
- 性能測試
- 常見問題
- 更新記錄開發計劃