piwik学习

摘要:
数据模型、处理和存储Piwik允许您收集分析数据,然后将其作为报告检索。这些表的内容将在“Piwik数据库模式”指南中详细解释。DataTable存储在数据库中的对象是命名记录,以将它们与DataTablePiwik的API操作和返回的对象区分开来。我们将它们命名为报告。PiwikCore是Pivik的可扩展性点,它只定义了主要的过程和行为。

piwik学习第1张

 piwik学习第2张

piwik学习第3张

数据模型,处理和存储

Piwik可以让您收集分析数据,然后稍后检索为报告。让我们看看Piwik如何模拟,处理和存储数据。

日志数据:原始分析数据
HTTP跟踪API(即PiwikTracker组件)接收原始分析数据,我们称之为“ 日志数据 ”。

日志数据在PHP中表示为PiwikTrackerVisit对象,并存储到下表中:

log_visit 每次访问包含一个条目(返回访问者)
log_action 包含网站上所有可能采取的行动(例如,唯一网址,网页标题,下载网址...)
log_link_visit_action 每个行动的访客包含一个条目(页面浏览,...)
log_conversion 包含访问期间发生的转化(与目标相符的操作)
log_conversion_item 包含电子商务转换项目

这些表格是为快速插入而设计和优化的,因为跟踪API需要尽可能快地处理流量较大的网站。

这些表(及其相关的PHP实体)的内容将在“Piwik数据库模式”指南中有更详细的解释。

存档过程

以上表格并非针对提取高级别报表而设计或优化的:当有大量数据时,将日志条目聚合到日,周或月可能变得太密集。

该归档过程将读取日志数据汇总,以生产“ 数据归档 ”。数据汇总并存储为每个:

  • 自定义日期范围

归档数据可以是:

  • 数字指标:简单的数值(如页面浏览量)

    这些存储在archive_numeric_*表中。值存储为float。

  • 表记录:二维数据(可以是数值以及任何其他数据),表示为PiwikDataTable对象

    这些存储在archive_blob_*表中。DataTable对象被序列化为字符串并被压缩以被存储BLOB在表中。

    DataTable存储在数据库中的对象是命名记录,以区分它们与DataTablePiwik的API所操纵和返回的对象,我们将其命名为报告。

在每个聚合级别处理和存储每个数字度量或表记录:日,周和月。例如,这意味着“进入页面”报告将被处理并存储在每月的每一天以及每个星期,月份,年份和自定义日期范围内。这样的数据是多余的,但这对于保证快速性能至关重要。

因为存档数据必须快速查询,所以每个月都会分开单独的表。我们将会有:

  • archive_numeric_2014_10:2014年10月的指标
  • archive_blob_2014_10:2014年10月的报告
  • archive_numeric_2014_11:2014年11月的指标
  • archive_blob_2014_11:2014年11月的报告
  • ...
    “Piwik数据库模式”指南中详细介绍了归档表的内容。归档过程在“归档”指南中有详细的说明。

从存档数据到报告

如上所示,数据作为数字度量或表格记录存储。

报表是DataTable对象,由插件定义的API类提供。API类访问持久化的度量标准或记录,并将其转换为可呈现的报告。

有时候,一个持续的记录可能是几个API报告的来源。

您可以在“报告”指南中阅读有关如何创建和投放报告的更多详细信息。

派维克的可扩展性点

Piwik Core仅定义主要的流程和行为。插件可以通过几个可扩展点扩展和定制它们:

注册事件或触发事件
执行派维克公认的特殊课程
扩展某些抽象基类

免责声明:文章转载自《piwik学习》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇InstallShield学习笔记三:脚本(2)android开发之PreferenceScreen使用详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Laravel最佳实践--API请求频率限制(Throttle中间件)

在向公网提供API供外部访问数据时,为了避免被恶意攻击除了token认证最好还要给API加上请求频次限制,而在Laravel中从5.2开始框架自带的组件Throttle就支持访问频次限制了,并提供了一个Throttle中间件供我们使用,不过Throttle中间件在访问API频次达到限制后会返回一个HTML响应告诉你请求超频,在应用中我们往往更希望返回一个A...

Laravel API 错误处理:当异常时,如何返回消息

Laravel API 错误处理:当异常时,如何返回消息 原文链接:learnku.com/laravel/t/3…讨论请前往专业的 Laravel 开发者论坛:learnku.com/Laravel    基于 API 的项目开发越来越受欢迎,并且使用 Laravel 就能很容易实现。但是在针对如何处理各种异常的话题很少被提及。所以 API 的使用者们...

如何根据普通ip地址获取当前地理位置

前言: 我们现在需要做的功能是根据ip地址获取当前地理位置,是Web 服务API,获取后的位置信息一般是城市级别的,不是很精确的那种获取。 (1)开发者需要做的准备工作: 需要登录百度地图的api,点击web 服务API. 开发文档的地址:http://lbsyun.baidu.com/index.php?title=webapi/ip-api 请求...

Abp的swagger UI 出现Failed to load API definition.

Abp 出现Failed to load API definition.如下图: 原因:本次出现的原因是Api里面的方法重名了(只是方法的参数不一样)(可能是controller中的auction上面少了(hettpget,httpdelete)属性,其它原因也可能引起) 解决方法:修改其中一个方法的名字...

BMap:WEB 服务API

ylbtech-Map-Baidu:WEB 服务API 百度地图Web服务API为开发者提供http/https接口,即开发者通过http/https形式发起检索请求,获取返回json或xml格式的检索数据。用户可以基于此开发JavaScript、C#、C++、Java等语言的地图应用。 1.概述返回顶部 1-0、概述 http://lbsyun.baid...

Spark(十六)DataSet

  Spark最吸引开发者的就是简单易用、跨语言(Scala, Java, Python, and R)的API。 本文主要讲解Apache Spark 2.0中RDD,DataFrame和Dataset三种API;它们各自适合的使用场景;它们的性能和优化;列举使用DataFrame和DataSet代替RDD的场景。本文聚焦DataFrame和Datase...