5

就在我再次对 SQL 语句很熟悉的时候,在从 Google Analytics 中拉数据的时候,我发现它们并没有使用 SQL,而是使用了Dimensions 和 Metrics 以及它们的组合。

为什么这是一个原因?我认为它没有 SQL 接口(或普通的 Web 服务器日志下载)?如果是这样,SQL 语句如何转换为维度、度量(以及细分和过滤器)?

似乎 Metrics 往往是“聚合”,例如 count( ) 或 average( ),而 Dimension 往往是记录值本身(例如 Browser == IE 或 Country == Australia),这与group by价值观。过滤器就像条件,那么段呢?

似乎如果我们指定维度,那么它会自动执行group by并显示该字段。它通常是 count( ) 或 sum( )。如果我们想要average(*)代替呢?如果我们希望它显示但不希望它做 a怎么办group by

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

4

5 回答 5

8

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

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

任何 OLAP 系统的核心都是 OLAP 立方体(也称为“多维立方体”或超立方体)。

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

于 2010-08-18T09:12:06.083 回答
3

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

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

因为大多数报告都涉及更高级别的数据检索概念,所以数据库被抽象出来,并放置了一个“框架”(报告界面)来帮助您构建显示趋势数据的报告。即使您是数据库专家,尝试手动提取几乎所有数据的数据都需要花费太多时间和精力,除了最基本的数据(如页面浏览量)。像这样的基本数据不是很可操作。

以活动跟踪为例。这一切都从一个 var=value 开始。当用户单击链接并转到 url 中包含该 var=value 的页面时,跟踪代码会获取该值并开始不仅归因于有关页面的数据(url、时间、浏览器类型、列表继续等等)以及从自定义编码中收集的所有其他数据。然后,您可以对其应用其他设置,例如附加每次点击费用或某些加权度量,将成功归因于目标或事件等……基于其他规则(首次点击与最后点击归因等)。 ..)。正在发挥作用的东西清单以及考虑的东西一直在不断地进行。继续尝试自己制作这些数据库查询字符串。现在清洗,冲洗并重复,因为这只是一个活动代码。我' 我们的客户拥有数千个活动代码,而且每天都会添加更多代码。哦,最重要的是,根据您希望实际报告显示数据的方式来调整或进行全新的查询。通过 xyz 交叉引用和分解。根据该数据查看漏斗和场景。这只是针对竞选活动,很多事情中的一件事。

因此,长话短说,将报告界面视为数据库的框架,您可以调整预定义的查询,从而使人们的报告工作变得更加容易,特别是因为大多数人都不是数据库专家。

于 2010-09-23T13:50:42.407 回答
3

它可能是使用他们自己的技术(如 Big Table 和 Map-Reduce)在内部开发的。映射和聚合是 Map-Reduce 类型算法的优势,因此数据看起来像这样跨不同维度聚合是有道理的。

如果您想了解更多关于它们的信息,我建议您使用这些 Wikipedia 文章:

于 2010-08-20T16:54:35.287 回答
2

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

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

于 2010-08-10T17:08:56.437 回答
1

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

于 2011-12-09T06:19:41.990 回答