공식사이트: elastic.co
기본적으로 elasticSearch가 근간인데
elasticSearch를 DB와 비교해서 가장 큰 차이점을 생각해 보면
1. 속도가 빠르다.. DB는 B-tree인데 elastic은 hash를 사용.
(물론 No-SQL DB중에는 redis등과 같이 hash사용하는 애들 있죠..)
2. Fuzzy개념이 있다.
(DB에서는 정확하게 입력한 query에 대한 결과가 나오지만,
elastic은 검색엔진 기반이다 보니, Fuzzy하게 혹은 가중치있게 검색할 수 있다.. 적당히 알아서 유사한 것들이 검색된다)
==============================================
elasticSearch에 data를 넣고,
kibana를 통해 그래프 형태로 조회 한다.
Logstash는 elasticSearch에 data를 대용량으로 넣을때 주로 사용한다.
<ElasticSearch>
키워드 : doc1, doc2 이러한 식으로 저장이 됨. O(1)의 HashTable이라고 생각하면 됨.
==> 따라서 search가 매우 빠름. (redis와
Index - db (RDB용어)
Type - table
document - row
Mapping -scema
(실습)
$curl -XGET http://localhost:9200/classes
+ /class/1 -d someData
$curl -XPUT localhost:9200/classes (Update명령이지만, index생성시에는 PUT을 사용함)
$curl -XPOST localhost:9200/classes/class/1 -d @json파일 (INSERT)
document생성은 POST로 하면 index와 함께 생성되기도 함.
<Kibana>
Discover메뉴 - 필드별 조회/검색 등.
Visualize에서 x 축 y축 고르면 쉽게 그래프로 표시할 수 있으며, 해당 링크만 이용할 수 있음.
<logstash>
- (CSV)file, mySql, mongoDB, ActiveMQ등 data들을 포맷을 바꿔 elasticSearch에 넣을 수 있음.
- .conf 파일을 이용함. $sudo ./logstash -f logstash.conf
( input / filter / output을 지정. output을 주로 elasticSearch로 함 - 유투브 ELK스택 강의 18강 참고.