Algorithm
一、用链表和二叉树实现Set集合
二、散列表
散列表就是使用数组下标随机访问时候复杂度为O(1)的特性,当我们按照键值查找元素时,通过散列函数将key转化为下标然后进行访问,当有大量散列冲突时会退化为O(n)的时间复杂度。
解决散列冲突的方法:开放寻址法和链表法
Review
Flink动态表概念
流和表为什么可以相互转换呢?
我们都知道传统Mysql的主从复制是通过binlog来实现的,主库所有的表操作都按时间进行记录,表转换成流,在对binlog进行回放到从库的过程就是流数据处理的过程,这时候流转换成表。所以可以说流和表在时间维度上具有等价性。
其次Flink是使用的Apache开源的Calcite项目做SQL解析的。Calcite通过JavaCC将SQL解析成AST树,经过校验、优化后进行执行,将物理执行计划转化成Flink可执行的程序。(SparkSQL是用Catalyst进行解析和优化的)
Tips
一、996.ICU
一个抗议程序员加班的网站,3天内破十万star,一个静态页面直接进入GitHub前十,也算是奇观了。
git地址 https://github.com/996icu/996.ICU
二、Window10上运行Docker
可以在Windows上模拟搭建各种环境,不需要启动慢慢的虚拟机。如果是window10 64位专业版可以在Windows功能中打开Hyper-V和容器后。直接双击安装。如果是老版本则还得下载一个 Docker Toolbox工具辅助运行。建议用Win10专业版运行否则可能回出现和VM之类的虚拟机冲突问题。
官网地址 https://docs.docker.com/docker-for-windows/
三、从疑问入手了解Flink
个人总结的一些Flink知识点 地址
Share
《如何遇到贵人》
小时候看多了武侠小说,总是向往这样一种场景,去深山老林中碰到一位得道高僧,高僧赐予我一部武林秘籍,修炼完之后天下无双。长大了发现这是几乎大多数人都有过的想法,遇到“大侠”,遇到真实生活中的贵人。那么怎么才能遇到贵人呢?总不能单单的靠运气吧?
什么人容易被人帮助,是乐观的人?乐于帮助别人的人?会提问的人?可以确定的是肯定不是爱占便宜,爱添麻烦,总乞讨做伸手党的人。反观自己帮助别人的感受,我个人并不是乐意帮助所有人,我会帮助那些我认为善良的人,并且会在那些善良的人眼睛里看到我的价值。所以自己先得是贵人,才可能遇到更多的贵人,才会有有效的社交。贵人之所以帮助你,是因为贵人看到了你的价值,要么这种价值帮助他确定自己的价值。要么这种价值让他看到了未来的可能性。遇到贵人不是最终的目的,最终的目的是成为贵人。
Research
系统学习maven及其插件,阅读《Maven实战》
学习Stream Table实时计算的原理