[Snowflake] Storage

์ฐจ์ง€์˜ˆยท2026๋…„ 6์›” 12์ผ

Snowflake

๋ชฉ๋ก ๋ณด๊ธฐ
43/49
post-thumbnail

Storage Layer

๊ตฌ๋ถ„ํ•ต์‹ฌ
๋ฌผ๋ฆฌ ์ €์žฅAWS S3 / Azure Blob / GCS
์ €์žฅ ํ˜•์‹columnar + ์••์ถ• + ์•”ํ˜ธํ™” (proprietary, ์ž๋™)
์ง์ ‘ ์ ‘๊ทผโŒ SQL ์ฟผ๋ฆฌ๋กœ๋งŒ
๊ณผ๊ธˆ์••์ถ• ํ›„ ์šฉ๋Ÿ‰, TB๋‹น ์›”์ •์•ก
๋น„์šฉ ๋Œ€์ƒ์Šคํ…Œ์ด์ง€ ํŒŒ์ผ ยท ํ…Œ์ด๋ธ”(Time Travel ํฌํ•จ) ยท Fail-safe ยท Clone

ํŒŒ์ผ ํ˜•์‹ (Load / Unload)

ํ˜•์‹LoadUnload
CSV (์ •ํ˜•)โœ…โœ…
JSONโœ…โœ…
Parquetโœ…โœ…
Avroโœ…โŒ
ORCโœ…โŒ
XMLโœ…โŒ

๐Ÿ”‘ "CยทJยทP ์–‘๋ฐฉํ–ฅ / AยทOยทX ๋“ค์–ด์˜ค๊ธฐ๋งŒ"

  • ์ „๋ถ€ Load ๊ฐ€๋Šฅ
  • Unload ๋ถˆ๊ฐ€ = Avro ยท ORC ยท XML
  • CSV๋งŒ ์ •ํ˜•, ๋‚˜๋จธ์ง€ 5๊ฐœ ๋ฐ˜์ •ํ˜•(โ†’ VARIANT)

Micro-partitions

์†์„ฑ๊ฐ’
ํฌ๊ธฐ50~500MB (์••์ถ• ์ „)
์ƒ์„ฑ๋กœ๋“œ ์ˆœ์„œ๋Œ€๋กœ ์ž๋™ (์‚ฌ์ „ ์ •์˜ X)
๊ตฌ์กฐcolumnar (์ฐธ์กฐ ์ปฌ๋Ÿผ๋งŒ ์Šค์บ”)
๋ฉ”ํƒ€๋ฐ์ดํ„ฐmin/max, distinct count โ†’ Pruning
ํŠน์„ฑ๊ฐ’ ๋ฒ”์œ„ overlap ๊ฐ€๋Šฅ โ†’ skew ๋ฐฉ์ง€

๐ŸŽฏ ํ•จ์ •: 50~500MB / uncompressed


Zero-Copy Clone

ํ•ญ๋ชฉ๋‚ด์šฉ
์›๋ฆฌ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋งŒ ๋ณต์ œ (๋ฐ์ดํ„ฐ X)
๋น„์šฉ์ƒ์„ฑ ์‹œ ๋ฌด๋ฃŒ
๋…๋ฆฝ์„ฑ์›๋ณธ โ†” ํด๋ก  ๋…๋ฆฝ
์ถ”๊ฐ€ ๊ณผ๊ธˆํด๋ก  ์ˆ˜์ • ์‹œ ์ƒˆ ๋งˆ์ดํฌ๋กœ ํŒŒํ‹ฐ์…˜๋งŒํผ

๐Ÿ“Œ ํด๋ก  ํ•จ์ •

๋Œ€์ƒํด๋ก 
Internal named stageโŒ
External stageโœ…
Privileges(๊ถŒํ•œ)โŒ
Automatic Clustering๊ธฐ๋ณธ OFF โ†’ ์ˆ˜๋™ ์žฌ์‹œ์ž‘

๐ŸŽฏ ํ•ต์‹ฌ ์š”์•ฝ

"Snowflake๊ฐ€ ์ปฌ๋Ÿผํ˜•์œผ๋กœ ์••์ถ•ยท์•”ํ˜ธํ™”ํ•ด ํด๋ผ์šฐ๋“œ์— ์ €์žฅ(์ง์ ‘ ์ ‘๊ทผ X) โ†’
50~500MB๋กœ ์ชผ๊ฐœ๊ณ  โ†’ ํด๋ก ์€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋งŒ ๋ณต์‚ฌํ•ด ๊ณต์งœ"

ํ‚ค์›Œ๋“œ์•”๊ธฐ
์ €์žฅํ˜•์‹columnar+์••์ถ•+์•”ํ˜ธํ™”
Unload ๋ถˆ๊ฐ€AยทOยทX
ํŒŒํ‹ฐ์…˜50~500MB(์••์ถ•์ „)
Clone๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋งŒ โ†’ ๋ฌด๋ฃŒ

0๊ฐœ์˜ ๋Œ“๊ธ€