• 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

  • 相关阅读:
    如何使用Eclipse和GCC搭建STM32环境
    增量式pid和位置式PID参数整定过程对比
    webrtc 源码结构
    小米路由器刷Xiaomi Mi WiFi Mini openwrt
    js jQuery 右键菜单 清屏
    沉默的大多数 (王小波)
    kindle书摘-活着-余华-活着不易,珍惜
    kindle书摘-围城-相爱勿相伤
    Nagios系列1,选择
    红楼梦人物关系图,一代大师成绝响,下回分解待何人,kindle读书摘要
  • 原文地址:https://www.cnblogs.com/cbryge/p/6114892.html
Copyright © 2020-2023  润新知