Delta: ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฐ ๊ฐ•ํ™” ํ”Œ๋žซํผ

์ƒˆ๋กœ์šด ํ๋ฆ„์˜ ์ถœ์‹œ๋ฅผ ๊ธฐ๋Œ€ํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด ํฅ๋ฏธ๋กœ์šด ์ž๋ฃŒ์˜ ๋ฒˆ์—ญ์„ ์ค€๋น„ํ–ˆ์Šต๋‹ˆ๋‹ค.

Delta: ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฐ ๊ฐ•ํ™” ํ”Œ๋žซํผ

๊ฒ€ํ† 

์šฐ๋ฆฌ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋งค์šฐ ์ผ๋ฐ˜์ ์ธ ํŒจํ„ด์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๊ฐ ์ €์žฅ์†Œ๋Š” ํ‘œ์ค€ ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ(MySQL ๋“ฑ)๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ณ ๊ธ‰ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ(ElasticSearch, etc.) .), ์บ์‹ฑ(Memcached ๋“ฑ) ๋ฐ ๊ธฐํƒ€. ์ผ๋ฐ˜์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ทธ ์ค‘ ํ•˜๋‚˜๋Š” ๊ธฐ๋ณธ ์ €์žฅ์†Œ ์—ญํ• ์„ ํ•˜๊ณ  ๋‹ค๋ฅธ ์ €์žฅ์†Œ๋Š” ํŒŒ์ƒ ์ €์žฅ์†Œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์œ ์ผํ•œ ๋ฌธ์ œ๋Š” ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ๋™๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

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

Delta๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Delta๋Š” ๊ถ๊ทน์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฐ ๊ฐ•ํ™”๋ฅผ ์œ„ํ•œ ์ผ๊ด€๋œ ์ด๋ฒคํŠธ ์ค‘์‹ฌ ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ์กด ์†”๋ฃจ์…˜

์ด์ค‘ ํ•ญ๋ชฉ

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

๋ฌธ์ œ :

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

๋ณ€๊ฒฝ ๋กœ๊ทธ ํ…Œ์ด๋ธ”

ํ…Œ์ด๋ธ” ์ง‘ํ•ฉ์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ(์˜ˆ: ๋ ˆ์ฝ”๋“œ ์‚ฝ์ž…, ์—…๋ฐ์ดํŠธ, ์‚ญ์ œ ๋“ฑ)์ด ๋ฐœ์ƒํ•˜๋ฉด ๋ณ€๊ฒฝ ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋™์ผํ•œ ํŠธ๋žœ์žญ์…˜์˜ ์ผ๋ถ€๋กœ ๋กœ๊ทธ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋‚˜ ํ”„๋กœ์„ธ์Šค๋Š” ์ง€์†์ ์œผ๋กœ ๋กœ๊ทธ ํ…Œ์ด๋ธ”์˜ ์ด๋ฒคํŠธ๋ฅผ ์š”์ฒญํ•˜๊ณ  ์ด๋ฅผ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋ชจ๋“  ์ €์žฅ์†Œ์—์„œ ๊ธฐ๋ก์ด ํ™•์ธ๋œ ํ›„ ๋กœ๊ทธ ํ…Œ์ด๋ธ”์—์„œ ์ด๋ฒคํŠธ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ :

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

๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋Š” MySQL๊ณผ ๊ฐ™์ด ํŠธ๋žœ์žญ์…˜ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์‹œ์Šคํ…œ[1][2]์—์„œ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ์„ ์–ป๋Š” ๋ฐ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ€๊ฒฝ(์˜ˆ: ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ)์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ด๋ฅผ ๋ณ€๊ฒฝ ๋กœ๊ทธ ํ…Œ์ด๋ธ”์— ํŠธ๋žœ์žญ์…˜ ๋ฐฉ์‹์œผ๋กœ ๊ธฐ๋กํ•˜๋Š” ํŒจํ„ด์ด ํ•ญ์ƒ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜

๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ํŠธ๋žœ์žญ์…˜์„ ์—ฌ๋Ÿฌ ์ด๊ธฐ์ข… ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋กœ ๋ถ„ํ• ํ•˜์—ฌ ์ž‘์—…์ด ์‚ฌ์šฉ๋œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์— ์ปค๋ฐ‹๋˜๊ฑฐ๋‚˜ ๊ทธ ์ค‘ ์–ด๋Š ๊ฒƒ์—๋„ ์ปค๋ฐ‹๋˜์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ :

๋ถ„์‚ฐ ํŠธ๋žœ์žญ์…˜์€ ์ด๊ธฐ์ข… ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์— ๋งค์šฐ ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ ๊ด€๋ จ ์‹œ์Šคํ…œ์˜ ๊ฐ€์žฅ ๋‚ฎ์€ ๊ณตํ†ต ๋ถ„๋ชจ์—๋งŒ ์˜์กดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ค€๋น„ ๋‹จ๊ณ„์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํŒจํ•˜๋ฉด XA ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ XA๋Š” ๊ต์ฐฉ ์ƒํƒœ ๊ฐ์ง€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋‚™๊ด€์  ๋™์‹œ์„ฑ ์ œ์–ด ์ฒด๊ณ„๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ElasticSearch์™€ ๊ฐ™์€ ์ผ๋ถ€ ์‹œ์Šคํ…œ์€ XA ๋˜๋Š” ๊ธฐํƒ€ ์ด๊ธฐ์ข… ํŠธ๋žœ์žญ์…˜ ๋ชจ๋ธ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ธฐ์ˆ ์—์„œ ์“ฐ๊ธฐ ์›์ž์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์žˆ์–ด ๋งค์šฐ ์–ด๋ ค์šด ์ž‘์—…์œผ๋กœ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค[3].

๋ธํƒ€

Delta๋Š” ๊ธฐ์กด ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ์†”๋ฃจ์…˜์˜ ํ•œ๊ณ„๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์ฆ‰๊ฐ์ ์ธ ๋ฐ์ดํ„ฐ ๊ฐ•ํ™”๋ฅผ ์ง€์›ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋น„์ฆˆ๋‹ˆ์Šค ๊ธฐ๋Šฅ ๊ตฌํ˜„์— ์ „์ ์œผ๋กœ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด๋Ÿฌํ•œ ๋ชจ๋“  ๋ณต์žก์„ฑ์„ ์ถ”์ƒํ™”ํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ Netflix Delta์˜ ์‹ค์ œ ์‚ฌ์šฉ ์‚ฌ๋ก€์ธ "Movie Search"์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Netflix๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋„๋ฆฌ ์‚ฌ์šฉํ•˜๋ฉฐ ๊ฐ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ•œ ๊ฐ€์ง€ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ํ™”์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ •๋ณด๋Š” Movie Service๋ผ๋Š” ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ œ์ž‘์ž, ๋ฐฐ์šฐ, ๊ณต๊ธ‰์—…์ฒด ๋“ฑ์— ๋Œ€ํ•œ ์ •๋ณด์™€ ๊ฐ™์€ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค(์ฆ‰, Deal Service, Talent Service ๋ฐ Vendor Service)์—์„œ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
Netflix Studios์˜ ๋น„์ฆˆ๋‹ˆ์Šค ์‚ฌ์šฉ์ž๋Š” ๋‹ค์–‘ํ•œ ์˜ํ™” ๊ธฐ์ค€์„ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋ฏ€๋กœ ๋ชจ๋“  ์˜ํ™” ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

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

Delta: ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฐ ๊ฐ•ํ™” ํ”Œ๋žซํผ
๊ทธ๋ฆผ 1. Delta์— ๋Œ€ํ•œ ํด๋ง ์‹œ์Šคํ…œ
Delta๋ฅผ ์‚ฌ์šฉํ•œ ํ›„ ์‹œ์Šคํ…œ์€ ๋‹ค์Œ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ด๋ฒคํŠธ ์ค‘์‹ฌ ์‹œ์Šคํ…œ์œผ๋กœ ๋‹จ์ˆœํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. CDC(Change-Data-Capture) ์ด๋ฒคํŠธ๋Š” Delta-Connector๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Keystone Kafka ์ฃผ์ œ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. Delta ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ(Flink ๊ธฐ๋ฐ˜)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋œ Delta ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ฃผ์ œ์—์„œ CDC ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ , ๋‹ค๋ฅธ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ด๋ฅผ ๊ฐ•ํ™”ํ•˜๊ณ , ๋งˆ์ง€๋ง‰์œผ๋กœ ๊ฐ•ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ Elasticsearch์˜ ๊ฒ€์ƒ‰ ์ธ๋ฑ์Šค์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ํ”„๋กœ์„ธ์Šค๋Š” ๊ฑฐ์˜ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์ ์šฉ๋˜์ž๋งˆ์ž ๊ฒ€์ƒ‰ ์ƒ‰์ธ์ด ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.

Delta: ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฐ ๊ฐ•ํ™” ํ”Œ๋žซํผ
๊ทธ๋ฆผ 2. Delta๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ
๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ์Šคํ† ๋ฆฌ์ง€์— ์—ฐ๊ฒฐํ•˜๊ณ  CDC ์ด๋ฒคํŠธ๋ฅผ Kafka ์ฃผ์ œ๋กœ ๋ผ์šฐํŒ…ํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „์†ก ์ธํ”„๋ผ์ธ ์ „์†ก ๊ณ„์ธต์— CDC ์ด๋ฒคํŠธ๋ฅผ ๊ฒŒ์‹œํ•˜๋Š” Delta-Connector์˜ ์ž‘๋™์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์—๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๋ฐ ๊ฐ•ํ™” ๋…ผ๋ฆฌ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Delta ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

CDC(๋ณ€๊ฒฝ ๋ฐ์ดํ„ฐ ์บก์ฒ˜)

์šฐ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์—์„œ ์ปค๋ฐ‹๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์บก์ฒ˜ํ•˜์—ฌ ์ŠคํŠธ๋ฆผ์— ์“ธ ์ˆ˜ ์žˆ๋Š” Delta-Connector๋ผ๋Š” CDC ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹ค์‹œ๊ฐ„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ ๋ฐ ์Šคํ† ๋ฆฌ์ง€ ๋คํ”„์—์„œ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค. ๋คํ”„๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ๊ฐ€ ์ „์ฒด ๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ์ €์žฅํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ธํƒ€ ์ด๋ฒคํŠธ๋กœ ์ง๋ ฌํ™”๋˜๋ฏ€๋กœ ์ˆ˜์‹ ์ž๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์–ด๋””์„œ ์˜ค๋Š”์ง€ ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

Delta-Connector๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

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

ํ˜„์žฌ AWS RDS ๋ฐ Aurora ๋ฐฐํฌ๋ฅผ ํฌํ•จํ•˜์—ฌ MySQL ๋ฐ Postgres๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Cassandra(๋‹ค์ค‘ ๋งˆ์Šคํ„ฐ)๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ Delta-Connector์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ธ”๋กœ๊ทธ.

Kafka์™€ ์ „์†ก ๊ณ„์ธต

Delta์˜ ์ด๋ฒคํŠธ ์ „์†ก ๊ณ„์ธต์€ ํ”Œ๋žซํผ์˜ ๋ฉ”์‹œ์ง• ์„œ๋น„์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์š”์ง€.

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

Delta๋ฅผ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” ํŒŒ์ƒ ๋งค์žฅ์— CDC ์ด๋ฒคํŠธ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋” ๊ฐ•๋ ฅํ•œ ๋‚ด๊ตฌ์„ฑ ๋ณด์žฅ์„ ์›ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ Kafka ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ผ๊ธ‰ ๊ฐ์ฒด๋กœ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ํ‘œ์—์„œ ์ผ๋ถ€ ๋ธŒ๋กœ์ปค ์„ค์ •์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Delta: ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฐ ๊ฐ•ํ™” ํ”Œ๋žซํผ

Keystone Kafka ํด๋Ÿฌ์Šคํ„ฐ์—์„œ๋Š” ๋ถ€์ •ํ•œ ์ง€๋„์ž ์„ ๊ฑฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฒŒ์‹œ์ž ์ ‘๊ทผ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋™๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ณต์ œ๋ณธ์ด ๋ฆฌ๋”๋กœ ์„ ํƒ๋˜๋ฉด ๋ฉ”์‹œ์ง€๊ฐ€ ์†์‹ค๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ณ ๊ฐ€์šฉ์„ฑ Kafka ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ ์˜ต์…˜ ๋ถ€์ •ํ•œ ์ง€๋„์ž ์„ ๊ฑฐ ๋ฉ”์‹œ์ง€ ์†์‹ค์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊บผ์กŒ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋„ ๋Š˜์—ˆ์–ด์š” ๋ณต์ œ ์ธ์ž 2์—์„œ 3๊นŒ์ง€ ๊ทธ๋ฆฌ๊ณ  ์ตœ์†Œ ๋น„๋™๊ธฐ ๋ณต์ œ๋ณธ 1 ๋Œ€ 2. ์ด ํด๋Ÿฌ์Šคํ„ฐ์— ์“ฐ๋Š” ๊ฒŒ์‹œ์ž๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฒƒ์˜ ์‘๋‹ต์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ๋ณต์ œ๋ณธ 2๊ฐœ ์ค‘ 3๊ฐœ๊ฐ€ ๊ฒŒ์‹œ์ž๊ฐ€ ๋ณด๋‚ธ ์ตœ์‹  ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ–๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ธŒ๋กœ์ปค ์ธ์Šคํ„ด์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ƒˆ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ด์ „ ์ธ์Šคํ„ด์Šค๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ƒˆ ๋ธŒ๋กœ์ปค๋Š” ๋™๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ณต์ œ๋ณธ์„ ๋”ฐ๋ผ์žก์•„์•ผ ํ•˜๋ฉฐ ์ด๋Š” ๋ช‡ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ๋‚˜๋ฆฌ์˜ค์˜ ๋ณต๊ตฌ ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋กœ์ปฌ ๋ธŒ๋กœ์ปค ๋””์Šคํฌ ๋Œ€์‹  ๋ธ”๋ก ๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€(Amazon Elastic Block Store)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ข…๋ฃŒ๋œ ๋ธŒ๋กœ์ปค ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒˆ ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ต์ฒดํ•˜๋ฉด ์ข…๋ฃŒ๋œ ์ธ์Šคํ„ด์Šค์— ์žˆ๋˜ EBS ๋ณผ๋ฅจ์„ ์—ฐ๊ฒฐํ•˜๊ณ  ์ƒˆ ๋ฉ”์‹œ์ง€๋ฅผ ๋”ฐ๋ผ์žก๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๋Š” ์ƒˆ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋” ์ด์ƒ ๋นˆ ์ƒํƒœ์—์„œ ๋ณต์ œํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฑ๋กœ๊ทธ ์ •๋ฆฌ ์‹œ๊ฐ„์„ ๋ช‡ ์‹œ๊ฐ„์—์„œ ๋ช‡ ๋ถ„์œผ๋กœ ์ค„์—ฌ์ค๋‹ˆ๋‹ค. ์ „๋ฐ˜์ ์œผ๋กœ ๋ณ„๋„์˜ ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ๋ธŒ๋กœ์ปค ์ˆ˜๋ช… ์ฃผ๊ธฐ๋Š” ๋ธŒ๋กœ์ปค ์ „ํ™˜์˜ ์˜ํ–ฅ์„ ํฌ๊ฒŒ ์ค„์ž…๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋ณด์žฅ์„ ๋”์šฑ ๋†’์ด๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ๋ฉ”์‹œ์ง€ ์ถ”์  ์‹œ์Šคํ…œ ๊ทน๋‹จ์ ์ธ ์กฐ๊ฑด(์˜ˆ: ํŒŒํ‹ฐ์…˜ ๋ฆฌ๋”์˜ ์‹œ๊ณ„ ๋น„๋™๊ธฐํ™”)์—์„œ ๋ฉ”์‹œ์ง€ ์†์‹ค์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ

Delta์˜ ์ฒ˜๋ฆฌ ๊ณ„์ธต์€ Netflix ์ƒํƒœ๊ณ„์™€ Apache Flink ํ†ตํ•ฉ์„ ์ œ๊ณตํ•˜๋Š” Netflix SPaaS ํ”Œ๋žซํผ ์œ„์— ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”Œ๋žซํผ์€ Titus ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ ํ”Œ๋žซํผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ Flink ์ž‘์—… ๋ฐฐํฌ์™€ Flink ํด๋Ÿฌ์Šคํ„ฐ ์กฐ์ •์„ ๊ด€๋ฆฌํ•˜๋Š” ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ž‘์—… ๊ตฌ์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ Flink ์ž‘์—…์„ ๋‹ค์‹œ ์ปดํŒŒ์ผํ•˜์ง€ ์•Š๊ณ ๋„ ๋™์ ์œผ๋กœ ๊ตฌ์„ฑ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค๋‹ˆ๋‹ค.

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

Delta: ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฐ ๊ฐ•ํ™” ํ”Œ๋žซํผ
๊ทธ๋ฆผ 3. Delta์˜ DSL ๊ฐ•ํ™” ์˜ˆ

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

๋ธํƒ€ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” DSL ๋ฐ API ๋ชจ๋“ˆ๊ณผ ๋Ÿฐํƒ€์ž„ ๋ชจ๋“ˆ์ด๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ํ•ต์‹ฌ ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. DSL & API ๋ชจ๋“ˆ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ž์ฒด ์ฒ˜๋ฆฌ ๋กœ์ง(์˜ˆ: ํ•„ํ„ฐ๋ง ๋˜๋Š” ๋ณ€ํ™˜)์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก DSL ๋ฐ UDF(์‚ฌ์šฉ์ž ์ •์˜ ๊ธฐ๋Šฅ) API๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„ ๋ชจ๋“ˆ์€ DAG ๋ชจ๋ธ์˜ ์ฒ˜๋ฆฌ ๋‹จ๊ณ„์— ๋Œ€ํ•œ ๋‚ด๋ถ€ ํ‘œํ˜„์„ ๊ตฌ์ถ•ํ•˜๋Š” DSL ํŒŒ์„œ ๊ตฌํ˜„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ๊ตฌ์„ฑ์š”์†Œ๋Š” DAG ๋ชจ๋ธ์„ ํ•ด์„ํ•˜์—ฌ ์‹ค์ œ Flink ๋ฌธ์„ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ๊ถ๊ทน์ ์œผ๋กœ Flink ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์•„ํ‚คํ…์ฒ˜๋Š” ๋‹ค์Œ ๊ทธ๋ฆผ์— ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Delta: ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฐ ๊ฐ•ํ™” ํ”Œ๋žซํผ
๊ทธ๋ฆผ 4. ๋ธํƒ€ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ ํ”„๋ ˆ์ž„์›Œํฌ ์•„ํ‚คํ…์ฒ˜

์ด ์ ‘๊ทผ ๋ฐฉ์‹์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์‚ฌ์šฉ์ž๋Š” Flink ๋˜๋Š” SPaaS ๊ตฌ์กฐ์˜ ์„ธ๋ถ€ ์‚ฌํ•ญ์„ ์กฐ์‚ฌํ•  ํ•„์š” ์—†์ด ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ตœ์ ํ™”๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ํˆฌ๋ช…ํ•œ ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‚ฌ์šฉ์ž ์ฝ”๋“œ(UDF)๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋„ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ”Œ๋žซํผ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์œ ์—ฐ์„ฑ๊ณผ ํƒ„๋ ฅ์„ฑ์„ ์ œ๊ณตํ•˜๊ณ  ๊ฒฝ๊ณ ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•˜๊ณ  ์ž์„ธํ•œ ์ง€ํ‘œ๋ฅผ ์ˆ˜์ง‘ํ•˜๋ฏ€๋กœ Delta ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‹จ์ˆœํ™”๋ฉ๋‹ˆ๋‹ค.

์ƒ์‚ฐ์šฉ

Delta๋Š” XNUMX๋…„ ๋„˜๊ฒŒ ์ œ์ž‘๋˜์–ด ์™”์œผ๋ฉฐ ๋งŽ์€ Netflix Studio ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ๋‹ด๋‹นํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋…€๋Š” ํŒ€์ด ๊ฒ€์ƒ‰ ์ธ๋ฑ์‹ฑ, ๋ฐ์ดํ„ฐ ์ €์žฅ, ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ ์›Œํฌํ”Œ๋กœ์™€ ๊ฐ™์€ ์‚ฌ์šฉ ์‚ฌ๋ก€๋ฅผ ๊ตฌํ˜„ํ•˜๋„๋ก ๋„์™”์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ Delta ํ”Œ๋žซํผ์˜ ์ƒ์œ„ ์ˆ˜์ค€ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ๊ฐœ์š”์ž…๋‹ˆ๋‹ค.

Delta: ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ๋ฐ ๊ฐ•ํ™” ํ”Œ๋žซํผ
๊ทธ๋ฆผ 5. Delta์˜ ์ƒ์œ„ ์ˆ˜์ค€ ์•„ํ‚คํ…์ฒ˜

๊ฐ์‚ฌ์˜ ๋ง

Netflix์—์„œ Delta์˜ ์ œ์ž‘ ๋ฐ ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ•œ ๋‹ค์Œ ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ์˜ ๋ง์”€์„ ์ „ํ•ฉ๋‹ˆ๋‹ค. Allen Wang, Charles Zhao, ์œค์žฌ๋นˆ, Josh Snyder, Kasturi Chatterjee, Mark Cho, Olof Johansson, Piyush Goyal, Prashanth Ramdas, Raghuram Onti Srinivasan, Sandeep Gupta, Steven Wu, Tharanga Gamaethige, Yun Wang ๋ฐ Zhenzhong Xu.

์†Œ์Šค

  1. dev.mysql.com/doc/refman/5.7/en/implicit-commit.html
  2. dev.mysql.com/doc/refman/5.7/en/cannot-roll-back.html
  3. Martin Kleppmann, Alastair R. Beresford, Boerge Svingen: ์˜จ๋ผ์ธ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ. ์ปค๋ฎค๋‹ˆ์ผ€์ดํ„ฐ ACM 62(5): 43โ€“49(2019). DOI: doi.org/10.1145/3312527

๋ฌด๋ฃŒ ์›จ๋น„๋‚˜์— ๋“ฑ๋กํ•˜์„ธ์š”: โ€œAmazon Redshift Storage์šฉ ๋ฐ์ดํ„ฐ ๊ตฌ์ถ• ๋„๊ตฌ.โ€

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€