๋ฐ์ํ
๐ก ๋ณธ ๋ฌธ์๋ 'RDB์์ ์ฌ์ฉํ๋ Query ๋ฌธ์ Elasticsearch Query DSL๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ'์ ๋ํด ์ ๋ฆฌํด๋์ ๊ธ์ ๋๋ค.
Elasticsearch๋ฅผ ์ฌ์ฉํจ์ ์์ด Kibana์ ์ฐ๊ณํ์ฌ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ํ๋คํ๋ฐ, ์ด ๊ฒฝ์ฐ Elasticsearch์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๊ธฐ ์ํด ์ฌ์ด๋ ๋ฐ์ 'Dev Tool'๋ฅผ ์ฌ์ฉํ๊ณค ํฉ๋๋ค. ์ด๋ Elasticsearch์ฉ Query DSL์ ์ด์ฉํ๋ค๋ฉด ํน์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์์ต๋๋ค.
DSL(Domain Specific Language)
- ํน์ ์์ญ์ ํ๊ฒํ๊ณ ์๋ ์ธ์ด์ ๋๋ค.
- ์ด๋ ์ด๋ ๋๋ฉ์ธ์์๋ ์ ์ฉ ๊ฐ๋ฅํ ๋ฒ์ฉ ์ธ์ด(General-purpose language)์๋ ๋ฐ๋๋๋ ๊ฐ๋ ์ ๋๋ค.
์์
- SQL: DB์ ๋ฐ์ดํฐ๋ฅผ ์ฐธ์กฐํ๊ธฐ ์ํด ์ฌ์ฉ.
- Dockerfile: Docker ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๊ธฐ ์ํด ์ฌ์ฉ.
ElasticSearch์์ SQL ์ฌ์ฉํ๊ธฐ
ElasticSearch SQL ๊ฒฐ๊ณผ ์ถ์ถ
POST _sql?format=txt
{
"query": "SELECT <columeName> FROM <tabelName>"
}
ElasticSearch SQL to DSL
POST _sql/translate
{
"query": "SELECT <columeName> FROM <tableName>"
}
{
"size" : 1000,
"_source" : false,
"fields" : [
{
"field" : "<columeName>"
}
],
"sort" : [
{
"_doc" : {
"order" : "asc"
}
}
]
}
ElasticSearch SQL to DSL ๋ณํ ์ฌ์ดํธ
์ฐธ์กฐ
- DSL(Domain Specific Language): https://lannstark.tistory.com/13
- ElasticSearch์์ SQL ์ฌ์ฉํ๊ธฐ: https://www.elastic.co/kr/what-is/elasticsearch-sql
๋ฐ์ํ