Skip to content

mouday/MySync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MySync

同步MySQL数据到ElasticSearch

https://github.com/mouday/MySync

支持全量同步

必须有自增id

安装

$ pip install mysync

$ mysync

# run config test 
$ mysync -t config.yml

# run sync
$ mysync -c config.yml

默认的配置文件default_config.yml

# 输入配置
input:

  # 数据库配置
  mysql:
    db_url: ~

    # 或者
    host: '127.0.0.1'
    port: 3306
    database: data
    username: root
    password: ''

  # 主键列名
  primary_key: id

  # 主键类型
  primary_type: int

  # 同步的表名,必填
  # table: ''

  # 需要同步字段
  fields: '*'

  # 分页大小
  size: 10

  # 生产者,会按照路径导入
  producer: 'mysync.producer.mysql_producer@producer'

  # 启用同步点
  sync_point: true

  # 同步点文件
  sync_file: ~

# 数据处理管道
pipeline:
  handlers: ~

# 输出配置
output:

  # ES配置
  elasticsearch:
    hosts:
      - 'http://127.0.0.1:9200'

  # 索引名,必填
  # index: ''

  # 操作:index, update
  action: 'index'

  # 文档type
  document_type: 'doc'

  # 文档id
  document_id: 'id'

  # 是否在控制台输出json
  stdout: false

  # 数据消费者
  consumer: 'mysync.consumer.es_consumer@consumer'

默认的处理器

# 生产者,会按照路径导入
producer: 'mysync.producer.mysql_producer@producer'

# 数据消费者
consumer: 'mysync.consumer.es_consumer@consumer'

# 可选的数据处理器
handlers: 
    - mysync.pipeline.field_mapping_pipeline@pipeline

接口说明

生产者
def producer(config):

处理器
def pipeline(config, rows)

消费者
def consumer(config, rows):

TODO

1. 配置文件继承 extends 2. 配置文件运行前检测 -t

About

MySQL同步数据到ElasticSearch的工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published