๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— Looker ์—ฐ๊ฒฐ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณด์•ˆ ๋ฐ ๊ตฌ์„ฑํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ Looker์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŽ˜์ด์ง€์—์„œ๋Š” ์ƒˆ Looker ์—ฐ๊ฒฐ ์›Œํฌํ”Œ๋กœ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Looker์˜ Looker์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ํŽ˜์ด์ง€์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. Looker์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ํŽ˜์ด์ง€๋ฅผ ์—ฌ๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ ๋ฉ”๋‰ด ์•„์ด์ฝ˜์„ ํด๋ฆญํ•˜๊ณ  ๊ด€๋ฆฌ๋ฅผ ์„ ํƒํ•œ ๋‹ค์Œ ๊ด€๋ฆฌ ํŒจ๋„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„น์…˜์—์„œ ์—ฐ๊ฒฐ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ํŽ˜์ด์ง€์—์„œ ์—ฐ๊ฒฐ ์ถ”๊ฐ€ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ํƒ์ƒ‰ ๋ฉ”๋‰ด์—์„œ ๋งŒ๋“ค๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•œ ๋‹ค์Œ ์—ฐ๊ฒฐ ๋ฉ”๋‰ด ํ•ญ๋ชฉ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€์—์„œ๋Š” Looker๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ Looker์— ์—ฐ๊ฒฐ ํŽ˜์ด์ง€์— ํ‘œ์‹œํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ํ•„๋“œ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง€์— ํ‘œ์‹œ๋˜๋Š” ์ •ํ™•ํ•œ ํ•„๋“œ๋Š” ์–ธ์–ด ์„ค์ •์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ ์„ค์ •์— ์‚ฌ์šฉ์ž ์†์„ฑ์„ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‚ฌ์šฉ์ž ์†์„ฑ ๋ฌธ์„œ ํŽ˜์ด์ง€์˜ ์—ฐ๊ฒฐ ์„น์…˜์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์„ค์ •์—๋Š” ๋‹ค์Œ 4๊ฐ€์ง€ ์„น์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜ ์„ค์ •

์ด๋ฆ„

์—ฐ๊ฒฐ์— ์ง€์ •ํ•œ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. LookML ๋ชจ๋ธ์˜ connection ๋งค๊ฐœ๋ณ€์ˆ˜์— ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ด๋ฆ„์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ด๋ฆ„์€ Looker์˜ ์—ฐ๊ฒฐ ๊ด€๋ฆฌ ํŽ˜์ด์ง€์—์„œ ์‹๋ณ„๋˜๋Š” ์ด๋ฆ„์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์— ํด๋” ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”. ์ด ๊ฐ’์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์–ด๋–ค ํ•ญ๋ชฉ๊ณผ๋„ ์ผ์น˜ํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. Name์€ Looker UI ๋‚ด์—์„œ ์ด ์—ฐ๊ฒฐ์„ ์‹๋ณ„ํ•˜๋Š” ๋ผ๋ฒจ์ž…๋‹ˆ๋‹ค.

SQL ์–ธ์–ด

์—ฐ๊ฒฐ๊ณผ ์ผ์น˜ํ•˜๋Š” SQL ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์—ฐ๊ฒฐ ์˜ต์…˜์ด ํ‘œ์‹œ๋˜๋„๋ก ์˜ฌ๋ฐ”๋ฅธ ๊ฐ’์„ ์„ ํƒํ•ด์•ผ Looker๊ฐ€ LookML์„ SQL๋กœ ์ ์ ˆํ•˜๊ฒŒ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ์‹  ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ์‚ฌ์šฉ

๊ธฐ๋ณธ์ ์œผ๋กœ Looker๋Š” ํ•ญ์ƒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์–ธ์–ด์˜ ์ตœ์‹  ๋ฒ„์ „ JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์–ธ์–ด์— Looker์—์„œ ์ง€์›ํ•˜๋Š” JDBC ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์ด ๋‘ ๊ฐœ ์ด์ƒ ์žˆ๋Š” ๊ฒฝ์šฐ ์ตœ์‹  ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ์‚ฌ์šฉ ์ „ํ™˜ ๋ฒ„ํŠผ์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜์—ฌ ์—ฐ๊ฒฐ์— ์ด์ „ JDBC ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„ ํƒํ•˜๋ ค๋ฉด ์—ฐ๊ฒฐ์—์„œ ์ตœ์‹  ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ์‚ฌ์šฉ ์ „ํ™˜ ๋ฒ„ํŠผ์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•œ ๋‹ค์Œ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ํ’€๋‹ค์šด ๋ฉ”๋‰ด์—์„œ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์„ ์„ ํƒํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ด์ „ JDBC ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์„ ์„ ํƒํ•˜๋ฉด Looker์—์„œ ์ง€์›ํ•˜๋Š” ํ•œ Looker๋Š” ํ•ด๋‹น ์ด์ „ ๋ฒ„์ „์„ ๊ณ„์† ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Looker๋Š” ๋‹ค์Œ ๋‘ ๊ฐ€์ง€ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ์ง€์›์„ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค.

  • Looker ์ง€์›์—์„œ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์—ฐ๊ฒฐ์€ Looker์—์„œ ์–ธ์–ด์— ๋Œ€ํ•ด ์ง€์›ํ•˜๋Š” ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Looker ๋กค๋ฐฑ์œผ๋กœ ์ธํ•ด ์•„์ง ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์—ฐ๊ฒฐ์€ ๋กค๋ฐฑ๋œ ์ถœ์‹œ์—์„œ ์ง€์›ํ•˜๋Š” ์ตœ์‹  ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์„ ํƒํ•œ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์ด ๋” ์ด์ƒ Looker์—์„œ ์ง€์›๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ Looker๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์ˆ˜์ • ํŽ˜์ด์ง€์˜ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ํ•„๋“œ ์•„๋ž˜์— ์„ ํƒํ•œ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์ด ๋” ์ด์ƒ ์ง€์›๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์•Œ๋ฆผ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Looker์—์„œ ์—ฐ๊ฒฐ์— ์‚ฌ์šฉ ์ค‘์ธ ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „๋„ ์•Œ๋ฆผ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ์•Œ๋ฆผ์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ํ’€๋‹ค์šด ๋ฉ”๋‰ด์—์„œ ์ง€์›๋˜๋Š” JDBC ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ์ตœ์‹  ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „ ์‚ฌ์šฉ ์ „ํ™˜ ๋ฒ„ํŠผ์„ ์‚ฌ์šฉ ์„ค์ •ํ•˜์—ฌ ์ตœ์‹  ๋“œ๋ผ์ด๋ฒ„ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์„ธ์š”.

ํ”„๋กœ์ ํŠธ ๋ฒ”์œ„

์—ฐ๊ฒฐ์„ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์—์„œ ๋˜๋Š” ํ”„๋กœ์ ํŠธ ํ•˜๋‚˜์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  • ๋ชจ๋“  ํ”„๋กœ์ ํŠธ: ์ธ์Šคํ„ด์Šค์˜ ๋ชจ๋“  LookML ํ”„๋กœ์ ํŠธ์—์„œ ์—ฐ๊ฒฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์—ฐ๊ฒฐ ์ด๋ฆ„์„ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋ธ ํŒŒ์ผ connection ํŒŒ๋ผ๋ฏธํ„ฐ์— ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์„ ํƒํ•œ ํ”„๋กœ์ ํŠธ: ์ธ์Šคํ„ด์Šค์˜ LookML ํ”„๋กœ์ ํŠธ ํ•˜๋‚˜๋งŒ ์—ฐ๊ฒฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์„ ์„ ํƒํ•˜๋ฉด ์—ฐ๊ฒฐ ํ™”๋ฉด์— ์ธ์Šคํ„ด์Šค์˜ ํ”„๋กœ์ ํŠธ ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ์—ฐ๊ฒฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ ๊ด€๋ฆฌ ๋ฐ ๋ชจ๋ธ ๊ตฌ์„ฑ์„ ์œ„์ž„ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๊ถŒํ•œ๊ณผ ํ•จ๊ป˜ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ƒํƒœ ์„ธ๋ถ€์ •๋ณด

์ƒํƒœ ์„ธ๋ถ€์ •๋ณด ์„น์…˜์„ ํ™•์žฅํ•˜์—ฌ ์—ฐ๊ฒฐ ์„ค์ •์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ •

SSH ์„œ๋ฒ„ ์‚ฌ์šฉ ์„ค์ •

SSH ์„œ๋ฒ„ ์˜ต์…˜์€ ์ธ์Šคํ„ด์Šค๊ฐ€ Kubernetes ์ธํ”„๋ผ์— ๋ฐฐํฌ๋˜์–ด ์žˆ๊ณ  Looker ์ธ์Šคํ„ด์Šค์— SSH ์„œ๋ฒ„ ๊ตฌ์„ฑ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Looker ์ธ์Šคํ„ด์Šค์—์„œ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉ ์„ค์ •ํ•˜์ง€ ์•Š๊ณ  ์ด๋ฅผ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ ค๋ฉด Google Cloud ์˜์—… ์ „๋ฌธ๊ฐ€์—๊ฒŒ ๋ฌธ์˜ํ•˜๊ฑฐ๋‚˜ ์ง€์› ์š”์ฒญ์„ ์ œ์ถœํ•˜์„ธ์š”. SSH ์„œ๋ฒ„ ์‚ฌ์šฉ ์„ค์ • ์˜ต์…˜์„ ์‚ฌ์šฉ ์„ค์ •ํ•˜๋ฉด Looker์— SSH ์„œ๋ฒ„ ๋ฐ SSH ํ„ฐ๋„ ํ•„๋“œ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

SSH ์„œ๋ฒ„

localhost ํฌํŠธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. SSH ์„œ๋ฒ„์—์„œ localhost ํฌํŠธ๋ฅผ ์ž๋™์œผ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. localhost ํฌํŠธ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•˜๋Š” SSH ์—ฐ๊ฒฐ์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ง€์› ์š”์ฒญ์„ ์—ฝ๋‹ˆ๋‹ค.

๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์—์„œ SSH ์„œ๋ฒ„ ๊ตฌ์„ฑ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ ์ ˆํ•œ SSH ํ„ฐ๋„์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ๋งŒ๋“ค๋ ค๋ฉด SSH ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ํŒจ๋„์˜ SSH ์„œ๋ฒ„ ํƒญ์—์„œ ์ƒˆ SSH ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SSH ํ„ฐ๋„

๋“œ๋กญ๋‹ค์šด ๋ชฉ๋ก์—์„œ ๊ธฐ์กด SSH ํ„ฐ๋„์„ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋ฐ ํฌํŠธ ๋˜๋Š” ๋กœ์ปฌ ํฌํŠธ๊ฐ€ ์žˆ๋Š” ์ƒˆ SSH ํ„ฐ๋„์„ ๋งŒ๋“ค๋ ค๋ฉด ์ƒˆ ํ„ฐ๋„ ๋งŒ๋“ค๊ธฐ ์•„์ด์ฝ˜์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

ํ˜ธ์ŠคํŠธ ์ด๋ฆ„

Looker์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

Looker ๋ถ„์„๊ฐ€์™€ ํ˜‘๋ ฅํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ SSH ํ„ฐ๋„์„ ๊ตฌ์„ฑํ•œ ๊ฒฝ์šฐ ํ˜ธ์ŠคํŠธ ํ•„๋“œ์— "localhost"๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์†์„ฑ์„ ํ˜ธ์ŠคํŠธ ํ•„๋“œ์— ์ ์šฉํ•˜๋ฉด ์‚ฌ์šฉ์ž ์†์„ฑ์— ์ˆ˜์ • ๊ฐ€๋Šฅ์œผ๋กœ ์„ค์ •๋œ ์‚ฌ์šฉ์ž ์•ก์„ธ์Šค ์ˆ˜์ค€์ด ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋„๋ก SSH ํ„ฐ๋„์„ ๊ตฌ์„ฑํ•œ ๊ฒฝ์šฐ ์›๊ฒฉ ํ˜ธ์ŠคํŠธ:ํฌํŠธ ํ•„๋“œ์— ์‚ฌ์šฉ์ž ์†์„ฑ์„ ์ ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํฌํŠธ

Looker์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํฌํŠธ์ž…๋‹ˆ๋‹ค.

Looker ๋ถ„์„๊ฐ€์™€ ํ˜‘๋ ฅํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ SSH ํ„ฐ๋„์„ ๊ตฌ์„ฑํ•œ ๊ฒฝ์šฐ ํฌํŠธ ํ•„๋“œ์— Looker ๋ถ„์„๊ฐ€๊ฐ€ ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•˜๋Š” ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

๋กœ์ปฌ ํฌํŠธ

๊ธฐ๋ณธ์ ์œผ๋กœ Looker๋Š” SSH ํ„ฐ๋„์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋กœ์ปฌ ํฌํŠธ๋ฅผ ์ž๋™์œผ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ํฌํŠธ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ ํƒํ•˜๋ ค๋ฉด ์ˆ˜๋™ ํ•ญ๋ชฉ๋ฅผ ์„ ํƒํ•˜๊ณ  ์ปค์Šคํ…€ ๋กœ์ปฌ ํฌํŠธ ํ•„๋“œ์— ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค์—์„œ ๋กœ์ปฌ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

๊ฒฐ์ œ ํ”„๋กœ์ ํŠธ ID (Google BigQuery๋งŒ ํ•ด๋‹น)

๊ฒฐ์ œ ํ”„๋กœ์ ํŠธ ID๋Š” Google Cloud ํ”„๋กœ์ ํŠธ ID์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Google BigQuery ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์Šคํ† ๋ฆฌ์ง€ ํ”„๋กœ์ ํŠธ ID (Google BigQuery๋งŒ ํ•ด๋‹น)

์ปดํ“จํŒ…๊ณผ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๋ณ„๋„์˜ ํ”„๋กœ์ ํŠธ๋กœ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒฝ์šฐ ์Šคํ† ๋ฆฌ์ง€ ํ”„๋กœ์ ํŠธ ID์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. LookML ๊ฐœ๋ฐœ์ž๊ฐ€ LookML ๋ทฐ, ํƒ์ƒ‰ ๋˜๋Š” ์กฐ์ธ์˜ sql_table_name ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ „์ฒด ๋ฒ”์œ„ ํ…Œ์ด๋ธ” ์ด๋ฆ„์„ ์ง€์ •ํ•œ ๊ฒฝ์šฐ ๋‹ค๋ฅธ Google Cloud ํ”„๋กœ์ ํŠธ์—์„œ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Google BigQuery ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ์„ธํŠธ (Google BigQuery๋งŒ ํ•ด๋‹น)

Looker๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฟผ๋ฆฌํ•  ๋•Œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ง€์ •ํ•  ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ Google BigQuery ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„

ํ˜ธ์ŠคํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด sales_info๋ผ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— my-instance.us-east-1.redshift.amazonaws.com ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ•„๋“œ์— sales_info๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ํ˜ธ์ŠคํŠธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๋Š” ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ค์–ด ์ด๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, database๋ผ๋Š” ๋‹จ์–ด๊ฐ€ ๋Œ€๋ถ€๋ถ„์˜ SQL ์–ธ์–ด์™€๋Š” ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š” MySQL์€ ์˜ˆ์™ธ์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์Šคํ‚ค๋งˆ

์Šคํ‚ค๋งˆ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ Looker์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ ์Šคํ‚ค๋งˆ์ž…๋‹ˆ๋‹ค. ์ด๋Š” SQL Runner๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, LookML ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ค‘์—, ํ…Œ์ด๋ธ”์„ ์ฟผ๋ฆฌํ•  ๋•Œ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ธ์ฆ ์„ค์ •

Google BigQuery, Snowflake, Trino, Databricks ์—ฐ๊ฒฐ์˜ ๊ฒฝ์šฐ Looker์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ก์„ธ์Šคํ•  ๋–„ ์‚ฌ์šฉํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋Š” ์ธ์ฆ ์œ ํ˜•์„ ์„ ํƒํ•˜์„ธ์š”.

  • Google BigQuery ์—ฐ๊ฒฐ์˜ ๊ฒฝ์šฐ Looker๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ธ์ฆํ•  ๋•Œ ์‚ฌ์šฉํ•  OAuth ๋˜๋Š” ์„œ๋น„์Šค ๊ณ„์ •์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Snowflake, Trino, Databricks ์—ฐ๊ฒฐ์˜ ๊ฒฝ์šฐ Looker๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ธ์ฆํ•  ๋•Œ ์‚ฌ์šฉํ•  OAuth ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ณ„์ •์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OAuth๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ Looker์—์„œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋กœ๊ทธ์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Looker ์—ฐ๊ฒฐ์—์„œ OAuth๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Google BigQuery, Snowflake, Trino, ๋˜๋Š” Databricks ์—ฐ๊ฒฐ ์ ˆ์ฐจ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์‚ฌ์šฉ์ž ์ด๋ฆ„

Looker์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ๊ณ„์ •์˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

๋น„๋ฐ€๋ฒˆํ˜ธ

Looker์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ๊ณ„์ •์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.

์ƒํƒœ ์„ธ๋ถ€์ •๋ณด ์„น์…˜์„ ํ™•์žฅํ•˜์—ฌ ์—ฐ๊ฒฐ ์„ค์ •์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

์„ค์ •(์„ ํƒ์‚ฌํ•ญ)

๋…ธ๋“œ๋‹น ์ตœ๋Œ€ ์—ฐ๊ฒฐ ์ˆ˜

์—ฌ๊ธฐ์—์„œ Looker์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์—ฐ๊ฒฐ ์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ Looker๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋™์‹œ ์ฟผ๋ฆฌ ์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ Looker๋Š” ์ฟผ๋ฆฌ๊ฐ€ ์ข…๋ฃŒ๋  ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๊ฒฐ์„ ์ตœ๋Œ€ 3๊ฐœ๊นŒ์ง€ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ํ’€์ด ๋งค์šฐ ์ž‘์œผ๋ฉด Looker์—์„œ ์—ฐ๊ฒฐ์„ ๋” ์ ๊ฒŒ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ’์„ ์‹ ์ค‘ํ•˜๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์ด ๋„ˆ๋ฌด ๋†’์œผ๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ณผ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’์ด ๋„ˆ๋ฌด ๋‚ฎ์œผ๋ฉด ์ฟผ๋ฆฌ์—์„œ ์†Œ์ˆ˜์˜ ์—ฐ๊ฒฐ์„ ๊ณต์œ ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ด์ „ ์ฟผ๋ฆฌ๊ฐ€ ๋ฐ˜ํ™˜๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•˜๋ฏ€๋กœ ๋งŽ์€ ์ฟผ๋ฆฌ๊ฐ€ ๋А๋ฆฌ๊ฒŒ ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๊ธฐ๋ณธ๊ฐ’(SQL ์–ธ์–ด์— ๋”ฐ๋ผ ๋‹ค๋ฆ„)์ด ์ ์ ˆํ•œ ์‹œ์ž‘์ ์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—๋Š” ์ˆ˜๋ฝํ•  ์ตœ๋Œ€ ์—ฐ๊ฒฐ ์ˆ˜์— ๋Œ€ํ•œ ์ž์ฒด ์„ค์ •๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์„ฑ์—์„œ ์—ฐ๊ฒฐ์„ ์ œํ•œํ•˜๋Š” ๊ฒฝ์šฐ ๋…ธ๋“œ๋‹น ์ตœ๋Œ€ ์—ฐ๊ฒฐ ์ˆ˜ ๊ฐ’์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ•œ๋„ ์ดํ•˜์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ ํ’€ ์ œํ•œ ์‹œ๊ฐ„

์‚ฌ์šฉ์ž๊ฐ€ ๋…ธ๋“œ๋‹น ์ตœ๋Œ€ ์—ฐ๊ฒฐ ์ˆ˜ ์„ค์ •๋ณด๋‹ค ๋” ๋งŽ์€ ์—ฐ๊ฒฐ์„ ์š”์ฒญํ•˜๋ฉด ์š”์ฒญ์€ ๋‹ค๋ฅธ ์š”์ฒญ์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ ํ›„์— ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์š”์ฒญ์ด ๋Œ€๊ธฐํ•˜๋Š” ์ตœ๋Œ€ ์‹œ๊ฐ„์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์„ค์ •์€ 120์ดˆ์ž…๋‹ˆ๋‹ค.

์ด ๊ฐ’์„ ์‹ ์ค‘ํ•˜๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์ด ๋„ˆ๋ฌด ๋‚ฎ์œผ๋ฉด ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ์ฟผ๋ฆฌ๊ฐ€ ์™„๋ฃŒ๋  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด ๋ถ€์กฑํ•˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž์˜ ์ฟผ๋ฆฌ๊ฐ€ ์ทจ์†Œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ’์ด ๋„ˆ๋ฌด ๋†’์œผ๋ฉด ๋‹ค์ˆ˜์˜ ์ฟผ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜์–ด ์‚ฌ์šฉ์ž๊ฐ€ ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ธฐ๋ณธ๊ฐ’์ด ์ ์ ˆํ•œ ์‹œ์ž‘์ ์ž…๋‹ˆ๋‹ค.

์ด ์—ฐ๊ฒฐ์˜ ์ตœ๋Œ€ ๋™์‹œ ์ฟผ๋ฆฌ ์ˆ˜

์ด ์„ ํƒ์  ๊ฐ’์€ Looker๊ฐ€ ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์— ํ•œ ๋ฒˆ์— ์ œ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๋™์‹œ ์ฟผ๋ฆฌ ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์—ฐ๊ฒฐ์„ ์š”๊ตฌํ•˜๋Š” ๋™์‹œ ์š”์ฒญ์ด ๋” ์ˆ˜์‹ ๋˜๋ฉด Looker๊ฐ€ ์ด๋ฅผ ๋‚ด๋ถ€์ ์œผ๋กœ ํ์— ์ถ”๊ฐ€ํ•˜๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ์„ค์ •ํ•˜๋ฉด ๊ธฐ์กด ๋…ธ๋“œ๋‹น ์ตœ๋Œ€ ์—ฐ๊ฒฐ ์ˆ˜ ๊ฐ’์ด ๋ฎ์–ด์“ฐ๊ธฐ๋ฉ๋‹ˆ๋‹ค.

์ด ์—ฐ๊ฒฐ์˜ ์‚ฌ์šฉ์ž๋‹น ์ตœ๋Œ€ ๋™์‹œ ์ฟผ๋ฆฌ ์ˆ˜

์ด ์„ ํƒ์  ๊ฐ’์€ Looker๊ฐ€ ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์— ํ•œ ๋ฒˆ์— ์ œ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž 1๋ช…์˜ ๋™์‹œ ์ฟผ๋ฆฌ ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์—ฐ๊ฒฐ์„ ์š”๊ตฌํ•˜๋Š” ๋™์‹œ ์š”์ฒญ์ด ๋” ์ˆ˜์‹ ๋˜๋ฉด Looker๊ฐ€ ์ด๋ฅผ ๋‚ด๋ถ€์ ์œผ๋กœ ํ์— ์ถ”๊ฐ€ํ•˜๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€ JDBC ๋งค๊ฐœ๋ณ€์ˆ˜

ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์—ฌ๊ธฐ์—์„œ ์ฟผ๋ฆฌ์šฉ์œผ๋กœ ์ถ”๊ฐ€ ์ž๋ฐ” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ(JDBC) ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

JDBC ๋งค๊ฐœ๋ณ€์ˆ˜์—์„œ ์‚ฌ์šฉ์ž ์†์„ฑ์„ ์ฐธ์กฐํ•˜๋ ค๋ฉด Liquid ํ…œํ”Œ๋ฆฟ ๋ฌธ๋ฒ• _user_attributes['name_of_attribute']๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์‹œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

my_jdbc_param={{ _user_attributes['name_of_attribute'] }}

์œ ์ง€๋ณด์ˆ˜ ์ผ์ •

Looker ์žฌ์ƒ์„ฑ๊ธฐ๋Š” ๋ฐ์ดํ„ฐ ๊ทธ๋ฃน๊ณผ sql_trigger_value์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์˜๊ตฌ ํ…Œ์ด๋ธ”(์ง‘๊ณ„ ํ…Œ์ด๋ธ” ๋ฐ ์˜๊ตฌ ํŒŒ์ƒ ํ…Œ์ด๋ธ” ๋ชจ๋‘)๋ฅผ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. Looker ์žฌ์ƒ์„ฑ๊ธฐ๋Š” ์ด๋Ÿฌํ•œ ๊ฒ€์‚ฌ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์Šคํฌ๋ž˜์น˜ ์Šคํ‚ค๋งˆ์—์„œ ์˜๊ตฌ ํ…Œ์ด๋ธ”์„ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

์œ ์ง€๋ณด์ˆ˜ ์ผ์ • ๊ฐ’์€ Looker ์žฌ์ƒ์„ฑ๊ธฐ์˜ cron ๊ฐ„๊ฒฉ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Looker ์žฌ์ƒ์„ฑ๊ธฐ๋Š” ์žฌ์ƒ์„ฑ ์ฃผ๊ธฐ๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ทธ๋ฃน๊ณผ ์˜๊ตฌ ํ…Œ์ด๋ธ”์„ cron ๊ฐ„๊ฒฉ์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. Looker ์žฌ์ƒ์„ฑ๊ธฐ ์ฃผ๊ธฐ๊ฐ€ ๋‹ค์Œ cron ๊ฐ„๊ฒฉ์œผ๋กœ ๊ณ„์† ์ง„ํ–‰ ์ค‘์ด๋ฉด Looker ์žฌ์ƒ์„ฑ๊ธฐ๋Š” ์ง„ํ–‰ ์ค‘์ธ ์žฌ์ƒ์„ฑ๊ธฐ ์ฃผ๊ธฐ๋ฅผ ์™„๋ฃŒํ•œ ํ›„ ํ›„์† cron ๊ฐ„๊ฒฉ์ด ์‹œ์ž‘๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ๋‹ค์Œ ์žฌ์ƒ์„ฑ๊ธฐ ์ฃผ๊ธฐ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

์œ ์ง€๋ณด์ˆ˜ ์ผ์ • ์„ค์ •์€ cron ํ‘œํ˜„์‹์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ */5 * * * *์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์ด์ „ ์žฌ์ƒ์„ฑ๊ธฐ ์ฃผ๊ธฐ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด Looker ์žฌ์ƒ์„ฑ๊ธฐ ์ฃผ๊ธฐ๊ฐ€ 5๋ถ„ ๊ฐ„๊ฒฉ์œผ๋กœ ์ฃผ๊ธฐ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ์žฌ์ƒ์„ฑ๊ธฐ ์ฃผ๊ธฐ๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์œผ๋ฉด Looker ์žฌ์ƒ์„ฑ๊ธฐ๋Š” ์ฃผ๊ธฐ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ ๋‹ค์Œ 5๋ถ„ ๊ฐ„๊ฒฉ์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๊ฐ„๊ฒฉ์ธ 5๋ถ„์€ ์œ ์ง€๋ณด์ˆ˜ ์ผ์ •์— ์ง€์›๋˜๋Š” ๊ฐ€์žฅ ์งง์€ ๊ฐ„๊ฒฉ์ž…๋‹ˆ๋‹ค. Looker๋Š” ์œ ์ง€๋ณด์ˆ˜ ์ผ์ •์— ์ตœ๋Œ€ ๊ฐ„๊ฒฉ์„ ์ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฆ‰, cron ํ‘œํ˜„์‹์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ Looker ์žฌ์ƒ์„ฑ๊ธฐ ์ฃผ๊ธฐ ๊ฐ„ ๊ฐ„๊ฒฉ์„ ์—ฐ์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Looker ์žฌ์ƒ์„ฑ๊ธฐ ์ฃผ๊ธฐ๊ฐ€ ๊ธธ์–ด์ง€๋ฉด ์บ์‹œ์™€ ์˜๊ตฌ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ์ตœ์‹  ์ƒํƒœ์— ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Looker ์žฌ์ƒ์„ฑ๊ธฐ๋Š” ์ฃผ๊ธฐ์—์„œ ๋ชจ๋“  ๊ฒ€์‚ฌ์™€ PDT ์žฌ๋นŒ๋“œ๋ฅผ ์™„๋ฃŒํ•œ ํ›„ ๋‹ค์Œ ์ฃผ๊ธฐ๊ฐ€ ์‹œ์ž‘ํ•  ๋•Œ๊นŒ์ง€ ๋‹ค์Œ cron ๊ฐ„๊ฒฉ ๋™์•ˆ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. ์žฅ๊ธฐ ์‹คํ–‰ PDT ๋นŒ๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ Looker ์žฌ์ƒ์„ฑ๊ธฐ ์ฃผ๊ธฐ ๊ฐ„์˜ ๊ธฐ๊ฐ„์ด ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Looker์˜ ํŒŒ์ƒ ํ…Œ์ด๋ธ” ํŽ˜์ด์ง€์— ์žˆ๋Š” ์˜๊ตฌ ํ…Œ์ด๋ธ” ๊ตฌํ˜„์„ ์œ„ํ•œ ์ค‘์š” ๊ณ ๋ ค์‚ฌํ•ญ ์„น์…˜์˜ ์„ค๋ช…๋Œ€๋กœ ๋‹ค๋ฅธ ์š”์†Œ๊ฐ€ ํ…Œ์ด๋ธ”์„ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์‹œ๊ฐ„์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์—ฐ์ค‘๋ฌดํœด๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์‹คํ–‰๋œ ์‹œ๊ฐ„์œผ๋กœ ๊ฒ€์‚ฌ๋ฅผ ์ œํ•œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€์ ์ธ cron ํ‘œํ˜„์‹์ž…๋‹ˆ๋‹ค.

cron ํ‘œํ˜„์‹ ์ •์˜
*/5 8-17 * * MON-FRI ์›”์š”์ผ๋ถ€ํ„ฐ ๊ธˆ์š”์ผ๊นŒ์ง€ ์—…๋ฌด ์‹œ๊ฐ„์— 5๋ถ„๋งˆ๋‹ค ๋ฐ์ดํ„ฐ ๊ทธ๋ฃน ๋ฐ PDT ํ™•์ธ
*/5 8-17 * * * ๋งค์ผ ์—…๋ฌด ์‹œ๊ฐ„์— 5๋ถ„๋งˆ๋‹ค ๋ฐ์ดํ„ฐ ๊ทธ๋ฃน ๋ฐ PDT ํ™•์ธ
0 8-17 * * MON-FRI ์›”์š”์ผ๋ถ€ํ„ฐ ๊ธˆ์š”์ผ๊นŒ์ง€ ์—…๋ฌด ์‹œ๊ฐ„์— ๋งค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ๊ทธ๋ฃน ๋ฐ PDT ํ™•์ธ
1 3 * * * ๋งค์ผ ์˜ค์ „ 3์‹œ 1๋ถ„์— ๋ฐ์ดํ„ฐ ๊ทธ๋ฃน๊ณผ PDT ํ™•์ธ

cron ํ‘œํ˜„์‹์„ ๋งŒ๋“ค ๋•Œ ๋‹ค์Œ ์‚ฌํ•ญ์— ์œ ์˜ํ•˜์„ธ์š”.

  • Looker๋Š” cron ํ‘œํ˜„์‹์—์„œ ?๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” parse-cron v0.1.3์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • cron ํ‘œํ˜„์‹์€ Looker ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ๊ฐ„๋Œ€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์ธ์ด ์ˆ˜ํ–‰๋˜๋Š” ์‹œ์ ์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  • PDT๊ฐ€ ๋นŒ๋“œ๋˜์ง€ ์•Š์œผ๋ฉด ํฌ๋ก  ๋ฌธ์ž์—ด์„ ๋‹ค์‹œ */5 * * * * ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์žฌ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ cron ๋ฌธ์ž์—ด์„ ๋งŒ๋“œ๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฆฌ์†Œ์Šค์ž…๋‹ˆ๋‹ค.

  • https://crontab.guru โ€” cron ๋ฌธ์ž์—ด์„ ์ˆ˜์ •ํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.
  • http://www.crontab-generator.org โ€” ์‹œ๊ฐ„ ์„ค์ •์„ ์„ ํƒํ•˜๋ฉด ์ƒ์„ฑ๊ธฐ์—์„œ ํ•ด๋‹น cron ๋ฌธ์ž์—ด์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

SSL

Looker์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ „๋‹ฌ๋  ๋•Œ SSL ์•”ํ˜ธํ™”๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. SSL์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ณด์•ˆ ์˜ต์…˜์€ ๋ณด์•ˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ก์„ธ์Šค ์‚ฌ์šฉ ์„ค์ • ๋ฌธ์„œ ํŽ˜์ด์ง€์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

SSL ํ™•์ธ

์—ฐ๊ฒฐ์— ์‚ฌ์šฉ๋˜๋Š” SSL ์ธ์ฆ์„œ๋ฅผ ํ™•์ธํ•ด์•ผ ํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ํ™•์ธ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ SSL ์ธ์ฆ์„œ์— ์„œ๋ช…ํ•œ SSL ์ธ์ฆ ๊ธฐ๊ด€(CA)์€ ํด๋ผ์ด์–ธํŠธ์˜ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์†Œ์Šค ๋ชฉ๋ก์—์„œ ๊ฐ€์ ธ์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค. CA๊ฐ€ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์†Œ์Šค๊ฐ€ ์•„๋‹ˆ๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์€ ์„ค์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์ƒ์ž๋ฅผ ์„ ํƒํ•˜์ง€ ์•Š์œผ๋ฉด SSL ์•”ํ˜ธํ™”๊ฐ€ ์—ฐ๊ฒฐ์— ๊ณ„์† ์‚ฌ์šฉ๋˜์ง€๋งŒ SSL ์—ฐ๊ฒฐ ํ™•์ธ์ด ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ CA๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์†Œ์Šค ๋ชฉ๋ก์— ์—†์„ ๋•Œ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ” ๋ฐ ์—ด ์‚ฌ์ „ ์บ์‹œ

SQL Runner์—์„œ๋Š” ์—ฐ๊ฒฐ๊ณผ ์Šคํ‚ค๋งˆ๋ฅผ ์„ ํƒํ•˜๋Š” ์ฆ‰์‹œ ๋ชจ๋“  ํ…Œ์ด๋ธ” ์ •๋ณด๊ฐ€ ๋ฏธ๋ฆฌ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ…Œ์ด๋ธ” ์ด๋ฆ„์„ ํด๋ฆญํ•˜๋Š” ์ฆ‰์‹œ SQL Runner์—์„œ ํ…Œ์ด๋ธ” ์—ด์„ ๋น ๋ฅด๊ฒŒ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ…Œ์ด๋ธ”์ด ๋งŽ๊ฑฐ๋‚˜ ํ…Œ์ด๋ธ”์ด ๋งค์šฐ ํฐ ์—ฐ๊ฒฐ ๋˜๋Š” ์Šคํ‚ค๋งˆ์˜ ๊ฒฝ์šฐ SQL Runner์—์„œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ”์„ ์„ ํƒํ•  ๋•Œ๋งŒ SQL Runner์—์„œ ํ…Œ์ด๋ธ” ์ •๋ณด๋ฅผ ๋กœ๋“œํ•˜๋ ค๋ฉด ํ…Œ์ด๋ธ” ๋ฐ ์—ด ์‚ฌ์ „ ์บ์‹œ ์˜ต์…˜์„ ์„ ํƒ ํ•ด์ œํ•˜์—ฌ ์—ฐ๊ฒฐ์— ๋Œ€ํ•ด SQL Runner ์‚ฌ์ „ ๋กœ๋“œ๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค.

์Šคํ‚ค๋งˆ ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ์บ์‹œ

์ง‘๊ณ„ ์ธ์‹๊ณผ ๊ฐ™์€ ์ผ๋ถ€ SQL ์“ฐ๊ธฐ ๊ธฐ๋Šฅ์˜ ๊ฒฝ์šฐ Looker๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •๋ณด ์Šคํ‚ค๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ SQL ์“ฐ๊ธฐ๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ณด ์Šคํ‚ค๋งˆ๊ฐ€ ์บ์‹œ๋˜์ง€ ์•Š์œผ๋ฉด ์ •๋ณด ์Šคํ‚ค๋งˆ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก Looker์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ SQL ์“ฐ๊ธฐ๋ฅผ ์ฐจ๋‹จํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Hadoop ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ(HDFS)์„ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด์˜ ๊ฒฝ์šฐ ์ •๋ณด ์Šคํ‚ค๋งˆ๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉด ์‹œ๊ฐ„์ด ๊ฑธ๋ ค Looker ์ฟผ๋ฆฌ์˜ ์„ฑ๋Šฅ์— ์ƒ๋‹นํ•œ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๋ณด ์Šคํ‚ค๋งˆ๊ฐ€ ๋А๋ฆฐ ๊ฒฝ์šฐ ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์Šคํ‚ค๋งˆ ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ์บ์‹œ ์˜ต์…˜์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ฉด ํŠน์ • ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ Looker SQL ์ตœ์ ํ™” ์ค‘ ์ผ๋ถ€๊ฐ€ ์ฐจ๋‹จ๋˜๋ฏ€๋กœ ์—ฐ๊ฒฐ์˜ ์ •๋ณด ์Šคํ‚ค๋งˆ๊ฐ€ ํŠนํžˆ ๋А๋ฆฌ๋‹ค๋Š” ์ ์„ ๋ชจ๋ฅด๋Š” ๊ฒฝ์šฐ ์Šคํ‚ค๋งˆ ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ์บ์‹œ ์˜ต์…˜์„ ์‚ฌ์šฉ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ƒ ๋น„์šฉ

๋น„์šฉ ์ถ”์ • ์ „ํ™˜ ๋ฒ„ํŠผ์€ ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋น„์šฉ ์ถ”์ • ์ „ํ™˜ ๋ฒ„ํŠผ์€ ์—ฐ๊ฒฐ์— ๋‹ค์Œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ Looker์—์„œ ๋ฐ์ดํ„ฐ ํƒ์ƒ‰ ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ํ’€๋ง

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ํ’€๋ง์„ ์ง€์›ํ•˜๋Š” ์–ธ์–ด์˜ ๊ฒฝ์šฐ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด Looker๊ฐ€ JDBC ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ ํ’€์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ํ’€๋ง์€ ๋” ๋น ๋ฅธ ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์ƒˆ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ ์ƒˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์„ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†๊ณ  ๋Œ€์‹  ์—ฐ๊ฒฐ ํ’€์˜ ๊ธฐ์กด ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ํ’€๋ง ๊ธฐ๋Šฅ์€ ์ฟผ๋ฆฌ ์‹คํ–‰ ํ›„ ์—ฐ๊ฒฐ์„ ์‚ญ์ œํ•˜๊ณ  ์ฟผ๋ฆฌ ์‹คํ–‰์ด ์ข…๋ฃŒ๋œ ํ›„ ์—ฐ๊ฒฐ์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ํ’€๋ง ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์˜๊ตฌ ํŒŒ์ƒ ํ…Œ์ด๋ธ” (PDT) ์„ค์ •

PDT๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋œ ๊ฒฝ์šฐ ๋‹ค์Œ ์„ค์ •์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

PDT ์‚ฌ์šฉ ์„ค์ •

PDT ์‚ฌ์šฉ ์„ค์ • ์ „ํ™˜ ๋ฒ„ํŠผ์„ ์‚ฌ์šฉ ์„ค์ •ํ•˜์—ฌ ์˜๊ตฌ ํŒŒ์ƒ ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. PDT๊ฐ€ ์‚ฌ์šฉ ์„ค์ •๋˜๋ฉด ์—ฐ๊ฒฐ ์ฐฝ์— ์ถ”๊ฐ€ PDT ํ•„๋“œ์™€ PDT ์žฌ์ •์˜ ์„น์…˜์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์–ธ์–ด์—์„œ PDT๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ Looker์— PDT ์‚ฌ์šฉ ์„ค์ • ์ „ํ™˜ ๋ฒ„ํŠผ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

PDT์— ๋Œ€ํ•œ ๋‹ค์Œ ์‚ฌํ•ญ์— ์œ ์˜ํ•˜์„ธ์š”.

  • OAuth๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Snowflake ์—ฐ๊ฒฐ์—๋Š” PDT๊ฐ€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์—ฐ๊ฒฐ์—์„œ PDT๋ฅผ ์ค‘์ง€ํ•ด๋„ PDT์™€ ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ ๊ทธ๋ฃน์€ ์ค‘์ง€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. PDT๋ฅผ ์‚ฌ์šฉ ์ค‘์ง€ํ•ด๋„ ๊ธฐ์กด ๋ฐ์ดํ„ฐ ๊ทธ๋ฃน์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด sql_trigger ์ฟผ๋ฆฌ๋ฅผ ๊ณ„์† ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๊ทธ๋ฃน์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด sql_trigger ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•˜๋ ค๋ฉด LookML ํ”„๋กœ์ ํŠธ์—์„œ datagroup ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ฃผ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” Looker์—์„œ PDT ๋ฐ ๋ฐ์ดํ„ฐ ๊ทธ๋ฃน์„ ๋งค์šฐ ์ž์ฃผ ๋˜๋Š” ์ „ํ˜€ ํ™•์ธํ•˜์ง€ ์•Š๋„๋ก ์—ฐ๊ฒฐ์˜ ์œ ์ง€๋ณด์ˆ˜ ์ผ์ • ์„ค์ •์„ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Snowflake ์—ฐ๊ฒฐ์˜ ๊ฒฝ์šฐ Looker๊ฐ€ AUTOCOMMIT ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์„ TRUE(Snowflake์˜ ๊ธฐ๋ณธ๊ฐ’)๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Looker์—์„œ PDT ๋“ฑ๋ก ์‹œ์Šคํ…œ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ์‹คํ–‰ํ•˜๋Š” SQL ๋ช…๋ น์–ด์—๋Š” AUTOCOMMIT์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ž„์‹œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

์ž„์‹œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ผ๋Š” ๋ผ๋ฒจ์ด ์ง€์ •๋˜์–ด ์žˆ์ง€๋งŒ Looker์—์„œ ์˜๊ตฌ ํŒŒ์ƒ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„ ๋˜๋Š” ์Šคํ‚ค๋งˆ ์ด๋ฆ„(์‚ฌ์šฉํ•˜๋Š” SQL ์–ธ์–ด์— ์ ํ•ฉํ•œ ์ด๋ฆ„)์„ ์ž…๋ ฅํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์ „์— ์ ์ ˆํ•œ ์“ฐ๊ธฐ ๊ถŒํ•œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ์Šคํ‚ค๋งˆ๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์„ฑ ์•ˆ๋‚ด ๋ฌธ์„œ ํŽ˜์ด์ง€์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์–ธ์–ด๋ฅผ ์„ ํƒํ•˜์—ฌ ํ•ด๋‹น ์–ธ์–ด์˜ ์•ˆ๋‚ด๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ์—ฐ๊ฒฐ์—๋Š” ์ž์ฒด ์ž„์‹œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋˜๋Š” ์Šคํ‚ค๋งˆ๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ์ด๋Ÿฌํ•œ ํ•ญ๋ชฉ์€ ์—ฐ๊ฒฐ ๊ฐ„์— ๊ณต์œ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ตœ๋Œ€ PDT ๋นŒ๋” ์—ฐ๊ฒฐ ์ˆ˜

์ตœ๋Œ€ PDT ๋นŒ๋” ์—ฐ๊ฒฐ ์ˆ˜ ์„ค์ •์„ ์‚ฌ์šฉํ•˜๋ฉด Looker ์žฌ์ƒ๊ธฐ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์—์„œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋™์‹œ ์‹คํ–‰ ํ…Œ์ด๋ธ” ๋นŒ๋“œ ์ˆ˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€ PDT ๋นŒ๋” ์—ฐ๊ฒฐ ์ˆ˜ ์„ค์ •์€ Looker ์žฌ์ƒ๊ธฐ์—์„œ ๋‹ค์‹œ ๋นŒ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ํ…Œ์ด๋ธ” ์œ ํ˜•์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ํŠธ๋ฆฌ๊ฑฐ ์ง€์† ํ…Œ์ด๋ธ”(datagroup_trigger ๋˜๋Š” sql_trigger_value ์ง€์†์„ฑ ์ „๋žต์„ ์‚ฌ์šฉํ•˜๋Š” ์˜๊ตฌ ํŒŒ์ƒ ํ…Œ์ด๋ธ” ๋ฐ ์ง‘๊ณ„ ํ…Œ์ด๋ธ”)
  • persist_for ์ „๋žต์„ ์‚ฌ์šฉํ•˜๋Š” ์˜๊ตฌ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ๋‹จ, persist_for ํ…Œ์ด๋ธ”์ด datagroup_trigger ๋˜๋Š” sql_trigger_value ์ง€์†์„ฑ ์ „๋žต์„ ์‚ฌ์šฉํ•˜๋Š” ํ…Œ์ด๋ธ”์— ์ข…์†๋œ ํŒŒ์ƒ ํ…Œ์ด๋ธ” ์บ์Šค์ผ€์ด๋“œ์˜ ์ผ๋ถ€์ธ ๊ฒฝ์šฐ์—๋งŒ ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ Looker ์žฌ์ƒ๊ธฐ๋Š” persist_for ํ…Œ์ด๋ธ”์„ ๋‹ค์‹œ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ด ํ…Œ์ด๋ธ”์€ ์บ์Šค์ผ€์ด๋“œ์—์„œ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์„ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์žฌ์ƒ๊ธฐ๊ฐ€ persist_for ํ…Œ์ด๋ธ”์˜ ๋นŒ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ตœ๋Œ€ PDT ๋นŒ๋” ์—ฐ๊ฒฐ ์ˆ˜ ์„ค์ •์€ ๊ธฐ๋ณธ์ ์œผ๋กœ 1๋กœ ์„ค์ •๋˜์ง€๋งŒ 10๊นŒ์ง€ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ๊ฐ’์€ Looker์˜ ์‹œ์ž‘ ์˜ต์…˜์— ์„ค์ •๋œ per-user-query-limit ๋˜๋Š” ๋…ธ๋“œ๋‹น ์ตœ๋Œ€ ์—ฐ๊ฒฐ ์ˆ˜ ํ•„๋“œ์— ์„ค์ •๋œ ๊ฐ’๋ณด๋‹ค ๋†’์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ’์„ ์‹ ์ค‘ํ•˜๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์ด ๋„ˆ๋ฌด ๋†’์œผ๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ณผ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ’์ด ๋‚ฎ์œผ๋ฉด ์žฅ๊ธฐ ์‹คํ–‰ PDT ๋˜๋Š” ์ง‘๊ณ„ ํ…Œ์ด๋ธ”๋กœ ์ธํ•ด ๋‹ค๋ฅธ ์˜๊ตฌ ํ…Œ์ด๋ธ” ์ƒ์„ฑ์ด ์ง€์—ฐ๋˜๊ฑฐ๋‚˜ ์—ฐ๊ฒฐ์—์„œ ๋‹ค๋ฅธ ์ฟผ๋ฆฌ๊ฐ€ ๋А๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. BigQuery, Snowflake, Redshift์™€ ๊ฐ™์ด ๋ฉ€ํ‹ฐํ…Œ๋„Œ์‹œ๋ฅผ ์ง€์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ณ‘๋ ฌ ์ฟผ๋ฆฌ ๋นŒ๋“œ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์ด ๋” ๋†’์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ๋Œ€ PDT ๋นŒ๋” ์—ฐ๊ฒฐ ์ˆ˜ ์„ค์ •์„ ๋Š˜๋ฆฌ๋ ค๋ฉด ๋จผ์ € 1์”ฉ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋™์ž‘์ด ๋ฐœ์ƒํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’ 1๋กœ ๋‹ค์‹œ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์ด ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์„ค์ •์„ ๋” ๋Š˜๋ฆฌ๊ธฐ ์ „์— 1๋งŒํผ ๋†’์ผ ๋•Œ๋งˆ๋‹ค ์„ฑ๋Šฅ์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ณ„์† ์ฆ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ๋Œ€ PDT ๋นŒ๋” ์—ฐ๊ฒฐ ์ˆ˜ ์„ค์ •์— ๋Œ€ํ•œ ๋‹ค์Œ ์‚ฌํ•ญ์— ์œ ์˜ํ•˜์„ธ์š”.

  • ์ตœ๋Œ€ PDT ๋นŒ๋” ์—ฐ๊ฒฐ ์ˆ˜ ์„ค์ •์€ ํŠธ๋ฆฌ๊ฑฐ ๊ฒ€์‚ฌ์— ํ•„์š”ํ•œ ์—ฐ๊ฒฐ์ด ์•„๋‹ˆ๋ผ ํ…Œ์ด๋ธ”์˜ ๋‹ค์‹œ ๋นŒ๋“œ์— ํ•„์š”ํ•œ ์—ฐ๊ฒฐ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ํŠธ๋ฆฌ๊ฑฐ ๊ฒ€์‚ฌ๋Š” ํ…Œ์ด๋ธ”์˜ ์ง€์†์„ฑ ์ „๋žต์ด ํŠธ๋ฆฌ๊ฑฐ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ฟผ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠธ๋ฆฌ๊ฑฐ ๊ฒ€์‚ฌ ์ฟผ๋ฆฌ๋Š” ํ•ญ์ƒ ์ˆœ์ฐจ์ ์œผ๋กœ ์‹คํ–‰๋˜๋ฏ€๋กœ ์ตœ๋Œ€ PDT ๋นŒ๋” ์—ฐ๊ฒฐ ์ˆ˜ ์„ค์ •์ด ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํด๋Ÿฌ์Šคํ„ฐ๋ง๋œ Looker ์ธ์Šคํ„ด์Šค์—์„œ ์žฌ์ƒ๊ธฐ๋Š” ๊ธฐ๋ณธ ๋…ธ๋“œ์—์„œ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€ PDT ๋นŒ๋” ์—ฐ๊ฒฐ ์ˆ˜ ์„ค์ •์€ ๊ธฐ๋ณธ ๋…ธ๋“œ์—๋งŒ ์ ์šฉ๋˜๋ฏ€๋กœ ์ „์ฒด ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ์ œํ•œ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค์Œ ์œ ํ˜•์˜ ํ…Œ์ด๋ธ”์—๋Š” ์ตœ๋Œ€ PDT ๋นŒ๋” ์—ฐ๊ฒฐ ์ˆ˜ ์„ค์ •์ด ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ ํ…Œ์ด๋ธ”์€ ์—ฐ์†์œผ๋กœ ๋นŒ๋“œ๋ฉ๋‹ˆ๋‹ค.
    • ํ…Œ์ด๋ธ”์ด datagroup_trigger ๋˜๋Š” sql_trigger_value ์ „๋žต์„ ์‚ฌ์šฉํ•˜๋Š” ํ…Œ์ด๋ธ”์— ์ข…์†๋˜์ง€ ์•Š๋Š” ํ•œ persist_for ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด ์œ ์ง€๋˜๋Š” ํ…Œ์ด๋ธ”
    • ๊ฐœ๋ฐœ ๋ชจ๋“œ์˜ ํ…Œ์ด๋ธ”
    • ํŒŒ์ƒ๋œ ํ…Œ์ด๋ธ” ๋‹ค์‹œ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ ์˜ต์…˜์œผ๋กœ ๋‹ค์‹œ ๋นŒ๋“œ๋œ ํ…Œ์ด๋ธ”
    • ์ข…์† ํ•ญ๋ชฉ ์บ์Šค์ผ€์ด๋“œ์—์„œ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์— ์ข…์†๋˜๋Š” ํ…Œ์ด๋ธ”. ํ…Œ์ด๋ธ”์€ ์ข…์†๋˜๋Š” ํ…Œ์ด๋ธ”๊ณผ ๋™์‹œ์— ๋นŒ๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด table_B๊ฐ€ table_A์— ์ข…์†๋˜๋Š” ๊ฒฝ์šฐ table_B๊ฐ€ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๊ธฐ ์ „์— table_A๊ฐ€ ๋‹ค์‹œ ๋นŒ๋“œ๋ฅผ ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹คํŒจํ•œ PDT ๋นŒ๋“œ ์žฌ์‹œ๋„

์‹คํŒจํ•œ PDT ๋นŒ๋“œ ์žฌ์‹œ๋„ ์ „ํ™˜ ๋ฒ„ํŠผ์€ Looker ์žฌ์ƒ์„ฑ๊ธฐ๊ฐ€ ์ด์ „ ์žฌ์ƒ์„ฑ๊ธฐ ์ฃผ๊ธฐ์—์„œ ์‹คํŒจํ•œ ํŠธ๋ฆฌ๊ฑฐ ์ง€์† ํ…Œ์ด๋ธ”์„ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. Looker ์žฌ์ƒ์„ฑ๊ธฐ๋Š” ํŠธ๋ฆฌ๊ฑฐ ์ง€์† ํ…Œ์ด๋ธ” (PDT ๋ฐ ์ง‘๊ณ„ ํ…Œ์ด๋ธ”)์„ ์œ ์ง€๋ณด์ˆ˜ ์ผ์ • ์—ฐ๊ฒฐ ์„ค์ •์—์„œ ๊ตฌ์„ฑ๋œ ๊ฐ„๊ฒฉ์— ๋”ฐ๋ผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ์‹คํŒจํ•œ PDT ๋นŒ๋“œ ์žฌ์‹œ๋„ ์ „ํ™˜ ๋ฒ„ํŠผ์ด ์‚ฌ์šฉ ์„ค์ •๋˜๋ฉด Looker ์žฌ์ƒ์„ฑ๊ธฐ๋Š” PDT์˜ ํŠธ๋ฆฌ๊ฑฐ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜์ง€ ์•Š๋”๋ผ๋„ ์ด์ „ ์žฌ์ƒ์„ฑ๊ธฐ ์ฃผ๊ธฐ์—์„œ ์‹คํŒจํ•œ PDT๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์„ ์‚ฌ์šฉ ์ค‘์ง€ํ•˜๋ฉด Looker ์žฌ์ƒ๊ธฐ๋Š” PDT์˜ ํŠธ๋ฆฌ๊ฑฐ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋  ๋•Œ๋งŒ ์ด์ „์— ์‹คํŒจํ•œ PDT๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์‹คํŒจํ•œ PDT ๋นŒ๋“œ ์žฌ์‹œ๋„๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ค‘์ง€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Looker ์žฌ์ƒ๊ธฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ Looker์˜ ํŒŒ์ƒ ํ…Œ์ด๋ธ” ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

PDT API ์ œ์–ด

PDT API ์ œ์–ด ์ „ํ™˜ ๋ฒ„ํŠผ์€ start_pdt_build, check_pdt_build, stop_pdt_build API ํ˜ธ์ถœ์„ ์ด ์—ฐ๊ฒฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. PDT API ์ œ์–ด ์ „ํ™˜ ๋ฒ„ํŠผ์ด ์ค‘์ง€๋˜๋ฉด ์ด ์—ฐ๊ฒฐ์—์„œ PDT๋ฅผ ์ฐธ์กฐํ•  ๋•Œ ์ด๋Ÿฌํ•œ API ํ˜ธ์ถœ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. PDT API ์ œ์–ด ์ „ํ™˜ ๋ฒ„ํŠผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ค‘์ง€๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

PDT ์žฌ์ •์˜ ์‚ฌ์šฉ ์„ค์ •

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์˜๊ตฌ ํŒŒ์ƒ ํ…Œ์ด๋ธ”์ด ์ง€์›๋˜๊ณ  ์—ฐ๊ฒฐ ์„ค์ •์—์„œ PDT ์‚ฌ์šฉ ์„ค์ • ์ „ํ™˜ ๋ฒ„ํŠผ์„ ์‚ฌ์šฉ ์„ค์ •ํ•œ ๊ฒฝ์šฐ Looker์— PDT ์žฌ์ •์˜ ์ „ํ™˜ ๋ฒ„ํŠผ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. PDT ์žฌ์ •์˜ ์ „ํ™˜ ๋ฒ„ํŠผ์„ ์‚ฌ์šฉ ์„ค์ •ํ•˜์—ฌ PDT ์žฌ์ •์˜ ์„น์…˜์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์—์„œ PDT ํ”„๋กœ์„ธ์Šค์— ํ•ด๋‹นํ•˜๋Š” ๋ณ„๋„์˜ JDBC ๋งค๊ฐœ๋ณ€์ˆ˜ (ํ˜ธ์ŠคํŠธ, ํฌํŠธ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์‚ฌ์šฉ์ž ์ด๋ฆ„, ๋น„๋ฐ€๋ฒˆํ˜ธ, ์Šคํ‚ค๋งˆ, ์ถ”๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜, ์—ฐ๊ฒฐ ๋ฌธ ๋’ค)๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์ด์œ ๋กœ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • PDT ํ”„๋กœ์„ธ์Šค์— ๋ณ„๋„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ๋“ค๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด์— ์‚ฌ์šฉ์ž ์†์„ฑ์„ ํ• ๋‹นํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์— OAuth๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ Looker ํ”„๋กœ์ ํŠธ์—์„œ PDT๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • PDT ํ”„๋กœ์„ธ์Šค๋Š” ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋” ๋†’์€ ๋ณ„๋„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž๋ฅผ ํ†ตํ•ด ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ณด๋‹ค ๋œ ์ค‘์š”ํ•œ ์‚ฌ์šฉ์ž ์ฟผ๋ฆฌ๋ณด๋‹ค PDT ์ž‘์—…์„ ์šฐ์„  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ‘œ์ค€ Looker ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์ทจ์†Œ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ PDT ํ”„๋กœ์„ธ์Šค์—์„œ ์ธ์ฆ์— ์‚ฌ์šฉํ•  ํŠน์ˆ˜ ์‚ฌ์šฉ์ž์—๊ฒŒ๋งŒ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์กฐ์ง์—์„œ ์ด ๋ฐฉ๋ฒ•์ด ๋”์šฑ ํšจ๊ณผ์ ์ธ ๋ณด์•ˆ ์ „๋žต์ž…๋‹ˆ๋‹ค.
  • Snowflake์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฒฝ์šฐ PDT ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‚˜๋จธ์ง€ Looker ์‚ฌ์šฉ์ž์™€ ๊ณต์œ ๋˜์ง€ ์•Š๋Š” ๋ณด๋‹ค ๊ฐ•๋ ฅํ•œ ํ•˜๋“œ์›จ์–ด๋กœ ๋ผ์šฐํŒ…๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ํ•˜๋“œ์›จ์–ด๋ฅผ ํ’€ํƒ€์ž„์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๋น„์šฉ ์—†์ด PDT๊ฐ€ ๋น ๋ฅด๊ฒŒ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ์ž ์ด๋ฆ„ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ํ•„๋“œ๊ฐ€ ์‚ฌ์šฉ์ž ์†์„ฑ์œผ๋กœ ์„ค์ •๋œ ์—ฐ๊ฒฐ์—์„œ PDT ์žฌ์ •์˜ ์„น์…˜์€ ์ž์ฒด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ„๋„์˜ ์‚ฌ์šฉ์ž (pdt_user)๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ตฌ์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ ์‚ฌ์šฉ์ž๋Š” ์‚ฌ์šฉ์ž ์†์„ฑ์— ๋”ฐ๋ผ ํ• ๋‹น๋œ ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • pdt_user ๊ณ„์ •์€ PDT ์ƒ์„ฑ ๋ฐ ์—…๋ฐ์ดํŠธ์— ์ ํ•ฉํ•œ ์•ก์„ธ์Šค ์ˆ˜์ค€์œผ๋กœ ๋ชจ๋“  PDT ํ”„๋กœ์„ธ์Šค์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ์‹œ์Šคํ…œ ํ™œ๋™์„ ์‚ฌ์šฉํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ ๊ฐ™์€ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ์ž ์ฟผ๋ฆฌ ํŠธ๋ž˜ํ”ฝ๊ณผ PDT ํ”„๋กœ์„ธ์Šค ํŠธ๋ž˜ํ”ฝ์„ ๋น ๋ฅด๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ๊ฐ„๋Œ€

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜๋Š” ์‹œ๊ฐ„๋Œ€์ž…๋‹ˆ๋‹ค. Looker๋Š” ์‚ฌ์šฉ์ž์˜ ์‹œ๊ฐ„ ๊ฐ’์„ ๋ณ€ํ™˜ํ•˜์—ฌ ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด ์ •๋ณด๋ฅผ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‹œ๊ฐ„๋Œ€ ์„ค์ • ์‚ฌ์šฉ ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฟผ๋ฆฌ ์‹œ๊ฐ„๋Œ€

์ฟผ๋ฆฌ ์‹œ๊ฐ„๋Œ€ ์˜ต์…˜์€ ์‚ฌ์šฉ์ž๋ณ„ ์‹œ๊ฐ„๋Œ€๋ฅผ ์ค‘์ง€ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๋ณ„ ์‹œ๊ฐ„๋Œ€๊ฐ€ ์‚ฌ์šฉ ์ค‘์ง€๋œ ๊ฒฝ์šฐ ์ฟผ๋ฆฌ ์‹œ๊ฐ„๋Œ€๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌํ•  ๋•Œ ํ‘œ์‹œ๋˜๋Š” ์‹œ๊ฐ„๋Œ€์™€ Looker๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ๊ฐ„๋Œ€์—์„œ ์‹œ๊ฐ„ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ์‹œ๊ฐ„๋Œ€์ž…๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‹œ๊ฐ„๋Œ€ ์„ค์ • ์‚ฌ์šฉ ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ƒํƒœ ์„ธ๋ถ€์ •๋ณด ์„น์…˜์„ ํ™•์žฅํ•˜์—ฌ ์—ฐ๊ฒฐ ์„ค์ •์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

๊ฒ€ํ† 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ์„ค์ •์„ ๋ชจ๋‘ ์ž…๋ ฅํ•œ ํ›„ ์—ฐ๊ฒฐ์„ ๊ฒ€ํ† ํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•˜์—ฌ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Looker UI์˜ ๋ช‡๋ช‡ ์œ„์น˜์—์„œ ์—ฐ๊ฒฐ ์„ค์ •์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์—ฐ๊ฒฐ ์„ค์ • ํŽ˜์ด์ง€ ํ•˜๋‹จ์˜ ์ƒํƒœ ์„ธ๋ถ€์ •๋ณด ์„น์…˜์—์„œ ํ…Œ์ŠคํŠธ ๋ฒ„ํŠผ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • ์—ฐ๊ฒฐ ๋ฌธ์„œ ํŽ˜์ด์ง€์— ์„ค๋ช…๋œ ๋Œ€๋กœ ์—ฐ๊ฒฐ ๊ด€๋ฆฌ ํŽ˜์ด์ง€์˜ ์—ฐ๊ฒฐ ๋ชฉ๋ก ์˜†์— ์žˆ๋Š” ํ…Œ์ŠคํŠธ ๋ฒ„ํŠผ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

Looker์— ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ์ด ํ‘œ์‹œ๋˜๋ฉด ์—ฐ๊ฒฐ์„ ๋ˆŒ๋Ÿฌ ์—ฐ๊ฒฐ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์ด Looker ์—ฐ๊ฒฐ ๊ด€๋ฆฌ ํŽ˜์ด์ง€์˜ ๋ชฉ๋ก์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์†์„ฑ์— ์—ฐ๊ฒฐ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์„ ํ•˜๋‚˜ ์ด์ƒ ์„ค์ •ํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๋กœ ํ…Œ์ŠคํŠธ ์˜ต์…˜์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋ฅผ ์„ ํƒํ•œ ํ›„ ํ…Œ์ŠคํŠธ๋ฅผ ํด๋ฆญํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ด ์‚ฌ์šฉ์ž๋กœ ์—ฐ๊ฒฐํ•˜๊ณ  ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ ํ•ด๊ฒฐ

์—ฐ๊ฒฐ์ด ํ•˜๋‚˜ ์ด์ƒ์˜ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ ๋‹ค์Œ ์‚ฌํ•ญ์— ์œ ์˜ํ•˜์„ธ์š”.

  • Atlas์—์„œ Mongo ๋ฒ„์ „ 3.6 ์ดํ•˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๊ณ  ํ†ต์‹  ๋งํฌ ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ Mongo ์ปค๋„ฅํ„ฐ ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  • ์ž„์‹œ ์Šคํ‚ค๋งˆ ๋ฐ PDT์™€ ๊ด€๋ จํ•˜์—ฌ ์„ฑ๊ณต์ ์ธ ์—ฐ๊ฒฐ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์‹ ํ•˜๋ ค๋ฉด Looker ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค์ •ํ•  ๋•Œ ์ด ๊ธฐ๋Šฅ์„ ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์„ฑ ์•ˆ๋‚ด ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  • Snowflake ๋ฐ Google BigQuery์™€ ๊ฐ™์ด OAuth๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์—ฐ๊ฒฐ ์ค‘ ํ•˜๋‚˜๋ฅผ ํ…Œ์ŠคํŠธํ•  ๋•Œ OAuth ์‚ฌ์šฉ์ž ๊ณ„์ •์— ๋กœ๊ทธ์ธํ•˜์ง€ ์•Š์œผ๋ฉด Looker์— ๋กœ๊ทธ์ธ ๋งํฌ์™€ ํ•จ๊ป˜ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์—ฌ OAuth ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ Looker์—์„œ OAuth ๊ณ„์ • ์ •๋ณด์— ์•ก์„ธ์Šคํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณ ๊ฐ ํ˜ธ์ŠคํŒ… Looker ์ธ์Šคํ„ด์Šค์˜ ๊ฒฝ์šฐ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋„์›€๋ง์€ ๊ณ ๊ฐ ํ˜ธ์ŠคํŒ… ์ธ์Šคํ„ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ ๋ฌธ์„œ ํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋‹ค์Œ ๋‹จ๊ณ„

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ Looker์— ์—ฐ๊ฒฐํ•œ ํ›„์—๋Š” ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ๋กœ๊ทธ์ธ ์˜ต์…˜์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.