0) ๋ฐ์ดํฐ ๊ทธ๋ฃน์์ ์ญํ
1. ๋ฐ์ดํฐ ์์ง๋์ด
๋ฐ์ดํฐ์จ์ดํ์ฐ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฌํ๋ ETL/ELT ๋ฑ์ ํ๋ก์ธ์ค๋ฅผ ๋ด๋น
ํ์ํ ์คํฌ
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด(python, java)
- ETL/ELT
- ๋ถ์ฐํ๊ฒฝ Spark, Hadoop
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
2. ๋ฐ์ดํฐ ๋ถ์๊ฐ : DB์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ ๋ฐ์ดํฐ ๋ถ์์ ์ํ(ํต๊ณ์ ์ง์)
3. ๋ฐ์ดํฐ ๊ณผํ์ : ํจ๊ณผ์ ์ธ ๋ฐ์ดํฐ๋ชจ๋ธ์ ์ฐพ๊ณ , ๊ฐ๋ฐํ๊ณ , ์ด๋ฅผ ํ์ฉํ์ฌ ์์ธก์ ์ํ
1) ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ SQL
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์ง์ํ ์ ์๋๋ก ํ๋ ์ ์ฅ ์ฅ์น
1. ํ๋ก๋์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค
OLTP(Online Transaction Processing)
์ค์๊ฐ ํธ๋์ญ์ ์ฒ๋ฆฌ ์์คํ ์ผ๋ก ๊ฐ๋จํ๊ณ ๋ฐ๋ณต์ ์ธ ํธ๋์ญ์ ์ ์ ์ํ๊ฒ ์ฒ๋ฆฌํ๋๋ฐ ํนํ๋์ด ์๋ค.
(์น/๋ชจ๋ฐ์ผ) ์๋น์ค์ ํ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ฏ๋ก ๋น ๋ฅธ ์๋๊ฐ ์ค์ํ๋ค.
ex) Mysql, PostgreSQL, Oracle
2. ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค
OLAP(Online Analytical Processing)
์์ฌ๊ฒฐ์ ์ง์ ๋ฐ ๋ฐ์ดํฐ ๋ถ์์ ์ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์คํ ์ผ๋ก ๋ณ๋์ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ค.
์ฒ๋ฆฌํ๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ํฐ ํธ์ด๋ฏ๋ก ์๋์ ์ผ๋ก OLTP๋ณด๋ค ์๋๊ฐ ๋๋ฆฌ๋ค. ๋ณดํต์ OLTP๋ฅผ ๋ณต์ฌํด์ DW์ ์ ์ฅํ๋ค. ex) Redshift, Snowflake, BigQuery, Hive
P : ํ๋ก๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ๋์ฉ๋ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฐฑ์๋ํ๊ณผ ๋ง์ฐฐ์ด ์๊ธธ ์ ์๋ค.
๋ฐ์ดํฐํ์์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค๊ฐ ๋ฌด์์ธ์ง์ ๋ํด ์ง์ํ๋ฉด ๋ฐ์ดํฐํ์ ๊ท๋ชจ์ ๋น์ค์ ์ ์ ์์!
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ณดํต ๋ฐ์ดํฐ๋ฒ ์ด์ค(์คํค๋ง) ํ์์ ํ ์ด๋ธ์ ๋ฃ์ด ํ์์ ๋ฐ๋ผ ์ฌ์ฉํ๋ค.
๐๋ฐ์ดํฐ๋ฒ ์ด์ค(์คํค๋ง)
๐ํ ์ด๋ธ 1
๐ํ ์ด๋ธ2
SQL
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์กฐ์ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
SQL ์ธ์ด์ ์ข ๋ฅ
- ๋ฐ์ดํฐ ์ ์์ด DDL : CREATE, ALTER, RENAME, DROP
- ๋ฐ์ดํฐ ์กฐ์์ด DML : INSERT, SELECT, UPDATE, DELETE
- ๋ฐ์ดํฐ ์ ์ด์ด DCL : GRANT, REVOKE
- ํธ๋์ญ์ ์ ์ด์ด TCL : COMMIT, ROLLBACK
๋ถ์ฐ ์ปดํจํ ํ๊ฒฝ์ ํ์์ฑ
๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋๋ฐ ์ต์ ํ๊ฐ ๋์ด ์๋ค ๋ณด๋, ๋น ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐ๋ ์ ์ฝ์ด ์์ด Spark๋ Hadoop๊ณผ ๊ฐ์ ๋ถ์ฐ ์ปดํจํ ํ๊ฒฝ์ด ํ์ํ๊ฒ ๋์๋ค.
์ค์ ๋ก ๋ง์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค์ด ํ๋ซํ ๊ตฌ์กฐ์ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ง์ ์ง์ํ๋ค.
๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ง๋ค SQL ๋ฌธ๋ฒ์ด ๋ค๋ฅด๋ค.
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ํ์ค ์ธ๊ณ์ ๋ณต์กํ ๊ตฌ์กฐ์ ํ๋ก์ธ์ค๋ฅผ ์ถ์ํํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ์ ์ฉํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ์ ์ํ๋ ๋จ๊ณ๋ก ํฌ๊ฒ Star schema์ Denormalized schema๊ฐ ์์ฃผ ์ฌ์ฉ๋๋ค.
1. Star schema
ํ๋ก๋์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ง์ด ์ฌ์ฉํ๋ ๊ตฌ์กฐ์ด๋ค.
๋ฐ์ดํฐ๋ฅผ ๋ ผ๋ฆฌ์ ๋จ์๋ก ๋๋ ์ ์ฅํ๊ณ , ํ์์ ์กฐ์ธํ๋ค.
์ฅ์ ) ๋๋ ์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ์คํ ๋ฆฌ์ง ๋ญ๋น๊ฐ ๋ํ๊ณ ์ ๋ฐ์ดํธ๊ฐ ์ฝ๋ค.
๋จ์ ) ๋ค์์ ํ ์ด๋ธ์ ๋งคํํด์ ์กฐ์ธ์ฐ์ฐ์ ์ํํด์ผ ํ๋ค. (์๊ฐ+๊ณต๊ฐ)
2. Denormalized schema
๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค์์ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก, ๋จ์ ํ ์ด๋ธ์ ๋๋ ์ ์ฅํ์ง ์๊ณ ํ๋์ ํ ์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ํ์ํ๋ ๊ตฌ์กฐ์ด๋ค.
๋จ์ ) ์ฌ๋ฌ ๋ฐ์ดํฐ๊ฐ ์ค๋ณต๋๊ธฐ ๋๋ฌธ์ ์คํ ๋ฆฌ์ง๋ฅผ ๋ญ๋นํ๋ค.
ํน์ ์ปฌ๋ผ์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋๋ฉด(ex ๋งค์ฅ๋ช ) ๋ค์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๊ฟ์ผ ํด์ ์ ๋ฐ์ดํธ๊ฐ ์ฝ์ง ์๋ค.
์ฅ์ ) ์กฐ์ธ์ฐ์ฐ์ด ํ์ ์๊ธฐ ๋๋ฌธ์ ๋น ๋ฅธ ๊ณ์ฐ์ด ๊ฐ๋ฅํ๋ค.
2) ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค
ํ๋ก๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๋ณ๊ฐ๋ก ๋ด๋ถ ๋ฐ์ดํฐ ์กฐ์ง์ ์ํ ๋ณ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๋ด๋ถ์์ ์ฌ์ฉํ๋ฏ๋ก ์๋๋ณด๋ค๋, ๋ฐ์ดํฐ ํฌ๊ธฐ์ ๊ด๊ณ์์ด ๋ฐ์ดํฐ ์ธ์ฌ์ดํธ๋ฅผ ๋์ถํ๋ ๊ฒ์ด ์ค์ํ๋ค!
์ข ๋ฅ
AWS Redshift | GOOGLE Cloud Big Query | Snowflake | |
๋น์ฉ | ๊ณ ์ ๋น์ฉ | ๊ฐ๋ณ๋น์ฉ | |
๋ณดํต BigQuery๋ Snowflake๋ฅผ ๋ง์ด ์ฌ์ฉํ์ง๋ง, ๊ฐ์ ์์์๋ Redshift๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ค.
ํ๋์ ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์ฐ๋ฉด ๋๋จธ์ง ๊ตฌ์กฐ์ ์ฝ๊ฒ ์ ์ฉํ ์ ์๋ค.
๋ฐ์ดํฐ ์์ง๋์ด์ ์ญํ
๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ
1. ETL : ์ธ๋ถ์ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์(Extract), ๋ฐ์ดํฐํ ๋ณํ์ ์ํํด์(Transform), ๋ฐ์ดํฐ ์จ์ดํ์ฐ์ค๋ก ์ ์ฅ(Load)ํด์ฃผ๋ ๊ณผ์ ์ด ํ์ํ๋ค.
2. ๋์ฉ๋ ๋ถ์ฐ์ฒ๋ฆฌ ์์คํ ์ด ์ถ๊ฐ
๋ฐ์ดํฐํ์ ํ๋ก์ธ์ค
ETL์ ํตํด ๋ฐ์ดํฐ๋ฅผ DW์ ์ ์ฌ → ์ ์ฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํด ๋ฐ์ดํฐ ๋ถ์ → ๋ถ์๋ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์๋น์ค ๊ฐ์
4) ํด๋ผ์ฐ๋
HW/SW ๋ฑ์ ๋คํธ์ํฌ๋ฅผ ํตํด ์๋น์ค ํํ๋ก ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก,
ํ์ํ ๋งํผ ํ ๋นํ์ฌ ์ฌ์ฉํ ๋งํผ ์ง๋ถํ๋ฏ๋ก ํ์ํ ์์์ ํ๋ ฅ์ ์ผ๋ก ์ด์ํ๋ ๊ฒ์ด ์ค์ํ๋ค.
์ด๊ธฐ ํฌ์๋น์ฉ์ ์ค์ด๋ค๊ณ , ์ฌ์ ๋ฆฌ์์ค ์ ๊ฑฐ๋ฅผ ํตํด ๋น์ฉ์ด ๊ฐ์๋๋ค.
AWS
์๋ง์กด์ ์ฌ์ ์์(์๋ฒ, SW/HW)๋ค์ ์ ๊ณตํ๋ฉด์ ์์๋์๋ค.
1. EC2(Amazon Elastic Compute Cloud) ์๋น์ค
- ๊ฐ์ ์๋ฒ (์ธ์คํด์ค): ๊ฐ์ ์๋ฒ, ์ฆ "์ธ์คํด์ค"๋ฅผ ์ ๊ณต
- ๋ค์ํ ์ธ์คํด์ค ์ ํ: ์ฌ๋ฌ ๊ฐ์ง ์ธ์คํด์ค ์ ํ์ ์ ๊ณตํ์ฌ ๋ค์ํ ์ปดํจํ ์๊ตฌ์ ๋ง๊ฒ ์ ํ ๊ฐ๋ฅ(์ปดํจํ , ๋ฉ๋ชจ๋ฆฌ, ์คํ ๋ฆฌ์ง ๋ฑ์ ํนํ๋ ์ธ์คํด์ค ์ ํ์ด ์กด์ฌ)
- ์ค์ผ์ผ๋ง ๋ฐ ๊ด๋ฆฌ: ์ํ ๋ฐ ์์ง ์ค์ผ์ผ๋ง์ด ๊ฐ๋ฅ(์ฌ๋ฌ ์ธ์คํด์ค๋ฅผ ์์ํ๊ฑฐ๋ ์ค์งํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๊ตฌ์ ๋ฐ๋ผ ์ ์ฐํ๊ฒ ๋์)
- ๋ค์ํ ์ด์ ์ฒด์ : Amazon Linux, Ubuntu, Windows Server ๋ฑ์ ์ง์
- ๋คํธ์ํน ๊ธฐ๋ฅ: ๊ฐ์ ๋คํธ์ํน ๊ธฐ๋ฅ์ ์ ๊ณต(๊ฐ์ ํ๋ผ์ด๋น ํด๋ผ์ฐ๋(VPC), ์๋ธ๋ท, ๋ณด์ ๊ทธ๋ฃน ๋ฑ์ ๊ตฌ์ฑํ์ฌ ๋คํธ์ํฌ ํ๊ฒฝ์ ์กฐ์ ํ ์ ์์)
- AMI (Amazon Machine Image): ์ด๋ฏธ ํ๋ก๋น์ ๋ ๋ ์ด์ ์ฒด์ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ฑ์ ํฌํจํ๋ ์ด๋ฏธ์ง๋ฅผ ์ ํ
- ๋น์ฉ ๋ชจ๋ธ: ์ฌ์ฉํ ๋ฆฌ์์ค์ ๋ํด์๋ง ๋น์ฉ์ ์ง๋ถ(์ธ์คํด์ค ์ ํ, ์ฌ์ฉ ์๊ฐ, ๋ฐ์ดํฐ ์ ์ก ๋ฑ์ ๋ฐ๋ผ ๋น์ฉ์ด ๋ค๋ฅด๊ฒ ์ฑ ์
๊ตฌ๋งค ์ต์
- On-Demand : ์๊ฐ๋น ๋น์ฉ์ ์ง๋ถ
- Reserved : 1~3๋ ๊ฐ์ ์ฌ์ฉ์ ๋ณด์ฅ + 40%์ ๋์ค์นด์ดํธ
- Spot Instance : ๊ฒฝ๋งค๋ฐฉ์์ผ๋ก ํ์ฌ ์ฐํดํ ๋ฆฌ์์ค๋ค์ ์ ๋น์ฉ์ผ๋ก ์ฌ์ฉ. ๋จ, ๋ ๋์ ๋น์ฉ์ ์ ์ํ ์ฌ์ฉ์์๊ฒ ์ค์๊ฐ์ผ๋ก ํ ๋น๋๋ฏ๋ก ์ค์ํ์ง ์์ ์ฐ์ฐ์ ์คํํ๋๋ก ํ์ฌ์ผ ํ๋ค.
2. S3(Simple Storage Service)
์๋ง์กด์ด ์ ๊ณตํ๋ ๋์ฉ๋ ํด๋ผ์ฐ๋ ์๋น์ค(HW)
๊ตฌ๋งค ์ต์ 1TB/month
- Standard : $23
- Glacier storage : $4
3. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค
- Relational Database Service (Mysql, PostgreSQL, Oracle, MS SQL ๋ฑ)
- Redshift
- ElasticCache
- ElasticSearch
- MongoDB
4. AI&ML ์๋น์ค
- SageMaker : ์ธ๊ณต์ง๋ฅ ์๋ํ(๋ฅ๋ฌ๋/๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ ๋ง๋ค์ด ์ฃผ๊ณ → ํ ์คํธ → API ํํ๋ก ๋ฐฐํฌ)
- Lex : charbot ์๋น์ค๋ฅผ ๋ง๋ค๋ ์ฌ์ฉํ๋ ์๋น์ค
- Polly : ํ ์คํธ๋ฅผ ์์ฑ์ผ๋ก ๋ณํํ๋ ์๋น์ค
- Rekognition : ์ด๋ฏธ์ง ์ธ์ ์๋น์ค
5. ๊ธฐํ
- Amazon Alexa : ์๋ง์กด ์์ฑ์ธ์ ํ๋ซํผ
- Amazon Connect : ์ฝ์ผํฐ ๊ตฌํ ์ ๊ณตํ๋ ์๋น์ค
- Lambda : API ์์ฒด์ ๋ก์ง๋ง์ผ๋ก ๋ฐ๋ก EC2๋ฅผ ๋ก ์นญํ ํ์ ์์ด ์๋ฒ๋ฅผ ํ๋ ฅ์ ์ผ๋ก ๊ด๋ฆฌํ๊ฒ ํด์ค