치수(데이터 웨어하우스)
Dimension (data warehouse)이 글은 데이터베이스 전문가의 주의를 요한다.(2009년 6월) |
차원은 사용자가 비즈니스 질문에 답변할 수 있도록 사실과 대책을 분류하는 구조다. 일반적으로 사용되는 치수는 사람, 제품, 장소 및 시간이다.[1][2] (참고: 사람과 시간이 치수로 모형화되지 않는 경우도 있음)
데이터 웨어하우스에서 치수는 구조화된 라벨링 정보를 다른 순서가 없는 숫자 측도에 제공한다. 치수는 겹치지 않는 개별 데이터 요소로 구성된 데이터 집합이다. 치수의 주요 기능은 필터링, 그룹화 및 라벨 표시의 3가지다.
이 기능들은 종종 "슬라이스와 주사위"로 묘사된다. 공통 데이터 웨어하우스 예로는 고객 및 제품을 차원으로 하여 판매를 척도로 한다. 각 판매에서 고객은 제품을 산다. 연구 대상 그룹을 제외한 모든 고객을 제거하여 데이터를 잘라낸 다음 제품별로 그룹화하여 데이터 조각을 할 수 있다.
일반적으로 데이터 웨어하우스의 치수는 하나 이상의 계층 구조로 내부적으로 구성된다. "날짜"는 몇 가지 가능한 계층 구조를 가진 공통 차원이다.
- "일(그룹화) 월(그룹화) 년",
- "일(그룹으로 구성됨) 몇 주(연도로 그룹화됨)
- "일(그룹화) 월(그룹화) 분기(그룹화) 년"
- 등
종류들
정합 치수
준수 차원은 동일한 구조, 속성, 도메인 값, 정의 및 개념을 참조하기 위해 동일한 키 값을 사용하여 여러 데이터베이스 테이블에서 물리적으로 참조된 데이터 속성 집합이다. 일치된 차원은 많은 사실들을 가로지른다.
치수가 정확히 같거나(키 포함) 다른 치수의 적절한 부분 집합일 때 치수는 준수된다. 가장 중요한 것은, 동일한 규격의 서로 다른 두 개의 응답 집합에서 생산된 행 헤더가 완벽하게 일치할 수 있어야 한다는 것이다.'
정합 치수는 가장 세밀하고 상세한 치수의 수학적 하위 집합 또는 엄격한 하위 집합이다. 특성 레이블이 다르거나 다른 값을 포함하는 경우 치수 표는 준수되지 않는다. 일치하는 치수는 몇 가지 다른 맛으로 나온다. 가장 기본적인 수준에서, 순응 치수는 그것들이 결합되는 모든 가능한 사실 표와 정확히 같은 것을 의미한다. 판매 사실과 연결된 날짜 차원 표는 재고 사실과 연결된 날짜 차원 표와 동일하다.[3]
정크 치수
정크 치수는 전형적으로 낮은 카디널리티 플래그와 표시기로 이루어진 편리한 그룹이다. 추상적 차원을 생성함으로써 이러한 플래그와 지시자는 유용한 치수 프레임워크에 배치하면서 팩트 테이블에서 제거된다.[4] 정크 치수는 팩트 테이블이나 기존 치수 테이블에 속하지 않는 속성으로 구성된 치수 테이블이다. 이러한 속성의 특성은 일반적으로 텍스트 또는 다양한 플래그(예: 비일반적인 의견 또는 단순한 예/아니오 또는 참/거짓 지표)이다. 이러한 종류의 속성은 일반적으로 비즈니스 프로세스의 모든 분명한 차원이 확인되었을 때 남아 있기 때문에 설계자는 다른 차원에 속하지 않는 이러한 속성을 어디에 두어야 하는지에 대한 어려움에 직면하게 된다.
하나의 해결책은 나머지 속성 각각에 대해 새로운 차원을 만드는 것이지만, 그 특성 때문에 방대한 수의 새로운 차원을 만들어 외부 키가 매우 많은 팩트 테이블이 만들어지는 것이 필요할 수 있다. 설계자는 나머지 속성을 팩트 테이블에 두기로 결정할 수도 있지만, 예를 들어 속성이 긴 텍스트 문자열인 경우 테이블의 행 길이가 불필요하게 커질 수 있다.
이 과제에 대한 해결책은 모든 속성을 식별한 다음 하나 또는 여러 개의 정크 치수에 넣는 것이다. 하나의 정크디멘트는 서로 아무런 상관관계가 없는 여러 개의 참/거짓 또는 예/무의 지표를 보유할 수 있으므로 지표를 보다 기술적인 속성으로 변환하는 것이 편리할 것이다. 예를 들어, 소포가 도착했는지에 대한 지표가 될 수 있다: 이것을 "예" 또는 "아니오"로 표시하는 대신, 정크 차원에서 "수집" 또는 "보류"로 변환될 것이다. 설계자는 치수 표를 제작하여 다른 모든 지표와 함께 발생하는 모든 지표를 지탱하여 모든 조합이 포함되도록 할 수 있다. 이것은 테이블 자체에 고정된 크기를 설정하며, 여기서x x는 지시자 수입니다. 이 솔루션은 설계자가 다양한 조합을 많이 접하게 될 것으로 예상할 수 있고 가능한 조합이 허용 가능한 수준으로 제한되는 상황에서 적합하다. 지표의 수가 커서 매우 큰 테이블을 만들거나 설계자가 가능한 조합 중 몇 개만 접하게 될 것으로 예상하는 상황에서는 새로운 조합이 접하게 되므로 정크 차원에서 각 행을 작성하는 것이 더 적절할 것이다. 표의 크기를 제한하려면 다양한 지표 사이의 상관관계에 따라 다른 상황에서는 여러 정크 치수가 적합할 수 있다.
또한 정크 치수는 팩트 테이블의 비일반적인 설명과 같은 속성을 배치하는 데 적절하다. 이러한 속성은 고객이 주문을 할 때 옵션 의견 필드의 데이터로 구성될 수 있으며, 결과적으로 많은 경우 공백이 될 수 있다. 따라서 정크 차원은 빈 주석 필드와 함께 반환되는 모든 행에 대해 팩트 테이블에 사용될 대리 키로 빈 칸을 나타내는 단일 행을 포함해야 한다.[5]
퇴화 치수
퇴보 차원은 거래 번호, 송장 번호, 티켓 번호 또는 BOM(Bill-of-Lading 번호) 번호와 같이 속성이 없으므로 실제 치수 표에 가입하지 않는 키다. 퇴행차원은 지배기업의 고유 식별자를 나타내기 때문에 팩트 테이블의 알갱이가 단일 거래 항목이나 라인 항목을 나타낼 때 퇴행차원은 매우 흔하다. 퇴보하는 치수는 종종 팩트 테이블의 기본 키에 필수적인 역할을 한다.[6]
역할 수행 차원
치수는 동일한 데이터베이스 내의 여러 애플리케이션에 대해 재활용되는 경우가 많다. 예를 들어, "판매일"과 "납품일" 또는 "고용일"에 "날짜" 차원을 사용할 수 있다. 이것은 종종 "역할놀이 차원"이라고 불린다. 이것은 동일한 차원 표를 통한 뷰를 사용하여 구현될 수 있다.
아웃리거 치수
일반적으로 치수 테이블은 외부 키를 통해 다른 치수를 참조하지 않는다. 이렇게 되면 참조된 치수를 아웃리거 치수라고 한다. 아웃리거 치수는 데이터 웨어하우스 반패턴으로 간주해야 한다. 두 치수와 관련된 일부 팩트 표를 사용하는 것이 더 나은 관행으로 간주된다. [7]
축소 치수
순응 치수는 원래 치수의 행 및/또는 열의 부분 집합을 포함할 때 축소 치수가 된다고 한다. [8]
달력 날짜 치수
특별한 유형의 치수는 날짜의 세분화를 나타내기 위해 사용될 수 있다. 날짜 차원에 대한 외부 키로 팩트 테이블에서 날짜를 참조할 수 있다. 날짜 치수 기본 키는 대리 키 또는 YYYYMMDD 형식을 사용하는 숫자일 수 있다.
날짜 차원은 올해의 주와 같은 다른 속성이나 근무일, 휴일 등을 나타내는 깃발을 포함할 수 있다. 또한 알 수 없는 날짜 또는 아직 정의되지 않은 날짜를 나타내는 특수 행도 포함할 수 있다. 날짜 차원은 필요한 모든 날짜로 초기화해야 하며, 필요한 경우 다음 10년 또는 그 이상, 과거의 이벤트가 처리된 경우 과거 날짜로 초기화해야 한다.
대신 시간은 사실 표에서 타임스탬프로 가장 잘 표현된다. [9]
ISO 표현 용어 사용
ISO/IEC 11179와 같은 메타데이터 레지스트리의 데이터를 참조할 때 일반적으로 "Indicator"(부울 참/거짓 값), "Code"(비과잉 열거된 값의 집합)와 같은 표현 용어가 차원으로 사용된다. 예를 들어 NIEM(National Information Exchange Model)을 사용하여 데이터 요소 이름은 "PersonGenderCode"가 되고 열거된 값은 "남성", "여성" 및 "알 수 없음"이 될 수 있다.
치수표
데이터 웨어하우징에서 차원 테이블은 팩트 테이블의 동반 테이블 세트 중 하나이다.
팩트 표에는 치수 표에서 후보 키(보통 기본 키)를 참조하는 비즈니스 사실(또는 조치)과 외래 키가 수록되어 있다.
사실 표와 달리 치수 표에는 일반적으로 텍스트 필드(또는 텍스트와 같이 동작하는 이산형 숫자)인 기술 속성(또는 필드)이 포함되어 있다. 이러한 속성은 쿼리 제약 및/또는 필터링과 쿼리 결과 집합 라벨의 두 가지 중요한 목적을 위해 설계된다.
치수 속성은 다음과 같아야 한다.
- 자세한 내용(전체 단어로 구성된 레이블)
- 기술
- 완료(결측값이 없음)
- 개별 값(차원 테이블 행당 하나의 값만 있음)
- 품질 보증(오류 또는 불가능 값 없음)
치수 테이블 행은 단일 키 필드로 고유하게 식별된다. 키 값이 무의미하기 때문에 키 필드는 팩트와 치수 테이블 사이의 필드 결합에만 사용되므로 단순한 정수일 것을 권장한다. 차원 테이블은 종종 대리 키인 기본 키를 사용한다. 대리 키가 자동 생성되는 경우가 많다(예: Sybase 또는 SQL Server "identity column", Postgre).SQL 또는 Informix serial, Oracle SEQUENT 또는 MySQL의 AUTO_INCREMENT로 정의된 열).
대리 치수 키를 사용하면 다음과 같은 몇 가지 이점을 얻을 수 있다.
- 퍼포먼스. 단일 필드(대리 키)를 사용하여 조인 처리를 훨씬 효율적으로 수행
- 운영 키 관리 작업 방식에서 버퍼링 이렇게 하면 제거된 데이터 행이 장기간 방치된 후 자연 키가 재사용되거나 재할당될 때 다시 나타날 수 있는 상황을 방지할 수 있다.
- 서로 다른 소스를 통합하기 위한 매핑
- 알 수 없거나 적용되지 않는 연결 처리
- 차원 특성 값의 변경 추적
대리 키 사용은 ETL 시스템에 부담을 주지만, 파이프라인 처리가 개선될 수 있으며, ETL 툴은 내장 개선된 대리 키 처리를 가지고 있다.
차원 테이블의 목표는 기업의 데이터 웨어하우스 환경 전반에 걸쳐 공유할 수 있는 표준화되고 순응된 차원을 만들고, 다양한 비즈니스 프로세스를 대표하는 여러 팩트 테이블에 결합할 수 있도록 하는 것이다.
준수되는 차원은 DW/BI 시스템의 엔터프라이즈 특성에 중요하며, 그 이유는 다음과 같다.
- 일관성 모든 팩트 테이블은 일관성 있게 필터링되어 쿼리 답변에 라벨이 일관되게 지정된다.
- 통합. 쿼리는 서로 다른 프로세스 팩트 표를 개별적으로 드릴다운한 다음 공통 치수 속성에 대한 결과를 결합할 수 있다.
- 출시 기간 단축 공통 치수는 재현하지 않고 사용할 수 있다.
시간이 지남에 따라 차원 테이블에서 지정된 행의 속성이 변경될 수 있다. 예를 들어, 회사의 배송 주소가 변경될 수 있다. 킴볼은 이러한 현상을 서서히 차원이 변하는 현상을 말한다. 이러한 종류의 변화에 대처하기 위한 전략은 세 가지 범주로 나뉜다.
- 1번 입력: 이전 값을 덮어쓰십시오.
- 2종류: 새 값을 포함하는 새 행을 추가하고 투플 버전 기술을 사용하여 행을 구분하십시오.
- 3타입: 기존 행에 새 속성을 추가하십시오.
공통 패턴
- 날짜 및 시간[10]
데이터 웨어하우스의 많은 팩트 테이블은 시계열 관측치이므로, 하나 이상의 날짜 치수가 필요한 경우가 많다. 날짜 치수를 갖는 이유 중 하나는 응용프로그램에서 하드 코딩되는 대신 데이터 웨어하우스에 캘린더 지식을 배치하기 위함이다. 간단한 SQL 날짜/시간 표시는 팩트 기록 시간에 대한 정확한 정보를 제공하는 데 유용하지만, 휴일, 회계 기간 등에 대한 정보를 제공할 수는 없다. SQL 날짜/시간 스탬프는 정확한 계산이 가능하기 때문에 팩트 테이블에 저장하는 데 여전히 유용할 수 있다.
날짜와 시간을 모두 같은 차원으로 가지면 수백만 개의 행이 있는 거대한 차원이 쉽게 만들어질 수 있다. 만약 많은 세부 사항이 필요하다면, 날짜와 시간을 둘 이상의 개별적인 차원으로 나누는 것이 보통 좋은 생각이다. 하루에 초의 알갱이가 있는 시간 차원은 86400줄밖에 되지 않는다. 날짜/시간 치수에 대한 보다 상세한 곡물은 필요에 따라 선택할 수 있다. 예를 들어 날짜 치수는 년, 분기, 월 또는 일, 시간 치수는 시간, 분 또는 초로 정확할 수 있다.
경험 법칙으로서, 일차원의 시간은 계층적 그룹화가 필요한 경우 또는 일차 내 시간에 대한 의미 있는 텍스트 설명이 있는 경우에만 생성되어야 한다(예: "신속한 돌진" 또는 "제1교대").
팩트 테이블의 행이 여러 표준 시간대에서 나오는 경우 날짜와 시간을 로컬 시간과 표준 시간 모두에 저장하는 것이 유용할 수 있다. 이는 필요한 날짜/시간 치수 각각에 대해 현지 시간용과 표준 시간용 치수 각각에 대해 두 개의 차원을 갖는 것으로 수행할 수 있다. 날짜/시간을 로컬 및 표준 시간 모두에 저장하면 로컬 설정과 전역 설정에서 사실이 생성되는 시점을 분석할 수 있다. 선택한 표준 시간은 글로벌 표준 시간(예: UTC), 비즈니스 본사의 현지 시간 또는 사용하기에 적합한 기타 시간대가 될 수 있다.
참고 항목
참조
- ^ 오라클 Corporation, 2014년 6월 9일 검색된 "오라클 데이터 웨어하우징 가이드"
- ^ 정의: Dimension" 검색 데이터 관리, TechTarget, 2014년 6월 9일 검색
- ^ Ralph Kimball, Margy Ross, 데이터 웨어하우스 툴킷: Wiley Computer Publishing, 2002년 Second Edition의 Dimensional Modeling에 대한 전체 가이드. ISBN0471-20024-7, 페이지 82-87, 394
- ^ Ralph Kimball, Margy Ross, 데이터 웨어하우스 툴킷: Wiley Computer Publishing, 2002년 Second Edition의 Dimensional Modeling에 대한 전체 가이드. ISBN 0471-20024-7, 페이지 202, 405
- ^ 킴볼, 랄프 등 (2008): 데이터 웨어하우스 라이프사이클 툴킷, Second Edition, Wiley Publishing Inc., IN. 페이지 263-265
- ^ Ralph Kimball, Margy Ross, 데이터 웨어하우스 툴킷: Wiley Computer Publishing, 2002년 Second Edition의 Dimensional Modeling에 대한 전체 가이드. ISBN 0471-20024-7, 페이지 50, 398
- ^ Ralph Kimball; Margy Ross (2013). The Data Wharehouse Toolkit 3rd edition. Wiley. p. 50. ISBN 978-1-118-53080-1.
- ^ Ralph Kimball; Margy Ross (2013). The Data Wharehouse Toolkit 3rd edition. Wiley. p. 51. ISBN 978-1-118-53080-1.
- ^ Ralph Kimball; Margy Ross (2013). The Data Wharehouse Toolkit 3rd edition. Wiley. p. 48. ISBN 978-1-118-53080-1.
- ^ Ralph Kimball, The Data Warehouse Toolkit, Second Edition, Wiley Publishing, Inc., 2008. ISBN 978-0-470-14977-5, 페이지 253-256