๐Ÿ“’ Snowflake

Kimdongkiยท2024๋…„ 5์›” 10์ผ

DB

๋ชฉ๋ก ๋ณด๊ธฐ
17/33

๐Ÿ“Œ Snowflake

  • 2014๋…„ ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ์›จ์–ดํ•˜์šฐ์Šค๋กœ ์‹œ์ž‘

    • ์ง€๊ธˆ์€ ๋ฐ์ดํ„ฐ ํด๋ผ์šฐ๋“œ๋ผ๊ณ  ๋ถ€๋ฅผ ์ˆ˜ ์žˆ์„ ์ •๋„๋กœ ๋ฐœ์ „
    • ๊ธ€๋กœ๋ฒŒ ํด๋ผ์šฐ๋“œ์œ„์— ๋ชจ๋‘ ๋™์ž‘ -> ๋ฉ€ํ‹ฐ ํด๋ผ์šฐ๋“œ
    • ๋ฐ์ดํ„ฐ ํŒ๋งค๋ฅผ ํ†ตํ•œ ๋งค์ถœ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” Data Sharing/Marketplace ์ œ๊ณต
    • ETL๊ณผ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ ๊ธฐ๋Šฅ ์ œ๊ณต
  • ํŠน์ง•

    • ์Šคํ† ๋ฆฌ์ง€์™€ ์ปดํ“จํŒ… ์ธํ”„๋ผ๊ฐ€ ๋ณ„๋„๋กœ ์„ค์ •๋˜๋Š” ๊ฐ€๋ณ€ ๋น„์šฉ ๋ชจ๋ธ

      • Redshift ๊ณ ์ •๋น„์šฉ์ฒ˜๋Ÿผ ๋…ธ๋“œ ์ˆ˜๋ฅผ ์กฐ์ •ํ•  ํ•„์š”๊ฐ€ ์—†๊ณ  distkey๋“ฑ์˜ ์ตœ์ ํ™” ๋ถˆํ•„์š”
    • SQL ๊ธฐ๋ฐ˜์œผ๋กœ ๋น…๋ฐ์ดํ„ฐ ์ €์žฅ, ์ฒ˜๋ฆฌ, ๋ถ„์„์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.

      • ๋น„๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ์™€ ๋จธ์‹ ๋Ÿฌ๋‹ ๊ธฐ๋Šฅ๋„ ์ œ๊ณต
    • CSV, JSON, Avrp, Parquet ๋“ฑ๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํฌ๋งท์„ ์ง€์›

      • S3, GC ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€, Azure Blog Storage๋„ ์ง€์›
    • ๋ฐฐ์น˜ ๋ฐ์ดํ„ฐ ์ค‘์‹ฌ์ด์ง€๋งŒ ์‹ค์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์ง€์›

    • Time Travel : ๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ ์ฟผ๋ฆฌ ๊ธฐ๋Šฅ์œผ๋กœ ํŠธ๋ Œ๋“œ๋ฅผ ๋ถ„์„ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ•ด์ค€๋‹ค.

    • ์›น ์ฝ˜์†” ์ด์™ธ์—๋„ Python API๋ฅผ ํ†ตํ•œ ๊ด€๋ฆฌ/์ œ์–ด ๊ฐ€๋Šฅ

      • ODBC/JDBC ์—ฐ๊ฒฐ๋„ ์ง€์›ํ•œ๋‹ค.
    • ์ž์ฒด ์Šคํ† ๋ฆฌ์ง€ ์ด์™ธ์—๋„ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์™ธ๋ถ€ ํ…Œ์ด๋ธ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

    • Organizations

      • ํ•œ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  Snowflake ์ž์›๋“ค์„ ํ†ตํ•ฉํ•˜๋Š” ์ตœ์ƒ์œ„ ๋ ˆ๋ฒจ ์ปจํ…Œ์ด๋„ˆ
      • ํ•˜๋‚˜ ํ˜น์€ ๊ทธ ์ด์ƒ์˜ Account๋“ค๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ ์ด ๋ชจ๋“  Account๋“ค์˜ ์ ‘๊ทผ๊ถŒํ•œ, ์‚ฌ์šฉ ํŠธ๋ž˜ํ‚น, ๋น„์šฉ๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.
    • Accounts

      • ํ•˜๋‚˜์˜ Account๋Š” ์ž์ฒด ์‚ฌ์šฉ์ž, ๋ฐ์ดํ„ฐ, ์ ‘๊ทผ๊ถŒํ•œ์„ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐ€์ง„๋‹ค.
      • ํ•œ Account๋Š” ํ•˜๋‚˜ ํ˜น์€ ๊ทธ ์ด์ƒ์˜ Database๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.
    • Databases

      • ํ•˜๋‚˜์˜ Database๋Š” ํ•œ Account์— ์†ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋…ผ๋ฆฌ์ ์ธ ์ปจํ…Œ์ด๋„ˆ
      • ํ•œ Database๋Š” ๋‹ค์ˆ˜์˜ ์Šคํ‚ค๋งˆ์™€ ๊ฑฐ๊ธฐ์— ์†ํ•œ ํ…Œ์ด๋ธ”๊ณผ ๋ทฐ ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค.
      • ํ•˜๋‚˜์˜ Database๋Š” PB๋‹จ์œ„๊นŒ์ง€ ์Šค์ผ€์ผ ๊ฐ€๋Šฅํ•˜๊ณ  ๋…๋ฆฝ์ ์ธ ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ–๊ฒŒ ๋œ๋‹ค.
        -> ์ปดํ“จํŒ… ๋ฆฌ์†Œ์Šค๋ฅผ Warehouses๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. Warehouses์™€ Databases๋Š” ์ผ๋Œ€์ผ ๊ด€๊ณ„ X
  • Snowflake์˜ ๊ธฐ๋ณธ ํ…Œ์ดํ„ฐ ํƒ€์ž…

    • Numeric : TINYINT, SMALLINT, INTEGER, BIGINT, NUMBER, NUMERIC, DECIMAL, FLOAT, DOUBLE, REAL
    • Boolean : BOOLEAN
    • String : CHAR, VARCHAR, TEXT, BINARY, VARBINARY
    • Date and Time : DATE, TIME, TIMESTAMP, TIMESTAMP_LTZ, TIMESTAMP_TZ
    • Semi-structured data : VARIANT(JSON, OBJECT)
    • Binary : BINARY, VARBINARY
    • Geospatial : GEOGRAPHY, GEOMETRY
    • Array : ARRAY
    • Object : OBJECT

๐Ÿ“Œ Snowflake - ์‹ค์Šต

Snowflake_LINK
ํšŒ์› ๊ฐ€์ž…์„ ์ง„ํ–‰ ํ•˜๋ฉด Snowflake๋ฅผ $400 ๋งŒํผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ 30์ผ๋™์•ˆ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๋ฌด๋ฃŒ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์•„๋ž˜ ํ™”๋ฉด์ฒ˜๋Ÿผ XS์‚ฌ์ด์ฆˆ์˜ Warehouses๋ฅผ ์ œ๊ณตํ•ด์ค€๋‹ค.

  • Snowflake ๋น„์šฉ๊ตฌ์กฐ

    • ์ปดํ“จํŒ… ๋น„์šฉ : ํฌ๋ ˆ๋”ง์œผ๋กœ ๊ฒฐ์ •
    • ์Šคํ† ๋ฆฌ์ง€ ๋น„์šฉ : TB๋‹น์œผ๋กœ ๊ณ„์‚ฐ
    • ๋„คํŠธ์›Œํฌ ๋น„์šฉ : ์ง€์—ญ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „์†ก ํ˜น์€ ๋‹ค๋ฅธ ํด๋ผ์šฐ๋“œ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ TB๋‹น ๊ณ„์‚ฐ
  • Snowflake Schema

    • Dev
      • raw_data
      • analytics
      • adhoc
  • ์ดˆ๊ธฐ ์„ค์ •

    • Project -> Worksheets
    • ์—ญํ•  ADMIN ํ™•์ธ
    • SQL Worksheet ์„ ํƒ
    • ํ™”๋ฉด ํ™•์ธ
    • AWS IAM ์‚ฌ์šฉ์ž ์ƒ์„ฑ
    • AWS_KEY_ID/AWS_SECRET_KEY ์ดํ›„ csv ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

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