• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

有关新用户留存率模型的一种设计方法

有关新用户留存率模型的一种设计方法
今天分享一个新用户留存率模型的设计   1、抛出问题 用户留存是用户分析中最常用到的指标之一。 我们常常接到这样的需求: ~我们要看1天、2天、3天、4天 … 7天的留存~ ~我们要看1天、2天、3天、4天 … 28天的留存~ 还有一些不按套路出牌的: ~我们要看第33天的留存~ ~我们要看第56天的留存~ … 让你在代码里写连着7天的留存,就已……继续阅读 »

diligentman 2个月前 (08-29) 23浏览 0个赞

Hive源码系列(八)编译模块之语义解析 整体分析

Hive源码系列(八)编译模块之语义解析 整体分析
语义解析主要是把AST Tree转化为QueryBlock,那为什么要转成QueryBlock呢?从之前的分析,我们可以看到AST Tree 还是很抽象,并且也不携带表、字段相关的信息,进行语义解析可以将AST Tree分模块存入QueryBlock 并携带对应的元数据信息,为生成逻辑执行计划做准备   简单串一下语义解析 sql编译器的入口: ……继续阅读 »

diligentman 2个月前 (08-29) 19浏览 0个赞

Hive源码阅读系列(六)编译模块之词法、语法解析 (中)

Hive源码阅读系列(六)编译模块之词法、语法解析 (中)
这篇主要举实际案例说明怎么使用antlr工具、利用antlr生成的Lexer、Parser、TreeParser代码,获取asttree。这些都是hive获取asttree的过程,理解了这些,再理解hive的asttree就很容易了   程序设计语言入门小案例一般都用“Hello World”,在编译领域的入门往往选择计算器。而我们这次的小案例就更简单:……继续阅读 »

diligentman 2个月前 (08-29) 22浏览 0个赞

Hive源码阅读系列(四)编译模块之整体介绍

Hive源码阅读系列(四)编译模块之整体介绍
  这次主要对Hive编译模块做整体介绍,后面会针对流程中的每一步做详细分析   1、Hive执行过程回顾     client:用户通过客户端提交查询操作 Driver:提供执行接口,负责接收查询请求并建立session,创建一系列环境参数等 Compiler:Hive的编译器,负责将sql转化为平台可执行的执行计划 MetaStore:Hi……继续阅读 »

diligentman 2个月前 (08-28) 23浏览 0个赞

hivesql : hive.groupby.skewindata 和hive.map.aggr 组合的坑

hivesql : hive.groupby.skewindata  和hive.map.aggr 组合的坑
hive.map.aggr=true;在map中会做部分聚集操作,效率更高但需要更多的内存。 hive.groupby.skewindata=true:数据倾斜时负载均衡,当选项设定为true,生成的查询计划会有两个MRJob。第一个MRJob 中, Map的输出结果集合会随机分布到Reduce中,每个Reduce做部分聚合操作,并输出结果,这样处理的结果是……继续阅读 »

wangting 2年前 (2018-04-20) 668浏览 2个赞

hive mapjoin

hive mapjoin
MapJoin是Hive的一种优化操作,其适用于小表JOIN大表的场景,由于表的JOIN操作是在Map端且在内存进行的,所以其并不需要启动Reduce任务也就不需要经过shuffle阶段,从而能在一定程度上节省资源提高JOIN效率. 方法一 在Hive0.11前,必须使用MAPJOIN来标记显示地启动该优化操作,由于其需要将小表加载进内存所以要注意小表的大小……继续阅读 »

wangting 2年前 (2017-11-24) 350浏览 0个赞

hive orderby sortby distributeby clusterby

hive orderby sortby distributeby clusterby
order by:会对输入做全局排序,因此只有一个reducer(多个reducer无法保证全局有序)。只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。 在hive.mapred.mode=strict模式下,强制必须添加limit限制,这么做的目的是减少reducer数据规模,例如,当限制limit 100时, 如果map的个数为50……继续阅读 »

wangting 2年前 (2017-07-27) 344浏览 0个赞