문제

우리는 이벤트 로그의 데이터와 함께 Datawarehouse를로드하기 시작했습니다. 사실 테이블의 행이 하나의 이벤트를 나타내는 일반적인 스타 스키마가 있습니다. 우리의 치수 테이블은 user_agent, ip, pretal, page 등의 일반적인 조합입니다. 1 차원 테이블은 다음과 같습니다.

create table referal_dim(
  id integer,
  domain varchar(255),
  subdomain varchar(255),
  page_name varchar(4096),
  query_string varchar(4096)
  path varchar(4096)
)

여기서 우리는 ID를 자율적으로 중단하여 결국 팩트 테이블에 가입합니다. 내 질문은 : 대량로드 프로세스에서 중복 레코드를 식별하는 가장 좋은 방법은 무엇입니까? 실제 삽입물을 영구 저장소에 수행하기 전에 로그 파일의 모든 레코드를 온도 테이블에 업로드하지만 ID는 자동 증가하므로 이틀의 동일한 두 개의 희미한 레코드에는 ID가 다릅니다. 값 열의 해시를 만드는 것이 적절한 다음 그것에 비교하려고합니까? 각 값 열에서 비교하려고하는 것은 느린 것 같습니다. 이와 같은 상황에 대한 모범 사례가 있습니까?

도움이 되었습니까?

해결책

대리 PK의 자동 증가 정수는 괜찮지 만 (킴볼 씨에 따르면) 치수 테이블도 자연스러운 키를 가져야합니다. 그래서 해시 NaturalKey 열이 순서대로 진행됩니다 Status "현재"또는 "만료 된"열은 SCD 유형 2를 허용하는 데 유용 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top