π λ°μ΄ν° μ§κ΅°
- λ°μ΄ν° μμ§λμ΄
- νμ΄μ¬, μλ°, μ€μΉΌλΌ
- SQL, DB
- ETL, ELT(Airflow, DBT)
- Spark, Hadoop
- λ°μ΄ν° λΆμκ°
- SQL, λΉμ¦λμ€ λλ©μΈμ λν μ§μ
- ν΅κ³(ABν
μ€νΈ λΆμ)
- λ°μ΄ν° κ³Όνμ
- λ¨Έμ λ¬λ, λ₯λ¬λ(λͺ¨λΈ ꡬν)
- SQL, νμ΄μ¬
- ν΅κ³
λ°μ΄ν° μμ½κ³Ό λ°μ΄ν° λΆμμ μν SQLμ νμ΅ν΄λ³΄μ.
π κ΄κ³ν DataBase
-
ꡬ쑰νλ λ°μ΄ν°λ₯Ό μ μ₯νκ³ μ§μν μ μλλ‘ ν΄μ£Όλ μ€ν 리μ§
- μμ
μ€νλ λμνΈ ννμ ν
μ΄λΈλ‘ λ°μ΄ν°λ₯Ό μ μνκ³ μ μ₯
- ν
μ΄λΈμλ 컬λΌ(μ΄)κ³Ό λ μ½λ(ν)μ΄ μ‘΄μ¬νλ€.
-
κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ₯Ό μ‘°μνλ νλ‘κ·Έλλ° μΈμ΄ -> SQL
- ν
μ΄λΈ μ μλ₯Ό μν DDL(Data Definition Language)
- ν
μ΄λΈ λ°μ΄ν° μ‘°μ/μ§μλ₯Ό μν DML(Data Manipulation Language)
-
νλ‘λμ
λ°μ΄ν°λ² μ΄μ€ : MySQL, PostgreSQL, Oracle,...
- OLTP(OnLine Transaction Processing)
- λΉ λ₯Έ μλ, μλΉμ€μ νμν μ 보 μ μ₯
-
π©λ°μ΄ν° μ¨μ΄νμ°μ€ : Redshift, SnowFlake, BigQuery, Hive,...
- OLAP(OnLine Analytical Processing)
- μ²λ¦¬ λ°μ΄ν° ν¬κΈ°μ μ§μ€
- λ°μ΄ν° λΆμ νΉμ λͺ¨λΈ λΉλ©λ±μ μν λ°μ΄ν° μ μ₯
- λ³΄ν΅ νλ‘λμ
λ°μ΄ν°λ² μ΄μ€λ₯Ό 볡μ¬ν΄μ λ°μ΄ν° μ¨μ΄νμ°μ€μ μ μ₯νλ€.
-
ꡬ쑰
- 2λ¨κ³λ‘ ꡬμ±λλ€.
- κ°μ₯ λ°λ¨μλ ν
μ΄λΈλ€μ΄ μ‘΄μ¬(ν
μ΄λΈμ μμ
μ μνΈμ ν΄λΉ)
- ν
μ΄λΈλ€μ λ°μ΄ν°λ² μ΄μ€(νΉμ μ€ν€λ§)λΌλ ν΄λ λ°μΌλ‘ ꡬμ±(μμ
μμλ νμΌ)
- ν
μ΄λΈ(ν
μ΄λΈ μ€ν€λ§)
- ν
μ΄λΈμ λ μ½λλ€λ‘ ꡬμ±(ν)
- λ μ½λλ νλ μ΄μμ νλ(컬λΌ)λ‘ κ΅¬μ±(μ΄)
- νλ(컬λΌ)λ μ΄λ¦κ³Ό νμ
, μμ±(Primary Key)μΌλ‘ ꡬμ±λλ€.
π SQL
- SQL : Structured Query Language
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ μλ λ°μ΄ν°(ν
μ΄λΈ)λ₯Ό μ§μνκ±°λ μ‘°μνκ² ν΄μ£Όλ μΈμ΄
- SQLμ 1970λ
λ μ΄λ°μ IBMμ΄ κ°λ°ν ꡬ쑰νλ λ°μ΄ν° μ§μ μΈμ΄
- DDL(Data Definition Language)
- ν
μ΄λΈμ ꡬ쑰λ₯Ό μ μνλ μΈμ΄
- DML(Data Manipulation Language)
- ν
μ΄λΈμμ μνλ λ μ½λλ€μ μ½μ΄μ€λ μ§μ μΈμ΄
- ν
μ΄λΈμ λ μ½λλ₯Ό μΆκ°/μμ /κ°±μ ν΄μ£Όλλ° μ¬μ©νλ μΈμ΄
- ꡬ쑰νλ λ°μ΄ν°λ₯Ό λ€λ£¨λν SQLμ λ°μ΄ν° κ·λͺ¨μ μκ΄μμ΄ μ°μΈλ€.
- λͺ¨λ λμ©λ λ°μ΄ν° μ¨μ΄νμ°μ€λ SQLκΈ°λ°μ΄λ€.
- Spark, Hadoopλ μμΈλ μλλ€.
- SparkSQLκ³Ό HiveλΌλ SQLμΈμ΄κ° μ§μλλ€.
- λ°μ΄ν° λΆμΌμμ μΌνκ³ μ νλ©΄ λ°λμ μ΅νμΌν κΈ°λ³Έ κΈ°μ
- λ°μ΄ν° μμ§λμ΄, λ°μ΄ν° λΆμκ°, λ°μ΄ν° κ³Όνμ λͺ¨λ μμμΌνλ€.
- SQLμ λ¨μ
- ꡬ쑰νλ λ°μ΄ν°λ₯Ό λ€λ£¨λλ° μ΅μ νκ° λμ΄μλ€.
- μ κ·ννμμ ν΅ν΄ λΉκ΅¬μ‘°νλ λ°μ΄ν°λ₯Ό μ΄λ μ λ λ€λ£¨λ κ²μ κ°λ₯νλ μ μ½μ΄ μ¬νλ€.
- λ§μ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ€μ΄ νλ«ν κ΅¬μ‘°λ§ μ§μνλ€.(no nested like JSON)
- κ΅¬κΈ Big Queryλ nested structureλ₯Ό μ§μνλ€.
- λΉκ΅¬μ‘°νλ λ°μ΄ν°λ₯Ό λ€λ£¨λλ° Spark, Hadoopκ³Ό κ°μ λΆμ° μ»΄ν¨ν
νκ²½μ΄ νμν΄μ§λ€.
- SQLλ§μΌλ‘λ λΉκ΅¬μ‘°ν λ°μ΄ν°λ₯Ό μ²λ¦¬νμ§ λͺ»νλ€.
- κ΄κ³ν DBλ§λ€ SQL λ¬Έλ²μ΄ μ‘°κΈμ© μμ΄νλ€.
π Star schema
- Production DBμ© κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μμλ λ³΄ν΅ Star Schemaλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μ μ₯νλ€.
- λ°μ΄ν°λ₯Ό λ
Όλ¦¬μ λ¨μλ‘ λλ μ μ₯νκ³ νμμ Joinνλ€.
- μ€ν λ¦¬μ§ λλΉκ°λνκ³ μ
λ°μ΄νΈκ° μ½λ€.

π Denormalized schema
- λ°μ΄ν° μ¨μ΄νμ°μ€μμ μ¬μ©νλ λ°©μ
- λ¨μ ν
μ΄λΈλ‘ λλ μ μ₯νμ§ μμμΌλ‘ λ³λμ Joinμ΄ νμμλ ννλ₯Ό λ§νλ€.
- μ€ν 리μ§λ₯Ό λ μ¬μ©νμ§λ§ μ‘°μΈμ΄ νμ μκΈ°μ λΉ λ₯Έ κ³μ°μ΄ κ°λ₯νλ€.
π λ°μ΄ν° μ¨μ΄νμ°μ€
νμ¬μ νμν λͺ¨λ λ°μ΄ν°λ₯Ό μ μ₯νλ€.
- μ¬μ ν SQL κΈ°λ°μ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ΄λ€.
- νλ‘λμ
λ°μ΄ν°λ² μ΄μ€μλ λ³λμ¬μΌνλ€.
- OLAP(OnLine Analytical Preocessing) vs. OLTP(OnLine Transaction Processing)
- AWSμ Redshift, GCPμ Big Query, SnowFlake λ±μ΄ λνμ μ΄λ€.
- κ³ μ λΉμ© μ΅μ
vs. κ°λ³λΉμ© μ΅μ
- λ°μ΄ν° μ¨μ΄νμ°μ€λ κ³ κ°μ΄ μλ λ΄λΆ μ§μμ μν λ°μ΄ν°λ² μ΄μ€μ΄λ€.
- μ²λ¦¬ μλκ° μλ μ²λ¦¬ λ°μ΄ν°μ ν¬κΈ°κ° λ μ€μν΄μ‘λ€.
- ETL νΉμ λ°μ΄ν° νμ΄νλΌμΈ
- μΈλΆμ μ‘΄μ¬νλ λ°μ΄ν°λ₯Ό μ½μ΄ λ°μ΄ν° μ¨μ΄νμ°μ€λ‘ μ μ₯ν΄μ£Όλ μ½λλ€μ΄ νμν΄μ§λλ° μ΄λ₯Ό ETLνΉμ λ°μ΄ν° νμ΄νλΌμΈμ΄λΌκ³ λΆλ₯Έλ€.
- λ°μ΄ν° μΈνλΌ
- λ°μ΄ν° μμ§λμ΄κ° κ΄λ¦¬νλ€.
- μ¬κΈ°μ ν λ¨κ³ λ λ°μ νλ©΄ Sparkμ κ°μ λμ©λ λΆμ°μ²λ¦¬ μμ€ν
μ΄ μΌλΆλ‘ μΆκ°λλ€.