需要存储以下信息:
如何放置用户设备数据 - 事实或维度表?
如果我把它放到事实表中,我有很多重复,例如每行必须包含有关设备的详细信息,对于一个用户来说大致相同。
如果我把它放到dimesion表中,我必须更新维度表 - 添加新设备或更新旧版。
重要请注意,分析系统设计不仅要分析用户行为,还要查看数据未收集的位置。因此,当不同的应用程序版本提供不同的“完整性”时,可能存在这样的情况。信息 - 第一版收集50%的用户设备,第二版 - 75%,第三版 - 99%。所以我必须更新(不仅插入)设备表中的数据。
答案 0 :(得分:0)
您需要至少两个维度,例如User
和Device
以及Snowflake
架构。用户维度应引用具有设备ID的设备表。
User
会保留一份用户列表。它将使用foreign key
来引用Device
表(例如设备ID)。您可以选择任何SCD
类型来处理数据更改。但与所有设备字段都在一个表上相比,它肯定会更好。
Device
表格将包含不同类型的设备及其属性。
事实上,只需要在用户表中引用(UserID
,DeviceID
)组合。