码迷,mamicode.com
首页 > 其他好文 > 详细

Elasticsearch的脚本化数据导入导出

时间:2017-10-13 23:43:22      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:指令   cti   不能   0.12   ams   没有   src   mysq   /usr   

我用的ES的版本是2.4.1,由于没有相应的命令实现数据的导入和导出,就是像mysql的那种mysqldump类似的指令。

 

更苦逼的是,我们的生产和测试环境,还不能联网,连ES的第三方的插件都没有办法安装。。。

 

处于这种苦逼的境地,我只能通过脚本的方式实现数据的导入和导出了。

 

导出脚本,可以用我前面说的elasticdump,也可以用脚本实现。通常在自己的开发环境下可以搞定elasticdump的安装,但是测试环境或者生产环境,往往不会有这个条件,尤其在我当前所在的断网式网络安全策略下。

 

导入脚本,用python实现:

#! /usr/bin/env python
# -*- coding: utf-8 -*-

import json
import urllib
import httplib

fp = open(weibao_es.json)
cnt=0
try:
    #line = fp.readline()
    lines = fp.readlines()             # 调用文件的 readlines()方法
    conn = httplib.HTTPConnection("10.130.12.86",9200)
    print type(lines)
    for i in range(len(lines)):
        rawd = json.loads(lines[i])
        src = rawd["_source"]
        uid = rawd["_id"]
        params = json.dumps(src)
        conn.request("POST","/robotkdb/weibao/"+uid, params)
        resp = conn.getresponse()
        print "i: %d, %s" % (i,resp.read().strip())
finally:
     fp.close()

 

效果能满足要求,有点笨,搞技术的人,各种招都能想到。。。

 

Elasticsearch的脚本化数据导入导出

标签:指令   cti   不能   0.12   ams   没有   src   mysq   /usr   

原文地址:http://www.cnblogs.com/shihuc/p/7663635.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!