답변:
분석하려는 프로세스 또는 이벤트 에 대해 생각하십시오 .
Lougle Analytics 를 구축 중이고 단일 페이지 요청과 달리 사이트 방문을 분석하려고 한다고 가정 해 보겠습니다 . 웹 사이트를 방문하는 과정입니다.
사실 테이블 분석하려는 프로세스 또는 이벤트를 나타냅니다,이 경우에는 현장 방문의 목록입니다. 프로세스 또는 이벤트 당 하나의 팩트 테이블을 원하는만큼 가질 수 있습니다.
사이트 방문을 분석하는 데 유용한 것이 있습니까?
기술적으로는 Excel에서와 같이이 모든 것을 하나의 테이블에 넣을 수는 있지만 실제로는 매우 빠르므로 한 수준의 정규화를 수행합니다. 차원 설계는 종종 "분석에 필요한 모든 것을 하나의 큰 테이블에 넣은 후"한 수준으로 정규화합니다.
따라서 팩트 테이블은 다음과 같습니다.
web_browser_key bigint
ip_address_key bigint
start_date_key int
referring_page_key bigint
landing_page_key bigint
exit_page_key bigint
duration_seconds int
number_of_pages_visited int
다른 테이블 †의 값을 나타내는 많은 키 값과 키가 아닌 두 개의 키 값이 있습니다. 키가 아닌 숫자는 숫자 값이며 측정 이라고 합니다. 웹 브라우저 브랜드 이름을 평균적으로 사용할 수 있습니까? 아니요, 차원입니다. 평균 방문 시간을 가질 수 있습니까? 네, 그래서 측정입니다.
다른 테이블을 차원 테이블 이라고 하며 ip_address
차원 테이블은 다음과 같습니다.
ip_address_key bigserial primary key, /* use meaningless surrogate keys */
ip_address inet unique,
country text,
division text,
locality text,
latitude numeric(8,6),
longitude numeric(9,6)
국가가 도시 (지역)에서 파생 될 수 있습니다. 그러나 데이터웨어 하우스에서는 먼저 분석을 촉진하는 것이 중요 합니다. 분석을 촉진함으로써 깊은 조인을 피할 수 있습니다.
차원 테이블의 일부 데이터는 국가> 부서> 지역 이라는 계층 적 입니다. OLAP 서버는 (필요하게) 드릴 다운 작업을 지원하는 계층을 이해합니다.
논리적 큐브 는 작업중 인 차원 및 측정 값 의 모음입니다 . 루빅스 큐브와 달리 3 차원 이상을 가질 수 있습니다. 차원을 데이터 집합의 열로 생각하면됩니다.
OLAP 은 피벗, 슬라이싱, 다이 싱, 드릴링과 같은 데이터 세트에 대해 수행 할 수 있는 일련의 작업 입니다. Excel 피벗 테이블을 생각해보십시오. OLAP 서버는 OLAP 작업을 용이하게합니다.
† 일반적으로 외래 키가없는 경우
아래 이미지는 기본 스타 스키마의 예입니다. 차원은 Dim_Tables입니다.
이들은 일반적으로 데이터를 분석하려는 값입니다. 따라서 특정 날짜 범위에 걸쳐 특정 국가의 특정 제품 판매를보고자합니다.
fact_sales 테이블에는 Units_Sold 인 하나의 측정 값 만 있습니다.
측정 값 (가장 단순한 수준)은 차원의 기준에 따라 분석 할 때 집계하려는 항목입니다.
더 구체적으로 알고 싶은 사항이 있으면 알려주십시오.
city
가 있습니다. 스키마에 대한 언급이 없으므로 말할 때 당신이 말하는country could be derived from city
것이 긍정적이지 않습니다.