2010-03-22 3 views
4

스타 스키마에 대한 내용, 사실/데미지 테이블에 대한 내용, 데이터를 신속하게보고하는 select 문을 읽었지 만 스타 스키마에 대한 데이터 입력 문제는 저에게 낯설 것 같습니다. 스타 스키마 db에 데이터를 "이론적으로"입력하는 방법은 무엇입니까? 사실 테이블을 유지 관리합니다. 내 유일한 옵션 (그리고 사실 테이블을 채우는 방법) 20 params 거대한 저장된 proc 내에서 일련의 INSERT INTO 문이 있습니다. 많은 감사.스타 스키마에 삽입

답변

5

처음부터 하나씩 시작하십시오. ECCD (Extract, Clean, Conform, Deliver) 방식을 사용하십시오.

각 측정 기준에 차원 표시 줄에 설명 된 "개체"를 고유하게 식별하는 BusinessKey가 있는지 확인하십시오 (예 : 전자 메일).

로드 된 치수를 사용하여 키 - 검색 파이프 라인을 준비하십시오. 일반적으로 각 차원 테이블마다 키 조회 테이블 (BusinessKey, PrimaryKey)을 준비 할 수 있습니다. 일부 디자이너는 차원 테이블을 직접 조회하기를 선택하지만 키 - 조회는 종종 메모리에 쉽게 캐싱 될 수 있으므로 결과 로딩이 빨라집니다.

사실 데이터에도 ECCD를 사용하십시오. ECC 부분은 준비 영역에서 발생하므로 ECC의 각 단계마다 원하는 (도우미) 테이블 또는 플랫 파일을 원하는대로 선택할 수 있습니다.

사실 테이블을 제공하는 동안 사실 열의 각 BusinessKey를 키 - 조회 테이블에서 가져 오는 일치하는 PrimaryKey로 바꿉니다. 모든 BusinessKeys가 일치하는 PrimaryKeys로 대체되면 행을 팩트 테이블에 삽입하십시오.

ETL 도구를 사용하여 시간을 낭비하지 마십시오. 무료로 Pentaho Kettle (커뮤니티 에디션)을 다운로드 할 수 있습니다.

2

일반적으로 하지 않음 정상적인 형식과 동일한 방식으로 데이터를 별표 스키마에 삽입합니다. 즉, 단일 트랜잭션 내에서 모든 적절한 테이블을 삽입/업데이트하는 저장 프로 시저로 데이터를 삽입하십시오. 스타 스키마는 일반적으로 데이터의 읽기 전용 비정규 화 모델이라는 점을 기억하십시오. 트랜잭션 모델은 거의 처리되지 않으며 일반적으로 이미 비정규 화 된 데이터 (일반적으로 스타 당 하나의 플랫 파일)에서로드됩니다.

일반적으로 Damir은 모든 차원을로드하고 (천천히 변화하는 등을 처리합니다.) 사실을로드하고 적절한 현재 차원에 합류하여 차원 ID를 찾습니다 (비즈니스 키 사용).