摘要: Bloom Filter一般用于数据的去重计算,近似于HashSet的功能;但是不同于Bitmap(用于精确计算),其为一种估算的数据结构,存在误判(false positive)的情况。 1. 基本原理 Bloom Filter能高效地表征数据集合$S = \lbrace x_1 ,x_2 ,.. 阅读全文
posted @ 2016-09-18 16:13 Treant 阅读(1832) 评论(2) 推荐(0) 编辑
摘要: 1. 引言 电商类的网站(比如:京东)为了便于用户浏览商品,建立了一套类目体系,对商品进行各种粗细粒度的划分。类似地,用户画像的标签体系也划分多层级的结构。在做标签洞察时,需要将这种带有层级的体系序列化json,提供给前端。但是,标签体系是存储在MySQL数据库中,为平铺化的表结构,如何将其表达为具 阅读全文
posted @ 2016-08-30 20:15 Treant 阅读(1712) 评论(0) 推荐(0) 编辑
摘要: 1. 引言 从安卓手机收集上来的机型大都为这样: mi|5 mi|4c mi 4c 2014022 kiw al10 nem tl00h 收集的机型大都杂乱无章,不便于做统计分析。因此,标注显得尤为重要。 "中关村在线" 有对国内大部分手机的介绍情况,包括手机机型 及其对应的常见名称 。因而,设计机 阅读全文
posted @ 2016-08-09 17:45 Treant 阅读(3629) 评论(0) 推荐(0) 编辑
摘要: 1. 常见命令 连接本地数据库与远程数据库(172.16.xx.xx:3306): 2. DDL 数据定义语言(Data Definition Lanuage, DDL)定义了数据库模式,包括CREATE、ALTER、DROP、TRUNCATE、COMMENT与RENAME语句。 创建(CREATE 阅读全文
posted @ 2016-07-26 09:44 Treant 阅读(1547) 评论(1) 推荐(2) 编辑
摘要: 1. 引言 "前一篇" 介绍了Pandas实现简单的SQL操作,本篇中将主要介绍一些相对复杂一点的操作。为了方便后面实操,先给出一份简化版的设备统计数据: 其中,第一列表示维度组合编号,第二列表示操作系统类型,第三列为维度值(NLL表示缺失,即第一行、第二行表示操作系统的统计,其余表示厂商或机型), 阅读全文
posted @ 2016-07-19 20:10 Treant 阅读(7393) 评论(0) 推荐(0) 编辑
摘要: 1. 简介 coordinator是workflow的定时提交器,基于时间条件与数据生成触发(based on time and data triggers)。简单点说,coordinator按所定义的时间周期进行轮询,若数据生成条件满足,则触发workflow任务;否则,则等待数据生成或跳过(调度 阅读全文
posted @ 2016-06-13 17:23 Treant 阅读(7183) 评论(0) 推荐(5) 编辑
摘要: 1. Oozie简介 Yahoo开发工作流引擎 "Oozie" (驭象者),用于管理Hadoop任务(支持MapReduce、Spark、Pig、Hive),把这些任务以DAG(有向无环图)方式串接起来。Oozie任务流包括:coordinator、workflow;workflow描述任务执行顺序 阅读全文
posted @ 2016-05-26 16:20 Treant 阅读(13797) 评论(2) 推荐(3) 编辑
摘要: 最近在用Hive做多维数据分析,总结一些常用HiveQL命令。 1. 建表 以纯文本数据建表: sql create table ( string comment 'ADX ID' , string comment 'ADX名称' , string comment '更新时间(天粒度)' ) com 阅读全文
posted @ 2016-05-20 18:43 Treant 阅读(1985) 评论(0) 推荐(0) 编辑
摘要: 1. 引言 在 "前一篇" 中,解决了Hive表中复杂数据结构平铺化以导入Kylin的问题,但是平铺之后计算广告日志的曝光PV是翻倍的,因为一个用户对应于多个标签。所以,为了计算曝光PV,我们得另外创建视图。 分析需求: 每个DSP上的曝光PV,标签覆盖的曝光PV; 累计曝光PV,累计标签覆盖曝光P 阅读全文
posted @ 2016-05-05 18:03 Treant 阅读(6140) 评论(0) 推荐(0) 编辑
摘要: 1. 引言 在分析广告日志时,会有这样的多维分析需求: 曝光、点击用户分别有多少? 标签能覆盖多少广告用户? 各个标签(标注)类别能覆盖的曝光、点击在各个DSP上所覆盖的用户数 …… 广告数据与标签数据join之后,存储orc file的schema如下: 用户可能会有多个标签,因此采用 数据类型来 阅读全文
posted @ 2016-04-28 17:26 Treant 阅读(5699) 评论(0) 推荐(1) 编辑
摘要: 在cube build完成后,我的工作是写sql生成数据分析邮件报表。但是,问题是这种重复劳动效率低、易出错、浪费时间。还好Kylin提供 "RESTful API" ,可以将这种数据分析需求转换成HTTP请求。 1. RESTful API Kylin的认证是basic authenticatio 阅读全文
posted @ 2016-04-22 10:29 Treant 阅读(3323) 评论(5) 推荐(0) 编辑
摘要: 前一段时间,用Django搭建一个报表分析的网站;借此正好整理一下笔记。 1. 安装 python有包管理工具pip,直接 ,输入 安装完成后, ,若能打印出Django的版本信息,即说明安装成功。一般地,Django安装在 目录。 2. Django介绍 项目 Django的架构是MTV(Mode 阅读全文
posted @ 2016-04-20 19:32 Treant 阅读(2018) 评论(0) 推荐(0) 编辑
摘要: 有一个数据多维分析的任务: 日志的周UV; APP的收集量及标注量,TOP 20 APP(周UV),TOP 20 APP标注分类(周UV); 手机机型的收集量及标注量,TOP 20 机型(周UV),TOP 20 手机厂商(周UV); 初始的解决方案:Spark读取数据日志,然后根据分析需求逐一进行m 阅读全文
posted @ 2016-04-12 12:57 Treant 阅读(3324) 评论(0) 推荐(1) 编辑
摘要: 在 "前一篇" 中介绍了使用API做Distinct Count,但是精确计算的API都较慢,那有没有能更快的优化解决方案呢? 1. Bitmap介绍 《编程珠玑》上是这样介绍bitmap的: Bitmap是一个十分有用的数据结构。所谓的Bitmap就是用一个bit位来标记某个元素对应的Value, 阅读全文
posted @ 2016-04-06 15:06 Treant 阅读(2558) 评论(0) 推荐(1) 编辑
摘要: 在数据库中,常常会有Distinct Count的操作,比如,查看每一选修课程的人数: Hive 在大数据场景下,报表很重要一项是UV(Unique Visitor)统计,即某时间段内用户人数。例如,查看一周内app的用户分布情况,Hive中写HiveQL实现: Pig 与之类似,Pig的写法: " 阅读全文
posted @ 2016-03-29 13:51 Treant 阅读(7457) 评论(0) 推荐(1) 编辑
摘要: 1. 数据模型 Schema Pig Latin表达式操作的是relation,FILTER、FOREACH、GROUP、SPLIT等关系操作符所操作的relation就是bag,bag为tuple的集合,tuple为有序的field列表集合,而field表示数据块(A field is a pie 阅读全文
posted @ 2016-01-20 14:20 Treant 阅读(1993) 评论(0) 推荐(1) 编辑
摘要: 1. 问题描述 收集日志avro数据中有两个Map字段 、`appUse 支付宝|京东|淘宝|天猫`的用户名单;MapReduce 解决办法如下: 但是,如果要匹配游戏类的app、金融类的app类呢?如果匹配关键词发生了变化呢?显然,我们应该将匹配关键词开放成API,可以自由地匹配正则表达式。这时, 阅读全文
posted @ 2016-01-14 10:46 Treant 阅读(1382) 评论(0) 推荐(1) 编辑
摘要: 最近特别喜欢用Pig,拥有能满足大部分需求的内置函数(built in functions),支持自定义函数(user defined functions, UDF ),能load 纯文本、avro等格式数据;illustrate看pig执行步骤的结果,describe看alias的schema;以 阅读全文
posted @ 2016-01-12 20:21 Treant 阅读(2952) 评论(3) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2015-03-20 10:08 Treant 阅读(1304) 评论(0) 推荐(3) 编辑