-
[Python] elasticsearch bulk insert contain _idElasticsearch 2020. 3. 4. 09:14
elasticserch에 데이터를 넣으면 UUID를 이용하여 자동으로 생성해주지만 실제 RDB와 연동하여 사용할 경우 ID를 PK과 값과
같이 관리할 일이 있다.
Sample Dataframe
import numpy as np import pandas as pd from datetime import datetime from elasticsearch import Elasticsearch from elasticsearch import helpers productId = ['AAA001', 'AAA002', 'AAA003' , 'AAA004', 'AAA005'] price = [15000, 11000, 21000, 25000, 14500] soldDay = [datetime(2020, 1, 2, 0, 0), datetime(2020, 1, 3, 0, 0), datetime(2020, 1, 5, 0, 0), datetime(2020, 1, 7, 0, 0), datetime(2020, 1, 9, 0, 0)] df = pd.DataFrame([ x for x in zip(productId, price, soldDay)], columns=['productId','price','soldDay']) df
bulk insert
es = Elasticsearch(host=' ', port=' ') data = [ { "_index": "product", "_type": "product", "_id": x[0], "_source": { "price": x[1], "soldDay": x[2], "timestamp": datetime.today().date()} } for x in zip(df['productId'],df['price'],df['soldDay']) ] helpers.bulk(es, data)
productId 컬럼이 _id로 등록
_id 'AAA001' 로 검색
res = es.get(index="product", doc_type='product', id='AAA001') print(res['_source']) {'price': 15000, 'soldDay': '2020-01-02T00:00:00', 'timestamp': '2020-03-04'}
'Elasticsearch' 카테고리의 다른 글
[Elasticsearch] Elasticsearch head (cluster )모니터링 하기 (0) 2021.03.25 [Python] Get elastic cluster health. (파이썬API를 이용한 elastic 클러스터 핼쓰 보기) (0) 2020.03.03 [Elasticsearch] index 생성시 shards(샤드)와 replicas(레플리카) 세팅 (0) 2020.02.21 [Python] Insert bulk from pandas dataframe to elasticsearch (0) 2020.02.15 CentOS 7 Auditbeat 7.0 OSS RPM Install (0) 2019.04.29 CentOS 7 Elasticsearch / kibana 7.0 OSS RPM Install (0) 2019.04.29 [elastic] winlogbeat (윈도이벤트 로그 경량 수집기) - 설치 (0) 2019.03.20 [Python] Elasticsearch Monitoring (0) 2018.07.22