data_modeling_dw_dm
Last updated
Last updated
λ°μ΄ν° λͺ¨λΈλ§
λ°μ΄ν°λͺ¨λΈλ§μ΄λ νμ€μ μ‘΄μ¬νλ λ°μ΄ν°λ₯Ό μ μ°ννκΈ° μν΄ μΆμν λ 벨μ κ²°μ νμ¬ λ¨μν, κ°μν, λ¬Έμνμν€λ μμ
κ΄λ¦¬λμμ΄ λλ μ 보λ₯Ό μΆμΆνκ³ κ·Έ μ λ³΄λ€ κ°μ κ΄κ³λ₯Ό μ€μ νμ¬ μκ°ννλ κ³Όμ μ λ§ν©λλ€.
λ°μ΄ν° λͺ¨λΈλ§μ νλ μ΄μ λ ν¬κ² ν¨μ¨κ³Ό μ±λ₯ ν₯μ, μ μ°μ± ν보, μ μ§λ³΄μμ μ©μ΄μ μΈ‘λ©΄μμ μκ°ν μ μμ΅λλ€.
μ½κΈ° μ€ν€λ§μ μ°κΈ° μ€ν€λ§μ λΉκ΅
https://www.oreilly.com/content/hadoop-what-you-need-to-know/
μμ€ λ°μ΄ν°μ μ€ν€λ§ λ³κ²½μ μ²λ¦¬νλ ν κ°μ§ λ°©λ²μ λ°μ΄ν°λ₯Ό μΈ λ μ€ν€λ§λ₯Ό μ μνλ λ°©μ(Schema-on-write)μμ λ°μ΄ν°λ₯Ό μ½μ λ μ€ν€λ§λ₯Ό μ μνλ λ°©μ(schema-on-read)μΌλ‘ μ€κ³λ₯Ό μ΄λνλ κ²μ λλ€.
λ°μ΄ν° κ΅¬μ‘°κ° μ¬μ μ μ μλΌμΌ νλ (μ μ₯ μμ μ€ν€λ§ μ μ©) κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μλ λ¬λ¦¬ νμΌ μμ€ν μ΄λ μ€λΈμ νΈ μ€ν μ΄λ λ°μ΄ν°λ₯Ό μ΄λ»κ² μ°λ μκ΄νμ§ μμ΅λλ€. μ½λ μμ μ€ν€λ§ μ μ©νμ¬ λ§μ°° μλ μ£Όμ μ΄ κ°λ₯νκ² ν©λλ€.
μ°κΈ° μ€ν€λ§(Schema-on-write)
μμ€μμ λ°μ΄ν°λ₯Ό μΆμΆν λ ꡬ쑰(μ€ν€λ§)κ° μ μλκ³ λ°μ΄ν°κ° λ°μ΄ν° λ μ΄ν¬ λλ S3 λ²ν·μ κΈ°λ‘λ¨, κ·Έλ° λ€μ μμ§μ λ‘λ λ¨κ³κ° μ€νλλ©΄ λ°μ΄ν°κ° μμΈ‘ κ°λ₯ν νμμ μ μλ ν μ΄λΈ κ΅¬μ‘°λ‘ λ‘λλ μ μμ΅λλ€.
κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ μ ν΅μ μΈ μ κ·Ό λ°©μμΌλ‘ μ€ν€λ§λ λͺ μμ μ΄κ³ λ°μ΄ν° λ² μ΄μ€λ μ°μ¬μ§ λͺ¨λ λ°μ΄ν°κ° μ€ν€λ§λ₯Ό λ°λ₯΄κ³ μμμ 보μ₯ν©λλ€.
μ μ (μ»΄νμΌ νμ) νμ νμΈκ³Ό λΉμ·ν©λλ€.
μ½κΈ° μ€ν€λ§(Schema-on-read)
μ€ν€λ§μ λν μ격ν μ μ μμ΄ λ°μ΄ν°κ° λ°μ΄ν° λ μ΄ν¬, S3 λ²ν· λλ κΈ°ν μ€ν λ¦¬μ§ μμ€ν μ κΈ°λ‘λλ ν¨ν΄μΌλ‘ λ°μ΄ν°μ μ€ν€λ§λ μ½μ λκΉμ§ μ μ μμΌλ―λ‘ schema-on-readλΌκ³ ν©λλ€. μ¦, λ°μ΄ν°λ₯Ό μ€ν€λ§μ λ§κ² λ°μ΄ν°λ² μ΄μ€κ° κΈ°λνλ ννλ‘ μ ννκΈ° μ κΉμ§λ λ°μ΄ν°λ₯Ό μ μ₯ν μ μλ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μλ λ¬λ¦¬ λ°μ΄ν°λ₯Ό μλ¬΄λ° μ²λ¦¬ μμ΄ μ μ₯ν μ μμ΅λλ€.
λ°μ΄ν° ꡬ쑰λ μ묡μ μ΄κ³ λ°μ΄ν°λ₯Ό μ½μ λλ§ ν΄μλ©λλ€.
νλ‘κ·Έλλ° μΈμ΄μμ λμ (λ°νμ) νμ νμΈκ³Ό μ μ¬ν©λλ€.
μ΄ ν¨ν΄μ μ€ν 리μ§μ λ°μ΄ν°λ₯Ό μ°λ λ°λ λ§€μ° ν¨μ¨μ μ΄μ§λ§ λ‘λ λ¨κ³μ 볡μ‘μ±μ μΆκ°νκ³ νμ΄νλΌμΈμμ λͺ κ°μ§ μ£Όμ μλ―Έλ₯Ό κ°μ΅λλ€. κΈ°μ μ μΈ κ΄μ μμ S3 λ²ν·μμ μ΄λ¬ν λ°©μμΌλ‘ μ μ₯λ λ°μ΄ν°λ₯Ό μ½λ κ²μ λ§€μ° μ¬μλλ€.
λ‘λ λ¨κ³μμ μ€ν€λ§κ° μ μ°ν λ°μ΄ν°λ₯Ό μ½λ λ° μ¬μ©νλ λͺ¨λ λꡬμ ν΅ν©λλ λ°μ΄ν° μΉ΄νλ‘κ·Έλ₯Ό νμ©ν©λλ€. λ°μ΄ν° μΉ΄νλ‘κ·Έλ λ°μ΄ν° λ μ΄ν¬ λ° μ¨μ΄νμ°μ€μ λ°μ΄ν°μ λν λ©νλ°μ΄ν°λ₯Ό μ μ₯νκ³ λ°μ΄ν°μΈνΈμ ꡬ쑰μ μ μλ₯Ό λͺ¨λ μ μ₯ν μ μμ΅λλ€. AWS Glue λ°μ΄ν° μΉ΄νλ‘κ·Έ λ° Apache Atlasλ λ리 μ¬μ©λλ λ°μ΄ν° μΉ΄νλ‘κ·Έμ λλ€.
λ‘λ λ¨κ³μ λ Όλ¦¬λ λμ± λ³΅μ‘ν΄μ§λλ€. μ€ν€λ§ λ³κ²½μ λμ μΌλ‘ μ²λ¦¬νλ λ°©λ²μ κ³ λ €ν΄μΌ ν©λλ€.
λ°μ΄ν° μΉ΄νλ‘κ·Έ μμ±λΏλ§ μλλΌ μ‘°μ§μμ λ°μ΄ν°κ° μ¬μ©λλ λ°©μμ λν νμ€ λ° νλ‘μΈμ€λ₯Ό μ μνλ λ°μ΄ν° κ±°λ²λμ€μ λν΄ μ§μ§νκ² κ³ λ―Όν΄μΌ ν©λλ€.
λ€μ°¨μ λͺ¨λΈλ§
λΆμμ 무μ 볡μ‘ν μ§μμ μ μν μ²λ¦¬λ₯Ό λͺ©νλ‘ λΆμμμλ³ νΉμ±μ κ³ λ €νμ¬ DBMSμ μ±λ₯κ³Ό μ¬μ©μ νΈλ¦¬μ±μ 보μ₯ν κ΅¬μ‘°λ‘ μ€κ³νλ κ²μ λλ€.
μ¬μ©μλ λ€μν κ΄μ μμμ λΉμ¦λμ€ λΆμμ μꡬνκ³ , μ΄λ₯Ό μ§μνκΈ° μν΄ λ°μ΄ν°λͺ¨λΈμ λ€μ°¨μμ νμμΌλ‘ νννκ³ μ 보 λΆμμ μν΄ λ€μ 볡μ‘ν ν΅ν© DWμ λ°μ΄ν°λ₯Ό μ§μ μ‘μΈμ€ ν기보λ€λ λ³λμ λ€μ°¨μ λ°μ΄ν° λͺ¨λΈμ ν΅ν΄ μ μνκ³ μ¬μ©μκ° μ½κ² μ΄ν΄ν μ μλ κΈ°λ°μ μ 곡ν©λλ€.
μ₯μ
μ μ¬μ μΈ λΉμ¦λμ€ Viewλ₯Ό μ 곡
ν¬κ΄μ μΈ λ°μ΄ν° κ²μ λ° λΆμμ κ°λ₯
λ¨μ
λΉμ¦λμ€ μ¬μ©μκ° λͺ¨λΈμ μ΄ν΄/λΆμνκΈ°κ° κ³€λ
Toolμμ μ 곡νλ Queryκ° ν¨κ³Όμ μ΄μ§ λͺ»ν¨
물리μ μΈ μ§μ μ±λ₯ μ ν
Denormalization νμ
λ€μ°¨μλͺ¨λΈλ§ λ°©λ²
μ κ·νλ λ°μ΄ν° λͺ¨λΈμ μ€λ³΅κ³Ό νλ μκ° μμ ν μ΄λΈμ λ§λ€λ€ 보λ μ λ°μ΄νΈκ° λ§€μ° λΉ λ₯΄κ² μ΄λ€μ§λλ€.
λ°μ΄ν° μ¨μ΄νμ°μ€μμλ μΌλ°μ μΌλ‘ μ κ·ννμ§ μλ λ°μ΄ν° λͺ¨λΈμ μ νΈνλ©° μ κ·ννμ§ μμ λͺ¨λΈμμλ κ° ν μ΄λΈμ κ°λ₯ν ν λ§μ κ΄λ ¨ νΉμ±μ μ μ₯ν©λλ€. κ·Έλ¬λ©΄ νμν λͺ¨λ μ 보λ₯Ό μ·¨ν©ν λλ λ°μ΄ν°λ₯Ό ν λ²λ§ μ²λ¦¬ν΄λ λ©λλ€.
Star Schema(μ°¨μ λͺ¨λΈλ§(dimensional modeling))
https://www.oreilly.com/library/view/hands-on-business-intelligence/9781838824303/01337b15-338a-4527-8870-32782a65f522.xhtml
1996λ μ λ°κ°λ λν ν΄λ², λ§κΈ° λ‘μ€ κ³΅μ μ The Data Warehouse Toolkit(wiley,2004) 1νμμ μ²μ μκ°λμμΌλ©° λͺ κ°μ μ°¨μκ³Ό ν©νΈ ν μ΄λΈ μ§ν©μΌλ‘ ꡬμ±λ©λλ€. ν μ΄λΈ κ΄κ³κ° μκ°νλ λ μ¬μ€ ν μ΄λΈμ΄ κ°μ΄λ°μ μκ³ μ°¨μ ν μ΄λΈλ‘ λλ¬μΈκ³ μλ€λ μ¬μ€μ λΉλ‘―λμ΅λλ€.
μ€ν μ€ν€λ§λ λ°μ΄ν°λ₯Ό λΉμ κ·νν©λλ€. μΌλΆ μ°¨μ ν μ΄λΈμ μ€λ³΅ μ΄μ μΆκ°νμ¬ λ°μ΄ν°λ₯Ό λ λΉ λ₯΄κ³ μ½κ² 쿼리νκ³ μμ ν μ μμ΅λλ€. κ³μ° λΉμ©μ΄ λ§μ΄ λλ μ‘°μΈ μμ μ νΌν¨μΌλ‘μ¨ μΏΌλ¦¬ μλλ₯Ό λμ΄κΈ° μν΄ λ°μ΄ν° λͺ¨λΈμ μΌλΆ μ€λ³΅μ±(λ°μ΄ν° μ€λ³΅)μ κ΅ννλ κ²μ λλ€.
ν©νΈ ν μ΄λΈμ μ κ·νλμ§λ§ μ°¨μ ν μ΄λΈμ μ κ·νλμ§ μμ΅λλ€. ν©νΈ ν μ΄λΈμ λ°μ΄ν°λ ν©νΈ ν μ΄λΈμλ§ μ‘΄μ¬νμ§λ§ μ°¨μ ν μ΄λΈμ μ€λ³΅ λ°μ΄ν°λ₯Ό 보μ ν μ μμ΅λλ€.
ν©νΈ ν μ΄λΈμλ κ° μ°¨μκ³Ό κ΄λ ¨λ λͺ¨λ νλμ΄ κΈ°λ‘λ©λλ€.
ν©νΈ ν μ΄λΈμ μ€νμ€ν€λ§μμμ μ μΌνκ² μ κ·νλ ν μ΄λΈλ‘μ¨ μΈλν€(Foreign Key)μ μμΈ λ°μ΄ν°(Numeric Data) κ°μ κ°μ§λ μ΄(Column)λ‘ κ΅¬μ±λ©λλ€.
μ°¨μ ν μ΄λΈμ λΆμ λμ μμλ‘ κ΅¬μ±λ©λλ€.
μ°¨μμ΄λ μ¬μ©μκ° λ°μ΄ν°λ₯Ό λΆμνκ³ μ νλ μ£Όμ΄μ§ μ¬μ€(Fact)μ λν μΆκ°μ μΈ λλ μ£Όμν κ΄μ (View)μ μ 곡νλ νΉμ±μ κ°μ§λλ€. μ°¨μ ν μ΄λΈμ μμ μ (Descriptive) μ 보λ₯Ό μ μ₯νλ©° λΉμ κ·νλ(Denormalized) λ°μ΄ν°κ΅¬μ‘°λ₯Ό κ°μ§λλ€.
Snowflake Schema
https://www.oreilly.com/library/view/hands-on-business-intelligence/9781838824303/01337b15-338a-4527-8870-32782a65f522.xhtml
μ°¨μμ΄ νμμ°¨μμΌλ‘ λ μΈλΆνλ©λλ€.
μ€νμ€ν€λ§μ ν©νΈ(Fact) ν μ΄λΈ ꡬ쑰μ λμΌνκ² μ μ§νλ©΄μ μ°¨μν μ΄λΈμ΄ μ κ·ν (μΌλ°μ μ 3 μ κ·ν)λ κ΅¬μ‘°λ‘ μ μ₯곡κ°μ μ΅μνν©λλ€.
μ 3 μ κ·ν(3NF - Third Normal Form)μ μ κ·νλ₯Ό ν΅ν΄ λ°μ΄ν° μ€λ³΅μ±μ μ€μ΄λ λ°©λ²μ λλ€. μμ ν μ κ·νλ κ²μΌλ‘ κ°μ£Όλλ λ°μ΄ν°λ² μ΄μ€μ κ³΅ν΅ νμ€μ λλ€.
Star Schema vs Snowflake Schema
https://www.javatpoint.com/data-warehouse-star-schema-vs-snowflake-schema
Snowflake μ€ν€λ§λ λμ μ κ·ν νμ€μ λ³΄λ€ μ격νκ² μ€μνκΈ° λλ¬Έμ μ€ν λ¦¬μ§ ν¨μ¨μ±μ΄ λ λμ§λ§ 쿼리 μ±λ₯μ λΉμ κ·νλ λ°μ΄ν° λͺ¨λΈλ§νΌ μ’μ§ μμ΅λλ€. μ€ν μ€ν€λ§μ κ°μ λΉμ κ·νλ λ°μ΄ν° λͺ¨λΈμ λ°μ΄ν° μ€λ³΅μ΄ λ λ§μ μ€λ³΅ λ°μ΄ν° λΉμ©μΌλ‘ 쿼리 μ±λ₯μ΄ λ λΉ¨λΌμ§λλ€.
μ₯μ
κ°λ¨ν λͺ¨λΈλ§ κΈ°λ², μ¬μ©μμκ² μΉμ, Join μ΅μνλ‘ μ±λ₯ ν₯μ
μ μ Storage μ°¨μ§, λ°μ΄ν° μ€λ³΅μ± μ κ±°, μ μ°μ±, κ΄λ¦¬μ μ©μ΄μ± μ 곡
λ¨μ
λ°μ΄ν° μ€λ³΅ λ° λΆμΌμΉ κ°λ₯μ±, λ§μ Storage μ°¨μ§, Fact Tableκ° Join μ΄λ €μ
볡μ‘ν λͺ¨λΈλ§ κΈ°λ², λ§μ μ‘°μΈμμ μΌλ‘ κ²μμλ μ ν, λμ μ μ§ λ³΄μ λΉμ©
https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0_%EB%A7%88%ED%8A%B8
ODS μμ
μμ² μμ€ν μμ μΆμΆν λ°μ΄ν°λ₯Ό μ μ¬ν ν λ³ν, μ μ μμ μ μννλ μμ, μμ² ν μ΄λΈμ ꡬ쑰λ₯Ό κ±°μ μ μ§νκ³ , νμμ λ°λΌ μμ ν μ΄λΈμ μμ±/μμ
DW μμ
ODSμ λ°μ΄ν°λ₯Ό μ μ νμ¬ μ£Όμ λ³λ‘ ν΅ν©ν ν μ μ¬μ μΈ κ΄μ μμ λ°μ΄ν° ꡬμΆ, μ΅μ’ μ μΌλ‘ μμΈ μμ€κΉμ§ μ¬μ©μ λΆμμ΄ κ°λ₯νλλ‘ μμΈ λ°μ΄ν°λ₯Ό 보μ , λΆμ λꡬ λ° λ§νΈλ₯Ό μν μμ² λ°μ΄ν° μ 곡
DM μμ
μ μ¬μ λ°μ΄ν° λΆμμ μνμ¬ ν΅ν©μ μΌλ‘ κ³Όκ±°, νμ¬ λ°μ΄ν°λ₯Ό μ§μ½νμ¬ μ μ§, λ³΄κ³ μμ λ°μ΄ν° 곡κΈμμΌλ‘ νμ©, λ€μ°¨μ λͺ¨λΈ μ μ©, μ¬μ©λΉλκ° λμ λ°μ΄ν° μ νμ λν μν μλ 보μ₯
ODS
ODSλ DW λ°μ΄ν°μ μ€λΉκ³΅κ°, μ΄μκ³ λ°μ΄ν°λ₯Ό κ°μ Έμ μ μ , ν΅ν©, λ³ν, 보κ΄νκ³ DWλ‘ κ³΅κΈν΄ μ£Όλ, DWλ‘ κ°λ μ€κ°λ¨κ³ μ λ°μ΄ν° μ μ₯μ₯μ
ODSλ μΌλ°μ μΌλ‘ μμ½λ°μ΄ν°κ° μλ μμ λ°μ΄ν°λ₯Ό ν¬ν¨νκ³ μκΈ° λλ¬Έμ ν₯ν μꡬ 쑰건 λ³νμ λμνκΈ° μ½κ³ DWμ λ°μ΄ν°μ λ¬Έμ κ° μκ²Όμ λ μ μν λ³΅κ΅¬κ° κ°λ₯ν©λλ€.
λ°μ΄ν° μ¨μ΄νμ°μ€(DW)
μ¬λ¬ λ€λ₯Έ OLTP μμ€ν μ λ°μ΄ν°λ₯Ό ν©μ³ λ°μ΄ν° λΆμ λͺ©μ μΌλ‘ μ°κΈ° μν΄ μ€λΉλ λ°μ΄ν°λ² μ΄μ€
λ°μ΄ν° μ¨μ΄νμ°μ€λ λΉμ¦λμ€ μΈν 리μ μ€(BI) νλ, νΉν λΆμμ νμ±ν λ° μ§μνκΈ° μν΄ μ€κ³λ λ°μ΄ν° κ΄λ¦¬ μμ€ν μ ν μ νμΌλ‘ λ°μ΄ν°λ₯Ό μ μ₯ λ° κ΄λ¦¬νκΈ° μν κ΄κ³ν λ°μ΄ν°λ² μ΄μ€
λ°μ΄ν° μ¨μ΄νμ°μ€ νΉμ±
μ μ°¨ μ§ν₯μ (Subject-oriented) : λ°μ΄ν° μ¨μ΄νμ°μ€λ νΉμ μ μ°¨ λλ κΈ°λ₯ μμ(μ: μμ )μ λν λ°μ΄ν°λ₯Ό λΆμν μ μμ
ν΅ν© : λ°μ΄ν° μ¨μ΄νμ°μ€λ μ΄μ§μ μΈ μμ€λ‘λΆν° μ»μ λ€μν λ°μ΄ν° μ ν κ°μ μΌκ΄μ±μ μμ±
λΉ νλ°μ± : μΌλ¨ λ°μ΄ν° μ¨μ΄νμ°μ€μ μ μ₯λλ©΄, λ°μ΄ν°λ μμ μ μΈ μνκ° λλ©° λ³κ²½λμ§ μμ
μκ° λ³μ΄μ : λ°μ΄ν° μ¨μ΄νμ°μ€ λΆμμ μκ° κ²½κ³Όμ λ°λ₯Έ λ³νλ₯Ό νμΈν¨
μν°νλΌμ΄μ¦ λ°μ΄ν° μ¨μ΄νμ°μ€(EDW)
μ€μ μ§μ€μ μ¨μ΄νμ°μ€μ λλ€. μ μ¬μ μΌλ‘ μμ¬ κ²°μ μ§μ μλΉμ€λ₯Ό μ 곡ν©λλ€.
λ°μ΄ν°λ₯Ό ꡬμ±νκ³ νννκΈ° μν ν΅ν©λ μ κ·Ό λ°©μμ μ 곡ν©λλ€.
μ£Όμ μ λ°λΌ λ°μ΄ν°λ₯Ό λΆλ₯νκ³ ν΄λΉ ꡬλΆμ λ°λΌ μ‘μΈμ€ κΆνμ λΆμ¬νλ κΈ°λ₯μ μ 곡ν©λλ€.
λ°μ΄ν° λ§νΈ(DM)
λ°μ΄ν° μ¨μ΄νμ°μ€κ° κΈ°μ μ λ°μ μ€μ λ°μ΄ν° μ€ν λ¦¬μ§ μν μ νλ€λ©΄, λ°μ΄ν° λ§νΈλ μΌλΆ μ νλ μ¬μ©μ κ·Έλ£Ήμκ² κ΄λ ¨ λ°μ΄ν°λ₯Ό μ 곡ν©λλ€. λ°μ΄ν° μ‘μΈμ€λ₯Ό κ°μννκ³ , λΆμ μλλ₯Ό λμ΄λ©°, μ체 λ°μ΄ν°μ λν ν΅μ λ ₯μ λΆμ¬νκ² λ©λλ€.
λ°μ΄ν° λ§νΈλ νΉμ μꡬμ λ§λ μ²λ¦¬λ λ°μ΄ν°λ₯Ό μ μ₯ν©λλ€.
https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/
https://www.oreilly.com/library/view/the-self-service-data/9781492075240/