[Snowflake Partner Technical Bootcamp] 3. Compute Layer
Compute Layer
Storage Layer์ ์์ ํ ๋ถ๋ฆฌ๋ Compute Layer๋ ํ๋์ ๋ฐ์ดํฐ์ ๋ํ์ฌ ์ฌ๋ฌ๊ฐ์ง ์ํฌ๋ก๋๊ฐ ์ก์ธ์ค ํ ์ ์๋ค. ์คํ ๋ฆฌ์ง์์ ๋ถ๋ฆฌ๋์ด ์๋ ํน์ง ๋๋ฌธ์ ์ด์ ์ค๋จ ์์ด ์ฆ๊ฐ์ ์ด๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ฅ์ด ๊ฐ๋ฅํ๋ค. ๋ํ ์ํฌ๋ก๋ ๊ฐ์ ์๋ฒฝํ ๋ถ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ฆฌ์์ค ๊ฒฝ์์ ์ ๊ฑฐํ ์ ์๊ณ ํธ๋์ญ์ ์ ์ผ๊ด์ฑ๋ ์ ์งํ ์ ์๋ค.

์๋์์ ์์ธํ ์ดํด๋ณด์.
1. What is Virtual Warehouse?
Virtual Warehouse๋ ์ต์ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค๋ฅผ ์ง์ํ๋ ์ปดํจํ ํด๋ฌ์คํฐ์ ๋ ๋ค๋ฅธ ์ฉ์ด์ด๋ค. ๋ฉ๋ชจ๋ฆฌ, ์์ ์ ์ฅ์ ๋ฐ CPU๋ฅผ ํฌํจํ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํ์ฌ SQL ์คํ ๋ฐ DML(Data Manipulation Language)์ ์ํด ์ธ์ ๋ ์ง ํ์ฉํ๊ณ ํ์ํ์ง ์์ ๋ ๋ ์ ์๋ ๋ ๋ฆฝ์ ์ธ ์ปดํจํ ๋ฆฌ์์ค์ด๋ค.
์๋ ๋ค์ด์ด๊ทธ๋จ์ Snowflake ์ํคํ ์ฒ์ Virtual Warehouse๊ฐ Snowflake์ ์ปดํจํ ์๋น์ค๋ฅผ ์ ๊ณตํ๊ณ ํด๋ผ์ฐ๋ ์๋น์ค ๊ณ์ธต์ ์ํด ์กฐ์ ๋๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋ค.

Virtual Warehouse๋ ๋ค๋ฅธ Virtual Warehouse์ ์ปดํจํ ๋ฆฌ์์ค๋ฅผ ๊ณต์ ํ์ง ์๋ ๋ ๋ฆฝ์ ์ธ ์ปดํจํ ํด๋ฌ์คํฐ์ด๋ค. ์ข ๋ ์์ธํ ์ดํด๋ณด๋ฉด ๋ง์ฝ ์ด๋ ํ ๋ฐ์ดํฐ๊ฐ Snowflake ์์ผ๋ก ๋ค์ด์์ ๋ Virtual Warehouse๋ง๋ค ์์ ์ ๋ถ๋ดํ ์ ์๊ฒ ๋๋ค.

์๋ฅผ ๋ค๋ฉด ๋ฐ์ดํฐ ์ ์ฌ(Load)๋ง ๋ด๋นํ๊ฒ ๋๋ Virtual Warehouse, ๋ฐ์ดํฐ ๋ถ์ ๋ฐ ์๊ฐํ๋ง(BI/Visualization) ๋ด๋นํ๊ฒ ๋๋ Virtual Warehouse ๋ฑ์ผ๋ก ์ํฌ๋ก๋๋ฅผ ์๋ฒฝํ๊ฒ ๋ถ๋ฆฌํด์ ํน์  ์์ ์ ํ ๋นํ๋ฉด ๋ฆฌ์์ค ๊ฒฝ์๋ ์์ด์ง๊ฒ ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก Virtual Warehouse๋ ๋ค๋ฅธ Virtual Warehouse์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น์ง ์๊ฒ ๋๋ค.
2. Cache & Size
์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ํ์ํ ์ปดํจํ ๋ฆฌ์์ค๋ ์ฟผ๋ฆฌ์ ํฌ๊ธฐ์ ๋ณต์ก์ฑ์ ๋ฐ๋ผ ๋ค๋ฅด๋ค. ์ฟผ๋ฆฌ๊ฐ ๋ณต์กํด์ง์๋ก ๋ ํฐ Virtual Warehouse๊ฐ ํ์ํ๊ฒ ๋๋ค. ์คํ ์ค์ธ ๊ฐ Warehouse๋ ์ฟผ๋ฆฌ๊ฐ Warehouse์์ ์ฒ๋ฆฌ๋ ๋ ์์ธ์ค ๋๋ ํ ์ด๋ธ ๋ฐ์ดํฐ์ ์บ์๋ฅผ ๋ณด์ ํ๊ณ ์๋ค. ์ด๋ ๊ฒ ๋๋ฉด ๋์ผํ ์ฟผ๋ฆฌ ์์ ์ ์ํํ ๋ ํ ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๊ฒ์ด ์๋ ์บ์์์ ์ฝ์ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ ์ฟผ๋ฆฌ์ ์ฑ๋ฅ์ด ํฅ์๋๋ค. ์ด๋ฌํ ์บ์์ ํฌ๊ธฐ๋ Warehouse์ ์ปดํจํ ๋ฆฌ์์ค์ ์ํด ๊ฒฐ์ ๋๋ค. (Warehouse์ ํฌ๊ธฐ๊ฐ ํด์๋ก Warehouse์ ์ปดํจํ ๋ฆฌ์์ค๊ฐ ๋ ๋ง๋ค)
Snowflake Cache Layers
- ๊ฒฐ๊ณผ ์บ์ : ์ง๋ 24์๊ฐ ๋์ ์คํ ๋ ๋ชจ๋ ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅ. ์ด๋ค์ Virtual Warehouse์์ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ํ ์ฌ์ฉ์์๊ฒ ๋ฐํ๋ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๊ฐ ๋ณ๊ฒฝ๋์ง ์์ ๊ฒฝ์ฐ ๋์ผํ ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ ์์คํ ์ ๋ค๋ฅธ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ฌ์ฉ ๊ฐ๋ฅ
 - ๋ก์ปฌ ๋์คํฌ ์บ์ : SQL ์ฟผ๋ฆฌ์์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฅผ ์บ์ํ๋ ๋ฐ ์ฌ์ฉ. ์ง์ ๋ ์ฟผ๋ฆฌ์ ๋ฐ์ดํฐ๊ฐ ํ์ํ ๋๋ง๋ค ์๊ฒฉ ๋์คํฌ ์คํ ๋ฆฌ์ง์์ ๊ฒ์๋์ด SSD ๋ฐ ๋ฉ๋ชจ๋ฆฌ์ ์บ์๋จ
 - ์๊ฒฉ ๋์คํฌ : ์ฅ๊ธฐ ์คํ ๋ฆฌ์ง๋ฅผ ๋ณด์ . AWS์ ๊ฒฝ์ฐ 99.9%์ ๋ด๊ตฌ์ฑ์ ์๋ฏธํ๋ ๋ฐ์ดํฐ์ ๋ณต์๋ ฅ์ ๋ด๋น
 
Warehouse Size
Virtual Warehouse๋ ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ๋ก Loadํ๋ ๊ฒ์ ํฌํจํ์ฌ ์ฟผ๋ฆฌ์ ๋ชจ๋ DML ์์ ์ ํ์ํ๋ค. Warehouse๋ ์ธ์ ๋ ์ง ์์ํ๊ณ ์ค์งํ ์ ์๋๋ฐ Warehouse์์ ์ํํ๋ ์์ ์ ํ์ ๋ฐ๋ผ ์ปดํจํ ๋ฆฌ์์ค๊ฐ ๋ ๋ง์ด ํ์ํ ์๋ ์๊ณ ๋ ์ ๊ฒ ํ์ํ ์๋ ์๋ค. ์ด๋ฌํ ์์ ์ ์ ๋๋ฅผ ์ฒดํฌํด์ ์์ ์ ์ํํ๋ ์ค์๋ Warehouse์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์๋ค.
Warehouse๋ฅผ ์์ฑํ๋ฉด์ ์ฌ์ด์ฆ๋ฅผ ์๋์ ๊ฐ์ด ์ค์ ํ ์ ์๋ค.
> CREATE OR REPLACE WAREHOUSE my_wh WITH WAREHOUSE_SIZE = 'LARGE' -- Default = XSMALL
| Warehouse Size | Credits / Hour | Credits / Second | 
|---|---|---|
| X-Small | 1 | 0.0003 | 
| Small | 2 | 0.0006 | 
| Medium | 4 | 0.0011 | 
| Large | 8 | 0.0022 | 
| X-Large | 16 | 0.0044 | 
| 2X-Large | 32 | 0.0089 | 
| 3X-Large | 64 | 0.0178 | 
| 4X-Large | 128 | 0.0356 | 
| 5X-Large | 256 | 0.0711 | 
| 6X-Large | 512 | 0.1422 | 
์์ ํ์ฒ๋ผ Warehouse์ ํฌ๊ธฐ๋ ํฐ์ ์ธ ์ฌ์ด์ง ๋ฐฉ์์ด๋ฉฐ ์ด ๋จ์๋ก ๋น์ฉ์ด ์ฒญ๊ตฌ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก Warehouse๊ฐ ํด์๋ก ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ์ฌ์ฉํ ์ ์๋ ์ปดํจํ ๋ฆฌ์์ค๊ฐ ๋ ๋ง๊ธฐ ๋๋ฌธ์ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ Warehouse ํฌ๊ธฐ์ ๋ฐ๋ผ ํ์ฅ๋๋ค. (๋ฐ์ดํฐ ๋ก๋ ์ฑ๋ฅ์ด ํญ์ ํฅ์๋๋ ๊ฒ์ ์๋. ๋ฐ์ดํฐ ๋ก๋ ์ฑ๋ฅ์ Warehouse ํฌ๊ธฐ๋ณด๋ค ๋ก๋๋๋ ํ์ผ์ ์์ ํฌ๊ธฐ์ ๋ ๋ง์ ์ํฅ์ ๋ฐ์) ๋ฐ๋ผ์ Warehouse์์ ์ฒ๋ฆฌํ๋ ์ฟผ๋ฆฌ๊ฐ ๋๋ฆฌ๊ฒ ์คํ๋๋ ๊ฒฝ์ฐ ์ธ์ ๋ ์ง Warehouse์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํด์ ๋ ๋ง์ ์ปดํจํ ๋ฆฌ์์ค๋ฅผ ํ๋ก๋น์ ๋ํ ์ ์๋ค. ๋ํ Snowflake๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ฟผ๋ฆฌ๊ฐ ์์ ๊ฒฝ์ฐ Warehouse๋ฅผ ์๋์ผ๋ก ์ผ์ ์ค๋จํ๊ฑฐ๋ ์ฌ๊ฐํ๋ ๊ธฐ๋ฅ์ ์ง์ํ๊ธฐ ๋๋ฌธ์ ๊ฐ ์ํฌ๋ก๋์ ๋ง๊ฒ Warehouse ์ฌ์ฉ์ ๋ชจ๋ํฐ๋ง ๋ฐ ์๋ํํ ์ ์๊ณ ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ์ฌ์ฉํ ๋งํผ๋ง ๊ณผ๊ธ์ ์ง๋ถํ ์ ์๊ฒ ๋๋ค.
3. Scale Up vs Scale Out vs Scale Across
Snowflake๋ Warehouse๋ฅผ ํ์ฅํ๋ ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค.
Scale Up

Scale Up์ ๊ธฐ์กด Warehouse์ ์ปดํจํ ์ฑ๋ฅ์ ์ ๊ทธ๋ ์ด๋ ํ๋ ๊ฒ์ด๋ค. ์ด๋ ์ฟผ๋ฆฌ ์ฑ๋ฅ์ ๊ฐ์ ํ๋ ๊ฒ์ผ๋ก ๋ค์ดํ์ ์๋ Scale Up/Down์ด ๊ฐ๋ฅํ๊ณ ํด๋ฌ์คํฐ์ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ์์ผ๋ก ์ฑ๋ฅ์ ๊ฐ์ ํ๋ค. ์ด๋ฅผ ํ์ฉํ๋ฉด ์๋์ฒ๋ผ ๋์ผํ ์์ ์ด์ง๋ง Warehouse์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ์ฌ ๋ ๋น ๋ฅด๊ฒ ETL ์์ ์ ์ํํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.

Scale Out

Scale Out์ ๊ธฐ์กด Warehouse์ ๋ ๋ง์ ํด๋ฌ์คํฐ๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด๋ค. ์ด๋ ๋์ผํ Warehouse์์ ์คํ ์ค์ธ ๋์ ์ฟผ๋ฆฌ๊ฐ ๋ง์ ๊ฒฝ์ฐ ๋์์ด ๋๋ค. Scale Out์ผ๋ก ๋๊ธฐ ์ค์ธ ์ฟผ๋ฆฌ๊ฐ ์๋ก ํ๋ก๋น์ ๋ ๋ ํด๋ฌ์คํฐ์์ ์คํ๋ ์ ์๋ค.

ํด๋ฌ์คํฐ์ ๊ฐ์๊ฐ ๋์ด๋จ์ ๋ฐ๋ผ ์คํํ๊ฒฝ์ ๊ณผ๋/๊ณผ์ํ๊ฒ ํ๋ก๋น์ ๋ํ์ง ์๊ณ ์์ฒญ์ ๋ง๊ฒ ์๋์ผ๋ก ์กฐ์ ํ๊ณ ์ฒ๋ฆฌ๋๋ ์ต๋๋ก ์ ๊ณตํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ๋ํ ์์ ์ด ๊ณผํ๊ฒ ๋ชฐ๋ฆฌ๋ ํผํฌ ํ์์๋ ์ผ๊ด๋ ์ฑ๋ฅ์ ์ ๊ณตํ ์ ์๊ฒ ๋๋ค.
Scale Across

Scale Across๋ ๋ค์ํ ์ํฌ๋ก๋๊ฐ ํผ์ฉ๋๋ ํ๊ฒฝ์์ ์ค์ ์ํฌ๋ก๋์ ์คํ ํ๊ฒฝ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์๋ฒฝํ๊ฒ ๊ฒฉ๋ฆฌํ์ฌ ์ํฌ๋ก๋ ๊ฐ์ ์์ ๊ฒฝํฉ ํ์์ ํด๊ฒฐํ๋ค. ์์ ๊ทธ๋ฆผ์ ๋ณด๋ฉด ๊ธฐ์กด ๋๋ค์ DBMS๋ ์ํฌ๋ก๋๊ฐ ๋ชฐ๋ฆฌ๋ ๊ฒฝํฉ ์๊ฐ๋์์ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ๋ณผ ์ ์๋๋ฐ Snowflake์์๋ ์ํฌ๋ก๋์ ๋ฌผ๋ฆฌ์  ์คํ ํ๊ฒฝ์ ๊ฒฉ๋ฆฌ์ํค๊ณ ๋ถ๋ฆฌ๋ ์คํ ํ๊ฒฝ์์ ๋์ผํ ์์ ์ ์ฒ๋ฆฌํ์ฌ ์ฑ๋ฅ์ ๊ฐ์ ํ๋ค.
Virtual Warehouse์ ๋ํ ๋ด์ฉ์ ์ด๊ณณ์์ ๋ชจ๋ ๋ด๊ธฐ์ ํ๊ณ๊ฐ ์์ผ๋ ๋ค์ ๋งํฌ๋ฅผ ํตํด ์ข ๋ ์์ธํ๊ฒ ์ดํด๋ณด๊ธฐ ๋ฐ๋๋ค.
      
    
Leave a comment