• Elasticsearch mysql 增量同步 三表联合 脚本


    从上方插件官网中下载适合的dist包,然后解压。进入bin目录,可以看到一堆sh脚本。在bin目录下创建一个test.sh:

    bin=/home/csonezp/Dev/elasticsearch-jdbc-2.3.1.0/bin
    lib=/home/csonezp/Dev/elasticsearch-jdbc-2.3.1.0/lib
    echo '{
    "type" : "jdbc",
    "statefile" : "statefile.json",
    "jdbc": {
    "url" : "jdbc:mysql://myaddr",
    "user" : "myuser",
    "password" : "mypwd",
    "type" : "mytype",
    "index": "myindex",
    "schedule" : "0 * * * * ?",
    "metrics" : {"enabled" : true
    },
    "sql" : [{ "statement" : "select * from gd_actor_info where update_time > ?", "parameter" : [ "$metrics.lastexecutionstart" ]}
    ]
    }
    }' | java
    -cp "${lib}/*"
    -Dlog4j.configurationFile=${bin}/log4j2.xml
    org.xbib.tools.Runner
    org.xbib.tools.JDBCImporter

    schedule现在设置成每分钟都执行一次,是为了方便观察行为。statefile这一句是一定要加的。$metrics.lastexecutionstart就是这个脚本的关键所在了,这个指的是上一次脚本执行的时间,可以通过比较这个时间和数据库里的字段来判断是否要更新。

    Elasticsearch mysql 增量同步 三表联合 脚本

    上面简略的说了一下es同步数据脚本的大致情况,但是实际情况里肯定不会像上一篇里面的脚本那么简单。比如目前我就有三张表,两张实体表,一张关联表。大致实现如下:

    bin目录建立一个statefile.json文件:

    {
    "type" : "jdbc",
    "statefile" : "statefile.json",
    "jdbc": {
    "url" : "jdbc:mysql://",
    "user" : "",
    "password" : "",
    "type" : "actor",
    "index": "test",
    "schedule" : "0 * * * * ?",
    "metrics" : { 
    "lastexecutionstart" : "0",
    "lastexecutionend" : "0",
    "counter" : "1" 
    }, 
    "sql" : [{ "statement" : "select a.actor_id as _id ,a.*,GROUP_CONCAT(b.tag_name ) as tag_name from ( ( gd_actor_info as a left join gd_actor_tag as ab on a.actor_id = ab.actor_id ) left join gd_tag_actor as b on ab.tag_id = b.tag_id) where a.update_time >? or ab.update_time > ? group by a.actor_id ", "parameter" : [ "$metrics.lastexecutionstart" ,"$metrics.lastexecutionstart" ]}
    ]
    }
    }

    主要是lastexecutionstart设置为0,为了让第一次执行能进行一次全量备份。

    其实sh脚本信息也就都在上面了,再写一个就好了

    ElasticSearch 最新版本 2.20 发布下载了 http://www.linuxidc.com/Linux/2016-02/128166.htm

    Linux上安装部署ElasticSearch全程记录 http://www.codesec.net/Linux/2015-09/123241.htm

    Elasticsearch安装使用教程 http://www.codesec.net/Linux/2015-02/113615.htm

    ElasticSearch 配置文件译文解析 http://www.codesec.net/Linux/2015-02/114244.htm

    ElasticSearch集群搭建实例 http://www.codesec.net/Linux/2015-02/114243.htm

    分布式搜索ElasticSearch单机与服务器环境搭建 http://www.codesec.net/Linux/2012-05/60787.htm

    ElasticSearch的工作机制 http://www.codesec.net/Linux/2014-11/109922.htm

    Elasticsearch的安装,运行和基本配置 http://www.codesec.net/Linux/2016-07/2881064151.htm

    使用Elasticsearch + Logstash + Kibana搭建日志集中分析平台实践 http://www.codesec.net/Linux/2015-12/126587.htm

    Ubuntu 14.04搭建ELK日志分析系统(Elasticsearch+Logstash+Kibana) http://www.codesec.net/Linux/2016-06/132618.htm

    Elasticsearch1.7升级到2.3实践总结 http://www.codesec.net/Linux/2016-11/137282.htm

  • 相关阅读:
    XML实例入门2
    XML入门
    XML实例入门1
    C语言复合梯形公式实现定积分
    一些界面库比较以及如何选择界面库
    网络阅读开篇
    vs2008 edit spin 十六进制实现
    jquery操作cookie
    Excel导入到DataTable
    SQL 查找某个字段的首字母
  • 原文地址:https://www.cnblogs.com/cbryge/p/6114892.html
Copyright © 2020-2023  润新知