概述

什么是JQL?

JQL(JAVASCRIPT查询语言)允许您编写分析原始事件数据的JavaScript程序。

如果您想回答问题或进行我们无法使用我们的标准报告进行的复杂分析,则JQL是答案。

你能做什么?

JQL是为功率和灵活性而建造的,并且能够进行相当复杂的分析。例如,使用JQL,您可以轻松地重新实现从头开始的任何Mixpanel报告的逻辑。也许您想要稍微调整的漏斗或保留逻辑,或者想要全新的东西 - 天空是极限!

您可能想与JQL一起做的其他一些示例:

  • 为3周前创建帐户的每个用户获取独特的_id,邀请了至少一个朋友,并在第一周发送了4条消息
  • 从注册渠道退出后,弄清楚用户下一步
  • 确定上个月哪些用户搅动了,以及在他们搅动之前发生的事情

目标听众

JQL要求您编写代码。主要用户是开发人员和数据科学家,尽管可以保存查询并构建供其他人使用的报告。

JQL与SQL

数据分析的行业标准是SQL,许多人熟悉该语言。我们采用了另一种方法,并从头开始设计了一种基于JavaScript的查询语言。JQL竭尽全力学习,但我们认为收益值得付出努力,并鼓励您尝试。以下是JQL比SQL的一些优点。

  • 与SQL相比,在JQL中编写复杂的数据提取和处理工作流程更为简单。典型的分析查询,例如漏斗和保留,最终更短,更容易理解。
  • JQL非常灵活。它的API具有功能性,类似于Apache Spark,而不是声明性的,例如SQL。此范式使您可以在您喜欢使用少数原始功能的数据上表达几乎所有的转换。它还使您可以在查询中直接利用编程语言JavaScript的全部功能和灵活性。
  • JavaScript是世界上最受欢迎的编程语言。您公司中的许多人可能比SQL更熟悉它。
  • JQL经过优化,可以在我们的尖端事件和称为ARB的人数据库中有效运行。它没有汇编为SQL。

这个怎么运作

您开始使用MixPanel进行自定义数据分析只需要两个步骤。

首先,您必须编写一个查询。该系统非常灵活,因此还有很多要解决的问题。我们将在下一部分中解决。

现在,这是一个简单的例子。假设您想知道一月份有多少人使用了四次以上的应用程序:

函数main(){//从一月返回事件获得事件({{from_date:“ 2016-01-01”,to_date:“ 2016-01-31”})//计算每个用户.groupbyuser发送的事件数(函数(count,events){count = count || 0; return count + events.length;})//用于发送超过4个事件的用户过滤器。Filter(function(user){return user.value> 4;})//计算有多少个用户。}

其次,您需要运行查询。有几种方法,但在很高的水平上,您只需将脚本发送到我们的API端点之一即可。然后,我们使用脚本并根据您的原始数据执行它,将输出返回为JSON。

幕后

在幕后,此API使用V8,即为Chrome浏览器提供动力的JavaScript引擎。不涉及SQL-我们实际上将您的原始事件数据转换为JavaScript对象并执行您的代码。这为您提供了真正的编程语言的全部力量,使进行复杂的分析变得更加容易。