画像预先计算的一点设想.时间段分片
画像优化告一段落。ES在分群阶段的效果非常好.但是在增量指标计算时 ES显得非常吃力。什么是增量指标计算呢?比如用户的点击次数,消费情况,这个原来在一个Hive表保存.每个用户每天一条记录.那么如果一个群分了50万人,统计他们9月1日至11月1日的消费情况.则需要扫描 50w*86 四千三百万记录这个数据量太大,所以增量指标计算的速度非常慢.因为是离线数据,可以用空间换取时间。我先给每
MySQL位图索引解决用户画像问题
在58遇到的第一个有意思的问题.用户画像的原始表,有一亿记录,100多个维度(100多个列),比如年龄,性别,爱好,是否有车,是否有房什么的.测试环境800w数据,大概在5G左右需要解决的问题一 :在100列中任选N列,过滤查询,执行时间小于一秒。实际上N一般在5到10即类似select * from 画像表 where 性别=‘男’ and 年龄 between 20 and 30 and 有车
MySQL百分位数计算(第三次优化)
第二版:http://blog.itpub.net/29254281/viewspace-2157209/
MySQL百分位数计算(再优化版)
前文的问题第一版:http://blog.itpub.net/29254281/viewspace-2157111/第二版:http://blog.itpub.net/29254281/viewspace-2157209/第二版用时 33秒左右.在原来的基础上,稍加改进,即可提升三分之一的性能.select query_time,d,max(ts) ts from ( select t2.query_...
MySQL百分位数计算(优化版)
接前文http://blog.itpub.net/29254281/viewspace-2157111/这是上文的优化版本创建试验数据,5天每天一百万随机数据,总共500w数据delimiter $$create procedure pFastCreateNums(cnt int)begin declare s int default 1; truncate table nums; insert into nums select s;&...
查询前90%的数据值
先创建实验数据create table t( query_time date, ts float);INSERT INTO `t` (`query_time`,`ts`) VALUES ('2018-06-29',90.04);INSERT INTO `t` (`query_time`,`ts`) VALUES ('2018-06-29',89.24);INSERT INTO `t` (`query_time`,`ts`) VALUES ('2018-06-29',76.08);INSE...
MySQL 用随机数据填充外键表
参考:http://blog.itpub.net/29254281/viewspace-1686302/准备环境1.创建数字辅助表create table nums(id int not null primary key);delimiter $$create procedure pFastCreateNums(cnt int)begin declare s int default 1; truncate table nums; insert into nums se...
Session重叠问题学习(九)--该问题第七次优化.优化合并算法
接前文Session重叠问题学习(二),这是问题和需求的描述,执行时间90秒http://blog.itpub.net/29254281/viewspace-2150229/Session重叠问题学习(三)--优化,一次优化后,执行时间25秒http://blog.itpub.net/29254281/viewspace-2150259/Session重叠问题学习(四)--再优化,二次优化后,执行时间10秒http://blog.itpub.n...
Session重叠问题学习(八)--该问题第六次优化和Oracle版本
已经说好不玩了.还是不能罢手.之前极致优化的方法,是先计算最小区间,再计算最小区间上的用户数量.其实可以一边计算最小区间,同时计算最小区间上的用户数量.with c1 as -- 合并同一房间同一用户的重叠时间段,用于统计峰值人数 ( &nb...
Session重叠问题学习(七)--小花狸合并算法和最后一次优化
接前文Session重叠问题学习(二),这是问题和需求的描述,执行时间90秒http://blog.itpub.net/29254281/viewspace-2150229/Session重叠问题学习(三)--优化,一次优化后,执行时间25秒http://blog.itpub.net/29254281/viewspace-2150259/Session重叠问题学习(四)--再优化,二次优化后,执行时间10秒http://blog.itpub.n...
Session重叠问题学习(六)--极致优化
接前文Session重叠问题学习(二) 这是问题和需求的描述,执行时间90秒http://blog.itpub.net/29254281/viewspace-2150229/Session重叠问题学习(三)--优化 一次优化后,执行...
Session重叠问题学习(五)--最优化
周五晚上10点了.这一周连续优化Session合并和拆分问题.每天都比前一天提升性能一倍以上.终于在今天,用独创的小花狸Session合并算法达到了最优级别.令人振奋的1.5秒到2秒级别.时间已经很晚了,思路也有些不清晰了.先把代码贴出来.下周再仔细解释一下这个奇妙算法。...
Session重叠问题学习(四)--再优化
接前文:需求描述和第一版解决方案(执行时间90秒)http://blog.itpub.net/29254281/viewspace-2150229/优化和修改bug的版本(执行时间25秒)http://blog.itpub.net/29254281/viewspace-2150259/我觉得在集合思维处理方式中,前文已经达到最优了.如果放弃完全的集合处理思维,实际上还可以更加的优化.前文的几个问题....
Session重叠问题学习(三)--优化
接前文http://blog.itpub.net/29254281/viewspace-2150229/前文中的算法想了一天半,终于在昨天晚上得出了正确的结果.在我的环境中,耗时90s ,还有进一步优化的空间.首选是生成 t1 和 t2的方式.之前使用create table 方式 导致类型不对,因为是临时作用的表,所以可以预先创建表结构CREATE TABLE `t1` ( `roo...
Session重叠问题学习(二)
u_room_log.zip附件是实验的初始化表.另外需要先创建数字辅助表drop table t1; create table t1 select distinct roomid, userid, if(date(s)!=date(e) and id>1,date(s+int...
两列任意匹配一列
水友居士的一个需求.听他广东的普通话真是费劲.不过还是大概听明白了。实验准备Oraclecreate table t1( userid int primary key, fathername varchar2(32) , mothername varchar2(32) , CONSTELLATION varchar2(32)...
每隔N行生成一个汇总行(总结)
接前文http://blog.itpub.net/29254281/viewspace-2149120/http://blog.itpub.net/29254281/viewspace-2149309/处理这种每隔N行生成一个汇总行的需求,一共有三种方式drop table t;create table t (c int);insert into t values (15),(7),(9),(10),(7),(8),(20),(16),(9),(...
留存率计算
应水友要求帮忙写的SQL留存率: 某一个时段内,使用过该产品的用户,在未来时间段还使用的比率。原来搞过一个hive的http://blog.itpub.net/29254281/viewspace-2097338/以我们的登录表为例space_user_task_statistics_log 表 如果loginflag = 1 说明用户登录过产品.其中createDate 表示登录日期。...
每隔15行生成一个汇总行(王工优化版)
http://blog.itpub.net/29254281/viewspace-2149120/接前文前文有一块写多余了纠正如下王工优化的版本如下,确实是效率又高,可读性又好,整体还更精炼.
每隔15行生成一个汇总行
用户抽奖模块award_gift_record 是用户抽奖记录表.其中actiontime 是抽奖时间.AwardGiftID表示中奖的礼物ID. -1表示没有中奖awardactId 表示活动ID需求:查询每分钟抽奖人数和中奖人数 SELECT ...