2016-12-05 5 views
0

Postgres를 사용하여 스타 스키마 구조에 내 데이터를 정렬하는 가장 좋은 방법이 무엇인지 모르겠습니다. 여기 PostgreSQL의 스타 스키마 구조에 내 데이터를 배열하는 방법

내 테이블입니다 :

1) 페이지 - 모든 페이지 방문 데이터 (방문자가 웹 사이트에 방문) 2) 세션 동안 클릭 모든 페이지를 보유 - 세션에 데이터를 보유 카운티 4) session_users의 목록 - - 3) 국가 (예를 들면 때마다 방문자가 웹 사이트를 방문한) 사용자의 목록과 5) 매일 집계 테이블 바 속성

덕분에 위의 테이블에 나오지

페이지 는 가 visitor_id 이 페이지 website_type visitor_type 선임 PAGE_NUMBER 종료일

세션 USER_ session_country_id SESSION_ID USER_ID ID 는 가 구매 일

국가에게 country_id을 account_user_id

SESSION_USER USER_ID signup_date을 is_returning visitor_id visit_country_id operating_system_id days_since_first_session session_start_date session_end_date 을 SESSION_ID COUNTRY_NAME

SESSION_USER USER_ID signup_date 는 구매 일

매일 집계 테이블 날짜 num_of_visitor num_of_users num_of_sessions avg_num_of_pages 고급 가격 account_user_id

답변

0

가장 좋은 방법은 우리가 모르는 많은 것들에 달려 있지만 데이터 양, 업데이트 빈도, 시스템 또는 사람들이 데이터베이스와 상호 작용하는 방법, 사용자와 귀하의 사용자는 귀하의 솔루션이 무엇이든간에 무엇보다도 귀하가 데이터웨어 하우스로 달성하고자하는 것을 사용하게 될 것입니다.여기

장소의 부부가 시작됩니다 연구 : https://en.wikipedia.org/wiki/Star_schema

http://www.kimballgroup.com/data-warehouse-business-intelligence-resources/kimball-techniques/dimensional-modeling-techniques/star-schema-olap-cube/

아주 간단하게, 스타 스키마는 하나 개 이상의 사실 기록의 많은 테이블 및 더 많은 차원 테이블을 가지고 적은 수의 기록. 팩트 테이블에는 측정 또는 계산중인 항목이 포함되며 차원에는 데이터를 요약하는 데 사용하려는 특성이 포함됩니다. 각 차원 테이블의 기본 키는 사실 테이블의 키와 관련됩니다. 사실 테이블의 차원 키 조합은 고유합니다.

그래서 처음부터 측정하고있는 사실은 무엇입니까? 수익? 안타? 또는 무엇을? 그러면 당신의 차원은 무엇이며 당신은 차원마다 어떤 특성을 가지고 있습니까? 그 문제에 대한 해답을 얻는 좋은 장소는 해결하려는 비즈니스 문제를 생각하는 것입니다. 일단 그 답을 얻으면 테이블 디자인이 뒤 따른다. 몇 가지 힌트를 얻기 위해 데이터웨어 하우스 디자인에 대한 몇 권의 책을 읽는 것이 좋습니다. 모델링 날짜 및 시간 차원. PostgreSQL을의 측면에서

, 당신의 테이블 작성 쿼리는 다음과 같이 보일 수 있습니다 : 당신은 일반적으로 컬럼에 인덱스를 놓을 게요

create table dimension1 (
    dimension1_key serial primary key, 
    attribute1 text not null default 'unknown', 
    attribute2 text not null default 'unknown'); 

create table dimension2 (
    dimension2_key serial primary key, 
    attribute1 text not null default 'unknown', 
    attribute2 text not null default 'unknown'); 



create table fact1 (
    dimension1_key integer references dimension1, 
    dimension2_key integer references dimension2, 
    fact integer, 
    constraint pk primary key (dimension1_key,dimension2_key) 
    ) 

당신이 요약 할 수 있습니다 :

create index dimension2_attribute1 on dimension2(attribute1);  

내가 돈 ' 이보다 더 완전한 답을 줄 수있는 것이 가능하거나 바람직하지 않다고 생각합니다. 나는 당신이 독서를해야 할 자신을 위해 창고 디자인을 이해하는 것이 중요하다고 생각합니다.