๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Data Engineering

Greenplum Database์˜ Architecture

by ํ–‰๋ฑ 2023. 11. 10.

vmware Docs์˜ About the Greenplum Architecture ๊ธ€์˜ ์š”์•ฝ๋ณธ์ž„์„ ๋ฐํž™๋‹ˆ๋‹ค.

Chrome์˜ ํ•œ๊ตญ์–ด ๋ฒˆ์—ญ์„ ์‚ฌ์šฉํ•˜๊ณ  ์ผ๋ถ€ ๋ง์”จ๋ฅผ ๋ฐ”๊พธ์—ˆ์Šต๋‹ˆ๋‹ค.

 

Greenplum Database ๋ž€?

Greenplum Database๋Š” PostgreSQL ์˜คํ”ˆ ์†Œ์Šค ๊ธฐ์ˆ ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” MPP(๋Œ€๋Ÿ‰ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

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

 

Greenplum Database๊ฐ€ PostgreSQL๊ณผ ๋‹ค๋ฅธ ์ 

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

 

Greenplum Database - Master (Coordinator)

    • ์ฝ”๋””๋„ค์ดํ„ฐ๋Š” ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ์„ ์ธ์ฆํ•˜๊ณ , ๋“ค์–ด์˜ค๋Š” SQL ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ์„ธ๊ทธ๋จผํŠธ ๊ฐ„์— ์ž‘์—… ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•˜๊ณ , ๊ฐ ์„ธ๊ทธ๋จผํŠธ์—์„œ ๋ฐ˜ํ™˜๋œ ๊ฒฐ๊ณผ๋ฅผ ์กฐ์ •ํ•˜๊ณ , ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์— ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • psql, JDBC, ODBC ๊ฐ™์€ ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.
    • ์ฝ”๋””๋„ค์ดํ„ฐ๋Š” ๊ธ€๋กœ๋ฒŒ ์‹œ์Šคํ…œ ์นดํƒˆ๋กœ๊ทธ๊ฐ€ ์žˆ๋Š” ๊ณณ์ž…๋‹ˆ๋‹ค. ๊ธ€๋กœ๋ฒŒ ์‹œ์Šคํ…œ ์นดํƒˆ๋กœ๊ทธ๋Š” Greenplum ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ ์ž์ฒด์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ ์‹œ์Šคํ…œ ํ…Œ์ด๋ธ” ์„ธํŠธ์ž…๋‹ˆ๋‹ค. ์ฝ”๋””๋„ค์ดํ„ฐ์—๋Š” ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” ์„ธ๊ทธ๋จผํŠธ ์—๋งŒ ์ƒ์ฃผํ•ฉ๋‹ˆ๋‹ค.

 

Greenplum Database - Standby Master (Standby Coordinator)

    • Primary ์ฝ”๋””๋„ค์ดํ„ฐ ํ˜ธ์ŠคํŠธ์™€ Standby ์ฝ”๋””๋„ค์ดํ„ฐ ํ˜ธ์ŠคํŠธ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋™๊ธฐํ™”ํ•˜๋Š” ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ ๋ณต์ œ ํ”„๋กœ์„ธ์Šค๋ฅผ ํ†ตํ•ด ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. WAL (Write-Ahead Logging) ๊ธฐ๋ฐ˜ ๋กœ๊น…์—์„œ๋Š” ๋ชจ๋“  ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ ์šฉ๋˜๊ธฐ ์ „์— ๋กœ๊ทธ์— ๊ธฐ๋ก๋˜์–ด ์ง„ํ–‰ ์ค‘์ธ ์ž‘์—…์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.
    • ๊ธฐ๋ณธ ์ฝ”๋””๋„ค์ดํ„ฐ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋กœ๊ทธ ๋ณต์ œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๊ณ  ๊ด€๋ฆฌ์ž๋Š” ๊ทธ ์ž๋ฆฌ์—์„œ ๋Œ€๊ธฐ ์ฝ”๋””๋„ค์ดํ„ฐ๋ฅผ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๊ธฐ ์ฝ”๋””๋„ค์ดํ„ฐ๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด ๋ณต์ œ๋œ ๋กœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งˆ์ง€๋ง‰์œผ๋กœ ์„ฑ๊ณต์ ์œผ๋กœ ์ปค๋ฐ‹๋œ ํŠธ๋žœ์žญ์…˜ ๋‹น์‹œ ์ฝ”๋””๋„ค์ดํ„ฐ ํ˜ธ์ŠคํŠธ์˜ ์ƒํƒœ๋ฅผ ์žฌ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

Greenplum Database - Segment

    • ์„ธ๊ทธ๋จผํŠธ ์ธ์Šคํ„ด์Šค๋Š” ๊ฐ๊ฐ ๋ฐ์ดํ„ฐ์˜ ์ผ๋ถ€๋ฅผ ์ €์žฅํ•˜๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ์ฟผ๋ฆฌ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋…๋ฆฝ์ ์ธ PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ •์˜ ํ…Œ์ด๋ธ”๊ณผ ํ•ด๋‹น ์ธ๋ฑ์Šค๋Š” ์„ธ๊ทธ๋จผํŠธ์— ๋ถ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์„ธ๊ทธ๋จผํŠธ์—๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ณ ์œ ํ•œ ๋ถ€๋ถ„์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์„ธ๊ทธ๋จผํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„ ํ”„๋กœ์„ธ์Šค๋Š” ํ•ด๋‹น ์„ธ๊ทธ๋จผํŠธ ์ธ์Šคํ„ด์Šค์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
    • ์„ธ๊ทธ๋จผํŠธ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ์„ธ๊ทธ๋จผํŠธ ํ˜ธ์ŠคํŠธ ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์„ธ๊ทธ๋จผํŠธ ํ˜ธ์ŠคํŠธ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ CPU ์ฝ”์–ด, RAM, ์Šคํ† ๋ฆฌ์ง€, ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค ๋ฐ ์›Œํฌ๋กœ๋“œ์— ๋”ฐ๋ผ 2~8๊ฐœ์˜ Greenplum ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์„ธ๊ทธ๋จผํŠธ ํ˜ธ์ŠคํŠธ๋Š” ๋™์ผํ•˜๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Greenplum ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ตœ๊ณ ์˜ ์„ฑ๋Šฅ์„ ์–ป๋Š” ํ•ต์‹ฌ์€ ๋™์ผํ•œ ๋Šฅ๋ ฅ์„ ๊ฐ–์ถ˜ ๋‹ค์ˆ˜์˜ ์„ธ๊ทธ๋จผํŠธ์— ๋ฐ์ดํ„ฐ์™€ ์›Œํฌ๋กœ๋“œ๋ฅผ ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„์‚ฐํ•˜์—ฌ ๋ชจ๋“  ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ๋™์‹œ์— ์ž‘์—…์„ ์‹œ์ž‘ํ•˜๊ณ  ๋™์‹œ์— ์ž‘์—…์„ ์™„๋ฃŒํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
    • ๋ฏธ๋Ÿฌ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ๋ณธ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ๋ฅผ ๋ฐฑ์—… ์„ธ๊ทธ๋จผํŠธ๋กœ ์žฅ์•  ์กฐ์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ๋Ÿฌ ์„ธ๊ทธ๋จผํŠธ๋Š” ํ•ญ์ƒ ๊ธฐ๋ณธ ์„ธ๊ทธ๋จผํŠธ์™€ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
      • ๊ทธ๋ฃน ๋ฏธ๋Ÿฌ๋ง ์ด๋ผ๊ณ  ํ•˜๋Š” ๊ธฐ๋ณธ ๊ตฌ์„ฑ์€ ๋ชจ๋“  ๊ธฐ๋ณธ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ๋ฏธ๋Ÿฌ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ ํ•˜๋‚˜์— ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ํ™•์‚ฐ ๋ฏธ๋Ÿฌ๋ง ์ด๋ผ๋Š” ๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์€ ๊ฐ ํ˜ธ์ŠคํŠธ์˜ ๊ธฐ๋ณธ ์„ธ๊ทธ๋จผํŠธ์— ๋Œ€ํ•œ ๋ฏธ๋Ÿฌ๋ฅผ ๋‚˜๋จธ์ง€ ํ˜ธ์ŠคํŠธ์— ๋ถ„์‚ฐ์‹œํ‚ต๋‹ˆ๋‹ค. ํ™•์‚ฐ ๋ฏธ๋Ÿฌ๋ง์„ ์œ„ํ•ด์„œ๋Š” ํ˜ธ์ŠคํŠธ์— ์žˆ๋Š” ๊ธฐ๋ณธ ์„ธ๊ทธ๋จผํŠธ๋ณด๋‹ค ์‹œ์Šคํ…œ์— ๋” ๋งŽ์€ ํ˜ธ์ŠคํŠธ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€