short terms Kimball’s Dimensional Modeling - Kimball’s Dimensional Modeling Kimball’s Dimensional Modeling 차원 모델링은 데이터 웨어하우스레벨에서 유용한 데이터 모델링 기법입니다.Star Schema로 데이터를 정의하는 기법으로, 기존의 테이블을 변경하지 않고 새로운 컬럼을 추가하는 것과 같은 효과를 누릴 수 있게 합니다. 즉, 확장성과 재사용성 면에서 뛰어난 장점이 있습니다. 1. Design Process설계 프로세스는 다음 네 단계로 정의할 수 있습니다. business Process 를 정의Fact의 성능 메트릭을 생성하거나 캡쳐하는 단계e.g.) 주문접수, 보험청구, 수강생 등록 등 운영 활동grain 을 정의데이터를 유일하게 식별하는 식별자 → PK 또는 여러 키의 조합(하단 링크)이 될 수 있음Fact Table Surrogate Key | Kimball Dimensional Modeling TechniquesFact table surrogate keys, which are not associated with any dimension, are assigned sequentially during the ETL load process.https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/fact-surrogate-key/dimensions를 정의Business Process에 대해 육하원칙의 정보를 추가합니다.누가, 무엇을, 어디서, 언제, 왜, 어떻게팩트를 필터링, 그룹화하기 위한 설명 속성facts를 정의Business Process의 결과이며, 측정값들이 포함됩니다.e.g.) 소액 판매 거래에서, 판매된 제품의 수량과 가격 2. Fact ModelingFact는 수치 측정의 결과 기록과 같습니다.수치 측정은 세 가지로 나뉩니다.가산가장 유연하고 유용한 팩트 측정입니다.전체 차원에 걸친 합산반가산일부 차원에서 합산e.g.) 잔액 등비가산비율 등수치 측정 결과는 null이 될 수 있습니다. (필수 키가 null이 아니면 됩니다.)\Fact 모델 간 직접적인 Join이 발생하면 안 됩니다. (https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/multipass-sql/)필수 키차원 연결을 위한 FK, 선택적 Dimension Key, 날짜/시간 스탬프가 항상 포함되어야 합니다.쿼리에서 발생하는 계산, 동적 집계의 기본 대상입니다.팩트의 종류는 다음과 같습니다.Transaction공간, 시간상 한 지점에서의 측정 이벤트가장 흔히 사용되는 유형Periodic Snapshot특정 기간동안의 측정 데이터를 지표화하여 저장비즈니스의 시간 경과에 따른 변화를 추적하고 분석하는 데 사용e.g.) 매월 말 일의 재고량, 매주 매출액, 분기별 고객 등록 수, 등Factless수치 결과가 없지만, 차원 엔티티가 있는 테이블e.g.) 수업 참석 이벤트 등Aggregate기간 외 다른 속성으로 집계 요약한 테이블성능 향상을 위해, 특정 측정 항목을 기준으로 그룹화된 데이터를 저장.큰 데이터 집합을 빠르게 집계, 분석하기 위한 테이블Consolidated같은 수준의 여러 팩트를 한 팩트 테이블로 결합시킨 경우 3. Dimension Modeling일반적으로 카디널리티가 낮은 텍스트 속성이 많습니다.비정규화가 특징입니다.하위 요소를 정규화할 수 있지만, 그 경우 star schema가 아닌 snowflake schema가 됩니다.Snowflaked Dimension | Kimball Dimensional Modeling TechniquesA flattened denormalized dimension table contains exactly the same information as a snowflaked dimension.https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/snowflake-dimension/star schema는 단순성과 속도라는 두 가지 목표를 달성하게 합니다.최대한 null값을 포함하지 않아야 합니다.SCD Types (Slowly Changing Dimension Techniques)주로 type 0~3을 사용하며, 4~7은 조인이 필요한 차원을 생성하게 되어, 복잡성, 비용 등 측면에서 부정적일 수 있음. (https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/dimension-to-dimension-join/)Type 0 : Retain Original원본 유지 속성 (영구적, 불변)Type 1 : Overwrite이전 속성 값을 덮어씀 (최근 할당 기준)Type 2 : Add new row새 행을 추가함 (설명 관련 여러 행 존재할 수 있음)다중 값 차원을 유지하려는 경우e.g.) 은행 계좌들과 개별 고객 간의 다대다 관계해당 타입은 다음 세 가지 속성을 추가해야 함유효 날짜 또는 시간만료 날짜 또는 시간id (중복 방지용 구분자)Type 3 : Add new attribute이전 속성 값을 덮어씀 (Type 1과 동일)기존 속성과 새롭게 추가된 속성을 동시에 유지하면서, 사용자가 선택하여 그룹화, 필터링할 수 있게 하기 위한 용도.거의 드물게 사용됨Type 4 : Add mini-dimension속성 그룹이 빠르게 변경되는 경우에 사용수백만 행의 차원 테이블에서 자주 사용되는 속성의 경우, 빠르게 변경되지 않더라도 고려할 수 있음e.g. 고객 데이터에서 건강 상태 차원이 자주 변경되는 경우건강 상태를 별도로 관리하여 미니 차원으로 생성고객 상태가 변경될 때, 새로운 행을 추가하는 대신 미니 차원만 변경Type 5 : Add mini-dimension and Type 1 OutriggerType 1 + Type 4Outrigger차원 테이블과 1:1 관계를 가지며, 테이블의 일부 속성을 분리하여 저장하는 역할차원 테이블의 변경 없이 새로운 정보를 관리할 수 있게 하기 위함e.g. 고객 데이터에서 건강 상태 차원이 자주 변경되는 경우Outrigger Table에 최신 건강 상태 덮어씌움Mini-dimension에 건강 상태 정보를 추가Type 6 : Add Type 1 Attributes to Type 2 DimensionType 2 + Type 1차원 테이블의 변경을 다루는 방식Type 2이던 차원에 Type 1을 부여함. 즉 주 타입은 2e.g. 제품 차원 테이블제품의 가격이 변동될 때, Type 1으로 업데이트나머지 속성들은 Type 2로 유지Type 7 : Dual Type 1 and Type 2 Dimensions차원 테이블의 변경을 다루는 방식두 타입의 차원 테이블로 복제하여, PK를 공유하도록 하여 병합e.g. 사원 차원 테이블직책과 부서는 Type 1 테이블에 저장, 실시간 조회입사일은 Type 2 테이블에 저장, 히스토리 추적Behavior Study Groups고객 행태 분석을 위해 복잡하고 반복적인 분석이 필요한 경우, 분석 결과 고객 Key만 저장하는 스터디 그룹을 만들어 유지할 수 있음.일종의 필터로서 고객의 Key로 분리할 수 있음.스터디그룹 간 교집합, 차집합, 합집합으로 파생 스터디그룹을 생성할 수 있음. 공유하기 게시글 관리 Jay Chamber 저작자표시 비영리 동일조건 'short terms' 카테고리의 다른 글 Language Code, ISO 639, FLORES-200 (0) 2022.11.25 NaN (0) 2021.05.24 [draft] Streaming VS Time series (0) 2021.05.17 Dialect (JPA hibernate) (0) 2021.05.07 Eviction, Passivation, Expiration (0) 2021.05.07 Contents 당신이 좋아할만한 콘텐츠 Language Code, ISO 639, FLORES-200 2022.11.25 NaN 2021.05.24 [draft] Streaming VS Time series 2021.05.17 Dialect (JPA hibernate) 2021.05.07 댓글 0 + 이전 댓글 더보기
Kimball’s Dimensional Modeling 차원 모델링은 데이터 웨어하우스레벨에서 유용한 데이터 모델링 기법입니다.Star Schema로 데이터를 정의하는 기법으로, 기존의 테이블을 변경하지 않고 새로운 컬럼을 추가하는 것과 같은 효과를 누릴 수 있게 합니다. 즉, 확장성과 재사용성 면에서 뛰어난 장점이 있습니다. 1. Design Process설계 프로세스는 다음 네 단계로 정의할 수 있습니다. business Process 를 정의Fact의 성능 메트릭을 생성하거나 캡쳐하는 단계e.g.) 주문접수, 보험청구, 수강생 등록 등 운영 활동grain 을 정의데이터를 유일하게 식별하는 식별자 → PK 또는 여러 키의 조합(하단 링크)이 될 수 있음Fact Table Surrogate Key | Kimball Dimensional Modeling TechniquesFact table surrogate keys, which are not associated with any dimension, are assigned sequentially during the ETL load process.https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/fact-surrogate-key/dimensions를 정의Business Process에 대해 육하원칙의 정보를 추가합니다.누가, 무엇을, 어디서, 언제, 왜, 어떻게팩트를 필터링, 그룹화하기 위한 설명 속성facts를 정의Business Process의 결과이며, 측정값들이 포함됩니다.e.g.) 소액 판매 거래에서, 판매된 제품의 수량과 가격 2. Fact ModelingFact는 수치 측정의 결과 기록과 같습니다.수치 측정은 세 가지로 나뉩니다.가산가장 유연하고 유용한 팩트 측정입니다.전체 차원에 걸친 합산반가산일부 차원에서 합산e.g.) 잔액 등비가산비율 등수치 측정 결과는 null이 될 수 있습니다. (필수 키가 null이 아니면 됩니다.)\Fact 모델 간 직접적인 Join이 발생하면 안 됩니다. (https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/multipass-sql/)필수 키차원 연결을 위한 FK, 선택적 Dimension Key, 날짜/시간 스탬프가 항상 포함되어야 합니다.쿼리에서 발생하는 계산, 동적 집계의 기본 대상입니다.팩트의 종류는 다음과 같습니다.Transaction공간, 시간상 한 지점에서의 측정 이벤트가장 흔히 사용되는 유형Periodic Snapshot특정 기간동안의 측정 데이터를 지표화하여 저장비즈니스의 시간 경과에 따른 변화를 추적하고 분석하는 데 사용e.g.) 매월 말 일의 재고량, 매주 매출액, 분기별 고객 등록 수, 등Factless수치 결과가 없지만, 차원 엔티티가 있는 테이블e.g.) 수업 참석 이벤트 등Aggregate기간 외 다른 속성으로 집계 요약한 테이블성능 향상을 위해, 특정 측정 항목을 기준으로 그룹화된 데이터를 저장.큰 데이터 집합을 빠르게 집계, 분석하기 위한 테이블Consolidated같은 수준의 여러 팩트를 한 팩트 테이블로 결합시킨 경우 3. Dimension Modeling일반적으로 카디널리티가 낮은 텍스트 속성이 많습니다.비정규화가 특징입니다.하위 요소를 정규화할 수 있지만, 그 경우 star schema가 아닌 snowflake schema가 됩니다.Snowflaked Dimension | Kimball Dimensional Modeling TechniquesA flattened denormalized dimension table contains exactly the same information as a snowflaked dimension.https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/snowflake-dimension/star schema는 단순성과 속도라는 두 가지 목표를 달성하게 합니다.최대한 null값을 포함하지 않아야 합니다.SCD Types (Slowly Changing Dimension Techniques)주로 type 0~3을 사용하며, 4~7은 조인이 필요한 차원을 생성하게 되어, 복잡성, 비용 등 측면에서 부정적일 수 있음. (https://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/dimension-to-dimension-join/)Type 0 : Retain Original원본 유지 속성 (영구적, 불변)Type 1 : Overwrite이전 속성 값을 덮어씀 (최근 할당 기준)Type 2 : Add new row새 행을 추가함 (설명 관련 여러 행 존재할 수 있음)다중 값 차원을 유지하려는 경우e.g.) 은행 계좌들과 개별 고객 간의 다대다 관계해당 타입은 다음 세 가지 속성을 추가해야 함유효 날짜 또는 시간만료 날짜 또는 시간id (중복 방지용 구분자)Type 3 : Add new attribute이전 속성 값을 덮어씀 (Type 1과 동일)기존 속성과 새롭게 추가된 속성을 동시에 유지하면서, 사용자가 선택하여 그룹화, 필터링할 수 있게 하기 위한 용도.거의 드물게 사용됨Type 4 : Add mini-dimension속성 그룹이 빠르게 변경되는 경우에 사용수백만 행의 차원 테이블에서 자주 사용되는 속성의 경우, 빠르게 변경되지 않더라도 고려할 수 있음e.g. 고객 데이터에서 건강 상태 차원이 자주 변경되는 경우건강 상태를 별도로 관리하여 미니 차원으로 생성고객 상태가 변경될 때, 새로운 행을 추가하는 대신 미니 차원만 변경Type 5 : Add mini-dimension and Type 1 OutriggerType 1 + Type 4Outrigger차원 테이블과 1:1 관계를 가지며, 테이블의 일부 속성을 분리하여 저장하는 역할차원 테이블의 변경 없이 새로운 정보를 관리할 수 있게 하기 위함e.g. 고객 데이터에서 건강 상태 차원이 자주 변경되는 경우Outrigger Table에 최신 건강 상태 덮어씌움Mini-dimension에 건강 상태 정보를 추가Type 6 : Add Type 1 Attributes to Type 2 DimensionType 2 + Type 1차원 테이블의 변경을 다루는 방식Type 2이던 차원에 Type 1을 부여함. 즉 주 타입은 2e.g. 제품 차원 테이블제품의 가격이 변동될 때, Type 1으로 업데이트나머지 속성들은 Type 2로 유지Type 7 : Dual Type 1 and Type 2 Dimensions차원 테이블의 변경을 다루는 방식두 타입의 차원 테이블로 복제하여, PK를 공유하도록 하여 병합e.g. 사원 차원 테이블직책과 부서는 Type 1 테이블에 저장, 실시간 조회입사일은 Type 2 테이블에 저장, 히스토리 추적Behavior Study Groups고객 행태 분석을 위해 복잡하고 반복적인 분석이 필요한 경우, 분석 결과 고객 Key만 저장하는 스터디 그룹을 만들어 유지할 수 있음.일종의 필터로서 고객의 Key로 분리할 수 있음.스터디그룹 간 교집합, 차집합, 합집합으로 파생 스터디그룹을 생성할 수 있음.