python 2.6编写,自己瞎写的,备用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
''' Export and Import ElasticSearch Data. Simple Example At __main__ @author: wgzh159@163.com @note: uncheck consistency of data, please do it by self ''' import json import os import sys import time import urllib2 reload (sys) sys.setdefaultencoding( 'utf-8' ) # @UndefinedVariable class exportEsData(): size = 10000 def __init__( self , url,index, type ): self .url = url + "/" + index + "/" + type + "/_search" self .index = index self . type = type def exportData( self ): print ( "export data begin..." ) begin = time.time() try : os.remove( self .index + "_" + self . type + ".json" ) except : os.mknod( self .index + "_" + self . type + ".json" ) msg = urllib2.urlopen( self .url).read() print (msg) obj = json.loads(msg) num = obj[ "hits" ][ "total" ] start = 0 end = num / self .size + 1 while (start<end): msg = urllib2.urlopen( self .url + "?from=" + str (start * self .size) + "&size=" + str ( self .size)).read() self .writeFile(msg) start = start + 1 print ( "export data end!!!\n\t total consuming time:" + str (time.time() - begin) + "s" ) def writeFile( self ,msg): obj = json.loads(msg) vals = obj[ "hits" ][ "hits" ] try : f = open ( self .index + "_" + self . type + ".json" , "a" ) for val in vals: a = json.dumps(val[ "_source" ],ensure_ascii = False ) f.write(a + "\n" ) finally : f.flush() f.close() class importEsData(): def __init__( self ,url,index, type ): self .url = url + "/" + index + "/" + type self .index = index self . type = type def importData( self ): print ( "import data begin..." ) begin = time.time() try : f = open ( self .index + "_" + self . type + ".json" , "r" ) for line in f: self .post(line) finally : f.close() print ( "import data end!!!\n\t total consuming time:" + str (time.time() - begin) + "s" ) def post( self ,data): req = urllib2.Request( self .url,data,{ "Content-Type" : "application/json; charset=UTF-8" }) urllib2.urlopen(req) if __name__ = = '__main__' : ''' Export Data e.g. URL index type exportEsData("http://10.100.142.60:9200","watchdog","mexception").exportData() export file name: watchdog_mexception.json ''' #exportEsData("http://10.100.142.60:9200","watchdog","mexception").exportData() exportEsData( "http://10.100.142.60:9200" , "watchdog" , "mexception" ).exportData() ''' Import Data *import file name:watchdog_test.json (important) "_" front part represents the elasticsearch index "_" after part represents the elasticsearch type e.g. URL index type mportEsData("http://10.100.142.60:9200","watchdog","test").importData() ''' #importEsData("http://10.100.142.60:9200","watchdog","test").importData() importEsData( "http://10.100.142.60:9200" , "watchdog" , "test" ).importData() |
以上所述就是本文的全部内容了,希望大家能够喜欢。