Мы начинаем загружать хранилище данных с данными из журналов событий. У нас есть нормальная схема типа «звезда», где строка в таблице фактов представляет одно событие. Наши таблицы измерений являются типичной комбинацией user_agent, ip, referal, page и т. Д. Одна таблица измерений выглядит следующим образом:
create table referal_dim(
id integer,
domain varchar(255),
subdomain varchar(255),
page_name varchar(4096),
query_string varchar(4096)
path varchar(4096)
)
Где мы автоматически генерируем идентификатор, чтобы в итоге соединиться с таблицей фактов. Мой вопрос: каков наилучший способ идентифицировать дубликаты записей в процессе массовой загрузки? Мы загружаем все записи для файла журнала во временные таблицы перед фактической вставкой в постоянное хранилище, однако идентификатор просто увеличивается автоматически, поэтому две одинаковые записи dim за два дня будут иметь разные идентификаторы. Будет ли уместным создать хэш столбцов значений и затем попытаться сравнить их? Кажется, что попытка сравнения в каждом столбце значений будет медленной. Есть ли лучшие практики для такой ситуации?