• Elasticsearch 与 Mongodb 数据同步问题


    1、mongo-connector工具

    首先安装python环境

    wget http://www.python.org/ftp/python/3.0.1/Python-3.0.1.tgz

    tar -zxvf Python-3.0.1.tgz

    cd Python-3.0.1

    ./configure

    make all

    make install

    看来新装的版本生效了,做个软连接应该就OK。

    ln -s /usr/local/bin/python3.0 /usr/bin/python

    python -V

    安装pip

    $ wget https://bootstrap.pypa.io/get-pip.py

    $ python get-pip.py

    $ pip -V  #查看pip版本

    安装mongo-connector 

    如果是 Elasticsearch 5.x

     pip install 'mongo-connector[elastic5]'

    [Reference] https://github.com/mongodb-labs/mongo-connector

    执行命令:

     mongo-connector -m 192.9.8.204:27017 -t 192.9.8.223:9200 -d elastic2_doc_manager -n wymlib.ym_literature

    -m :mongodb地址,-t:目的地址,-d : Used to specify the path to each doc manager file that will be used.    -n:指定数据库

    2、elasticsearch-river-mongodb

    该工具只支持 elasticsearch 1.7.3 及以下版本

    bin/plugin --install com.github.richardwilly98.elasticsearch/elasticsearch-river-mongodb/2.0.9

    mongodb-river同步信息属性配置完整版:

     1 $ curl -XPUT "localhost:9200/_river/${es.river.name}/_meta" -d '
     2 {
     3   "type": "mongodb",
     4   "mongodb": { 
     5     "servers":
     6     [
     7       { "host": ${mongo.instance1.host}, "port": ${mongo.instance1.port} },
     8       { "host": ${mongo.instance2.host}, "port": ${mongo.instance2.port} }
     9     ],
    10     "options": { 
    11       "secondary_read_preference" : true, 
    12       "drop_collection": ${mongo.drop.collection}, 
    13       "exclude_fields": ${mongo.exclude.fields},
    14       "include_fields": ${mongo.include.fields},
    15       "include_collection": ${mongo.include.collection},
    16       "import_all_collections": ${mongo.import.all.collections},
    17       "initial_timestamp": {
    18         "script_type": ${mongo.initial.timestamp.script.type},
    19         "script": ${mongo.initial.timestamp.script}
    20       },
    21       "skip_initial_import" : ${mongo.skip.initial.import},
    22       "store_statistics" : ${mongo.store.statistics},
    23     },
    24     "credentials":
    25     [
    26       { "db": "local", "user": ${mongo.local.user}, "password": ${mongo.local.password} },
    27       { "db": "admin", "user": ${mongo.db.user}, "password": ${mongo.db.password} }
    28     ],
    29     "db": ${mongo.db.name}, 
    30     "collection": ${mongo.collection.name}, 
    31     "gridfs": ${mongo.is.gridfs.collection},
    32     "filter": ${mongo.filter}
    33   }, 
    34   "index": { 
    35     "name": ${es.index.name}, 
    36     "throttle_size": ${es.throttle.size},
    37     "bulk_size": ${es.bulk.size},
    38     "type": ${es.type.name}
    39     "bulk": {
    40       "actions": ${es.bulk.actions},
    41       "size": ${es.bulk.size},
    42       "concurrent_requests": ${es.bulk.concurrent.requests},
    43       "flush_interval": ${es.bulk.flush.interval}
    44     }
    45   }
    46 }'

    [Reference] https://github.com/richardwilly98/elasticsearch-river-mongodb

  • 相关阅读:
    积性函数前缀和
    CF1067D Computer Game
    Atcoder Tenka1 Programmer Contest 2019 题解
    Codeforces Round #549 (Div. 1) 题解
    SHOI2019旅游记
    CF871D Paths
    CF1065E Side Transmutations
    停更公告
    博客说明
    SCOI2019酱油记
  • 原文地址:https://www.cnblogs.com/hoojjack/p/8126458.html
Copyright © 2020-2023  润新知