π 1οΈβ£ λλ λ°μ΄ν° μ²λ¦¬ (Big Data Handling)
μμ | μ€λͺ | μμ | μΆκ° λ³΄κ° |
---|---|---|---|
νν°μ λ(Partitioning) | ν μ΄λΈμ νΉμ κΈ°μ€μΌλ‘ 물리μ μΌλ‘ λΆλ¦¬ν΄ 쿼리 μλ ν₯μ | μλ³ μ£Όλ¬Έ ν μ΄λΈ νν°μ | μ£Όμ: WHERE μ μ΄ νν°μ ν€μ λ§μ§ μμΌλ©΄ μ€νλ € μ±λ₯ μ ν |
Bulk Insert & Load | λλ λ°μ΄ν° μ λ ₯ μ ν λ²μ λ¬Άμ΄μ μ²λ¦¬ | LOAD DATA INFILE μ¬μ© |
μ£Όμ: Foreign Key, Unique μ μ½μ‘°κ±΄ ν΄μ ν μ²λ¦¬νλ©΄ λ λΉ λ¦ |
Batch Update/Insert | λ€μμ λ°μ΄ν° λ³κ²½ μ νΈλμμ & λ°°μΉλ‘ λλ μ²λ¦¬ | 1000κ±΄μ© μ»€λ° μ²λ¦¬ | λ무 λ§μ 건μ ν λ²μ μ²λ¦¬ μ InnoDB buffer pool μ΄κ³Ό μν |
λ³λ ¬ μ²λ¦¬ | Application λ 벨μμ λ³λ ¬ 쿼리 μ€ν | λ©ν° μ€λ λλ‘ λΆμ° μ²λ¦¬ | DB Connection Pool ν¬κΈ° μ μ μ‘°μ νμ (κ³ΌλΆν λ°©μ§) |
π¬ λΉμ 보κ°: λ¬Όλ₯μΌν°μμ λλ νλ°° μ²λ¦¬
- μ§μλ³ μ°½κ³ (νν°μ λ) β ꡬμλ³ κ΅¬λΆ, νΉμ ꡬμμμλ§ μ°ΎκΈ° λΉ λ¦
- λν νΈλ ν λ°©μ(Bulk Insert) β μ¬λ¬ λ°μ€ ν λ²μ μ κ³ , νμ§λ§ λ무 λ§μΌλ©΄ μ μ¬ λΆκ°
- μμ μ‘°λ³λ‘ λλ μ(Batch) β 1000κ°μ© λλ ν¬μ₯, ν λ²μ λ€ νλ©΄ νΌμ‘
- μ¬λ¬ μ°½κ³ μμ λμ μΆν(λ³λ ¬ μ²λ¦¬) β μΆν κ²μ΄νΈλ§λ€ λμμ μΆκ³ , λ¨ μ§μ μ(μ°κ²° μ)λ μ ν νμ
μΆκ° μ€λ¬΄ ν:
- LOAD DATA INFILEμ LOCAL μ΅μ μ μ μ ν μ¬μ©ν΄μΌ 보μ μ΄μ νΌν μ μμ
- νν°μ λ ν μΈλ±μ€ μ¬κ΅¬μ±μ ν΅ν΄ νν°μ λ΄ ν¨μ¨ ν₯μ κ°λ₯
π 2οΈβ£ λ‘κ·Έ λ°μ΄ν° λΆμ (Log Data Analysis)
π ν΅μ¬ κ°λ
λ°©λ² | μ€λͺ | μμ | μΆκ° λ³΄κ° |
---|---|---|---|
ETL νλ‘μΈμ€ | λ‘κ·Έ μμ§(Extract), μ μ (Transform), μ μ₯(Load) | Raw λ‘κ·Έ β μ μ ν μ΄λΈ | λ‘κ·Έ μ μ¬ μ£ΌκΈ°μ λ°λ₯Έ I/O λ³λͺ© κ³ λ € |
Full-Text Search νμ© | λ‘κ·Έ λ©μμ§ λ΄ νΉμ ν€μλ λΉ λ₯΄κ² κ²μ | FULLTEXT INDEX μ¬μ© |
λλ λ‘κ·Έμμλ Elasticsearch μ°λμ΄ λ ν¨μ¨μ μΌ λλ |
μλμ° ν¨μ νμ© | μκ° μμ λΆμ, μ΄λ²€νΈ κ°κ²© λΆμ | ROW_NUMBER() , LAG() λ± |
λλ λ°μ΄ν° μ νμΌ μ λ ¬ 곡κ°(temp space) ν보 νμ |
JSON λ°μ΄ν° μ²λ¦¬ | JSON νμ λ‘κ·Έ νμ± | JSON_EXTRACT() |
JSON κ΅¬μ‘°κ° λ무 볡μ‘ν λ μ κ·ν ν μ΄λΈλ‘ μ ν κ³ λ € |
π¬ λΉμ 보κ°: CCTV μμ λΆμ μμ€ν
- μμ μμ§(ETL) β λ§€μΌ CCTV μμ μμ§, νμ μλ λΆλΆ μλΌλ΄κ³ μ μ₯
- ν€μλ κ²μ(Full-Text) β βλΉ¨κ° μ· μ μ μ¬λβ κ²μ
- μ΄λ κ²½λ‘ νμΈ(μλμ° ν¨μ) β μ¬λ μ΄λ μκ°, μμΉ λΆμ
- AI μμ ν΄μ(JSON) β μμμ λ¬λ¦° λ€μν νκ·Έ(JSON) ν΄μ
π 3οΈβ£ μ€λ¬΄μμ λ§μ΄ μ°μ΄λ SQL ν¨ν΄
ν¨ν΄ | μ€λͺ | μμ | μΆκ° λ³΄κ° |
---|---|---|---|
Upsert (Insert or Update) | λ°μ΄ν° μμΌλ©΄ UPDATE, μμΌλ©΄ INSERT | INSERT ... ON DUPLICATE KEY UPDATE |
λλ λ°μ΄ν° μ Batch Upsert + νΈλμμ μΌλ‘ μ±λ₯ ν₯μ |
Pivot / Unpivot | 컬λΌμ νμΌλ‘, νμ 컬λΌμΌλ‘ λ³ν | μ‘°κ±΄λΆ μ§κ³ + CASE | λμ Pivot νμ μ, μ ν리μΌμ΄μ λ 벨μμ μ²λ¦¬νλ κ²½μ°λ λ§μ |
Pagination 쿼리 | λμ©λ λ°μ΄ν°μμ νμ΄μ§ λ¨μ μ‘°ν | LIMIT + OFFSET |
νμ΄μ§ λ²νΈκ° 컀μ§λ©΄ OFFSET μ±λ₯ μ ν β ID κΈ°λ° μ»€μ λ°©μ μΆμ² |
Recursive Query | νΈλ¦¬ ꡬ쑰 μ‘°ν | WITH RECURSIVE |
무ν 루ν λ°©μ§ μν΄ MAXRECURSION μ ν μ€μ κΆμ₯ |
π¬ λΉμ 보κ°:
- Upsert = κ³ κ° λͺ λ¨ μ λ°μ΄νΈ, κΈ°μ‘΄ κ³ κ°μ΄λ©΄ μ 보 κ°±μ , μμΌλ©΄ μΆκ°
- Pivot = κ°λ‘λ‘ λ μ¬κ³ νλ₯Ό μΈλ‘λ‘ μ¬λ°°μΉ
- Pagination = μ± λκΈ°κΈ° β μ²μ νμ΄μ§λ λΉ λ₯΄λ, λ·νμ΄μ§λ‘ κ°μλ‘ λλ €μ§ μ μμ
- Recursive = μ‘°μ§λ μμ¬ β μμ¬ β μ΅μμ λνκΉμ§ μ¬λΌκ°κΈ°, λ무 κΉμΌλ©΄ 무ν 루ν μ£Όμ
π’ 4οΈβ£ λ°μ΄ν° μ¨μ΄νμ°μ€ ꡬμΆ
π ν΅μ¬ κ°λ μΆκ°
μμ | μ€λͺ | μΆκ° λ³΄κ° |
---|---|---|
ETL νμ΄νλΌμΈ | λ°μ΄ν° μμ§/μ μ /μ μ₯ μλν | Apache NiFi, Airflow κ°μ μΈλΆ λꡬμ μ°κ³ μ€λ¬΄μμ μμ£Ό μ¬μ© |
Star Schema | Fact + Dimension ν μ΄λΈ κ΅¬μ± | Dimension ν μ΄λΈμ λ³κ²½μ λλΉν΄ Slowly Changing Dimension(SCD) μ λ΅ μ μ© |
λλ μ‘°ν μ΅μ ν | νν°μ λ, μΈλ±μ€ νμ© | InnoDB β Columnstore μ€ν 리μ§(MariaDB Enterprise) κ²ν κ°λ₯ |
OLAP 쿼리 μ΅μ ν | λ€μ°¨μ λΆμ 쿼리 νλ | Materialized Viewλ‘ λ―Έλ¦¬ μ§κ³λ λ°μ΄ν° μ μ§ μ μ±λ₯ UP |
π¬ λΉμ 보κ°: λ°±νμ λ§€μΆ λΆμ μμ€ν
- λ§€μ₯λ³/μλ³λ‘ νλ§€ λ°μ΄ν° μμ§(ETL)
- μ€μμ λ§€μΆ λ°μ΄ν°(Fact), μ£Όλ³μ κ³ κ°/μν/λ§€μ₯ μ 보(Dimension)
- μ μ§μ λΉκ΅, μ μ λλΉ λΆμ β OLAP 쿼리
- μμ£Ό 보λ 리ν¬νΈλ 미리 κ³μ°ν΄ λ³΄κ³ μ(물리ν λ·°)λ‘ μ μ₯
π π 보κ°λ λ Έμ μμ½
π MariaDB μ€μ νμ© μ¬λ‘
ποΈ 1. λλ λ°μ΄ν° μ²λ¦¬
- β
νν°μ
λμΌλ‘ λκ·λͺ¨ ν
μ΄λΈ 쿼리 μλ ν₯μ
- μ£Όμ: WHERE 쑰건 νν°μ ν€ μ΅μ ν
- β
Bulk Insert, Batch μ²λ¦¬λ‘ I/O μ΅μν
- Foreign Key λΉνμ±ν μ μ²λ¦¬ μλ ν₯μ
- β λ³λ ¬ μ²λ¦¬ β μ μ ν Connection Pool μ€μ
- π¬ λ¬Όλ₯μΌν°: μ°½κ³ κ΅¬μλ³ μ 리 + νΈλ, μμ μ‘° λΆλ¦¬
π 2. λ‘κ·Έ λ°μ΄ν° λΆμ
- β
ETLλ‘ λ‘κ·Έ μ μ & μ μ¬
- μ£ΌκΈ°μ λ°°μΉλ‘ I/O λ³λͺ© μλ°©
- β
Full-Text Search, JSON ν¨μ νμ©
- λκ·λͺ¨μΌ κ²½μ° Elasticsearch μ°κ³ κ²ν
- β μλμ° ν¨μ β μ΄λ²€νΈ κ° κ°κ²© λΆμ
- π¬ CCTV μμ λΆμ μμ€ν : νΉμ μκ°λ, μμΉ, μ¬λ μΆμ
π 3. μ€λ¬΄ SQL ν¨ν΄
- β Upsert β Batch μ²λ¦¬λ‘ ν¨μ¨ν
- β Pivot/Unpivot β λμ Pivot μ μ ν리μΌμ΄μ μ°κ³
- β Pagination β 컀μ κΈ°λ° μΆμ²
- β Recursive β MAXRECURSION μ€μ
- π¬ κ³ κ°λͺ λ¨ κ΄λ¦¬, μμ λ³ν, μ± μ₯ λκΈ°κΈ°, μ‘°μ§λ νμ λΉμ
π’ 4. λ°μ΄ν° μ¨μ΄νμ°μ€ ꡬμΆ
- β ETL νμ΄νλΌμΈ + μΈλΆ λꡬ μ°κ³
- β Star Schema κ΅¬μ± β SCD μ μ©
- β OLAP 쿼리 + Materialized View μ κ·Ή νμ©
- π¬ λ°±νμ λ§€μΆ λΆμ: μ§μ λ³, κ³ κ°λ³, μκ°λλ³ λΉ λ₯Έ 리ν¬νΈ μ 곡