Lie to me S01.e01.黄金矿工

Preview:

DESCRIPTION

用JavaScript写数据分析任务

Citation preview

季札黄金矿工

用户行为数据是⼀一座金矿!

但是我们没有趁手的挖掘工具...

问题

• UED 访问数据的成本太高

• 自己分析?

• 需要解决数据采集、存储以及分析的⼀一系列问题

• 需要掌握专门的工具或编程语言

• 找专门的数据团队?

• 人手、资源有限,大部分需求不能得到满足

• 自定程度较低

数据流程(传统)

����

��

����� ���� � ��

� � ���

为什么不使用 JavaScript 来分析日志数据?

数据流程(黄金矿工)

����

��

����� ���� � ��

� � ���

Google V8

������������

数据流程

�� �� ��

埋点 js 黄金矿工js job

报表页面

黄金矿工  ——使用 JavaScript 写数据分析任务!

两个重要前提

• 每⼀一条采集到的日志数据都可以用 Key / Value 的形式表示

• 如 { type: 2, x: 348, y: 982, tagname: “div”, ip: “202.38.12.45”, datetime: “2012-04-26 14:05:30”, ua: “Mozilla ....”, ...}

• 后台的数据分析步骤可以分解为⼀一些基本的常用的操作

• 如 filter、map、count、distinct、group、sum ...

• 这些基本操作可以使用另⼀一种胶水语言(JavaScript)组合起来

基本架构

� ���

$�� &%�#

����

���� ���� ���

�����'���"�����(

&%!�

打点

黄金矿工

打点 JS

• goldlog.emit(id, key_value_data);

• 实际上是对 new Image(); 的⼀一个封装

• http://www.atpanel.com/ued.1.1.2?type=9&_gm:id={id}

分析

黄金矿工

新增全局对象

• log

• datetime

• GoldMiner

log 记下指定日志信息

• log(“message”);

datetime 常用时间日期方法

• datetime.yesterday()

• datetime.today()

• datetime.now()

• datetime.daysOffset(n)

• datetime.datetime(year, month, day, hour=0, minute=0, second=0)

• ...

• 也可以使用 new Date() 代替,但 datetime 更方便

GoldMiner 与后台数据的接口

• var goldminer = new GoldMiner(“global_sample”, datetime.yesterday());

• var data = goldminer.data;

• data.filter()

• data.map()

• data.group()

• data.count()

• ...

��%�%����������)$���$�%���� &#$���$�%���� (�� ����� &#��%�� ���$�� ��$���$�%���% ��)��% � ## (��)�$%�#��)��*�# �� ����

� ��$�%�$�� ��$%*���

�������

��%������ &%!&%

�� �����

�������� ������%���)���% �����$��)���)�#�� '����)�$�%���)��'��&��

�����

������

�'�#������)������&�%����� ����� &�%����$%���%���)����%�#�� ���%� ����%��#$� ����# &!���)��%��� &�%���)��% !�� �����!���$&����)������&�%���&��"&�� &�%���)�

��%��������

������

���������%���)�

��%�$

������������

�� ���#� ����$$����

��%�%���

� ��

分析 JS

http://goldminer.taobao.org

����������

���������������

����� �����

����������

���

Q & A

下集预告 / to be continued...

Thanks! :-)