presto_base

Presto Base

  • image

    • https://www.starburst.io/learn/open-source-presto/presto-connectors/

  • Presto๋Š” ๊ธฐ๊ฐ€๋ฐ”์ดํŠธ์—์„œ ํŽ˜ํƒ€๋ฐ”์ดํŠธ์— ์ด๋ฅด๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์†Œ์Šค์— ๋Œ€ํ•ด ๋น ๋ฅธ ๋ถ„์„ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ๋ถ„์‚ฐ SQL ์—”์ง„์ž…๋‹ˆ๋‹ค.

  • Presto๋Š” ๋Œ€ํ™”ํ˜• ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋ถ„์‚ฐ SQL ์ฟผ๋ฆฌ ์—”์ง„์ž…๋‹ˆ๋‹ค.

    • ๋Œ€ํ™”ํ˜• ๋ถ„์„ : ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ฟผ๋ฆฌ์— ๋ฐ”๋กœ ๋ฐ˜์‘ํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ถ„์„ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

  • Presto๋Š” ๋‚ฎ์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ ํด๋ž˜์‹ MPP ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๋‚ด ์ŠคํŠธ๋ฆฌ๋ฐ ์…”ํ”Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ฎ์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ๋‹ฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • Presto์—๋Š” ์—ฐ๊ฒฐ๋œ ์ž‘์—…์ž ํ’€์ด ์žˆ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋‹น ๋‹จ์ผ ๊ณต์œ  ์ฝ”๋””๋„ค์ดํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Presto๋Š” ๋‹ค์ค‘ ํ…Œ๋„Œ์‹œ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๋™์ผํ•œ Presto ์ž‘์—…์ž(๊ณต์œ  ์‹คํ–‰๊ธฐ)์—์„œ ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์€ ์ฟผ๋ฆฌ๋ฅผ ์˜ˆ์•ฝํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  • MPP(Massively Parallel Processing) ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ†ตํ•ด ์‹œ๊ฐ„๊ณผ ๋น„์šฉ์ด ๋งŽ์ด ๋“œ๋Š” ETL ํ”„๋กœ์„ธ์Šค ์—†์ด ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์ง์ ‘ ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

  • Presto๋Š” ๋‹จ์ˆœํžˆ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ณณ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ธด ETL ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

  • Presto์˜ ์›๋ž˜ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ๋Œ€ํ™”ํ˜• ๋ถ„์„, ์†Œ๊ทœ๋ชจ Batch ETL ์ž‘์—… ๋ฐ A/B ํ…Œ์ŠคํŠธ์— ์†ํ•ฉ๋‹ˆ๋‹ค.

  • ์˜จ๋ผ์ธ ๋ถ„์„ ์ฒ˜๋ฆฌ ์›Œํฌ๋กœ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ฉฐ ์ตœ๊ทผ์—๋Š” Presto๊ฐ€ ์‚ฝ์ž…์„ ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ–ˆ์ง€๋งŒ Presto๋Š” ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค ๋˜๋Š” ๋ฐ์ดํ„ฐ ๋ ˆ์ดํฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์—ฐํ•ฉํ•˜๋Š” ๊ฒฝ์šฐ ๋น›์„ ๋ฐœํ•ฉ๋‹ˆ๋‹ค.

  • Presto๋Š” ๋ฐ์ดํ„ฐ ์†Œ๋น„์ž์˜ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค์— ๋Œ€ํ•ด ๋ณด๋‹ค ๋ฏผ์ฒฉํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Architecture

  • image

    • https://www.uber.com/blog/presto/

  • Uber์˜ Presto ์ƒํƒœ๊ณ„๋Š” Hadoop์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฐ Presto ํด๋Ÿฌ์Šคํ„ฐ์—๋Š” SQL์„ ์ปดํŒŒ์ผํ•˜๊ณ  ์ž‘์—…์„ ์˜ˆ์•ฝํ•˜๋Š” ํ•˜๋‚˜์˜ "์ฝ”๋””๋„ค์ดํ„ฐ" ๋…ธ๋“œ์™€ ๊ณต๋™์œผ๋กœ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๋Š” ์—ฌ๋Ÿฌ "์ž‘์—…์ž" ๋…ธ๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” SQL ์ฟผ๋ฆฌ๋ฅผ Presto ์ฝ”๋””๋„ค์ดํ„ฐ์—๊ฒŒ ๋ณด๋ƒ…๋‹ˆ๋‹ค. Presto ์ฝ”๋””๋„ค์ดํ„ฐ์˜ ๋ถ„์„๊ธฐ๋Š” SQL์„ AST (์ถ”์ƒ ๊ตฌ๋ฌธ ํŠธ๋ฆฌ )๋กœ ์ปดํŒŒ์ผํ•ฉ๋‹ˆ๋‹ค.

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

  • Presto๋Š” ์ฟผ๋ฆฌ ์ „์šฉ ์—”์ง„์ด๊ธฐ ๋•Œ๋ฌธ์— ์ปดํ“จํŒ…๊ณผ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์ปค๋„ฅํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ์†Œ์Šค์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  • Presto๋Š” ์ฟผ๋ฆฌ ์ค‘์ธ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ(ํ…Œ์ด๋ธ”, ์—ด, ๋ฐ์ดํ„ฐ ์œ ํ˜•)์— Apache Hive ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์นดํƒˆ๋กœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • image

  • Presto ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์ฝ”๋””๋„ค์ดํ„ฐ์™€ ์ž‘์—…์ž๋ผ๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

    • ์ฝ”๋””๋„ค์ดํ„ฐ ๋…ธ๋“œ๋Š” EMR ๋ฆฌ๋” ๋…ธ๋“œ์—์„œ ์‹คํ–‰๋˜๊ณ  ์ž‘์—…์ž ๋…ธ๋“œ๋Š” EMR ์ฝ”์–ด ๋…ธ๋“œ ๋ฐ ์„ ํƒ์ ์œผ๋กœ EMR ์ž‘์—… ๋…ธ๋“œ(EMR ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋‚˜๋จธ์ง€ ๋…ธ๋“œ)์—์„œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • ๋ฆฌ๋” ๋…ธ๋“œ : Presto ํด๋Ÿฌ์Šคํ„ฐ์—๋Š” ํ•˜๋‚˜์˜ ๋ฆฌ๋” ๋…ธ๋“œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋…ธ๋“œ๋Š” ์ฟผ๋ฆฌ ์˜ˆ์•ฝ ๋ฐ ์‹คํ–‰์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. Amazon EMR 5.23.0 ์ด์ƒ์—์„œ๋Š” 3๊ฐœ์˜ ๋ฆฌ๋” ๋…ธ๋“œ๊ฐ€ ์žˆ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‹œ์ž‘ํ•˜์—ฌ ๊ณ ๊ฐ€์šฉ์„ฑ์„ ์ง€์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

  • Ganglia ์™€ ๊ฐ™์€ ์‹œ์Šคํ…œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋กœ๋“œ, ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰, CPU ์‚ฌ์šฉ๋ฅ  ๋ฐ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

์‹คํ–‰ ๊ณ„ํš

  • image

  • https://trino.io/blog/2019/05/30/semijoin-precomputed-hasd.html

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

    • ๋ฆฌํ”„ ๋‹จ๊ณ„: ์ฟผ๋ฆฌ ๊ณ„ํš์˜ ๋ฆฌํ”„์— ์žˆ๊ณ  Hive ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ์†Œ์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

    • ์ค‘๊ฐ„ ๋‹จ๊ณ„: ๋ฆฌํ”„ ๋‹จ๊ณ„ ์ด์™ธ์˜ ๋‹จ๊ณ„๋กœ ๋‹ค๋ฅธ ์—…์ŠคํŠธ๋ฆผ ๋‹จ๊ณ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • ์ž‘์—…์ž ๋Š” Exchange์ถœ๋ ฅ์„ ์„ž๊ณ  ์—…์ŠคํŠธ๋ฆผ ๋‹จ๊ณ„์—์„œ ์ค‘๊ฐ„ ๋‹จ๊ณ„๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. GROUP BY๋ฐ ์™€ ๊ฐ™์€ ํŠน์ • ์—ฐ์‚ฐ์ž JOIN์˜ ๊ฒฝ์šฐ ๋ฆฌํ”„ ๋‹จ๊ณ„์˜ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ๋Š” ์—ด ๊ฐ’์œผ๋กœ ๋ถ„ํ• ๋˜๋ฉฐ ์…”ํ”Œ ์ž‘์—…์€ ํŠน์ • ํŒŒํ‹ฐ์…˜์ด ํ•ญ์ƒ ์ค‘๊ฐ„ ๋‹จ๊ณ„์˜ ๋™์ผํ•œ ์ž‘์—…์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค

  • GROUP BY ์ด ๋ถ„ํ• ์€ ๊ตํ™˜ ์ค‘์— ํ•ด๋‹น ์—ด์˜ ๊ฐ’์— ๋Œ€ํ•œ ํ•ด์‹œ๋ฅผ ๊ณ„์‚ฐํ•ด์•ผ ํ•˜๋ฉฐ ๋‚˜์ค‘์— ์ค‘๊ฐ„ ๋‹จ๊ณ„์—์„œ ๋˜๋Š” JOIN์ž‘์—… ์„ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ๋™์ผํ•œ ํ•ด์‹œ๊ฐ€ ํ•„์š” ํ•ฉ๋‹ˆ๋‹ค. ์ค‘๋ณต ๊ณ„์‚ฐ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด Presto๋Š” ๋ฆฌํ”„ ๋‹จ๊ณ„์—์„œ ์ด ํ•ด์‹œ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๊ณ  ์—ฐ์‚ฐ์ž์—์„œ ์‚ฌ์šฉ Exchangeํ•˜๋ฉฐ ์ค‘๊ฐ„ ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉํ•˜๋„๋ก ์ถœ๋ ฅ์—์„œ โ€‹โ€‹์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

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

Unnest

  • Unnest๋Š” Facebook์˜ ์ผ์ผ Presto ์›Œํฌ๋กœ๋“œ์—์„œ ์ผ๋ฐ˜์ ์ธ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ARRAY, MAP, ๋˜๋Š” ROW๋ฅผ ํ‰๋ฉด ๊ด€๊ณ„๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค

Reference

  • https://www.starburst.io/learn/open-source-presto/๏ปฟ

  • https://prestodb.io/blog/2020/08/20/unnest

  • https://aws.amazon.com/ko/blogs/big-data/top-9-performance-tuning-tips-for-prestodb-on-amazon-emr/

Last updated