什么是多维数据集中的度量和维度

Ari*_*ian 23 sql-server ssas business-intelligence

我对 Microsoft Sql Server 商业智能非常陌生Analysis Service(但我使用 SQL Server 编程多年)。有人能用简单的语言描述多维数据集中的度量和维度吗(如果可以的)?

谢谢

Nei*_*gan 42

想一想您要分析的流程事件

假设您正在构建Lougle Analytics,并且想要分析对您网站的访问(而不是单页请求)。访问网站是一个过程。

一个事实表表示要分析的过程或事件,在这种情况下,网站的访问列表。您可以拥有任意数量的事实表,每个流程或事件一个。

在分析站点访问时,哪些内容可能对您有用?

  • 有关 Web 浏览器的信息(品牌、屏幕分辨率、...)
  • 关于用户的信息(国家、州、城市、ISP,基于他们的 IP 地址)
  • 有关访问开始时间的信息(年、季度、月、周、日)
  • 访问时长
  • 引用页面、登陆页面和退出页面(标题、网址路径)
  • 访问期间访问的页面数

从技术上讲,您可以将所有这些都放在一张表中 - 就像在 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
Run Code Online (Sandbox Code Playgroud)

它有一堆引用其他表中值的键值†,以及两个非键。非键是数值,称为Measures。你能取网络浏览器品牌名称的平均值吗?不,所以它是一个维度。你能取平均访问时间吗?是的,所以这是一个措施。

其他表称为维度表,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)
Run Code Online (Sandbox Code Playgroud)

请注意,它不是规范化的:国家可以从城市(地方)派生。然而,在数据仓库中,我们首先关心的是促进分析。通过促进分析,我的意思是避免深度连接。

请注意,维度表中的一些数据是分层的:国家 > 部门 > 地区。您的 OLAP 服务器(希望如此)了解层次结构以支持向下钻取操作。

逻辑多维数据只是您正在使用的维度和度量集合。与魔方不同,它可以有 3 个以上的维度。只需将维度视为数据集中的一列。

OLAP一组您可以对数据集执行的操作,例如旋转、切片、切块、钻孔。想想 Excel 数据透视表。一个OLAP服务器利于OLAP操作。

† 通常没有外键


小智 13

在下图中,这是一个基本星型架构的示例。维度是 Dim_Tables。

这些通常是您要用来分析数据的值。因此,您想查看特定国家/地区在特定日期范围内的特定产品销售情况。

在 fact_sales 表中,您只有一个度量,即 Units_Sold。

度量(在最简单的级别)只是您在基于维度中的标准进行分析时想要聚合的内容。

基本星型架构

如果您还有什么更具体的想知道的,请告诉我。