替换项目中的包名
项目已经做完了,但是包名前缀不符合公司规范.项目中所有的类似 package com.sqi.opb.admin 的包名,引用都要从 com.sqi 替换为 com.bj58这个首先需要替换所有的java文件,pom文件和yml配置文件里面的内容然后批量移动文件夹 实现 很简单 linux 两行命令sed -i "s/com
画像预先计算的一点设想.时间段分片
画像优化告一段落。ES在分群阶段的效果非常好.但是在增量指标计算时 ES显得非常吃力。什么是增量指标计算呢?比如用户的点击次数,消费情况,这个原来在一个Hive表保存.每个用户每天一条记录.那么如果一个群分了50万人,统计他们9月1日至11月1日的消费情况.则需要扫描 50w*86 四千三百万记录这个数据量太大,所以增量指标计算的速度非常慢.因为是离线数据,可以用空间换取时间。我先给每
Linux 命令 管道 缓冲区
这是王工的一个问题.MySQL监控指标.使用 mysqladmin 每秒间隔获取信息, 将信息格式化后输出文件.获取信息和格式化的命令 mysqladmin -uroot -proot -S mysql.sock ext -i1| awk '/Queries/{q=$4-q
Shell 解决Redis Slow Log去重问题
老东家监测Redis的慢查询日志,采用Crontab 每隔一段时间对慢查询日志采样,然后追加写入一个文本文件。所以文本文件中有很多重复的慢查询日志如何对整段重复的慢查询日志去重呢?采用Shell 命令的方式最简单和直接。 awk '/^1\)/{print s;s=""};{ s=(s" "$0)};
数据权限验证MyBatis版
之前数据权限的一个设想http://blog.itpub.net/29254281/viewspace-2212990/ 存在几个问题一个是对于复杂SQL支持比较差,只能支持简单的几个操作另外,这个配置针对所有使用这个表的模块生效.而实际上,不同的模块很可能会有不同的数据权限规则。所以针对这种情况,改进了一个MyBatis版支持MyBatis,仅支持MySQL,使用MyBatis的传参方式传参首先
数据权限技术验证
数据权限技术验证.数据权限本质就是根据用户的信息,固定的拼接一些SQL基于阿里开源的Druid的SQL Parse模块 ,做了一些动态拼接SQL的技术验证.参考:http://mrchenatu.com/2017/01/19/druid-sql-parse/ 数据权限的配置在数据库中建表CREATE TABLE `dataprivilegeconfig` ( &nb
MySQL位图索引解决用户画像问题(简化创建流程)
基于前文,创建索引的时候有一个问题每个bigint类型包括60个记录的位信息.但是第0位表示第六十个记录的位第1位至第59位表示第一至五十九的记录的位信息.这样记录的位信息保存并不连续,使用的时候还得把最右边的一位挪到最左边,不好理解还非常麻烦,性能也有损耗.经过王工的改良,使用如下sql替换,则保存的位信息就连续了 SELECT &n
MySQL位图索引解决用户画像问题
在58遇到的第一个有意思的问题.用户画像的原始表,有一亿记录,100多个维度(100多个列),比如年龄,性别,爱好,是否有车,是否有房什么的.测试环境800w数据,大概在5G左右需要解决的问题一 :在100列中任选N列,过滤查询,执行时间小于一秒。实际上N一般在5到10即类似select * from 画像表 where 性别=‘男’ and 年龄 between 20 and 30 and 有车
Python位图索引学习
class Bitmap(object): def __init__(self, max): self.size = self.calcElemIndex(max, True) self.array = [0 for i in range(self.s
MySQL自定义变量实现row_number分析函数的天坑
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...
使用AWK规整KyLin日志改进
在前文的基础上,增加了改进。主要是细节格式的调整.处理100M数据用时7shttp://blog.itpub.net/29254281/viewspace-2156713/ time awk ' function ltrim(s) { sub(/^[ \t\r\n]+/, "", s); return s } function rtrim(s) { sub(/[ \t\r\n]+$/, "", s); return s } fu...
使用AWK规整KyLin日志
我们需要解析Kylin的日志,获取查询的相关信息.但是Kylin的日志是并发写的,也就是并发情况下,查询日志会有交叉。另外,Kylin汇总的行需要提取出来最后,涉及SQL的行,需要把多行合并为一行。KyLin原始日志如下2018-06-22 18:17:05,341 INFO [Query 1235b6a5-ae41-431d-bd75-bef0dae0bf57-144391] service.QuerySe...
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...