Xoln blog

一个制造简单的技术博客

JAVA多线程编程-capter1

线程与锁的使用

Thread相关接口 start() sleep() yield() join() interrupt() stop() resume() suspend() in Object.class wait() notify() notifyAll() 线程状态转换 黑色代表线程状态 绿色代表不存在状态 黄色代表线程支持方法 问号代表不确定状态 锁 用于实现多线程并发时同步的数据结构......

数据仓库常用数据结构

查询、存储优化

树结构 平衡二叉树 常用场景:内存内动态搜索某一数据 常用实现: AVL树:严格保持平衡 红黑树:删除后的旋转操作最多不超过3次 B-tree 常用场景:磁盘内搜索唯一性或重复性低的数据 优化结构: B+Tree:所有Key存在叶节点,所有叶节点多一个链指针 Trie树 常用场景:对大量字符串统计、排序 优化结构: Merkle Patricia Tre......

Hive 查询引擎架构

分布式查询引擎架构

整体流程 结构转换 解析 从SQL语法解析为AST树 常用库 ANTLR SCALA Parse [SPARKSQL] 分析 阶段一:遍历AST树,将子查询转换为QB链,映射关键字转换为QB内的成员变量,并填入元数据信息 阶段二:遍历QB的alias字段,对应转换为逻辑Operator 逻辑计划优化 根据基于规则的优化器,对逻辑OperatorTree进行优化 常见优化......

flink 流处理架构

flink中的流处理概念与要点

流式处理常用概念 1、watermark 水印:用于推进窗口处理中的钟的时间,指明当前已处于处理哪一部分数据的时间;一般生成于Source,也可以生成于Source之后;水印对于乱序数据,设置的时间一般都与它本身的时间无关,这样即使无法通过事件时间判断数据是否已全送达到窗口,水印也可以告诉窗口处理之前的一批数据已经全部到达窗口。 PS: 乱序数据如何处理迟到的数据,一般都是设置等待一定数量的......

[Hexo] Restart xoln blog

人生,来一次说干就干的活儿 Restart up the Blog, it’s feeling good! ...