스타 스키마에 대한 내용, 사실/데미지 테이블에 대한 내용, 데이터를 신속하게보고하는 select 문을 읽었지 만 스타 스키마에 대한 데이터 입력 문제는 저에게 낯설 것 같습니다. 스타 스키마 db에 데이터를 "이론적으로"입력하는 방법은 무엇입니까? 사실 테이블을 유지 관리합니다. 내 유일한 옵션 (그리고 사실 테이블을 채우는 방법) 20 params 거대한 저장된 proc 내에서 일련의 INSERT INTO 문이 있습니다. 많은 감사.스타 스키마에 삽입
답변
처음부터 하나씩 시작하십시오. ECCD (Extract, Clean, Conform, Deliver) 방식을 사용하십시오.
각 측정 기준에 차원 표시 줄에 설명 된 "개체"를 고유하게 식별하는 BusinessKey가 있는지 확인하십시오 (예 : 전자 메일).
로드 된 치수를 사용하여 키 - 검색 파이프 라인을 준비하십시오. 일반적으로 각 차원 테이블마다 키 조회 테이블 (BusinessKey, PrimaryKey)을 준비 할 수 있습니다. 일부 디자이너는 차원 테이블을 직접 조회하기를 선택하지만 키 - 조회는 종종 메모리에 쉽게 캐싱 될 수 있으므로 결과 로딩이 빨라집니다.
사실 데이터에도 ECCD를 사용하십시오. ECC 부분은 준비 영역에서 발생하므로 ECC의 각 단계마다 원하는 (도우미) 테이블 또는 플랫 파일을 원하는대로 선택할 수 있습니다.
사실 테이블을 제공하는 동안 사실 열의 각 BusinessKey를 키 - 조회 테이블에서 가져 오는 일치하는 PrimaryKey로 바꿉니다. 모든 BusinessKeys가 일치하는 PrimaryKeys로 대체되면 행을 팩트 테이블에 삽입하십시오.
ETL 도구를 사용하여 시간을 낭비하지 마십시오. 무료로 Pentaho Kettle (커뮤니티 에디션)을 다운로드 할 수 있습니다.
일반적으로 하지 않음 정상적인 형식과 동일한 방식으로 데이터를 별표 스키마에 삽입합니다. 즉, 단일 트랜잭션 내에서 모든 적절한 테이블을 삽입/업데이트하는 저장 프로 시저로 데이터를 삽입하십시오. 스타 스키마는 일반적으로 데이터의 읽기 전용 비정규 화 모델이라는 점을 기억하십시오. 트랜잭션 모델은 거의 처리되지 않으며 일반적으로 이미 비정규 화 된 데이터 (일반적으로 스타 당 하나의 플랫 파일)에서로드됩니다.
일반적으로 Damir은 모든 차원을로드하고 (천천히 변화하는 등을 처리합니다.) 사실을로드하고 적절한 현재 차원에 합류하여 차원 ID를 찾습니다 (비즈니스 키 사용).