์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- ๋น ๋ฐ์ดํฐ
- spark executor memory
- Spark SQL
- Docker
- backfill
- Airflow
- Spark Partitioning
- CI/CD
- Spark Caching
- disk spill
- Spark
- Speculative Execution
- DataFrame Hint
- AQE
- Spark ์ค์ต
- Kafka
- k8s
- off heap memory
- Salting
- Kubernetes
- mysql
- KDT_TIL
- topic
- ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ
- etl
- redshift
- SQL
- colab
- aws
- Dag
- Today
- Total
JUST DO IT!
Redshift ๊ณ ๊ธ ๊ธฐ๋ฅ -TIL230524 ๋ณธ๋ฌธ
๐ KDT WEEK 8 DAY 3 TIL
- Redshift ๊ถํ๊ณผ ๋ณด์
- Redshift ๋ฐฑ์ ๊ณผ ๋ณต๊ตฌ
- Redshift ๊ด๋ จ ์๋น์ค
- Redshift Spectrum + ์ค์ต
- Athena
- Redshift ML (SageMaker) + ์ค์ต
- Redshift ์ค์ง ๋ฐ ์ ๊ฑฐ ๋ฐ ์ต์ ํ
๐ฅ Redshift ๊ถํ๊ณผ ๋ณด์
Redshift ์ฌ์ฉ์๋ณ ํ ์ด๋ธ ๊ถํ ์ค์
- ์ฌ์ฉ์๋ณ ํ ์ด๋ธ๋ณ ๋ฐ๋ก๋ฐ๋ก ๊ถํ์ ์ง์ ํ์ง๋ ์๊ณ , IAM ๊ทธ๋ฃน๊ณผ ์ญํ ์ ํ์ฉํ๋ค.
- ์ต๊ทผ์ RBAC(Role Based Access Control)๊ฐ ์ผ๋ฐ์ ์ด๋ค.
- ์ฌ๋ฌ ์ญํ ์ ์ํ ์ฌ์ฉ์๋ ๊ฐ ์ญํ ์ ๊ถํ์ ๋ชจ๋ ๊ฐ์ง๋ค.
- GROUP ํค์๋๋ฅผ ROLE๋ก ๋ฐ๊พธ์ด๋ ๋์ผํ๊ฒ ๋์ํ๋ค.
๋ค์์ Colab์์ ๊ฐ๋จํ๊ฒ ์ค์ตํ ๊ฒฐ๊ณผ์ด๋ค.
CREATE GROUP ๊ทธ๋ฃน๋ช ์ผ๋ก ๊ทธ๋ฃน์ ์์ฑํ๊ณ , GRANT ๋ช ๋ น์ด๋ก ๊ถํ์ ๋ถ์ฌํ๋ค.
GRANT ALL ์ ์ฝ๊ธฐ์ ์ฐ๊ธฐ ๊ถํ์ ๋ถ์ฌํ๊ณ , GRANT USAGE ๋ SELECT ๊ถํ์ ๋ถ์ฌํ๋ค.
analytics_authors ๊ทธ๋ฃน์ analytics, adhoc ์คํค๋ง์ ๋ชจ๋ ํ ์ด๋ธ ์ฝ๊ธฐ, ์ฐ๊ธฐ ๊ถํ๊ณผ raw_data์ ๋ชจ๋ ํ ์ด๋ธ ์ฝ๊ธฐ ๊ถํ์ ์ป์๋ค.
์ปฌ๋ผ ๋ ๋ฒจ ๋ณด์(Column Level Security)
- ํ ํ ์ด๋ธ ๋ด์์ ํน์ ์ปฌ๋ผ์ ๋ํด ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ
- ๋ณดํต ๊ฐ์ธ์ ๋ณด์ ํด๋นํ๋ ์ปฌ๋ผ์ ๊ฐ์ถ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
- ์ฌ์ค์ ์ด๋ฌํ ์ปฌ๋ผ์ ๋ณ๋์ ํ ์ด๋ธ๋ก ๊ตฌ์ฑํ๋ ๊ฒ์ด ๋ฒ ์คํธ
๋ ์ฝ๋ ๋ ๋ฒจ ๋ณด์ (Row Level Security)
- ํ ํ ์ด๋ธ ๋ด์์ ํน์ ๋ ์ฝ๋์ ๋ํด ๊ถํ์ ๋ถ์ฌํ๋ ๊ฒ
- ์ญ์ ๋ณ๋์ ํ ์ด๋ธ์ ๊ตฌ์ฑํ๋ ๊ฒ์ด ๋ ์ข๋ค.
๐ฆ Redshift ๋ฐฑ์ ๊ณผ ๋ณต๊ตฌ
Redshift ๋ฐ์ดํฐ ๋ฐฑ์ (๊ณ ์ ๋น์ฉ)
- Snapshot : ๋ง์ง๋ง ๋ฐฑ์ ์ผ๋ก๋ถํฐ ๋ฐ๋ ๊ฒ๋ค๋ง ์ ์ฅํ๋ค.
- Table Restore : ์ค๋ ์ท์ ํ์ฉํ์ฌ ํน์ ์์ ์ ํน์ ํ ์ด๋ธ์ ๋ณต๊ตฌํ๋ ๊ฒ์ด ๊ฐ๋ฅ
- ์๋ ๋ฐฑ์ : ๊ฐ์ ์ง์ญ S3์ ์ต๋ 35์ผ๊น์ง์ ๋ณ๊ฒฝ์ ๋ฐฑ์ ๊ฐ๋ฅ
- ๋งค๋ด์ผ ๋ฐฑ์ : ์ฌ์ฉ์๊ฐ ์ง์ ์ธ์ ๋ ํ์ฌ ์ง์ ์ ๋ฐฑ์ ์ ๋ง๋ค์ด ๋ฌดํํ ์ ์ง ๊ฐ๋ฅ
- Cross-regional snapshot : ์ ์ฌ์๋ฅผ ๋๋นํ์ฌ ๋ค๋ฅธ ์ง์ญ์ S3 ๋ฐฑ์ ์ ๋๋ ๊ฒ
Redshift Serverless ๋ฐ์ดํฐ ๋ฐฑ์
- Snapshot ์ด์ ์ Recovery Points(๋ณต๊ตฌ ์์ )๊ฐ ์กด์ฌํด์, Recovery points๋ฅผ snapshot์ผ๋ก ๋ฐ๊พธ๋ ๊ณผ์ ์ด ํ์
- ๊ฐ๋ณ ๋น์ฉ์ ๊ฒฝ์ฐ ์ปดํจํ ์์๊ณผ ์คํ ๋ฆฌ์ง๊ฐ ๊ณ ์ ์ ์ด์ง ์์ snapshot ๋ฐ๋ก ํ ๋น์ด ์ด๋ ค์
- ์๋ ๋ฐฑ์ : Recovery Points๊ฐ ์์ฑ๋์ด 24์๊ฐ๋์ ์ ์ง๋๋ค.
- ์ค๋ ์ท์ ํ์ฉํ ๋ค๋ฅธ ์์ ์ ๊ณ ์ ๋น์ฉ ๋ฐฉ์๊ณผ ๊ฑฐ์ ๋์ผํ๊ฒ ๊ฐ๋ฅํ๋ค.
Redshift Serverless์ ๋ค์์คํ์ด์ค > ๋ฐ์ดํฐ ๋ฐฑ์ ํญ๋ชฉ์ ํ์ธํด๋ณด๋ฉด,
์ค๋ฅธ์ชฝ ์๋จ์ ์ค๋ ์ท ์์ฑ ๋ฒํผ์ ํตํด ์ง์ ์ค๋ ์ท์ ๋ง๋ค์ด์ผ ์ฌ์ฉํ ์ ์๋ค.
Recovery Points(๋ณต๊ตฌ ์์ ) ํญ๋ชฉ์์ ํ๋๋ฅผ ์ ํํ๊ณ , '๋ณต๊ตฌ ์์ ์์ ์ค๋ ์ท ์์ฑ' ๋ฒํผ์ผ๋ก ์ค๋ ์ท์ ์์ฑํ ์๋ ์๋ค.
๐ฉ Redshift์ ๊ด๋ จ ๊ธฐํ ์๋น์ค
๐ Redshift Spectrum
S3์ ํ์ผ๋ค์ ๋ง์น ํ ์ด๋ธ์ฒ๋ผ SQL๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅํ ์๋น์ค
- S3 ํ์ผ๋ค์ ์ธ๋ถ ํ ์ด๋ธ๋ก ์ฒ๋ฆฌํ์ฌ Redshift ํ ์ด๋ธ๊ณผ ์กฐ์ธ์ด ๊ฐ๋ฅํ๋๋ก ํจ
- 1TB๋ฅผ ์ค์บํ ๋๋ง๋ค $5
- S3์ Redshift ํด๋ฌ์คํฐ๊ฐ ๊ฐ์ region์ ์์ด์ผํ๋ค.
Spectrum ์๋น์ค๋ฅผ ์ฌ์ฉํ ๋ ์๋ฉด ์ข์ ํค์๋
1. Fact ํ ์ด๋ธ : ๋ถ์์ ์ด์ ์ด ๋๋ ์์ ์ ๋ณด๋ฅผ ํฌํจํ๋ ์ค์ ํ ์ด๋ธ
ex) ๋งค์ถ ์์ต, ํ๋งค๋, ์ด์ต ๋ฑ ์ฌ์ฉ์์ ํ๋์ด ๊ธฐ๋ก๋ ํ ์ด๋ธ
2. Dimension ํ ์ด๋ธ : (์ฌ์ฉ์๊ฐ ๊ตฌ๋งคํ) ๋ฌผํ์ด๋ ๊ณ ๊ฐ์ ๋ํ ์ ๋ณด ํ ์ด๋ธ
Fact ํ ์ด๋ธ์ ๋ฐ์ดํฐ์ ๋งฅ๋ฝ์ ์ ๊ณตํ์ฌ ์ฌ์ฉ์๊ฐ ๋ค์ํ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์กฐ๊ฐ๋ด๊ณ ๋ถ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
๋ณดํต Dimension ํ ์ด๋ธ ํฌ๊ธฐ๊ฐ ์๊ณ , fact ํ ์ด๋ธ์ foreign key๋ก ์ฐธ์กฐ๋จ.
3. ์ธ๋ถ ํ ์ด๋ธ(External Table)
- DB ์์ง์ด ์ธ๋ถ์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ง์น ๋ด๋ถ ํ ์ด๋ธ(์ฝ๊ธฐ ์ ์ฉ)์ฒ๋ผ ์ฌ์ฉ
- CSV, JSON, XML๊ณผ ๊ฐ์ ํ์ผ ํ์ ๋ฟ๋ง ์๋๋ผ ์๊ฒฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค(ODBC ๋ฑ)์ ๊ฐ์ ๋ค์ํ ๋ฐ์ดํฐ ์์ค๋ ๊ฐ๋ฅ
- ์ธ๋ถ ํ ์ด๋ธ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ํ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฌํ ์ ์๋ค.
- ํ์ง๋ง ์ธ๋ถ ํ ์ด๋ธ์ ๋ณด์ ๋ฐ ์ฑ๋ฅ ๋ฌธ์ ์ ๋ํด ์ ์คํ๊ฒ ๊ณ ๋ คํด์ผ ํ๋ค.
4. AWS Glue
- AWS์ Serverless ETL ์๋น์ค
- AWS Glue Data Catalog๋ ๋ฐ์ดํฐ ์์ค ๋ฐ ๋์์ ๋ฉํ๋ฐ์ดํฐ ๊ฒ์ ๊ธฐ๋ฅ์ ์ ๊ณต
- ์ฃผ๋ก S3๋ ๋ค๋ฅธ AWS ์๋น์ค ์์ ๋ฐ์ดํฐ ์์ค๋ฅผ ๋์์ผ๋ก ํ๋ฏ๋ก Spectrum์ด๋ Athena์ ํ์ํ ์๋น์ค์ด๋ค.
- ๋ฐ๋ผ์ ๊ด๋ จ ์๋น์ค๋ฅผ ์ด์ฉํ ๋ Glue ๊ถํ์ด ์๋ ์ญํ ์ด ํ์ํ๋ค. > Spectrum ์ค์ตํ ๋ ๋ฃ์ด์ค ์์
โฉ Redshift Spectrum ์ค์ตํด๋ณด๊ธฐ
1. AWS Glue ๊ถํ ์ถ๊ฐ
๊ธฐ์กด์ S3FullAccess๋ฅผ ๊ฐ์ง๊ณ ์๋ ์ญํ ์ Glue ๊ถํ๋ ์ถ๊ฐํด์ฃผ์๋ค.
2. S3 ๋ฒํท์ ์ธ๋ถ ํ ์ด๋ธ๋ก ์ฌ์ฉํ ํ์ผ ์ถ๊ฐ
3. Colab ์ค์ต
์ธ๋ถ ์คํค๋ง ์์ฑ
-- AWSGlueConsoleFullAccess
CREATE EXTERNAL SCHEMA external_schema
from data catalog
database 'myspectrum_db' -- myspectrum_db์ ๋ง๋ ์ธ๋ถ ์คํค๋ง ์ ์ฅ
iam_role 'arn:aws:iam::*****:role/redshift.read.s3' -- IAM ARL ๋ฃ๊ธฐ
create external database if not exists; -- ํด๋น DB๊ฐ ์์ผ๋ฉด ๋ง๋ฆ
myspectrum_db๋ฅผ ์์ฑํ์ฌ ํด๋น DB์ external_schema๋ฅผ ํ๋ ๋ง๋ค์๋ค.
์ค์ํ ์ ์, Glue ๊ถํ์ ํฌํจํ ์ญํ ์ ์ง์ ํด์ฃผ์ด์ผ ํ๋ค.
Dimension ์ฉ๋๋ก ์ฌ์ฉํ ์ ์ ์ ๋ณด ํ ์ด๋ธ ๋ง๋ค๊ธฐ
-- Dimension ์ฉ๋์ ํ
์ด๋ธ ํ๋ ์ ์, ์ ์ ์ ๋ณด ํ
์ด๋ธ
-- ์ ์ ์ ์ฑ๋ณ๊ณผ ๋์ด(18~50)๋ฅผ ๋๋ค์ผ๋ก ๋ถ์ฌํ๊ณ user_property ํ
์ด๋ธ๋ก ์ ์ฅํ๋ค.
CREATE TABLE raw_data.user_property AS
SELECT
userid,
CASE WHEN cast (random() * 2 as int) = 0 THEN 'male' ELSE 'female' END gender,
(CAST(random() * 50 as int)+18) age
FROM (
SELECT DISTINCT userid
FROM raw_data.user_session_channel
);
์ธ๋ถ ํ ์ด๋ธ์ ๋ง๋ค์ด ์์์ ๋ง๊ฒ ๋ฐ์ดํฐ ํ ๋น
CREATE EXTERNAL TABLE external_schema.user_session_channel (
userid integer ,
sessionid varchar(32),
channel varchar(32)
)
row format delimited -- ํ ์ค์ ํ ๋ ์ฝ๋
fields terminated by ',' -- ๋ฐ์ดํฐ๋ฅผ ๋๋๋ ๋ฐฉ์, CSV ํ์ผ์ด๋ฏ๋ก ',' ๊ฐ ๋ค์ด๊ฐ๋ค.
stored as textfile
location 's3://sunho-test-bucket/usc/'; -- ํ์ผ ๊ฒฝ๋ก
์ธ๋ถ ํ ์ด๋ธ๊ณผ JOIN ๊ฒฐ๊ณผ
๐ Athena
- AWS์ Presto ์๋น์ค๋ก, Redshift Spectrum๊ณผ ๋น์ทํ ๊ธฐ๋ฅ์ ์ ๊ณต
- S3์ ์๋ ๋ฐ์ดํฐ๋ค์ ๊ธฐ๋ฐ์ผ๋ก SQL ์ฟผ๋ฆฌ๊ธฐ๋ฅ์ ์ ๊ณต
- Redshift๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด Athena๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
๐ Redshift ML
- SQL๋ง ์ฌ์ฉํด์ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ํ๋ จ๊ฐ๋ฅํ๋๋ก ํ๋ ์๋น์ค
- AWS SageMaker(์ต์ ํ ๋ชจ๋ธ ์๋ ์์ฑ)์ ์ํด ์ง์๋๋ค.
- BYOM(Bring Your Own Model)๋ก ์ด๋ฏธ ์๋ ๋ชจ๋ธ ์ฌ์ฉ๋ ๊ฐ๋ฅ
Redshift ML์์ ์๋ฉด ์ข์ ํค์๋
1. ๋จธ์ ๋ฌ๋
- ํธ๋ ์ด๋ ์ : ํ์ต์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ
- ๋ ์ด๋ธ(Y) : ์์ธกํด์ผ ํ๋ ๊ฐ
- Featuer(X) : ๋ ์ด๋ธ์ ์์ธกํ๋ ๋ฐ ์ฌ์ฉํ๋ ํํธ๋ค
2. Amazon SageMaker
๋จธ์ ๋ฌ๋ ๋ชจ๋ธ ๊ฐ๋ฐ์ ์ฒ์๋ถํฐ ๋๊น์ง ํด๊ฒฐํ๋ AWS ์๋น์ค(MLOps ํ๋ ์์)
๋ค์์ ๊ณผ์ ์ ๋ชจ๋ ์ง์ํด์ค๋ค.
- ํธ๋ ์ด๋ ์ ์ค๋น
- ๋ชจ๋ธ ํ๋ จ
- ๋ชจ๋ธ ๊ฒ์ฆ
- ๋ชจ๋ธ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌ
- SageMaker Studio๋ผ๋ ์น ๊ธฐ๋ฐ ํ๊ฒฝ ์ ๊ณต
- Python Notebook์ SageMaker ๋ชจ๋ ๋ฃ์ด ํ๋ จ๋ ๊ฐ๋ฅํ๋ค.
3. AutoPilot
SageMaker์์ ์ ๊ณต๋๋ AutoML(๋ฐ์ดํฐ ์ฃผ๋ฉด ์์์ ๋ชจ๋ธ ๋ง๋ฆ) ๊ธฐ๋ฅ
โฉ Redshift ML ์ค์ตํด๋ณด๊ธฐ
1. S3์ ํ์ต์ ์ฌ์ฉํ CSV ํ์ผ ์ ๋ก๋
2. SageMaker ๊ถํ์ ์ํ IAM Role ๋ง๋ค๊ธฐ
Redshift๊ฐ SageMaker์ Accessํ๊ณ , SageMaker๋ Redshift์ Accessํ๋ฏ๋ก ์์ชฝ์ผ๋ก ๊ด๊ณ๋ฅผ ์ค์ ํด์ผํ๋ค.
์ด ์ค์ ์ ํด๋น ์ญํ ์ ์ ๋ขฐ ๊ด๊ณ > ์ ๋ขฐ ์ ์ฑ ํธ์ง ์์ ๋ฐ๊ฟ ์ ์๋ค.
์ค๋ฅธ์ชฝ ํญ์ ๋ณด์ ์ฃผ์ฒด ์ถ๊ฐ ๋ฒํผ์ ๋๋ฌ ๋ค์๊ณผ ๊ฐ์ด ํธ์งํด์ค๋ค.
3. Redshift ๋ค์์คํ์ด์ค์ ํด๋น ์ญํ ์ถ๊ฐ
4. S3์ train.csv๋ฅผ Redshift ํ ์ด๋ธ์ COPY
ํ ์ด๋ธ์ ์๋ก ๋จผ์ ํ๋ ๋ง๋ ๋ค, COPY ์ปค๋งจ๋๋ฅผ ์ฌ์ฉํ๋ค.
-- ์์ฑ์ ํด๋น csv ํ์ผ์ ๋ง๊ฒ ์ง์
CREATE TABLE raw_data.orange_telecom_customers (
state varchar,
account_length integer,
area_code integer,
international_plan varchar,
…
customer_service_calls integer,
churn varchar,
purpose varchar
);
COPY raw_data.orange_telecom_customers
FROM 's3://sunho-test-bucket/redshift_ml/train.csv'
credentials 'aws_iam_role=arn:aws:iam::*****:role/redshift.read.s3' -- IAM ARN ์
๋ ฅ
delimiter ',' dateformat 'auto' timeformat 'auto' IGNOREHEADER 1 -- ์๋ฏธ๋ ์ ๋ฒ ๊ธ ์ฐธ๊ณ (For CSV)
removequotes;
5. ML ๋ชจ๋ธ ์์ฑํ๊ธฐ
CREATE MODEL ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ML ๋ชจ๋ธ์ ์์ฑํ๋ค.
์ฐธ๊ณ ๋ก ๋ฐ์ดํฐ์ purpose ํ๋ ๊ฐ์ด Train ์ด๋ฉด ํ์ต์ฉ ๋ฐ์ดํฐ๋ก ์ฌ์ฉํ๊ฒ ๋ค๋ ์๋ฏธ๋ก ์ ์ฅํ์๋ค.
๋ชจ๋ธ์ ์์ฑํ๋ฉด์ ์ด ๋ชจ๋ธ์ ์ฌ์ฉํ ์ ์๋ ํจ์๋ ๊ฐ์ด ์์ฑํ๊ฒ ๋๋ค.
CREATE MODEL orange_telecom_customers_model
FROM (
SELECT
state, account_length, …, customer_service_calls, churn -- ํด๋นํ๋ ์์ฑ๋ค ๋ชจ๋ ์
๋ ฅ
FROM raw_data.orange_telecom_customers
WHERE purpose = 'Train'
)
TARGET churn -- ์์ธกํ ๊ฐ ํ๋
FUNCTION ml_fn_orange_telecom_customers -- ๋์ค์ ํจ์๋ก ์ฌ์ฉํ ๋ ์ฌ์ฉํ ํจ์๋ช
IAM_ROLE 'arn:aws:iam::*****:role/Redshift-ML' -- IAM ARN(์๊น ๋ง๋ SageMaker ML ์ญํ )
SETTINGS ( -- ๋ฒํท ์ง์
S3_BUCKET 'sunho-test-bucket'
);
์ดํ ๋ชจ๋ธ์ด ๋ง๋ค์ด์ง๋๋ฐ, ๋ฐ์ดํฐ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ง๋ง ์๊ฐ์ด ๊ฝค ์ค๋ ์์๋๋ค๊ณ ํ๋ค.
์ฝ 2700๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ํ์ตํ๋๋ฐ 3~4์๊ฐ ์ ๋ ์์๋ฌ์ผ๋ฉฐ, ๋น์ฉ์ ์ฝ $21๊ฐ ์ฒญ๊ตฌ๋๋ค๊ณ ํ๋ค.
๋๋ ๋น์ฉ์ด ์ฒญ๊ตฌ๋๋๊ฒ ๋ถ๋ด์ค๋ฌ์์ ์ง์ ์คํํ์ง ์์๋ค..
6. ๋ง๋ค์ด์ง ๋ชจ๋ธ ์ฌ์ฉํด๋ณด๊ธฐ
๋ชจ๋ธ์ ์์ฑํ๋ฉฐ ๋ง๋ค์๋ ํจ์๋ฅผ ์ด์ฉํด์ ์์ธก๊ฐ์ ๋์ด๋ณด์.
SELECT churn, -- ์ ๋ต์ด ๋ ๊ฒ์ด๋ค.
ml_fn_orange_telecom_customers(
state, account_length, area_code, international_plan, voice_mail_plan,
number_vmail_messages, total_day_minutes, total_day_calls,
total_day_charge, total_eve_minutes, total_eve_calls, total_eve_charge,
total_night_minutes, total_night_calls, total_night_charge,
total_intl_minutes, total_intl_calls, total_intl_charge,
customer_service_calls
) AS "prediction" -- ml_fn_orange_telecom_customers ํจ์๋ฅผ ํตํด ์์ธก๊ฐ์ด ๋์จ๋ค.
FROM raw_data.orange_telecom_customers
WHERE purpose = 'Test'; -- ์ด๋ฒ์ Test์ฉ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ค.
7. ๋ง๋ค์ด์ง ๋ชจ๋ธ ์ ๊ฑฐํ๊ธฐ!
์ด๋๋ก ๋ชจ๋ธ์ ๋ด๋ฒ๋ ค๋๋ฉด ์ฉ๋๋ ์ฐจ์งํ๊ณ ๋น์ฉ์ด ์ฒญ๊ตฌ๋ ์๋ ์๋ค๊ณ ํ๋ค.
๋ค์์ ๊ณผ์ ์ผ๋ก ๋จ์ ์์ฌ๋ค์ ๊ผญ ์ฒญ์ํด์ฃผ์.
Drop Model '๋ชจ๋ธ๋ช ' ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ์ญ์ ํ๋ค.
SageMaker ๋์๋ณด๋์์ Models, Endpoints์ ํด๋นํ๋ ๊ฐ์ ๋ชจ๋ ์ญ์ ํ๋ค.
๋ชจ๋ธ์ ๋ ์ด์ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด ๊ผญ ์ฒญ์ํ๋ ๊ฒ์ ์์ง ์๋๋ก ๋ช ์ฌํ์.
๐ง Redshift ์ค์ง / ์ ๊ฑฐ ๋ฐ ์ต์ ํํ๊ธฐ
Redshift(๊ณ ์ ๋น์ฉ)์ ๊ฒฝ์ฐ
- ๋์๋ณด๋์์ Pause์ Resume์ ์ ์ ํ ์ฌ์ฉํ์ฌ ์กฐ์
- Redshift๋ฅผ ์ญ์ ํ๊ณ S3์ ์ค๋ ์ท์ ์ ์ฅํด๋์๋ค๊ฐ ๋์ค์ ์๋ก์ด Redshift cluster๋ก ๋ง๋ค ์ ์์
- Redshift ๊ณ ์ ๋น์ฉ ์๋น์ค๋ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฒ์ ์ ๊ทธ๋ ์ด๋๋ฅผ ์ํด ์ค๋จ๋๋ค. (Maintenance window)
Redshift Serverless์ ๊ฒฝ์ฐ
- Serverless์ ๊ฒฝ์ฐ ๊ณ ์ ๋น์ฉ์ฒ๋ผ ์ค์งํ ์ ์๋ค.
- ์ ๊ฑฐํด์ผํ๋ ๊ฒฝ์ฐ ๋ค์์ ๊ณผ์ ์ ๋ฐ๋ผ์ผ ํ๋ค.
- ๋จผ์ ๋ชจ๋ Workgroup๋ค์ ๋ชจ๋ ์ญ์ ํด์ผํจ
- ๋ค์์ผ๋ก ๋ชจ๋ Namespace ์ญ์
Redshift ์ต์ ํํ๊ธฐ
Redshift์์๋ ๋ฐ์ดํฐ๊ฐ ์ฝ์ , ์ ๋ฐ์ดํธ, ์ญ์ ๋ ๋ ๋ฐ์ดํฐ๋ค์ด ๋ถ๊ท์นํ๊ฒ ๋ถ์ฐ๋์ด ์ ์ฅ๋๋ค.
์ด๋ VACUUM ๋ช ๋ น์ด๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ๋ฆฌํ๊ณ , ๋จ์ ๋์คํฌ ๊ณต๊ฐ ํ์ ๋ฐ ํด์ ๋ฅผ ์ฒ๋ฆฌํด์ค๋ค.
VACUUM [ FULL | SORT ONLY | DELETE ONLY | REINDEX | RECLUSTER ] [table_name] [TO threshold PERCENT]
- FULL - ํ ์ด๋ธ ์ ๋ ฌ + ์ญ์ ๋ ๊ณต๊ฐ ํ์
- SORT ONLY - ํ ์ด๋ธ ์ ๋ ฌ
- DELETE ONLY - ์ญ์ ๋ ๊ณต๊ฐ ํ์
- REINDEX - ์ธํฐ๋ฆฌ๋ธ ํ ์ด๋ธ ์ธ๋ฑ์ค ์ฌ์ง์ + ํ ์ด๋ธ ์ ๋ ฌ + ์ญ์ ๋ ๊ณต๊ฐ ํ์
- TO threshold PERCENT : ์ง์ ํ ์๊ณ๊ฐ ์ด์์ผ๋ก ํ ์ด๋ธ์ด ์ ๋ ฌ๋์ด ์๋ค๋ฉด ์ ๋ ฌ ๋จ๊ณ๋ฅผ ์๋ตํ๋ค.
๋ค์์ ์ฌ์ฉ ์์๋ค.
VACUUM์ ์ฃผ๊ธฐ์ ์ผ๋ก ์คํ์์ผ์ฃผ์ด Redshift๋ฅผ ์ต์ ํํด์ฃผ๋ฉด ์ข์ง๋ง, ๋ฆฌ์์ค๋ฅผ ๋ง์ด ์ก์๋จน๋ ์์ ์ด๋ค.
VACUUM ์ปค๋งจ๋๋ฅผ ์ธ ๋์๋ ์ผ์ด ์๋ ์๊ฐ๋์ ์คํํด์ฃผ๋ฉด ์ข๋ค๊ณ ํ๋ค.
VACCUM ์ฐธ๊ณ ๋ฌธ์ : https://docs.aws.amazon.com/ko_kr/redshift/latest/dg/r_VACUUM_command.html
'TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Redshift๋ฅผ Superset์ ์ฐ๋ํ๊ณ ๋์๋ณด๋ ๋ง๋ค๊ธฐ - TIL230526 (0) | 2023.05.26 |
---|---|
Snowflake ์์๋ณด๊ณ , S3์์ COPYํด๋ณด๊ธฐ - TIL230525 (0) | 2023.05.25 |
Redshift serverless ์์ฑํ๊ณ S3์ csv ํ์ผ Redshift์ COPYํ๊ธฐ - TIL230523 (0) | 2023.05.23 |
๋ฐ์ดํฐ ํ๊ณผ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค - TIL230522 (2) | 2023.05.22 |
Docker์ Docker File - TIL230519 (0) | 2023.05.19 |