使用Python往Elasticsearch插入數據
在這裏,我使用Elasticsearch官方推薦
elasticsearch
第三方包來講述插入數據的兩種方法。
1. index
這是很簡單的一個插入數據的方法,每條數據調用一個index
方法,代碼如下
from datetime import datetime
from elasticsearch import Elasticsearch
es = Elasticsearch( "localhost:9200" )
data = {
"@timestamp" : datetime.now().strftime( "%Y-%m-%dT%H:%M:%S.000+0800" ),
"http_code" : "404",
"count" : "10"
}
es.index( index="http_code", doc_type="error_code", body=data )
2. bulk
一次性插入多條數據的方法
from datetime import datetime
from elasticsearch import Elasticsearch
import elasticsearch.helpers
import random
es = Elasticsearch( "localhost:9200" )
package = []
for i in range( 10 ):
row = {
"@timestamp":datetime.now().strftime( "%Y-%m-%dT%H:%M:%S.000+0800" ),
"http_code" : "404",
"count" : random.randint( 1, 100 )
}
package.append( row )
actions = [
{
'_op_type': 'index',
'_index': "http_code", //index
'_type': "error_code", //type
'_source': d
}
for d in package
]
elasticsearch.helpers.bulk( es, action )