ํฐ์คํ ๋ฆฌ ๋ทฐ
ElasticSearch๋ ๋ฃจ์ฌ ๊ธฐ๋ฐ์ ์คํ ์์ค ๊ฒ์ ์์ง์ ๋๋ค. JSON ๊ธฐ๋ฐ์ผ๋ก ๋ฌธ์๋ฅผ ์ ์ฅํ๊ณ ๊ฒ์ํ ์ ์์ผ๋ฉฐ ์ฟผ๋ฆฌ๋ฅผ ํตํด ๋ฌธ์๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค. ์ด๋ฒ ํฌ์คํ ์ ElasticSearch ๊ธฐ์ด์ ๋ํด ์ค๋ช ๋๋ฆฌ๊ณ ์ ํฉ๋๋ค.
ElasticSearch์ ํน์ง
- ์ค ์ค์๊ฐ ๊ฒ์ ์์ง: ์ค์๊ฐ์ด๋ผ๊ณ ์๊ฐํ ๋งํผ ์์ธ๋ ๋ฐ์ดํฐ๊ฐ ๋งค์ฐ ๋น ๋ฅด๊ฒ ๊ฒ์๋จ. ElasticSearch ํด๋ฌ์คํฐ๊ฐ ์คํ๋๊ณ ์๋ ๋์์๋ ๊ณ์ํด์ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฅ(์์ธ)๋๊ณ ์ค์๊ฐ์ ๊ฐ๊น์ด ์๋๋ก ์์ธ๋ ๋ฐ์ดํฐ์ ๊ฒ์์ด ๊ฐ๋ฅํ๋ค.
- ํด๋ฌ์คํฐ ๊ตฌ์ฑ: ํ๋ ์ด์์ ๋
ธ๋๋ฅผ ํด๋ฌ์คํฐ๋ก ๊ตฌ์ฑํ์ฌ ๋์ ์์ค์ ์์ ์ฑ์ ์ด๋ฃจ๊ณ ๋ถํ๋ฅผ ๋ถ์ฐํ ์ ์์
- ํด๋ฌ์คํฐ: ์ฌ๋ฌ๋์ ์ปดํจํฐ ํน์ ๊ตฌ์ฑ ์์๋ค์ ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ฒฐํฉํ์ฌ ์ ์ฒด๋ฅผ ํ๋์ ์ปดํจํฐ๋ก ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ์
- ์์ ์ ์ด๋ฉฐ ๋ถํ๋ฅผ ๋ถ์ฐ์ํฌ ์ ์๋ค.
- ์คํค๋ง๋ฆฌ์ค: ์
๋ ฅ๋ ๋ฐ์ดํฐ์ ๋ํด ๋ฏธ๋ฆฌ ์ ์ํ์ง ์์๋ ๋์ ์ผ๋ก ์คํค๋ง๋ฅผ ์์ฑํ ์ ์์
- ๋ฌธ์์ ์ด๋ค ํ๋๋ฅผ ์ ์ฅํ ๊ฒ์ธ์ง ์ฌ์ ์ ์ ์ํ์ง ์์๋ ๋๋ค.
- Rest API: Rest API ๊ธฐ๋ฐ์ ์ธํฐํ์ด์ค๋ฅผ ์ง์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ค ์ธ์ด๋ก๋ ํด๋ผ์ด์ธํธ๋ฅผ ๋ง๋ค ์ ์๋ค.
- python์ผ๋ก๋ requests๋ฅผ ํตํด ์์ฒญ์ ๋ณด๋ด ์ํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ ์ ์๋ค.
ElasticSearch ๋ด๋ถ์ ์ผ๋ก๋ ์ญํ์ผ ์์ธ ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์์ผ๋ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ์ ๋๋ JSONํ์์ผ๋ก ์ ๋ฌ๋๋ค. ์ฌ๊ธฐ์ ์ญ์์ธ์ ๋ํด ์ค๋ช ํ์๋ฉด ์ผ๋ฐ์์ธ์ ๋ฌธ์ ID๋ฅผ ๊ธฐ์ค์ผ๋ก ํด๋น ๋ฌธ์์ ํฌํจ๋ ๋ชจ๋ ๋จ์ด๋ค์ ์์ธํ๋ ๋ฐฉ์์ด๋ผ๋ฉด ๋ฐ๋๋ก ์ญ์์ธ์ ๋จ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ํด๋น ๋จ์ด๊ฐ ํฌํจ๋ ๋ชจ๋ ๋ฌธ์๋ค์ ์์ธํ๋ ๋ฐฉ์์ด๋ค. ์๋ ๋ด์ฉ์ ๋ดค์ ๋ ๊ณ ์์ด๋ผ๋ ๋จ์ด๋ฅผ ์ฐพ์๋ณธ๋ค๋ฉด 1, 3, 6๋ฒ ๋ฌธ์๋ฅผ ๋ฐํํ๋ ๊ฒ์ด๋ค.
๋ฌธ์ ์์ธ๊ณผ ์กฐํ
ElasticSearch๋ JSON ํํ์ ๋ฌธ์๋ฅผ ์ ์ฅํ ์ ์์ผ๋ฉฐ, ์คํค๋ง๋ฆฌ์ค์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ์๋ฅผ ์์ธํ๊ธฐ ์ํด ์ ํํ๋ ๋ฌธ์์ ์คํค๋ง๋ฅผ ๋ฏธ๋ฆฌ ์ ์ํ ํ์๊ฐ ์๋ค.(๊ทธ๋ ์ง๋ง ํ์คํ ํ๊ธฐ ์ํด ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋๋ ๊ฑธ๊น?)
REST API ๋ฉ์๋
- PUT: ์ ๋ ฅ
- POST: ์์
- DELETE: ์ญ์
- GET: ์กฐํ
localhost:9200/user/_doc
๋ฐ์ดํฐ ๊ตฌ์กฐ ๋น๊ต
ElasticSearch | RDBMS |
Index | Database |
Shard | Partition |
Type | Table |
Document | Row |
Field | Column |
Mapping | Schema |
Query DSL | SQL |
REST API์ SQL ๋น๊ต
ElasticSearch HTTP Method | RDBMS SQL | ์ปค๋ฉํธ |
GET | SELECT | |
PUT | INSERT | |
POST | UPDATE, SELECT | ์ด ๋ถ๋ถ์ด ํท๊ฐ๋ ธ๋๋ฐ select์ ์ญํ ๋ ํ๋ค๋ ๊ฒ! |
DELETE | DELETE | |
HEAD (์ธ๋ฑ์ค ์ ๋ณด ํ์ธ) |
์ฅ๋จ์
ES๋ NoSQL์ ์ผ์ข ์ผ๋ก ๋ถ์ฐ์ฒ๋ฆฌ๋ฅผ ํตํด ์ค์๊ฐ์ฑ์ผ๋ก ๋น ๋ฅธ ๊ฒ์์ด ๊ฐ๋ฅํจ. ๋๋์ ๋น์ ํ ๋ฐ์ดํฐ ๊ฒ์์ด ๊ฐ๋ฅํ๋ค.
์ฅ์
- ์คํ์์ค ๊ฒ์์์ง
- ์ ๋ฌธ๊ฒ์
- ํต๊ณ๋ถ์ - Kibana๋ฅผ ์ฐ๊ฒฐํ๋ฉด ์ค์๊ฐ์ผ๋ก ๋ก๊ทธ๋ฅผ ๋ถ์ํ๊ณ ์๊ฐํํ ์ ์๋ค.
- ์คํค๋ง๋ฆฌ์ค: ์ ํํ๋์ง ์์ ๋ฌธ์๋ ์๋์ผ๋ก ์์ธํ๊ณ ๊ฒ์ํ ์ ์๋ค.
- RESTful API: HTTP ๊ธฐ๋ฐ์ RESTful์ ํ์ฉํ๊ณ ์์ฒญ/์๋ต์ JSON์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ค์ํ ์ธ์ด์์ ํ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- Multi-tenancy: ์๋ก ์์ดํ ์ธ๋ฑ์ค์ผ์ง๋ผ๋ ๊ฒ์ํ ํ๋๋ช ์ด ๊ฐ์ผ๋ฉด ์ฌ๋ฌ ์ธ๋ฑ์ค๋ฅผ ํ๋ฒ์ ์กฐํํ ์ ์๋ค.
- Document-Oriented: ์ฌ๋ฌ ๊ณ์ธต ๊ตฌ์กฐ์ ๋ฌธ์๋ก ์ ์ฅ์ด ๊ฐ๋ฅํ๋ฉฐ ๊ณ์ธต ๊ตฌ์กฐ๋ก๋ ๋ฌธ์๋ ํ๋ฒ์ ์ฟผ๋ฆฌ๋ก ์ฝ๊ฒ ์กฐํํ ์ ์๋ค.
- ์ญ์์ธ
- ํ์ฅ์ฑ: ๋ถ์ฐ ํ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.
๋จ์
- ์ค์ค์๊ฐ → ์์ ์ค์๊ฐ์ ์๋๋ค.
- ํธ๋์ญ์ , ๋กค๋ฐฑ์ ์ง์ํ์ง ์์ ์ ๋ ฅ์ ์ฃผ์ํ ๊ฒ!
- ๋ฐ์ดํฐ์ ์ ๋ฐ์ดํธ๋ฅผ ์ ๊ณตํ์ง ์๋๋ค.
NoSQL๊ณผ ์ฐจ์ด์ ์ ์ ๋ณด๋ฅผ ์๋ ๊ทธ๋๋ก๋ง ๊ฐ์ ธ์ค๋ ๊ฒ์ด ์๋ ์ ์์ด, ๋์์ด๋ฅผ ๊ฒ์ํ ์ ์๋ค๋ ๊ฒ์ด๋ค. ์ ์์ด๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด์ ํ ์คํธ ํํ์ ๋ฐ์ดํฐ๋ฅผ ํํ์ ๋ถํ ์ ํ ๋ค ๋ฌธ์๋ณ๋ก ์๋ฏธ์๋ ๋ฐ์ดํฐ๋ง ์ถ์ถํ์ฌ ๊ฒ์ํ ๊ฒ๊ณผ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ฌธ์๋ฅผ ์ฐพ์ ์ ์๋ค.
์ฐธ๊ณ
'๐ป Dev' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐จ Apache ๊ธฐ๋ฐ Airflow ๊ธฐ๋ณธ๊ธฐ ๋ค์ง๊ธฐ (0) | 2024.05.23 |
---|---|
๐ฅ๏ธ [์ปดํจํฐ๊ตฌ์กฐ์ ์ด์์ฒด์ ] ์ปดํจํฐ ๋ถํ, ๋ฐ์ดํฐ, ๋ช ๋ น์ด (0) | 2024.05.06 |
๐ docker cache ์ญ์ ํ๊ธฐ (0) | 2024.05.02 |
๐โโ๏ธ [python] ray๋ก ์นผํด๋ฅผ ํด๋ณด์ (0) | 2024.05.02 |
๐ [python] jpeg๋ก ์ธ์ฝ๋ฉํ๋ฉด ์ด๋ฏธ์ง๊ฐ ๋ณํ๋ค? (0) | 2024.05.02 |
- GIT
- ๊ฐ๋ฐ์
- ํ๊ณ
- linux
- ๋ ํ๊ฐ
- Generative Model
- ๊ธ๋
- Computer Vision
- vscode
- ๋จธ์ ๋ฌ๋ ์ด๋ก
- Multiprocessing
- ์ฑ ๋ฆฌ๋ทฐ
- python
- ๋ฒ ์ด์ฆ ์ ๋ฆฌ
- tmux
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- Total
- Today
- Yesterday