Answers:
考虑要分析的过程或事件。
假设您正在构建Lougle Analytics(分析),并且想要分析对网站的访问(相对于单页请求)。访问网站是一个过程。
一个事实表表示要分析的过程或事件,在这种情况下,网站的访问列表。您可以拥有任意数量的事实表,每个进程或事件一个。
在分析网站访问时,哪些事情可能对您有用?
从技术上讲,您可以将所有内容放到一张表中-就像在Excel中一样,但这会很快变得非常真实,因此我们将进行一个级别的标准化。尺寸设计通常只是“将分析所需的一切都放到一张大桌子上”,然后将其归一化。
因此,您的事实表将如下所示:
web_browser_key bigint
ip_address_key bigint
start_date_key int
referring_page_key bigint
landing_page_key bigint
exit_page_key bigint
duration_seconds int
number_of_pages_visited int
它具有一堆引用其他表中值的键值†,以及两个非键值。非键是数字值,称为“度量”。您可以取网络浏览器品牌名称的平均值吗?不,这是一个维度。您能否取平均访问时间?是的,这是一个措施。
其他表称为维度表,ip_address
维度表可能如下所示:
ip_address_key bigserial primary key, /* use meaningless surrogate keys */
ip_address inet unique,
country text,
division text,
locality text,
latitude numeric(8,6),
longitude numeric(9,6)
请注意,它尚未标准化:国家/地区可能来自城市(地区)。但是,在数据仓库中,我们首先关心的是促进分析。通过促进分析,我的意思是避免深度联接。
请注意,维度表中的某些数据是分层的:“国家”>“部门”>“地区”。您的OLAP服务器(希望)了解层次结构以支持向下钻取操作。
逻辑多维数据集只是您正在使用的维度和度量的集合。与魔方不同,它可以具有3个以上的维度。只需将维度视为数据集中的一列即可。
OLAP是您可以针对数据集执行的一组操作,例如旋转,切片,切块,钻孔。考虑一下Excel PivotTables。一个OLAP服务器利于OLAP操作。
†通常没有外键
在下面的图像中,这是基本星形模式的示例。维度是Dim_Tables。
这些通常是您要用来分析数据的值。因此,您想要查看在特定日期范围内在特定国家/地区的特定产品销售。
在fact_sales表中,只有一个度量单位为Units_Sold。
度量(最简单的级别)只是您要在基于维度中的标准进行分析时要汇总的内容。
如果您想了解其他更具体的信息,请告诉我。
city
在您的模式中没有提到a ,因此当您说country could be derived from city
我不是肯定您的意思时。