数据仓库
a_void
Do it once, do it better
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
字符串翻转之谜
做内容安全审查时,发现了一个奇怪的case。 明明用户的评论中含有敏感词,但是用关键词匹配却无法匹配成功。就好像like这个匹配方法失效了一样。sql select '一个敏感词啊' like '%敏感词%' -- 结果竟然为false用肉眼是无法看出问题的,把评论以文件形式下载到本地,用vim打开,才发现,原来文本的顺序是错乱的!见下图以这一段文本为例,<202d><202e>耳木<202c><202c>品质差别<202d><202e原创 2020-05-27 15:57:03 · 2722 阅读 · 0 评论 -
Hive如何比较复杂数据类型
Hive中的复杂数据类型,比如array,struct, map能进行大小的比较吗,我们先来做实验看看结果。Arrayselect max(arr)from ( select array(1,3,5) as arr union all select array(2,4,1) as arr union all select array(2,3,5) as arr ...原创 2019-12-24 19:26:53 · 2794 阅读 · 0 评论 -
使用hive制作一张日历表
如何做一张能支持标注中国节假日的日历表呢,话不多说见Code~with festival as ( select f.`date` as festival_date, f.name as festival_name, if(f.not_work == 'yes', True, False) as not_work from ( select array(...原创 2019-12-24 11:57:49 · 2134 阅读 · 1 评论 -
问题解决: Spark无法读取有多个子目录的Parquet表
问题解决: Spark无法读取有多个子目录的Parquet表用tez做数据处理时,免不了要用union all来整合多个数据源的数据。但是如果最后一步是union all的话,就会生成多个子目录,这时用Spark就可能无法读取到子目录中的内容(取决于spark的配置)。这个问题的原因是tez的union all是并行去做的,为了避免文件的冲突,tez写到了多个子目录里面。解决这个问题有两个方向...原创 2019-12-13 16:01:52 · 1648 阅读 · 0 评论 -
怎么用SQL计算可能认识的人
怎么用SQL计算可能认识的人用户关系数据可以有很多应用,比如说好友动态PUSH,朋友圈兴趣发现,好友推荐等等。推荐可能认识的人,属于好友推荐的一种。平台应该把沉淀、培养用户关系作为平台的目标之一。当用户在平台上积累了足够的关系网,用户离开平台的沉没成本就变得很大,所以你看现在人们已经离不开微信。可能认识的人,主要是基于用户的好友关系计算。假设有用户A,B,C其中AB是朋友,AC也是朋友,那...原创 2019-12-10 18:04:59 · 859 阅读 · 0 评论 -
计算互相关注的SQL应该怎么写
#计算互相关注的SQL应该怎么写用户好友关系是一个产品的核心数据,只允许互相关注的用户之间发消息称为强关系型产品,比如微信;反之,不互相关注也能看到动态,比如微博,就是弱关系型产品因为微信的存在,现在基本能做大的都是社区型的,弱关系型的产品了。所以互联网公司就很容易碰到,从单向关注数据中计算是否双向关注这种需求。假设现在有一张表,叫table_relation里面只有两个字段,from_us...原创 2019-11-27 13:14:19 · 4257 阅读 · 0 评论 -
如何高效计算用户留存率
如何高效计算用户留存率简单介绍留存率的概念,说明数仓建设中对留存率计算的优化思路什么是留存率在互联网行业中,用户在某段时间内开始使用应用,经过一段时间后,仍然继续使用该应用的用户,被认作是留存用户。留存率就是留存用户与全部用户的比值,计算公式留存率 = 留存用户数 / 用户数 * 100%比如昨天来了100个人,今天这100个人里面的60个人又来了,那么留存率就是60%。留存率...原创 2019-10-24 17:56:27 · 5375 阅读 · 0 评论
分享