Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google analytics 为什么像Google Analytics这样的Web分析使用维度和度量而不是SQL语句?_Google Analytics_Analytics_Web Analytics_Google Analytics Api_Yahoo Analytics - Fatal编程技术网

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

Google analytics 为什么像Google Analytics这样的Web分析使用维度和度量而不是SQL语句?,google-analytics,analytics,web-analytics,google-analytics-api,yahoo-analytics,Google Analytics,Analytics,Web Analytics,Google Analytics Api,Yahoo Analytics,当我再次非常熟悉SQL语句时,从Google Analytics中提取数据时,我发现它们不使用SQL,而是使用维度和度量以及它们的组合 这是为什么呢?我认为它没有SQL接口(或普通的web服务器日志下载)?如果是这样,SQL语句如何转换为维度、度量(以及段和过滤器) 似乎度量往往是“聚合”,如count()或average(),维度往往是记录的值本身(如Browser==IE或Country==Australia),这与groupby值相同。过滤器就像条件句,那么段呢 似乎如果我们指定了维度,那

当我再次非常熟悉SQL语句时,从Google Analytics中提取数据时,我发现它们不使用SQL,而是使用维度和度量以及它们的组合

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

似乎度量往往是“聚合”,如count()或average(),维度往往是记录的值本身(如Browser==IE或Country==Australia),这与
groupby
值相同。过滤器就像条件句,那么段呢

似乎如果我们指定了维度,那么它会自动执行一个
groupby
,并显示该字段。它通常是count()或sum()。如果我们想要
平均值(*)
呢?如果我们想让它显示,但不想让它按分组,该怎么办


要进行实验的示例网站位于

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

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

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

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

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


它可能是内部开发使用自己的技术,如大表和地图减少。映射和聚合是Map-Reduce类型算法的优势,因此,数据将在不同维度上聚合是有意义的

如果你想了解更多,我建议你阅读以下维基百科文章:


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

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

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

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


因此,长话短说,将报表界面视为数据库的框架,可以调整预定义的查询,以使人们的报表工作大大简化,特别是因为大多数人不是数据库专家

我们问了自己类似的问题。看起来很多web分析API都是事后才想到的,通常直接映射到相应产品的UI功能。(免责声明:我是联合创始人)我们正在使用灵活的查询语言构建web analytics API,该语言在语法上类似于SQL,但在聚合和映射减少执行框架方面进行了高度优化。此外,它还提供了许多专门为web分析设计的内置功能,如转换漏斗st