Datawarehouse重复维度行

igk*_*ins 2 sql bulkinsert data-warehouse duplicates vertica

我们开始使用事件日志中的数据加载数据仓库.我们有一个普通的星型模式,其中事实表中的一行代表一个事件.我们的维度表是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)
)
Run Code Online (Sandbox Code Playgroud)

我们自动生成id以最终加入事实表的位置.我的问题是:什么是在批量加载过程中识别重复记录的最佳方法?我们在执行实际插入持久存储之前将日志文件的所有记录上传到临时表中,但是,id只是自动递增,因此两天相同的两个dim记录将具有不同的ID.创建值列的哈希是否合适,然后尝试比较?似乎尝试在每个值列上进行比较会很慢.对于这种情况,有没有最佳做法?

Dam*_*vic 6

代理PK的自动递增整数是可以的,但是(根据Kimball先生的说法)维度表也应该有一个自然键.因此,哈希NaturalKey列将按顺序排列,Status"当前"或"过期"的列也可用于允许SCD类型2.