我正在尝试从我从https://www.nyc.gov/site/tlc/about/tlc-trip-record-data.page下载的出租车行程记录创建事实表和维度表。这是数据字典描述了字段的含义。
我不太确定哪些列应该存储事实表,哪些列应该有维度表。
例如,我正在探索的数据集是
yellow_tripdata_2023-01.parquet
。有 3,066,766 条记录。对于第 mta_tax
列(描述:$0.50 MTA tax that is automatically triggered based on the metered rate in use.
),只有 10 个不同的值
,保存在 float 中。
所以,我认为有一个维度表来保存字段并使用外键来表示事实表的值是一个好主意,这样可以减少磁盘空间。 每个值的计数:
但是从
mta_tax
的描述来看,应该保存在事实表中。
更好的方法应该是什么?
企业需要回答哪些涉及 mta_tax 的问题?如果没有,请省略该列。否则,将其建模为维度或事实表属性,或者在计算其他事实表属性时使用它会更方便吗?
维度建模与标准化不同,因为它不是抽象的数学练习。要创建有用的维度模型,您需要了解的不仅仅是函数依赖关系。您需要知道您试图从数据中提取什么信息,而考虑这一点的最简单方法是根据用户试图回答的问题。