如果您需要访问Matomo RAW数据并将其导入到数据仓库或BI工具中,有两个选项:HTTP API数据导出,或直接数据库导出。

1)使用我们的HTTP API导出所有数据

使用我们的HTTP API,您可以导出所有个人用户数据和所有用户操作(访问、页面、点击、事件、下载、自定义维度、用户位置、用户信息等)。用于导出所有原始数据的API被调用Live.getLastVisitsDetails并让您导出所有用户和点击流数据为给定的网站和给定的日期。一个可选的自定义部分当需要导出特定段用户时)。例如,如果你想导出昨天的完整数据集,你可以使用下面的API调用:

https://demo.matomo.cloud/?module=API&method=Live.getLastVisitsDetails&idSite=62&period=day&date=yesterday&format=xml&token_auth=anonymous&filter_limit=100

  • 替换域名demo.matomo.cloud通过您的Mato亚博ap下载mo Analytics(以前的Piwik Analytics) URL
  • &token_auth =匿名、替换匿名通过你的API用户的token_auth。我们建议您在Matomo中创建一个新用户,例如,名为“API -data-warehouse-export”,并授予该用户在您要导出到数据仓库的网站上的“查看”权限,然后在API调用中使用该用户的token_auth。
  • &filter_limit = 100参数将确保返回当天的所有数据。使用&filter_limit = 1返回所有行。
  • 数据可以以JSON、XML、CSV等格式导出。取代正式= xml你喜欢的数据格式。
  • 数据将包括每次访问最多500个动作。如果你的一些访问在一次访问中跟踪了500多个行为,你就可以配置Matomo API以返回更多操作(INI设置配置更改)
  • 这个API可以每天调用一次,所有输出数据都可以导入到数据仓库中。

关于高流量Matomo服务器的重要注意事项

如果导出大量数据,例如超过10,000次访问及其相关操作和点击流,那么上面的HTTP请求可能需要很长时间,甚至超时(取决于您的服务器和PHP设置)。您可能会得到这样的错误超过最大执行时间0秒.在一定的限度内增加PHP内存限制,但不建议增加到4G以上,有时4G不足以返回成千上万的访问者和他们的所有行为。

因此,当您导出大量数据时,我们建议您一次只导出10,000个数据,并使用我们的分页&filter_offset =特性。下面是它的工作原理:导出前10,000条记录,而不是filter_limit = 1你会写filter_limit = 10000 &filter_offset = 0.然后,要导出下一个数据集,您将编写filter_limit = 10000 &filter_offset = 10000.然后,要导出下一个数据集,您将编写filter_limit = 10000 &filter_offset = 20000.重复此操作,直到数据集中没有结果为止。

2)直接只读访问MySQL数据库(Matomo Cloud不支持)

另一个解决方案是直接访问Matomo Analytics(以前是Piwik Analy亚博ap下载tics)的MySQL数据库,所有数据都存储在那里。这种解决方案可以更快地导入大量数据,特别是当您的数据仓库支持从MySQL导入数据时(大多数数据仓库包括BigQuery等工具)。我们建议创建一个只读MySQL用户,该用户只能访问Matomo数据库并从中读取数据(不允许写入)。你会发现更多关于Matomo数据库结构的信息,请参阅我们的开发指南.注意,数据库模式将来可能会改变。

例如,要从数据库中选择数据,类似于访问日志,您可以使用以下查询:

SELECT * FROM matomo_log_visit LEFT JOIN matomo_log_link_visit_action ON matomo_log_visit。Idvisit = matomo_log_link_visit_action。idvisit LEFT JOIN matomo_log_action ON matomo_log_action。Idaction = matomo_log_link_visit_action。idaction_url LEFT JOIN matomo_log_conversion ON matomo_log_visit。Idvisit = matomo_log_conversion。idvisit LEFT JOIN matomo_log_conversion_item ON matomo_log_visit。Idvisit = matomo_log_conversion_item.idvisit;

(注意:由于多个表中存在相同的列,查询结果集中会有一些重复的列。)

还提供了用于导出所有访问和操作的有用SQL查询列表在另一个常见问题中提供。

注意:对MySQL数据库的直接只读访问(sql原始数据访问)在Matomo Cloud上是不可用的(它只在你的服务器上使用Matomo Self-hosted时可用)。

如果您需要更多关于数据仓库和数据湖最佳实践的信息,请联系Matomo专业支持团队

Baidu