[AWS] Redshift
Redshift๋ AWS์์ ์ ๊ณตํ๋ ๋น
๋ฐ์ดํฐ์ฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
์ด๋ค.
์ผ๋ฐ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค๊ณผ๋ ๋ค๋ฅด๊ฒ ๋ชจ๋ ์ปฌ๋ผ์ ์ธ๋ฑ์ค๊ฐ ๊ฑธ๋ฆฌ๊ณ , ๊ทธ๋ฃน์ด๋ ์ ๋ ฌ, ์๋ธ์ฟผ๋ฆฌ๊ฐ ๋ก์น ๋ ๋ณตํฉ์ ์ธ OLAP ์ฟผ๋ฆฌ๋ค๋ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.
GCP์ BigQuery๋ Clickhouse ๋ฑ๊ณผ ๋น์ทํ๋ค๊ณ ํ ์ ์๊ฒ ๋ค.
๋น์ฉ
๋น์ฉ์๋ ๊ฝค๋ ๋ค์ํ ์ต์ ์ด ์๋ค.
์์ธํ๊ฑด ๋ฌธ์๋ฅผ ์ฐธ์กฐํ๋๊ฒ ์ข์๋ฐ
https://aws.amazon.com/ko/redshift/pricing/
์ฐ์ ๋ง๋ง ์จ๋๋งจ๋์ธ ํ๋ก๋น์ ๋ ์๊ธ์ด ์๋ค.
์คํ๋ถํฐ๊ฐ ๊ฝค ๋๊ธด ํ์ง๋ง, ๋น์ธ๋ค.
๋ฐ๋ฉด์ ์๋ฒ๋ฆฌ์ค ์๋น์ค๋ ์ฌ์ฉํ ์ฒ๋ฆฌ๋๋งํผ๋ง ์ง๋ถ์ ํ ์ ์๋๋ฐ
์ด๊ฒ ์ข๋ ๋์๋ณด์ธ๋ค.
AWS์์๋ ์ด๊ฑธ ๋ ๊ถ์ฅํ๋ ๊ฒ ๊ฐ๊ธฐ๋ ํ๊ณ . ์ง๊ธ์ ๊ธฐ๋ณธ์ต์
์ด ์ด๊ฑฐ๋๋ผ
ํ๋ฒ ๋ง์ด๋ผ๋ ๋ด๋ณด์.
๋คํ์ค๋ฝ๊ฒ๋ ์ฒ์ ์จ๋ณผ ๊ฒฝ์ฐ์๋ ํ๋ฆฌํฐ์ด์๋ ๋ณ๊ฐ๋ก 300๋ฌ๋ฌ์ด์น ํฌ๋ ๋ง์ ์ ๊ณตํด์ค๋ค.
์์ํ๊ธฐ
์์๋ฒํผ์ ๋๋ฅด๋ฉด serverless ์์ญ์ ๋ง๋๋ ๊ฒ๋ถํฐ ํ๋ผ๊ณ ํ๋ค.
๊ทธ๋ฅ ๊ธฐ๋ณธ๊ฐ๋๋ก ์ค๋ ๋ฌด๋ฐฉํ๋ค.
๊ทธ๋ผ ์ด๋ฐ์์ผ๋ก ๊ณต๊ฐ์ด ์๊ฒจ๋ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์๋ถํฐ ํ๋์ฉ ํด๋ณด๋ฉด ๋๋ค.
์์ ๊ทธ๋ฃน
์ด์งธ์์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ ์๋ฒ๋ฆฌ์ค ์์ญ ๋ด์์๋ ์์ ๊ทธ๋ฃน์ด๋ ๋จ์๋ฅผ ๋ ๋ง๋ค์ด์ผ ๊ฑฐ๊ธฐ์ ์ค์ง์ ์ธ ์์ ์ ํ ์ ์๋ค.
๋์ถฉ ์ง๊ณ
๊ธฐ๋ณธ ๋ค์์คํ์ด์ค๋ฅผ ์ ์ ํ ์ง์ ํด์ค๋ค.
๋๋ ์ฒ์ ์๋ฒ๋ฆฌ์ค ์์ญ์ด ์๊ธธ๋ ๋ง๋ค์ด์ก๋ default๋ก๋ง ํ๋ค.
๊ทธ๋์ ์ด๋ ๊ฒ ์ ๋ง๋ค์ด์ก๋ค๋ฉด ๋ ๊ฒ์ด๋ค.
์ฟผ๋ฆฌ ์๋ํฐ
Redshift๋ ๋ ์ข์ ์ฌ์ฉ์ฑ์ ์ํด์ ์ด ์๋น์ค๋ง์ ์ํ ์ ์ฉ ์ฝ์์ ์ ๊ณตํด์ค๋ค.

๊ฝค ๋์์ง ์์๋ณด์ธ๋ค.
DB๋ ํ
์ด๋ธ ์์ฑ๊ฐ์ DDL๋ ๋๊ณ , ๋์ถฉ ์ฟผ๋ฆฌ ์๋ํฐ๋ง ์ด์ด์ ์ฟผ๋ฆฌ์ง๊ณ ์คํ์ํฌ ์๋ ์๋ค.
Notebook์ ์์ฃผ ์ฌ์ฉํ ๋งํ ์ฟผ๋ฆฌ๋ค์ ๋ฌถ์ด์ ๊ด๋ฆฌํด์ฃผ๋ ์ญํ ์ธ๋ฏ์ถ๋ค.
ํ๋จ์์ ๊ณต๋ ์์ ๊ด๋ฆฌ๋ ๊ณง์ ์ง์ํ๋ค.
๊ธฐ๋ณธ ์ฌ์ฉ๋ฒ
์ด๊ฒ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค์ ๊ตฌ์กฐ๋ฅผ ๋ฐ๋ฅธ๋ค.
๊ทธ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค > ์คํค๋ง > ํ
์ด๋ธ ...์ ๋ ์ด์ด๋ก ๊ตฌ์กฐ๊ฐ ๋ง๋ค์ด์ ธ์๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ ๋ง๋ค๋ฉด

์ด๋ ๊ฒ ์ถ๊ฐ๋ ๊ฒ์ด๋ค.
์คํค๋ง๋ ํ์ํ๋ค๋ฉด ๋ง๋ ๋ค.
๋ง๋ค์ง ์์๋ ๊ธฐ๋ณธ ์คํค๋ง์ธ public์ด ์ ๊ณต๋๊ธด ํ๋ค.

์ด์ ํ ์ด๋ธ ์์ฑ๋ถํฐ ์ค์ํ ๋ถ๋ถ์ด๋ค.
์ฌ๋ฌ๊ฐ์ง ์ต์
๋ค์ด ์๋๋ฐ, ์ด๊ฒ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค๊ณผ ํฐ ์ฐจ์ด์ ์ ์๋ค.
๊ธฐ๋ณธ๊ฐ์ด๋ NOT NULL, ๊ธฐ๋ณธํค, Auto increment, Unique ๊ฐ์ ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋
๋ค์ ๋ค ์๋ค.
๋ค๋ง ์ธ๋ฑ์ค๋ ํน์ฑ์ ์๋์ผ๋ก ๋ค ๊ฑธ์ด์ฃผ๋๊น ๋ฐ๋ก ์๋ค.
๋ง๋ค๊ณ ๋๋ฉด ๊ทธ๋ฅ RDB ์ฐ๋ฏ์ด ๋ฐ์ดํฐ๋ฅผ ๋ฃ๊ณ

์กฐํํ๋ ์์ผ๋ก ์ฌ์ฉํด๋ณผ ์ ์๋ค.
๋์ฉ๋ ๋ฐ์ดํฐ์๋ ๋น ๋ฅด๊ฒ ๋์ํ๊ณ , ์ง๊ณ๋ ์ ๋ ฌ ๊ฐ์ ๋ณต์กํ ๊ธฐ๋ฅ๋ค์ด ์์ธ ์ฟผ๋ฆฌ๋ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํด์ค๋ค๋๊ฒ ๋ค๋ฅผ ๋ฟ์ด๋ค.
์ํ ๋ฐ์ดํฐ ๊ฐ์ ธ์๋ณด๊ธฐ
๊ทผ๋ฐ ์ ๊ฑธ๋ก๋ง ๋ญ ํ๋ ค๋ฉด ์ฌ์ฌํ ์ ์๋ค.
์ ์ด์ ๋น
๋ฐ์ดํฐ๋ฅผ ์ํ ๊ฑด๋ฐ, ์ ๋ ๊ฒ ์ฐ๋์ฐ๋ ๋ฃ์ด๋ด์ผ ๋ญ ํ๊ฒ ๋๊ฐ?
๊ธฐ๋ณธ dev ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณด๋ฉด ์ํ๋ฐ์ดํฐ๊ฐ ์ข ๋ค์ด์๋ค.
์ฒ์ ์ ๋ฐ์ํ๋ผ๋ฉด ํ์ฑํ๋ฅผ ์ข ํด์ฃผ๊ณ

๊ทธ๋ผ ์ด๋ ๊ฒ sample_data_dev๋ผ๋ DB๊ฐ ๋ฌ๋ค.

๊ฑฐ๊ธฐ์ tickit์ด๋ผ๋ ์คํค๋ง๋ฅผ ํ๋ฒ ๊น๋ดค๋ค.

๊ทธ๋ผ ์ด๋ฐ์์ผ๋ก ๋ฐ์ดํฐ๋ค์ด ๋ค์ด์์ ๊ฒ์ด๋ค.
๊ธฐ๋ณธ ์์ญ๋ง๊ฐ ์ ๋์ ๋ฐ์ดํฐ๋ค์ด ์๋ค.

์ ์คํค๋ง์ ๋ ธํธ๋ถ์ ์ด๋ฉด ๋ ธํธ๋ถ์ ๋ชจ์ธ ์ฟผ๋ฆฌ๋ค๋ก ๋ค์ ๋ณต์กํ ์ฟผ๋ฆฌ๋ค์ ์คํํด๋ณผ ์ ์๋ค.

์ ๋๋ค.
S3๋ก ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
์ด๋ฒ์ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ๋ค๋ค๋ณด๊ฒ ๋ค.
๊ทผ๋ฐ ๊ทธ๋ฌ๋ ค๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ด๋๋ค๊ฐ ์ ์ฅํด๋๊ณ ๊ทธ๊ฑธ๋ก ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ์ทจํด์ผ ํ๋๋ฐ, ์ฌ๊ธฐ์๋ S3์ DynamoDB๊ฐ ์ง์๋๋ค. ๋น๊ต์ ์ธ๊ณ ์ฌ์ฉํ๊ธฐ ํธํ S3๋ฅผ ์ฌ์ฉํ๊ฒ ๋ค.
๋จผ์ ์ง์ด๋ฃ์ ๋ฐ์ดํฐ๋ฅผ CSV ๋ฑ์ ํฌ๋งท์ผ๋ก ๋ฝ์๋๋๋ค.
CSV ๋ง๊ณ ๋ JSON์ด๋ ์ฌ๋ฌ๊ฐ์ง ํฌ๋งท์ด ์ง์์ด ๋๋๋ฐ, ๋ณดํต์ ๋์ค์ ์ธ CSV์ ์ฐ๋๊ฒ ํธํ ๊ฒ์ด๋ค.
์ฌ๊ธฐ์ ์ฃผ์์ ์, ๋งจ ์์ ๋ฉํ ํ์ด ์์ด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
์์ํ๊ฒ ๋ฐ์ดํฐ ์ด๋ง ๋์ดํ๊ณ ํ
์ด๋ธ์ ์์์ ๋ง์ถฐ์ ์ ์ฅํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ ๋ก๋ํ ๋ค์์

(๊ถํ์ด ์๋ค๋ฉด) ๋ค์์คํ์ด์ค์ S3 ์ ๊ทผ์ ์ํ IAM ๊ถํ์ ๋ถ์ฌํด์ค๋ค.

์ฌ๊ธฐ์ ๋ฒํท์ ์ ์ฒด์ง์ ํ๊ฑฐ๋ ์ผ๋ถ ์ง์ ํด์ ๊ฐ์ ธ์ฌ ์ ์๊ฒ ํด์ค๋ค.

๊ทธ๋ฆฌ๊ณ ๋ค์๊ณผ ๊ฐ์ ํํ๋ก ์ฟผ๋ฆฌ๋ฅผ ๋๋ฆฐ๋ค.
copy ํ
์ด๋ธ๋ช
from 's3 ๊ฒฝ๋ก'
iam_role default
delimiter ',' resion ๋ฆฌ์

๊ทธ๋ผ, ์ง์
์ ๋ค์ด๊ฐ ๊ฒ์ ํ์ธํ ์ ์๋ค.
์ด์ ๊ฐ๊ณตํด์ ์จ๋จน๊ธฐ๋ง ํ๋ฉด ๋๋ค.
์ฐธ์กฐ
https://docs.aws.amazon.com/ko_kr/redshift/latest/dg/tutorials-redshift.html