我们开始使用来自事件日志的数据加载数据。我们有一个普通的星模架,事实表中的一排代表一个事件。我们的尺寸表是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)
)

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

有帮助吗?

解决方案

替代PK的自动插入整数还可以,但是(根据Kimball先生的说法,尺寸表也应该具有天然钥匙。所以一个哈希 NaturalKey 列将是一个顺序 Status “当前”或“已过期”的列对于允许SCD类型2很有用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top