为什么Google Analytics等网络分析使用维度和指标而不是SQL语句?

时间:2010-08-10 01:35:36

标签: google-analytics analytics web-analytics google-analytics-api yahoo-analytics

当我再次熟悉SQL语句时,从Google Analytics中提取数据时,我发现他们不使用SQL,而是使用维度和指标及其组合。

为什么这是一个原因?我认为它没有SQL接口(或普通的Web服务器日志下载)?如果是这样,SQL语句如何转换为Dimension,Metrics(以及Segment和Filters)?

似乎Metrics往往是“聚合”,例如count()或average(),而Dimension往往是记录值本身(例如Browser == IE或Country = =澳大利亚),与group by值相同。过滤器就像条件,那么Segment呢?

似乎如果我们指定Dimensions,它会自动执行group by并显示该字段。它通常会计数()或总和()。如果我们想要average(*),该怎么办?如果我们希望它显示但不希望它执行group by会怎么样?

要进行实验的示例网站位于http://code.google.com/apis/analytics/docs/gdata/gdataExplorer.html

5 个答案:

答案 0 :(得分:7)

使用术语“维度”和“度量标准”表明Google使用的是OLAP数据库而不是关系数据库.... SQL用于关系数据库:OLAP使用MDX或专有查询语言(如果是Oracle)。

来自http://en.wikipedia.org/wiki/OLAP

  

任何OLAP系统的核心都是OLAP多维数据集(也称为   '多维立方体'或超立方体)。

     

它由数字事实称为度量组成   按维度分类

答案 1 :(得分:3)

它可能是使用自己的技术(如Big Table和Map-Reduce)在内部开发的。映射和聚合是Map-Reduce类型算法的优势,因此有意义的是,数据似乎会在各种维度上聚合。

如果您想了解更多关于它们的信息,我会建议这些维基百科文章:

答案 2 :(得分:3)

我的猜测是,如果你问这样的问题,你可能已经过去了很多,看看一些开箱即用的报告,比如简单的页面浏览。如果这就是您所做的一切,那么您将大大忽略Web Analytics的重点和力量。一般而言,网络分析(不仅仅是GA)是关于随着时间的推移查看数据趋势。并且通过遵循预定义和用户定义的某些规则和行为来获取数据本身。

报告的大部分数据都不能轻易地从直接数据库查询中获取,因为数据基于诸如“随时间推移的xyz”和聚合数据等摘要。例如,维度和指标的“范围”概念,其中变量和/或值将报告有关单个页面视图/事件的数据,或者在访问(会话)过程中或甚至超过用户定义的时间量(比如“让这个月最后一个月”或“直到某个事件发生时才这样做”,就像弹出的特定变量或变量类型一样)。

由于大多数报告都涉及更高级别的数据检索概念,因此数据库被抽象出来,并建立了一个“框架”(报告界面),以帮助您构建显示趋势数据的报告。即使您是数据库专家,也需要花费太多时间和精力来手动提取数据,除了最基本的数据(如页面视图)之外几乎所有内容。像这样的基本数据不是很有效。

以广告系列跟踪为例。这一切都以单个var =值开头。当用户点击链接并转到URL中具有该var = value的页面时,跟踪代码会抓取该值并开始不仅仅归因于页面的数据(网址,时间,浏览器类型,列表继续以及从自定义编码收集的所有其他数据。然后还有其他可以应用的设置,例如附加每次点击费用或一些加权衡量标准,将成功归因于目标或事件等等......基于其他规则(首先与最终点击归因等)。 ..)。正在发挥作用的内容列表以及所考虑的内容一直在继续。继续尝试自己创建这些数据库查询字符串。现在洗,冲洗和重复,因为这只是一个活动代码。我的客户拥有数千个广告系列代码,每天都会添加更多广告代码。哦,最重要的是,根据您希望实际报告显示数据的方式调整或完成新的查询。通过xyz进行交叉引用和分解。根据该数据查看漏斗和方案。这只是针对广告系列的,有很多事情可以解决。

因此,简而言之,将报告界面视为数据库框架,使用可以调整的预定义查询,使人们的报告工作变得更加轻松,特别是因为大多数人不是数据库专家。

答案 3 :(得分:2)

我认为答案在于,在API可用之前,您可以通过Google Analytics界面分析数据的唯一方法。它在那里广泛使用“维度”和“度量”。因为非技术人员经常光顾它,所以他们从未引入复杂的SQL结构;更容易下拉。

我不完全确定Google Analytics数据的存储方式是SQL友好的(即表中的列和行)。我读过他们已经开发了自己的内部存储方式来存储这些数据。

答案 4 :(得分:1)

我们问自己类似的问题。看起来许多网络分析API更像是事后的想法,并且通常是对相应产品的UI功能的直接映射。使用Infunl(免责声明:我是联合创始人),我们正在使用灵活的查询语言构建Web分析API,该语法在语法上类似于SQL,但针对聚合和映射减少执行框架进行了高度优化。此外,它还提供了许多专为网络分析而设计的内置功能,如转换渠道步骤,群组分析,分割测试支持以及灵活的内容分组和分段。