โ . ์ค๋ ธํ๋ ์ดํฌ ์์๋ณด๊ธฐ
snowflake๋ ๊ตฌ์ฑ๋๊ฐ ์ ์ฐํ๊ธฐ ๋๋ฌธ์, ํฐ ๊ธฐ์ ์ ๊ฒฝ์ฐ ํ์์ ๊ตฌ์ฑ์ ๊ฐ๋๋ค
Organization |
์ฌ๋ฌ Account |
์ฌ๋ฌ Database |
์ฌ๋ฌ Schema |
์ ๊ณตํ๋ ์๋น์ค
Data Marketplace : ๋ฐ์ดํฐ ๋ง์ผํ๋ ์ด์ค ์ ๊ณต
Data sharing : ๋ค๋ฅธ ์ฌ๋์ด ๊ฐ์ง ๋ฐ์ดํฐ์ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๊ณ ์ ๊ทผ(Don't move)
๋น์ฉ ์ต์
Standard, Enterprise, Business, Virtual snowflake(๋ณด์์ด ์ค์ํ ๊ฒฝ์ฐ ์ฌ์ฉ)
On demand(ํ์ํ ๋๋ง๋ค ํ ๋น)
Capacity Storage(์ผ์ ์์ ๋ฏธ๋ฆฌ ํ ๋น)
์ค์ต
๋ฌด๋ฃ ๋ฒ์ ์ ์ฌ์ฉํ ๊ฒฝ์ฐ, ์ด๋ฉ์ผ์ ์ ์ก๋ Dedicated Login url์ ํตํด ๋ก๊ทธ์ธ์ ์ํํด์ผ ํ๋ค.
1. Warehouse
์ฌ์ฉํ๋ ์ปดํจํ ์์์ ํด๋นํ๋ค.
2. Worksheet
- ๊ณ์ ์ ๊ถํ์ ์ค์ ํ ์ ์๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํ
ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํ ์ ์๋ค.
๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค์์, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL ์ฟผ๋ฆฌ๋ฅผ ์คํํ ์ ์๋ ๊ณต๊ฐ์ด๋ค.
๊ถํ) Account Admin์ธ ์ํ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ ์ ์๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
- ์คํค๋ง ์์ฑ
- ํ ์ด๋ธ ์์ฑ ์์
(snowflake์์๋ Create or Replace ํ ์ด๋ธ ๋ช ๋ น์ด๋ฅผ ํตํด ์ค๋ฅ๋ฅผ ์ค์ผ ์ ์๋ค.)
- Copy ์ด์ฉํด ๋ฒํฌ ์ ๋ฐ์ดํธ ์ํ(AWS credential ์ด์ฉ)
COPY INTO ์คํค๋ง.ํ
์ด๋ธ๋ช
FROM 's3๋ฒํท์ฃผ์/ํ์ผ๋ช
.csv'
credentials=(AWS_KEY_ID='์์ด๋' AWS_SECRET_KEY='๋น๋ฐ๋ฒํธ')
FILE_FORMAT = (type='CSV' skip_header=1 FIELD_OPTIONALLY_ENCLOSED_BY='"');
Admin ๊ณ์ ์ ์ด์ฉํ๋ฉด, ๋ณด์์์ ๋ ธ์ถ์ด ์์ ๊ฒฝ์ฐ ์ํํ๋ค.
๋ฐ๋ผ์ IAM-์ฌ์ฉ์ ์์ฑ(S3 ReadOnlyAccess๊ถํ๋ง ๋ถ์ฌ)ํ ๋ค, ์ก์ธ์คํค๋ฅผ ๋ฐ๊ธ๋ฐ์์ ์ฌ์ฉํ๋ฉด ๋๋ค.
ํด๋น ์ฌ์ฉ์ ์ ํ>๋ณด์ ์๊ฒฉ ์ฆ๋ช > ์ก์ธ์ค ํค ๋ง๋ค๊ธฐ
AWS ์ธ๋ถ์์ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ
ํด๋น ์ก์ธ์คํค๋ฅผ AWS_KEY_ID, AWS_SECRET_KEY ๋ถ๋ถ์ ๋ถ์ฌ ๋ฃ๋๋ค.
- ์ญํ
Snowflake์์๋ Group์ ์ง์ํ์ง ์๋๋ค.๋ฐ๋ผ์ ๊ณ์น์ด ๊ฐ๋ฅํ Role์ ์ฌ์ฉํ๋ค.๋ด์ฉ์ ์ ๋ฒ ๊ฒ์๊ธ์ ์ฐธ๊ณ ํ์.
-- 3๊ฐ์ ROLE์ ์์ฑํ๋ค
CREATE ROLE analytics_users;
CREATE ROLE analytics_authors;
CREATE ROLE pii_users;
-- ์ฌ์ฉ์ ์์ฑ
CREATE USER keeyong PASSWORD='eschoi';
-- ์ฌ์ฉ์์๊ฒ analytics_users ๊ถํ ์ง์
GRANT ROLE analytics_users TO USER eschoi;
-- set up analytics_users
GRANT USAGE on schema dev.raw_data to ROLE analytics_users;
GRANT SELECT on all tables in schema dev.raw_data to ROLE analytics_users;
GRANT USAGE on schema dev.analytics to ROLE analytics_users;
GRANT SELECT on all tables in schema dev.analytics to ROLE analytics_users;
GRANT ALL on schema dev.adhoc to ROLE analytics_users;
GRANT ALL on all tables in schema dev.adhoc to ROLE analytics_users;
-- set up analytics_authors(analytics_authors ๊ณ์น)
GRANT ROLE analytics_users TO ROLE analytics_authors;
GRANT ALL on schema dev.analytics to ROLE analytics_authors;
GRANT ALL on all tables in schema dev.analytics to ROLE analytics_authors;
Snowflake์์๋ Row level, Column level ๋ณ๋ก ๊ถํ์ ๋ถ์ฌํ ์ ์์ผ๋, ์ค์ํ ์ ์์ผ๋ฏ๋ก ๋๋๋ก์ด๋ฉด ์ค์ํ ํ ์ด๋ธ์ ๋ฐ๋ก ๋ถํ ํด์ ํน์ ์ฌ์ฉ์๋ง ์ก์ธ์ค ํ ์ ์๋๋ก ํ์.
โ ก. ๋ฐ์ดํฐ ๊ฑฐ๋ฒ๋์ค๋?
๋ฐ์ดํฐ ํ์ง ๋ณด์ฅ(๋ฐ์ดํฐ ์ผ๊ด์ฑ ๋ณด์ฅ, ์๋ฏธ ์๋ ๋ฐ์ดํฐ)๊ณผ ๊ฐ์ธ์ ๋ณด ๊ด๋ จ ๋ฒ๊ท ์ค์๋ฅผ ์ํ ๋ชฉ์ ์ผ๋ก ํ๋ ๋ฐ์ดํฐ ๊ด๋ฆฌ ํ๋ก์ธ์ค
1. Object Tagging
Object๋?
Snowflake๋ด์ ๊ฐ์ฒด(Organization, Account, DB, Schema, Table, View, Column)
๊ฐ ๊ฐ์ฒด๋ณ๋ก ํ๊น (sales, marketing, pii)ํ์ฌ ๊ด๋ฆฌ์ ์ฉ์ด์ฑ์ ๋์ธ๋ค.
ํ์๋ก ์ฌ์ฉํ ํ์๋ ์์ผ๋, ํนํ ๊ฐ์ธ์ ๋ณด์ ๊ด๋ จํ ๋ด์ฉ์ ํ๊น ํ๋ฉด ์ข๋ค.
Enterprise์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ, CREATE TAG ๋ฌธ์ฅ์ ์ด์ฉํ์ฌ ํ๊ทธ๋ฅผ ๋ถ์ฌํ๋ค.
2. Data Classification : ๋ฐ์๋ํ ํ๊น
Snowflake๊ฐ ์์ฒด์ ์ผ๋ก ๋ด์ฉ์ ๋ณด๊ณ ๊ฐ์ธ์ ๋ณด์ ๊ด๋ จ๋ ๋ด์ฉ์ ์๋ ํ๊น ํ๋ ๊ธฐ๋ฅ
Enterprise์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ,
Analyze : ๊ฐ์ธ์ ๋ณด๋ ๋ฏผ๊ฐ์ ๋ณด์ ์นผ๋ผ์ ๋ถ๋ฅ
Review : ๋ฐ์ดํฐ ์์ง๋์ด๊ฐ Analyze ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ์์
Apply : ์์ ๋ ํ๊ทธ๋ฅผ System Tag๋ก ์ ์ฉ(privacy_category์ Sementic_category๊ฐ ์๋ค.)
Privacy_category(์์๋ ๋ฒจ)
- Identifier : ๊ฐ์ธ ์๋ณ์
- Quasi_identifier : ๊ฐ์ธ ์ค์๋ณ์(์ฌ๋ฌ ๊ฐ ๋ชจ์ด๋ฉด ๊ฐ์ธ ์๋ณ ๊ฐ๋ฅ)
- Sensitive : ๋ฏผ๊ฐ์ ๋ณด
Semantic_category(ํ์๋ ๋ฒจ)
3. Tag based Masking Policies
ํด๋น ํ๊ทธ๋ณ๋ก ์ก์ธ์ค ๊ถํ์ ๋ค๋ฅด๊ฒ ๊ฐ์ ธ๊ฐ๋ ๊ฒ
Enterprise์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ, Tag์ ์ก์ธ์ค ๊ถํ์ ์ง์ ํ ์ ์๋ค.
4. Access History
์นผ๋ผ๋ณ๋ก ์กฐํ, ์์ฑ, ์์ ๋ฑ์ ์ถ์ ํ ์ ์๋ ๊ธฐ๋ฅ(๋ณด์ ๋ฑ์ ๊ฐ์ฌํ ๋ ์ฌ์ฉ)
Enterprise์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ฉฐ, ๋ก๊ทธ์ธ, ์ฟผ๋ฆฌ, ํ ์ด๋ธ, ๋ทฐ, ๋ฐ์ดํฐ ์กฐ์์ ํ์ธํ ์ ์๋ค.
5. Object Dependencies
ELT ์ํ ์ ์๋ณธ ํ ์ด๋ธ์ ํ๊ทธ๊ฐ ์กฐ์ธ ์ฐ์ฐ ๋ฑ์ ์ํ ํ ์์ฑ๋ ์๋ก์ด ํ ์ด๋ธ์๋ ๋์ผํด์ผ ํ๋ค.(๊ฐ์ธ์ ๋ณด๋ก ๋ถ๋ฅ๋ ์นผ๋ผ ๋ฑ์ ์ ํ๋์ง ๋ชปํ๋๋ก ํด์ผ ํ๋ฏ๋ก)
๊ณ์น๊ด๊ณ๋ฅผ ๋ช ํํ ํ ์ ์์ผ๋ฉด, ์ํฅ๋ ฅ์ ํ์ธํ ์ ์์ผ๋ฏ๋ก ์๋ณธ ํ ์ด๋ธ ๋ณ๊ฒฝ ์ ์ ์ํ ์ ์๊ฒ ํ๋ค.
ํ ์ด๋ธ์ด๋ ๋ทฐ๋ฅผ ์์ ํ๋ ๊ฒฝ์ฐ ์ํฅ์ ์๋์ผ๋ก ์๋ณํด ์ค๋ค.
โ ข. ์ถ๊ฐ๊ธฐ๋ฅ
1. Market place(ETL)
์ธ๋ถ ๋ฐ์ดํฐ ์์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
2. Data sharing
์ด๋ค DB๊ฐ ๊ณต์ ๋์๋์ง ํ์ธํ ์ ์๋ค.
3. Activity
Query History, Copy History, Task History(์ฃผ๊ธฐ์ ์ผ๋ก ์คํ๋๋ ๋ช ๋ น)๋ฅผ ํ์ธํ ์ ์๋ค.