<Elasticsearch란?>
Lucene-based Search engine이다
특징: Real-time searching과 Distributed Computing(Clustering), REST API 제공
Usage: NoSQL(like mongodb), Analytics
default port: 9200
<Logical 배치> (Application 관점)
- 구성요소: index, type(doc type), document 3가지
각각 RDB의 Database, Table, Row와 비슷한 개념이다
- Index: number of shards를 설정한다. Physical 배치에서 설명.
- Type: schema-free (Indexing을 하면 field type을 자동으로 추측하므로, schema를 직접 세팅하지 않아도 된다)
(하지만 매핑이 실패할 수도 있으므로, 직접 매핑하는 것이 좋다고 한다)
- Document: JSON 형식으로, 실제 데이터는 여기에 저장된다
<Physical 배치> (Manager 관점)
- 구성요소: Node, Shard
- Node: Process
- Shard: Index의 조각(일부분)으로서, Index는 Shard 1개 이상으로 구성되어있다
Shard는 또 Primary Shard, Replica 2가지가 있다
Primary Shard: Index의 일부분
Replica: Primary Shard의 복제본 -> reliability, search performance 효과가 있다
Elasticsearch는 Lucene-based이다. Elasticsearch의 Index는 Shard라는 Chunk들로 나뉘고, 각 Shard는 Lucene Index이다.
reverse index 등은 패스했다.
<REST API>
CRUD: Create/Read/Update/Delete로 설명하겠다 (기본 데이터 처리기능)
- Create(Indexing): PUT
curl -XPUT "Content-Type: application/json" localhost:9200/index_name/type_name/document_id -d <body>
body example:
- Read(Search): GET, POST
curl localhost:9200/index_name/type_name/document_id
curl -XPOST localhost:9200/index_name/type_name/doc_id -d <body>
body example: {"query": {"match_all": {}}, "sort": {"_id": "asc"}}
_search 까먹음
- Update: PUT, POST
이미 존재하는 document에 PUT
POST 까먹음
_update 까먹음
- Delete: DELETE, POST
curl -XDELETE localhost:9200/index_name/type_name/doc_id
POST 까먹음
_delete_by_query 까먹음
REST API를 테스트할 때 linux/mac은 curl, windows는 postman을 사용하자
<ELK Stack?>
Elasticsearch(search engine)
Logstash(data processing pipeline)
Kibana(analytics, visualization platform)
'etc' 카테고리의 다른 글
final prouct Frameworks (0) | 2018.01.01 |
---|---|
CRUD란? (기본 데이터 처리기능) (0) | 2017.12.29 |
마인크래프트 서버 플러그인 폴더가 없는 이유 (0) | 2017.12.25 |
32bit vs 64bit 사용상의 차이 (0) | 2017.12.21 |
[Unity Network] NetworkTransform, NetworkBehaviour 사용법 (0) | 2017.12.21 |
WRITTEN BY
- hojongs
블로그 옮겼습니다 https://hojongs.github.io/