如何学习新技术?
博客文章
- 碎片时间
- 非系统性
视频
- 覆盖面全
书籍
- 需要反复复习和看
- 缺乏提炼
官方文档(建议)
- 内容新
- 太琐碎 不系统 但是内容全
技术会议
- 技术前沿
- 公司使用的技术 别人踩过的坑
- 入门高
- 不适合刚入门 不是很基础的东西
论文
- 精华提炼
- 可以快速的看到技术的精华
- 难以阅读
- 开始难一点 多读一些 慢慢找感觉 后面会越来越快
- 即使很老的论文 也会有帮助
源码
- 细节为王
- 代码可以看到所有的东西
- 看代码的时候无从下手
培训课程
- 精心设计,事半功倍
- 自由度低,价格较高
-
需要在固定的时间上课
-
怎么看论文
工具推荐
看概述
- 递进式介绍
- 根据自己的了解程度
- 不要过多的展开 例如文献 先不要看
- 快速式阅读
- 大量参考文献
- 不宜展开太深
- 找出核心问题
- 提出解决方案
概述研究背景和论文核心内容
• 问题的提出 - 保证原子的写操作 - update
日志先行 + transaction log + 乐观锁 找出存储对象 进行替换
• 研究背景和意义 • 研究方法 • 论文结构安排
核心的内容和实现的方式
结论和展望
总结论文的创新点 对该领域今后的发展研究内容进行预测
湖仓一体
什么是Data Lake,Lakehouse?
-
Scalable Transactional metadata layer
- ACID
- Versioning 通过transaction log实现版本控制
-
Provide efficient up-to-date data
- better streaming data/mini batch support
- update/delete
-
Achieve good SQL performance
- cache hot data on SSD with lightweight format
- maintaining statistics
- build efficient accessing method like index
- data layout optimization
- 索引加速
Delta Lake、Hudi、Iceberg技术对比
深度对比三大开源数据湖方案 mp.weixin.qq.com/s?__biz=MzA… 5430&idx=1&sn=f6b93512f75c0866c83cba526016f9c9&chk sm=82c2926fb5b51b79228c1148aff3e0828745c87587a298f0f13e41554 e6213240bce005d8ae9#rd
Iceberg
- Snapshot(快照)
- 一张表在某一个时刻的状态
- Manifest File/Manifest List(清单)
- 组成快照的数据文件子集的元数据文件 • 文件路径
- Lower and upper bounds of columns • 文件级别:行数和大小统计信息
- 列级别:值的个数和null的个数
- 数据文件
-
parquet/avro/orc
-
ACID和隔离级别支持
Serialization: 所有的reader和writer都必须串行执行; Write Serialization: 是说多个writer必须严格串行,reader和writer之间则可以同时跑; Snapshot Isolation: 是说如果多个writer写的数据无交集,则可以并发执行;否则只 能串行。Reader和writer可以同时跑。
- Filter Pushdown:谓词下推
- Low meta cost:元数据管理依赖
- Indexing:索引,数据skipping CopyOnWrite和MergeOnRead:数据存储类型
- Auto-Compaction:小文件优化
copy on write 每次操作数据的时候 都会复制一份
- 读很快
- 写很慢
MergeOnRead-每次只写一个增量数据
- 读的很慢 每次都要做merge
- 些很快
怎么学习大数据技术
一核两脉
核心 侧重 Spark
- 透析SparkCore+SparkSQL的设计逻辑
- 老师多年深入魔改Spark内核的经验
- 带你串起分布式体系结构和数据库的技术本质
脉络一:系统性学习
- 从SQL原理出发,讲清楚数据仓库的来龙去脉,拓展数据湖技术,研究湖仓一体架构的方向。
- SQL加速
- 编译执行计划
- 结合多种主流大数据框架,从细节中抽丝剥茧,以深度见长的方式总结关键技术和学习的重点。
脉络二:共性学习
- 着重从计算引擎角度梳理知识体系,结合各种SQL引擎,提取共性来学习,真正做到触类旁通。