일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- update
- 논문리뷰
- airflow
- inner join
- CASE
- 서브쿼리
- MySQL
- HackerRank
- torch
- 자연어 논문 리뷰
- 카이제곱분포
- 표준편차
- SQL코테
- 자연어처리
- Statistics
- GRU
- Window Function
- sql
- 설명의무
- t분포
- sigmoid
- SQL 날짜 데이터
- NLP
- LSTM
- leetcode
- 코딩테스트
- 그룹바이
- 짝수
- nlp논문
- 자연어 논문
- Today
- Total
HAZEL
Elasticsearch 01. 기본개념 본문
01. Elasticsearch란?
: Elasticsearch 는 Apache Lucene( 아파치 루씬 ) 기반의 Java 오픈 소스 분산 검색 엔진
방대한 양의 데이터를 신속하게 거의 실시간 ( NRT, Near Real Time ) 으로 저장, 검색, 분석할 수 있다.
- Elasticsearch ****를 이용하기 위한, 인터페이스 : Kibana ( 호환을 위해 Elasticsearch 와 같은 버전 다운 )
** 인터페이스 : 인터페이스는 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면이다. 즉, 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템을 의미한다.
: Elasticsearch 는 데이터 저장 형식으로 json 사용함.
02. Elasticsearch 의 핵심 개념
1. 클러스터 ( Cluster )
: 연합된 인덱싱과 모든 노드를 검색할 수 있는 기능을 제공한다.
: 하나 이상의 노드(서버) 모인 것 , 노드의 집합
2. 노드
: 데이터를 보관하고 클러스터의 색인화 및 검색 기능에 참여한다.
: 클러스터에 포함된 단일 서버 , shard로 구성되며 데이터는 shard로 분산디어 저장함
3. 인덱스( index ) - database
: 다소 비슷한 특성을 가진 문서(Document)의 집합
: 인덱스의 이름은 인덱싱, 검색, 업데이트, 삭제를 수행하는 동안에 인덱스를 참조하기 위해 사용
: 1개 이상의 primary shard에 매핑되고, 0개 이상의 replica shard를 가질 수 있는 논리적 이름 공간
4. 타입(type) - table
: 하나의 색인에서 하나 이상의 유형을 정의 할 수 있음
5. 도큐먼트(Document) - rowJson 으로 표시됨
: 색인화(indexing) 할 수있는 기본 정보 단위, 실제로 검색할 데이터
- Json 으로 표시됨
6. 샤드 (Shards)
: 데이터를 샤드라는 조각으로 분할함.
각 샤드는 그 자체가 온전한 기능을 가진 독립적인 '색인'이며, 어떤 노드에서도 호스팅 할 수 있다.
샤드를 거쳐 명령을 분배하고 병렬적으로 처리 할 수 있게 해주어 퍼포먼스를 올려줌
7. 리플리카 (Replicas)
: 리플리카 샤드라고 하며, 샤드의 하나이상의 복사본을 의미함.
: 언제든 오류가 일어날 가능성이 있는 네트워크/클라우드 환경에서, 샤드/노드 가 오프라인 상태가 되거나 사가지게 될 경우를 대비하여 진행
검색이 병렬적으로 실행될 수 있게 해주어 검색의 볼륨 스케일업을 해줌
** 인덱스(INDEX, 색인화)란 검색 속도를 높이기 위해 사용하는 하나의 기술입니다. 해당 테이블의 컬럼을 색인화하여 검색 시 해당 테이블의 레코드를 FULL SCAN 하는 게 아니라 색인화되어 있는 인덱스 파일을 검색하여 검색을 빠르게 합니다.
03. 관계형 DB 와의 비교를 통한 이해
1. Elasticsearch 와 관계형 DB 비교
2. Elasticsearch 와 RDBMS(관계형 데이터베이스)
04. Elasticsearch의 장/단점
- 장점
- 빠름
- 분산적임
- 광범위한 기능세트를 가짐
- 데이터 수집, 시각화, 보고를 간소화 함
- 단점
1. 실시간 처리 불가능 : 데이터 색인 특징으로 인해, 색인된 데이턴는 1초 뒤에 검색 가능하다.
→ 색인된 데이터가 내부적으로 커밋과 플러시(flush)와 같은 과정을 거치기 때문임 (near real time)
2. 트랜젝션 , 롤백 등의 기능을 제공하지 않는다.
3. 진정한 의미의 업데이트(update)를 지원하지 않는다.
: 엘라스틱서치에도 업데이트 명령이있지만, 데이터를 삭제했다가 다시 만드는 과정으로 업데이트가 됨. 이러한 특성은 나중에 불변성이라는 이점을 제공하기도함.