Вопрос

Мы начинаем загружать DataWarehouse с данными из журналов событий. У нас есть нормальная звездная схема, где ряд в таблице фактов представляет одно событие. Наши таблицы измерений представляют собой типичную комбинацию пользовательского_агента, IP, Ссылки, Страницы и т. Д. Один измерений выглядит следующим образом:

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

Где мы автогенерируем удостоверение личности, чтобы в конечном итоге присоединиться к таблице фактов. Мой вопрос: какой способ лучше всего определить дублирующие записи в нашем процессе массовой нагрузки? Мы загружаем все записи для файла журнала в Temp Tables, прежде чем выполнять фактическую вставку в постоянный магазин, однако идентификатор просто автоматически включен, поэтому две идентичные DIM-записи с двух дней будут иметь разные идентификаторы. Будет ли создать хэш столбцов значения подходящим, а затем пытаться сравнить это? Похоже, что попытка сравнить в каждом столбце значения была бы медленной. Есть ли лучшие практики для такой ситуации?

Это было полезно?

Решение

Целое число автоматического приема для суррогатного PK в порядке, но (по мнению г-на Кимбалла) таблица измерений также должна иметь естественный ключ. Итак, хэш NaturalKey столбец будет в порядке, а также Status Столбец для «текущего» или «истек» может быть полезен для обеспечения SCD типа 2.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top