代码之家  ›  专栏  ›  技术社区  ›  nonopolarity

为什么像Google分析这样的Web分析使用维度和度量而不是SQL语句?

  •  5
  • nonopolarity  · 技术社区  · 14 年前

    就在我再次熟悉SQL语句时,当我从googleanalytics中提取数据时,我发现它们并不使用SQL,而是使用维度和度量以及它们的组合。

    为什么?我认为它没有SQL接口(或者纯web服务器日志下载)?如果是这样,SQL语句如何转换为维度、度量(以及段和筛选器)?

    )或平均值( ),而Dimension倾向于记录值本身(例如Browser==IE或Country==Australia),这与 group by 价值观。过滤器就像条件句,那么段呢?

    似乎如果我们指定维度,那么它会自动执行 分组依据 并显示该字段。真的很重要( )或总和( )通常。如果我们想要呢 average(*) 分组依据 ?

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

    5 回复  |  直到 14 年前
        1
  •  8
  •   MemeDeveloper    12 年前

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

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

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

    它包括 数字事实称为度量 它们是 按维度分类 .

        2
  •  3
  •   John Munsch    14 年前

    它可能是内部开发使用他们自己的技术,如大表和地图减少。Mapping和aggregating是Map Reduce类型算法的强项,因此数据看起来像是跨多个维度聚合在一起是有意义的。

    如果你想了解更多,我建议你在维基百科上发表以下文章:

        3
  •  3
  •   CrayonViolent    14 年前

    我的猜测是,如果你问这样一个问题,你可能已经看了很多现成的报告,比如简单的页面浏览量。如果这就是你所做的一切,那么你就完全失去了网络分析的意义和力量。一般来说,Web分析(不仅仅是GA)关注数据随时间的变化趋势。而数据本身是通过遵循某些规则和行为来获取的,这些规则和行为包括预定义的和用户定义的。

    报表的许多数据都不能很容易地从直接数据库查询中获取,因为这些数据是基于诸如“随时间变化的xyz”和聚合数据之类的抽象数据。例如,维度和度量的“范围”概念,其中变量和/或值将报告有关单页视图/事件的数据,或在访问(会话)过程中,甚至在用户定义的时间段内(如“将此设置为最后一个月”或“使其持续到某个事件发生为止”,“就像弹出一个特定的变量或变量类型)。

    因为大多数报告都涉及到更高层次的数据检索概念,所以数据库被抽象出来,并且一个“框架”被放在适当的位置(报表界面)来帮助您构建显示趋势数据的报告。即使您是一名数据库专家,也要花费太多的时间和精力来尝试手动提取数据,以处理除页面视图之类的最基本数据之外的几乎所有内容。而这样的基础数据不太可行。

    以活动跟踪为例。这一切都是从一个var=value开始的。当用户单击一个链接并转到url中具有该var=值的页面时,跟踪代码将获取该值并开始不仅对有关该页面的数据(url、时间、浏览器类型、列表等)进行属性化,而且还对从自定义编码中收集的所有其他数据进行属性化。另外,你还可以应用其他设置,比如附加每次点击的成本或某种加权度量,将成功归因于目标或事件,等等……基于其他规则(第一次点击与最后一次点击归因等等)。要发挥作用的东西和被考虑的东西的清单一直在继续。继续,尝试自己制作那些数据库查询字符串。现在,清洗,冲洗和重复,因为这只是一个活动代码。我的客户有数千个活动代码,每天都有更多的代码被添加。哦,除此之外,根据您希望实际报表如何显示数据来调整或生成全新的查询。交叉引用和xyz分解。根据这些数据来观察漏斗和场景。这只是竞选活动的一部分。

    因此,长话短说,把报表接口看作是数据库的框架,可以通过预定义的查询进行调整,使人们的报告工作大大简化,尤其是因为大多数人 不是 数据库专家。

        4
  •  2
  •   M Schenkel    14 年前

    我想答案就在于这样一个事实:在API可用之前,你唯一可以分析数据的方法就是通过Google Analytics接口。在那里他们广泛使用“尺寸”和“公制”。因为非技术人员经常访问它,所以他们永远不会引入复杂的SQL构造;只是有下拉列表更容易。

    我不完全确定googleanalytics数据的存储方式是SQL友好的(即表中的列和行)。我听说他们已经开发了自己的内部存储数据的方法。

        5
  •  1
  •   Peter Hizalev    13 年前

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