Elastic Cloud 인덱스에 CSV 데이터 문서를 추가하는 방법
색인 작성 자체는 일astic Cloud의 키바나에서 CSV 파일을 올리면 되지만, 기존 색인에 CSV 데이터를 추가하려면 DevTools가 파일 참조를 할 수 없고 JSON에서만 추가할 수 있다.
이번에는 이쪽에서 보도된 로드입니다.csv.아주 참고했py.해놓은 host는 현지의 es가 아니라 구름이 된 es야.
원본 CSV 파일
아래와 같이 첫 번째 줄에 제목이 있고 쉼표로 구분되며date형식은yyy-MM-dd(date형식이 일반이라면 elastic측에서 식별할 수 있을 것 같다).본문에
,"\n\s
등의 내용이 없음을 주의해라.sample.csv
title,author,created_date,body,url,description,author_image_url
今日の出来事,たくや,2021-10-10,今日はほげほげで..,https://example.com/aaa,たくやの日記です。日々のうんたら..,https://img.example.com/tky
이루어지다
차리다
우선 임의의 디렉터리와 파일을 만들고 pip로elasticsearch에 넣습니다.
mkdir es_uploader
cd es_uploader
touch load_csv.py
pip3 install elasticsearch
이것의esuploader 디렉토리에 업로드될 것으로 예상되는 CSV 파일을 이동하거나 복사합니다.코드
그다음에 로드.csv.py에서 다음과 같은 내용을 기술하고 자신의 환경으로 변경합니다
load_csv.py
from elasticsearch import Elasticsearch
from elasticsearch import helpers
from csv import DictReader
csv_file = "sample.csv" # ここが~/や../のようにパス形式だと上手くいかなかった
index_name = "my-index"
es = Elasticsearch([f"https://username:[email protected]:9243"])
### simple
with open(csv_file, "rt", encoding = "utf-8") as file:
reader = DictReader(file)
for row in reader:
doc = row
print('adding..: ', doc)
es.index(index=index_name, body=doc)
es.close()
endpoint는 Elastic Cloud의 Deployment 화면에서 복제할 수 있다username:password@
는 보충 형식이다.아래의 작법도 괜찮을 것 같다.
es = Elasticsearch(
"https://username:[email protected]:9243",
http_auth=("username", "password")
)
마지막은 에스.close () 를 쓰지 않으면 실례가 저장될 때 좋지 않습니다인 것 같은데 명확하게 추가했어요.실행
실행하면 색인이 추가됩니다.
python3 load_csv.py
잡담
create 방법을 사용할 때 id가 필요하지만 index 방법은 id가 지정되지 않은 경우elastic 측에서 자동으로 번호를 매깁니다.또 중복을 피하려면 id로만 판단할 수 있고, 웹 검색엔진의 인덱스에서는 URL이나 URL로 판단할 수 있다.'와/'를'-'로 바꿔야 할지 논의 중이다.
참고 문장
Reference
이 문제에 관하여(Elastic Cloud 인덱스에 CSV 데이터 문서를 추가하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/maztak/articles/4f49188f815608텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)