同步es,目前采用reindex模式,使用二分法快速查找同步,支持多种同步方式,单向同步、双向同步,定时单向,定时双向。
![]() |
hai 1 ano | |
---|---|---|
.gitignore | hai 1 ano | |
README.md | hai 1 ano | |
config.yaml | hai 1 ano | |
config_n.yaml | hai 1 ano | |
config_o.yaml | hai 1 ano | |
config_on.yaml | hai 1 ano | |
go.mod | hai 1 ano | |
go.sum | hai 1 ano | |
main.go | hai 1 ano |
目前采用reindex模式,使用二分法快速查找同步,支持多种同步方式,单向同步、双向同步,定时单向,定时双向。 后续考虑增加数据模式,对比缺失数据,进行保存同步
同步同一个集群内es数据,同步不同es集群的数据
只校验数据,不同步
支持传递sql语句限定同步范围
id范围支持id段和时间段
id范围支持固定段、目标端最大id(建议只在定时模式使用)、二者取最小(建议只在定时模式使用)
支持限定同步字段
支持单向同步、双向同步、定时单向、定时双向
定时同步模式支持 多组同步
使用本地数据库记录正在同步的任务,定时检查任务数据
参考config.yaml,配置好后直接编译运行,建议第一次运行synctest为true
POST _reindex
{
"source": {
"index": "bidding",
"query": {
"bool": {
"filter":[{"range":{"publishtime":{"lt":1694966400,"gte":1687017600}}}]
}
}
},
"dest": {
"index": "bidding_temporary"
}
}
sql:
{
"query": {
"bool": {
"filter": [
{
"range": {
"id": {
"gt": "6509c7d80000000000000000",
"lte": "650fbff80000000000000000"
}
}
},
{
"bool": {
"must_not": [
{
"terms": {
"toptype": [
"采购意向",
"拟建"
]
}
}
]
}
}
]
}
}
}