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