iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 15
0
自我挑戰組

機械學習網域事件關聯分析系列 第 15

Day15 總之先從Elasticsearch倒資料到Python

介紹

在做ML或DL之前都必須先把資料倒進Python,說到從Elasticsearch把資料倒進Python,就必須介紹到elasticsearch.py,基本上跟Elasticsearch的API一樣,只要符合Query Domain Specific Language(Query DSL)格式就沒有問題了,對熟悉ELK的大大們來說,轉接到Python簡直輕而易舉!!(我不是大大,所以我不熟QAQ)

API介紹

主要API是依靠Query DSL來向Elasticsearch Server索取資料,最基礎的Query DSL格式如下,篩選user等於kimchy的項目term,只列出從0到第10筆,透過替換term可以做到各種篩選

{
    "from" : 0, "size" : 10,
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}

下面列出我有使用到的Query,提供給各位參考,主要是列出從2018/10/8往前1個禮拜的資料,從第0筆開始只列出10000筆資料,這邊主要是為了一次提出10000筆資料來塞入Python,之後再做其他處理:

from elasticsearch import Elasticsearch
es = Elasticsearch(hosts=[ELASTICSEARCH_IP]) # ELASTICSEARCH_IP is the ip of your Elasticsearch Server.
query_str = '{"query":{"range":{"event_data.UtcTime":{"gte":"2018-10-08", "lte":"2018-10-15"}}}}'
res = es.search(index=index_name, body=query_str, from_=0, size=10000) # DON'T SET SIZE=100000
print(res['hits']['hits'])

上一篇
Day14 總之該來點ML了
下一篇
Day16 總之從基本的前處理開始做起
系列文
機械學習網域事件關聯分析17

尚未有邦友留言

立即登入留言