couchdb 동기화 데이터를elasticsearch에 인덱스 만들기
couchdb에서 데이터를 읽고 elasticsearch 인터페이스를 조정하여 색인을 만들 생각은 하지 마세요.logstash는 당신이 원하는 일을 편리하게 완성할 수 있습니다. 당신이 해야 할 일은 logstash를 설치하는 것입니다.그리고 conf에 프로필을 작성합니다.예를 들어db2es.conf .
input {
couchdb_changes {
db => "media"
host => "192.168.0.70"
port => 5984
codec => "json"
username => "rdd"
password => "rdd1qaz2wsx"
initial_sequence => 0 #this is only required for the an initial indexing
#keep_revision=>true
}
}
output {
elasticsearch{
#action => "%{[@metadata][action]}"
action =>"index"
document_id => "%{[@metadata][_id]}"
hosts => "192.168.0.70:9200"
#index => "monitor-%{+YYYY.MM.dd}"
index => "media"
document_type => "doc"
}
if [@metadata][action] == "delete" {
elasticsearch{
action => "%{[@metadata][action]}"
#action =>"index"
document_id => "%{[@metadata][_id]}"
hosts => "192.168.0.70:9200"
#index => "monitor-%{+YYYY.MM.dd}"
index => "media"
document_type => "doc"
}
}
#stdout {} #enable this option for debugging purpose
}
다음은 실행 명령입니다.
bin/logstash agent -f conf/db2es.conf &
이 프로필은 비교적 쓰기 좋다.action을 통해 색인을 쉽게 만들고 삭제할 수 있습니다.couchdb를 인용한document_id는 색인을 반복적으로 만드는 것을 방지할 수 있습니다.물론 그 자체는couchdb의 필드 형식에 따라elasticsearch에 색인을 만들었습니다. 예를 들어 시간 형식을 지원하지만couchdb는 시간 형식에 대한 지원이 좋지 않은 것 같습니다. 시종일관utc+0으로 시간 필드를 만들기 때문에 데이터가couchdb에 들어갈 때 먼저 처리하는 것이 좋습니다.예를 들어 당신이 저장하는 시간은 UTC+8이고,couchdb는 자동으로 8시간을 당신의 저장 시간으로 줄일 것입니다.그러면 couchdb를 가져오기 전에 8시간을 더 넣어야 합니다. 이렇게 하면couchdb에서 8시간을 빼면 바로 당신이 원하는 시간입니다.그렇지 않으면elasticsearch에 동기화할 때 인덱스 시간이 정확한 시간대에 있는지 확인해야 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.