- 博客(88)
- 收藏
- 关注
原创 Flink_Trigger_Flink 中的响指
在上篇文章中,我详细讨论了 Flink 是如何为 record 分配窗口的。接下来我们就要讨论一下什么时机触发对窗口的计算了。这就像响指的功能,当集齐五个石头后,什么时候毁灭宇宙一半的生命呢?大家都知道了, 还差一个响指。我们今天讨论的触发时机,和响指的功能差不多,在 Flink 中,Flink 的开发者给他起了一个非常形象的名字——Trigger。请看下面的图片, Trigger 就是手枪的扳机。扳动扳机就能射出子弹,在 Flink 里面,Trigger 类决定了,是否对窗口中的数据进行计算,并将计算结
2020-11-23 09:03:45
784
1
原创 Flink_窗口的底层实现逻辑
目的写这篇文目的是为了加深对窗口和 watermark 的理解。先感谢这位博主的辛勤劳动。我做的分析就是基于这位大侠做的。下面上正题。正题窗口总体流程窗口是用来切割无线流的,它把无线流切分成有限个碎片,通过计算碎片来计算流的某些性质。就像积分计算求球的体积。它将从球新到表面扇柱体是一个正方体,然后使用极限的思路,然后就计算出球体的体积。根据不同的需求,我们有下面几种窗口类型。数据流是无限的,我们可以统计每 n 个单位时间内的一些统计值。这就是 Tumbling 窗口。我们也可以每隔 3
2020-11-22 17:32:15
973
4
原创 又来一道面试题——用 SQL 来写个小九九
题目要求使用 sql 写出 8 进制的小七七,如下图所示,题目分析什么就小七七,我只听说过小九九,哦,对了,我们之前小学的时候背诵过小九九,那是 10 进制,这样看来的话,我们就知道了,这个题目是让我们使用 8 进制下以内得乘法法则。先搞小九九sql 代码如下(hive版本),with detail as ( select explode( split(repeat(',',8),','))),detail_rn as ( select row_number() over() as rn
2020-10-03 22:05:25
232
原创 正则表达式——文本处理的“东风导弹”
如何做整合之前学习成果。包括 evernote、youdaonode 里面的东西。探索 Linux 里面的正则表达式python 里面的正则表达式Java 里面的正则表达式通用型的正则表达式
2020-08-07 09:58:47
232
原创 再来道面试题
题目取出每月连续 5 天有登录记录的用户。解题方法create table member_log aswith detail as ( select '4/11/2020' as date_d , 'A' as member_code , 21 as sale_amt union all select '4/12/2020' as date_d , 'A' as member_code , 23 as sale_amt union all sel
2020-08-05 22:45:06
306
原创 来道面试题
with detail as (select '18:30:00' as game_time , 'Lakers' as team_name, 'kebo' as player , 2 as scoreunion all select '18:31:05' as game_time , 'Lakers' as team_name , 'kebo' as player , 2 as scoreunion all select '18:31:21' as game_time , '76ers' as te
2020-07-14 20:26:32
446
5
原创 NBA 连胜连败用 SQL 如何写的
NBA 全队连胜连败记录请看下图中的“连胜/负”这一列。这列数据是如何计算出来的呢?今天咱就说个清清楚楚,明明白白。上代码with detail as ( select 'LA' as team_name , 1 as rs , '2020-01-01' as date_d union all select 'LA' as team_name , 1 as rs, '2020-01-02' as date_d union all select 'LA' as team_name , 0
2020-07-08 13:06:43
847
原创 数据中台的一些问题整理
需求调研阶段如何保证需要不漏、理解正确,减少不返工?如何描述清楚源数据中表的关联关系,使用什么工具和承载这个功能?设计阶段如何设计维表元数据解决了什么问题,如果没有思路,可以问一下详细的问题数据一致性的问题,包括指标口径不一致、测试问题数据复用提高取数效率降低学习成本统一管理元数据,避免团队数据孤岛保证数据质量,准(准时、准确)全(oneData),效果是数据用户敢用、放心用、用的有价值。如果要做一个数据中台的项目,我们应该如何设计组织架构。调度平台的核心功能:定时调度
2020-06-30 16:55:15
800
原创 Linux to I/O or to CUP 这是个问题
吞吐和响应吞吐:说白了,就是让一个进程不要等待I/O、网络等。一个进程起来从运行状态一直干到僵尸状态,中间不进行任何的等待,这样自然就提高了吞吐率。响应:系统能够快速的响应用户的操作。当一个用户点击一下鼠标,我当人希望系统能够快速给用户一个反应。这个时间越短越好。吞吐和响应是一对矛盾。吞吐要求“两耳不闻天下事,一心只读圣贤书”,什么用户体验,总是用户不用来打扰我,我先把自己的事情做好,你再来烦我。但是响应不一样,我的用户,我是老大,我希望我的系统做到有求必应,不管你忙不忙,反正我的需求来了,你就要放下
2020-06-14 14:03:21
509
原创 数据开发的工具箱
Linux 交互XshellMobaXtermWinScpsecurityRcputty代码管理git for windowsourceTree高级编辑器sublimeAtomnodepad++vsCodevim数据库交互全能选手:DBeavernavigator: sqlserver mysql平台数据交互sqoopdataxflumehive 命令行-f--hivevar or --hiveconf-e-f--showHeade
2020-06-10 09:44:53
753
原创 我的 shell 最佳实践
shell 规范可以使用 shellcheck 来检查 shell 的错误代码的警告和建议.参照:https://www.jianshu.com/p/161618366866变量的命名头部引用:#!/usr/bin/env bash注释缩进变量的使用变量类型函数返回值计算分支...
2020-06-07 22:34:22
366
原创 hive 的几个优化参数
内存溢出1.2 GB of 1 GB physical memory used; 2.2 GB of 2.1 GB virtual memory used. Killing contain从字面意思来看,是数据量超过 map 或者 reduce task 的内存大小。所以 yarn 不得不讲整个任务杀死。最直接的解决办法是设置:set mapreduce.map.memory.mb=40...
2020-05-17 14:12:36
2177
原创 进程和线程的本质
谁说只有细胞可以分裂的高中的时候,大家都学过,细胞是可以分裂的,在 Linux 系统里面,进程也是可以分裂的。细胞分裂靠的是 DNA 和蛋白质,进程分裂靠的是 task_struct 和 fork().task_struct { pid , ... mm , -- 内存地址 fs , -- 和进程相关的路径 files -- 文件资源}大家回忆一下高中时候的知识, DNA 是模板,是设计图纸,蛋白质是按照图纸制造新细胞的。同样的 task_struck 描述一个进程的基本信息,像极了细
2020-05-16 20:25:09
392
原创 git百宝箱
装逼命令$> git rm --cached 从索引中删除文件。但是本地文件还存在, 只是不希望这个文件被版本控制。$> git checkout 从缓存区移除到工作区$> git mv file 修改文件的名字$> git log -p $> git add -u 将已经加入到缓存的文件改动 add 到缓存区...
2020-03-31 00:36:19
221
原创 SQL 刷题
题库来源题源leetcode180. 连续出现的数字题目请大家自己链接上的东西吧,下面是我写的解法。with detail as ( select 1 as id , 1 as num union all select 2 as id , 1 as numunion all select 3 as id , 1 as num union all select 4 ...
2020-03-29 19:36:00
1050
原创 sed_find_awk_grep刷题
填空Unix中在当前目录下所有.cc 的文件中找到含有“asiainfo”内容的文件,命令为:grep 'asiainfo' file使用AWK指定分隔符的参数是 -Fawk -F简答找出当前目录下包含127.0.0.1关键字的文件?grep '127.0.0.1' files删除/显示1.txt文件第3行到第10行的内容?sed -n '3,10p' file...
2020-03-07 00:26:24
816
原创 升级“脚本小子”
脚本小子脚本小子并不自己写代码,而是四处 copy 代码。还有的情况是 copy 自己写的代码。如何做的更好写再写 sql 的时候,注意总结解决一类问题的通用方法。单纯 copy 代码,不如封装函数。copy 相似逻辑的代码,不如重写逻辑。...
2020-03-03 10:30:53
720
原创 执行 ./xxx.sh 后发生了什么
问题描述有下面一段 shell 脚本ubuntu>echo xxx.sh#!/bin/bash echo 'hello world'ubuntu>chmod a+x xxx.sh ubnutu>./xxx.sh 当输入 ./xxx.sh` 回车后,发生了什么?问题分析这里涉及到 bash 脚本的执行过程。其实我们在命令行中数据只是一个一个的字符串,这些字符串会...
2020-02-02 17:05:14
523
原创 sqlserver 元数据管理
建表语句的转换sqlserver -> hiveSELECT table_name ,'drop table if exists vn0c43l.' + table_name + ';' + char(10)+ 'create table vn0c43l.' + table_name + '(' + char(10)+ ...
2019-11-28 11:36:47
378
原创 那些年擦肩而过的 Linux 命令
去掉文本中的 BOMutf-8 还有 utf-8 with bom 的格式,如果是这种格式的话,在执行hive -f file.sql 的时候,会报错。单个文本的情况下,可以使用下面的方法:使用 set nobomb 命令:set nobomb :x批量更改的命令:ls *.sql | xargs sed 's/\xef\xbb\xbf//g'使用 presto 命令文件...
2019-11-22 21:54:51
1215
2
原创 数据仓库之血缘关系
血缘关系是什么一提到“血缘关系”这个词,我第一个想到是族谱的样子。下图就是一个简单的族谱。血缘关系概念:https://www.cnblogs.com/zhangleisanshi/p/7730196.html血缘关系的应用:根据表与表之间的依赖关系,在上游数据跑批出现错误的时候,可以自动跑下游的数据。通过字段级别的血缘关系,可以清醒知道某个字段流向,降低对数仓的学习成本。血缘关...
2019-08-28 23:50:49
14831
4
原创 数据分析中的连续性问题
场景实现实现1with a as ( select * from ( select '2014-01-01' as date_ , '1' as is_holaday union all select '2014-01-02' as date_ , '0' as is_holaday union all select '2014-01-03' as date_...
2019-06-24 23:19:59
2951
原创 Flink 监控
基本的需求监控 job 的内存、网络、CPU 的使用情况监控 job 的状态,running or dead监控 job exception总之,我的目的是不能让 job 因内存、网络、cpu 不足造成的程序崩溃metric 的类型了解什么是 Metric看看下面这个 blog , 应该会有一个大概的了解:http://wuchong.me/blog/2015/08/01/ge...
2019-06-19 19:37:07
3717
原创 两个程序处理逻辑的陷阱
两个程序处理逻辑的陷阱最近编程程序的时候遇到了两个比较常见的逻辑问题:list 分组的问题多条件判断分类问题先来把这两个问题描述清楚。list 分组问题是这样的,我有一个 list 数组,里面是 JavaBean ,JavaBean 中有n 个字段,我管他叫做集合 Sn,其中我们使用 Sn 中的 m 个元素做为分组的依据。这个集合为 Sm。有点像 SQL 中的 group by 的...
2019-06-16 22:29:49
272
原创 SQL到底是如何开窗的
开窗函数的逻辑请看下面的例子,姑且叫这个表为dw.fct_sales,它有三个字段如下。我们只取里面三个字段月份、门店、销量。好多时候,当我们计算完每月每个门店的单量,还希望加一列,各个月份的汇总,如果我们能根据月份把数据分成两组,把每组的销量累计起来,放到最后一行,我们的需求不就实现了嘛!幸运的是个大 sql 平台都实现了这种功能。开窗,开窗,先让我们搞清楚什么是窗口。窗口就是一个字段的...
2019-02-26 09:49:56
2311
2
原创 如何进行随机抽奖
抽奖逻辑说明在某个时段内,会员在超市内下单,就有机会得到超市派送的惊喜小礼物业务说明和价值说明在门店经营过程中,经常在一些节假日里面做一些抽奖活动,为门店带来线上或者线下的客流。客流的增加很容易带动销售额的上涨。抽奖也是的超市常用的促销手段。超市的主要商业场景随着智能手机的普及,超市越来越意识到 APP 在触达用户方面的优势,所以纷纷推出了自己的微信小程序或者独立的 APP。利用...
2019-01-24 22:55:23
1974
原创 md5sum 应用实践
什么鬼假如,你需要向一个 ftp 服务器上传压缩文件,你需要一个简单的方法让使用这个文件的人直到你的文件在传输的过程中没有丢失数据。聪明的你可能想到了,md5 这个神奇东东,给 md5 一个字符串,他会还你你个字符串,还还不是简单的还,是根据 md5 的算法,md5 算法是这样的:无论你给它一个什么样的字符串,它都会为你返回一个 32 位(可以设置 16 或者其他)的字符串,而且同样的输...
2018-12-23 21:15:07
687
原创 会员留存的计算思路
需求以周为单位,三周为一个跟踪周期来计算每周会员留存率。例如 2018 第 23 周的留存率需要计算出如下的结果:23周24 周25 周50 个会员23 个会员24 个会员方法1利用子查询的方式来计算每周的留存率。类似下面的 sqlselect 'week1' as week_num ,count(distinct week1.member_i...
2018-12-05 21:55:36
1698
原创 trap 捕捉信号量的小程序
#!/bin/bashtrap 'myfunc' 2function myfunc(){ read -p 'do you want to terminate this thread ' s case $s in 'yes') exit; ;; 'no') ...
2018-06-02 22:16:57
484
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅