데이터웨어 하우스 프로젝트에 관해서는 신참입니다. 여기 커뮤니티의 조언을 구하고 싶습니다.별도의 사실 테이블에 이력 데이터 저장
역사적인 정보와 최신 정보를 가능한 가장 효율적으로/저렴한 방법으로 추출 할 수있는 데이터웨어 하우스를 만들어야합니다. 이 특정 예에서는 웹 사이트 사용자 및 환경 설정을 다루고 있습니다.
사용자 테이블에는 기본 설정 (선호 이름 및 ID 이름)이라는 특성 테이블과 User_Preferences라는 연결 팩트 테이블이 있습니다. User_Preferences 테이블 (100 억 개의 행일 수 있음)에 모든 기록 및 환경 설정 변경/삭제/추가를 저장하는 대신 현재 환경 설정에 대한 테이블 하나와 모든 환경 설정 내역에 대한 테이블 2 개가 있어야합니다. isCurrent 플래그)? ETL 프로세스에서 prod db의 모든 기록 데이터를 하나의 dw 테이블로로드 한 다음 새 dw 테이블의 isCurrent = 1 인 레코드 만 현재 기본 설정 만 저장하는 다른 dw 테이블에 삽입합니다.
비즈니스 관점에서 볼 때 대부분의 쿼리는 현재 데이터에서 실행되지만 고객은 현재 사용자의 기본 설정 만 고려합니다. 훨씬 적은 수의 쿼리가 비즈니스의 내부 이해 관계에 대한 사용자 선호도의 전체 내역에 대한 정보를 반환해야합니다.
도움을 주셔서 감사합니다.