同步MySQL数据到ElasticSearch

MySync的Python项目详细描述


MySync

同步MySQL数据到ElasticSearch

支持全量同步

必须有自增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. 配置文件继承 extends2. 配置文件运行前检测 -t

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在点击JButton触发的进程仍在处理时更新JLabel?   try-catch为什么Java有嵌套的try语句?   java SSH命令执行失败,出现异常“net.schmizz.sshj.connection.ConnectionException:引发连接重置异常”   java在ApacheCamel的接口类解析器中,resolveMandatoryClass(字符串名称)有什么用途?   java如何在Eclipse远程调试器中找到有问题的线程?   java线程:containerlaunch退出代码127的异常   lambda左连接Java中的2个对象列表   Swift 2.0协议扩展和Java/C抽象类之间有区别吗?   安卓改造:使用GSON将JSON解析为多个Java对象   Spring中服务层的java角色(澄清)   html Java与网站的通信   Spring boot rest api是在不创建java类的情况下将getResultList()转换为映射以显示响应的最佳方法吗?   使用“getElementById”从javascript获取值到java   java如何在文本视图中以粗体和多色显示文本   java是设置TextView颜色的最有效方法