์—ฐ๊ฒฐ ์ค‘โ€ฆ
์—ฐ๊ฒฐ ์ค‘โ€ฆ
์ „์ฒด ๋ณด๊ธฐ
BQ
Telegram ยท @BQTelegram

๐Ÿ“Œ[ํ…Œํฌ๋‰ด์Šค] ES..QL? ์—˜๋ผ์Šคํ‹ฑ ์„œ์น˜ 8.18์— Join ๊ธฐ๋Šฅ ์ถ”๊ฐ€

๊ฒŒ์‹œ
2025.04.19 21:44
์กฐํšŒ
1,123
ํฌ์›Œ๋“œ
4
์ด๋ฏธ์ง€
1์žฅ
BQ@BQTelegram


์•ˆ๋…•ํ•˜์„ธ์š”. BQ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

์˜ค๋Š˜์€ Elasticsearch 8.18 ๋ฒ„์ „์ด ์ถ”๊ฐ€๋˜๋ฉด์„œ ์žฌ๋ฐŒ๋Š” ๊ธฐ๋Šฅ์ด ๋‚˜์™”๋Š”๋ฐ์š”. ์ด ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ๋ฌด์—‡์ธ์ง€ ๊ถ๊ธˆํ•ด์„œ ์ •๋ฆฌํ•ด๋ดค์–ด์š”.

์š”์•ฝํ•˜๋ฉด Elasticsearch 8.18 ๋ฒ„์ „์— ES|QL์˜ LOOKUP JOIN ๋ช…๋ น์ด ๊ธฐ์ˆ  ํ”„๋ฆฌ๋ทฐ๋กœ ์ถ”๊ฐ€๋˜๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ฒ˜์Œ์— ์ €๋Š” "ES|QL? ์ด ๋ฌด์Šจ ์žก์ข…์ด์•ผ..."๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.
๋˜ "๊ฒ€์ƒ‰ ์—”์ง„์ธ Elasticsearch๊ฐ€ ์™œ SQL JOIN ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฑธ๊นŒ?" ํ•˜๋Š” ์˜๋ฌธ๋„ ๋“ค์—ˆ์ฃ .

ES|QL์€ Elasticsearch Query Language์˜ ์•ฝ์ž๋กœ, Elasticsearch์˜ JSON DSL๊ณผ SQL์˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์„ฑ๊ฒฉ์„ ๊ฐ€์ง„ ์ฟผ๋ฆฌ ์–ธ์–ด์ž…๋‹ˆ๋‹ค.

Elastic์ด ์ด๋Ÿฐ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ„ ์ด์œ ๋Š” ์‹ค์šฉ์ ์ธ ๋ชฉ์ ์ผ ๊ฒƒ ๊ฐ™์•„์š”. JSON DSL์€ ๊ฐ•๋ ฅํ•˜์ง€๋งŒ ํ•™์Šต ๊ณก์„ ์ด ๊ฐ€ํŒŒ๋ฅด๊ณ , ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€๋“ค์€ ์ด๋ฏธ SQL์— ๋Šฅ์ˆ™ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .

๊ทผ๋ฐ ์ด๊ฒƒ๋„ ์‚ฌ์‹ค ์ด์ œ GPT๊ฐ€ ๋‹คํ•ด์ฃผ๊ธด ํ•˜๋Š”๋ฐ.. ํ 

LOOKUP JOIN์€ LEFT OUTER JOIN ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ, 'lookup'์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ์ธ๋ฑ์Šค ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

โœ”๏ธ์ฃผ์š” ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์š”:

  • ์ง์ ‘ ์—…๋ฐ์ดํŠธ ๊ฐ€๋Šฅํ•œ lookup ์ธ๋ฑ์Šค

๊ธฐ์กด enrich ๋ฐฉ์‹๊ณผ ๋‹ฌ๋ฆฌ ์ •์ฑ… ์ƒ์„ฑ์ด๋‚˜ ์‹คํ–‰ ์—†์ด ์ฐธ์กฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋กœ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Œ.

  • ๊ฐ„์†Œํ™”๋œ ์„ค์ • ๊ณผ์ •

๋ณต์žกํ•œ ์ •์ฑ… ๊ด€๋ฆฌ ์—†์ด ๊ฐ„๋‹จํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ๊ฐœ๋ฐœ ๋ฐ ์šด์˜ ๋ถ€๋‹ด์ด ์ค„์–ด๋“ค์–ด๋“ฌ

  • ๋‹ค์ค‘ ๋งค์น˜ ์‹œ ์—ฌ๋Ÿฌ ํ–‰ ์ƒ์„ฑ

์ด๋Š” ํŠนํžˆ ์ง‘๊ณ„๋‚˜ ๊ทธ๋ฃนํ™” ๋ถ„์„ ์‹œ SQL๊ณผ ์œ ์‚ฌํ•œ ๋™์ž‘ ๋ฐฉ์‹์„ ์ œ๊ณต

์ด ๊ธฐ๋Šฅ์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ฒซ์งธ, Elasticsearch๊ฐ€ ๋‹จ์ˆœํ•œ ๊ฒ€์ƒ‰ ์—”์ง„์„ ๋„˜์–ด ๋ฐ์ดํ„ฐ ๋ถ„์„ ํ”Œ๋žซํผ์œผ๋กœ ์ง„ํ™”ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์ด์—์š”.
๋‘˜์งธ, ๊ฐœ๋ฐœ์ž์™€ ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ETL ํŒŒ์ดํ”„๋ผ์ธ์„ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ณด์•ˆ ์ด๋ฒคํŠธ ๋กœ๊ทธ์™€ ์ž์‚ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋”ฐ๋กœ ๋ณด๊ด€ํ•˜๋ฉด์„œ๋„ ์‹ค์‹œ๊ฐ„์œผ๋กœ JOINํ•ด ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์–ด์š”.

๋‹ค๋งŒ lookup ์ธ๋ฑ์Šค๋Š” ๋‹จ์ผ ์ƒค๋“œ๋กœ ์ œํ•œ๋˜์–ด ์ตœ๋Œ€ 2์‹ญ์–ต ๋ฌธ์„œ๊นŒ์ง€๋งŒ ์ง€์›ํ•˜๋Š” ๋“ฑ ์‹ค์ œ ๊ด€๊ณ„ํ˜• DB์˜ JOIN๊ณผ๋Š” ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด๋Š” ๋ถ„์‚ฐ ํ™˜๊ฒฝ์—์„œ JOIN ์—ฐ์‚ฐ์˜ ๋ณต์žก์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ํƒ€ํ˜‘์ ์œผ๋กœ ๋ณด์ด๋„ค์š”.

Elasticsearch๊ฐ€ ์ ์  ๋” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๋ฉด์„œ ๊ฒ€์ƒ‰ ์—”์ง„์˜ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์–ด์„œ๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ด์ œ ์‹œ์ž‘์ธ ์ด๋Ÿฐ ๋ณ€ํ™”๊ฐ€ ์•ž์œผ๋กœ์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์„ฑ์— ์–ด๋–ค ์˜ํ–ฅ์„ ์ค„์ง€ ๊ถ๊ธˆํ•˜๋„ค์š”.

๐Ÿ‘‰ ์›๋ฌธ ๋ณด๊ธฐ

---

์—ฌ๋Ÿฌ๋ถ„์˜ ์ข‹์•„์š”์™€ ๊ณต์œ ๋Š” ์‚ฌ๋ž‘์ž…๋‹ˆ๋‹ค ๐Ÿ˜

์กฐํšŒ1,123ํฌ์›Œ๋“œ4ํ…”๋ ˆ๊ทธ๋žจ์—์„œ ๋ณด๊ธฐ