Delta lake with Java--读《Delta Lake Up and Running》总结

news/2024/9/22 18:20:34/

利用5.1假期读完《Delta Lake Up and Running》,这本书非常适合入门,但不够深入,要想将Delta lake用于实际项目,还是需要从spark开始重新学习。学完一本书总结一下这本书的内容。

第一章 概念介绍,其中第21页的Medallio Architecture架构(金,银,铜)是数据湖架构基础,基本上数据湖的书籍都会提及。

第二章 Delta lake入门,需要掌握如何创建sparksession,如何用sparksession实现数据读写,其实使用的就是spark dataframe api,只是格式要设定为delta,深入一点可以看一下这章后面关于delta lake文件的说明。

第三章 Delta lake最基本操作,包括建库,建表,描述表结构,插入数据,查询数据,可以通过3种方式实现,分别是spark sql+sql语句,spark dataframe api,deltatable api,个人觉得用sql语句比较简单。

第四章 Delta lake最基本的数据操作,包括删除,更新,merges,个人理解只能通过sql语句和deltatable api来实现,其中merges比较复杂。

第五章 性能调优,调优的方法有:分区,压缩文件,zorder by, liquid clustering。其中分区觉得比较有效,liquid clustering还是实验阶段,压缩文件,zorder by需要定时触发而且每次触发都会耗时,实际应用应该写一个后台任务在没有任何操作的时候来自动触发。

第六章 时间旅行,主要是利用Delta lake能保存数据版本这一特点来实现。另外Delta lake 不会清除历史版本,需要定时运行VACUUM命令来清理。最后捕捉行记录的变化。以上操作均可以通过sql语句实现。

第七章 表结构变化处理,主要是两类处理,一类是固定结构,遇到不一致的就报错。另外一个类就是结构可以根据数据变化,要实现结构自动变化主要在数据写入的时候,设置option("mergeSchema",true)。

第八章 如何使用流实现数据同步,书中只实现了插入数据同步,没有实现更新数据同步,但官网文档上有说明,目前删除数据好像是无法通过流实现同步。

第九章 Delta lake数据分享,这章比较简单,介绍了一些直接读取delta lake文件的方法,还不如官方文档详细。

第十章 给出了一个完整的数据湖架构,后面如果真的能用于生产可以参考。

读完了整本书,有两个感觉:

1、还是要深入学习一下spark,为了后面能兼容AI,还是从pyspark入手,后面计划学习一下pyspark,然后再看看pyspark如何与pytorch等深度学习架构融合。

2、学习技术只是入门,具体还要以项目来验证,因为只有通过项目才能挖掘出一下书本没有说的情况,所以还是要结合实际,希望后面能把Delta lake用于实际项目,我始终相信机会总是留给有准备的人。

最后把最近几天写的代码公开,欢迎高手指教,谢谢。
kengan1013/Detla-lake-with-java


http://www.ppmy.cn/news/1459888.html

相关文章

数字藏品平台遭受科技攻击时的防护策略与攻击类型判定

随着区块链技术和数字经济的飞速发展,数字藏品平台逐渐成为炙手可热的投资领域。然而,这也使其成为了黑客攻击的重要目标。本文将深入探讨数字藏品平台可能遭遇的几种主要科技攻击类型,并提出相应的防护措施和判定方法。 一、51%攻击 攻击描…

GEE案例——广东省梅州市梅县区松口镇的梅江横山水灾监测(利用sentinel-1和大津法计算洪水时序面积)

背景 2024年4月5日晚,广东省气象部门发布消息称,4月5日0时到20时,广东中北部出现了暴雨到大暴雨,其中从化吕田累计雨量最大达到225.7毫米。累计降水量达到大暴雨的地方还包括惠州龙门县永汉镇205.2毫米、清远佛冈县水头镇188.6毫米、韶关新丰县梅坑镇174.5毫米、河源东源县…

Java - 分布式逻辑事务的一些轻操作

前提条件 可控业务在不可控业务前不可控业务自己保证数据回滚一致性 设计思路 若可控业务A失败,则不发送给不可控业务B,直接回滚;若可控业务A成功,发送给不可控业务B,B处理完返回标记,B成功,则…

node pnpm修改默认包的存储路径

pnpm与npm的区别 PNPM和NPM是两个不同的包管理工具。 NPM(Node Package Manager)是Node.js的官方包管理工具,用于安装、发布和管理Node.js模块。NPM将包安装在项目的node_modules目录中,每个包都有自己的依赖树。 PNPM&#xf…

简洁大气APP下载单页源码

源码介绍 简洁大气APP下载单页源码,源码由HTMLCSSJS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面 效果截图 源码下载 简洁大气APP下载单页源码

uniapp音乐播放整理

一、前置知识点 1.1 音频组件控制-uni.createInnerAudioContext() 创建并返回内部 audio 上下文 innerAudioContext 对象。 主要用于当前音乐播放; 1.1.1 innerAudioContext属性 属性类型说明只读平台差异说明srcString音频的数据链接,用于直接播放…

ASP.NET MVC 4升级迁移到ASP.NET MVC 5

背景:今天针对一个老项目进行框架升级,老项目使用的是MVC 4,现在要升级到MVC5。 备份项目.NET升级4.5以上版本通过Nuget,更新或者直接安装包 包名oldVersionnewVersion说明Microsoft.AspNet.Mvc4.0.05.x.xMicrosoft.AspNet.Razo…

阿里云和AWS负载均衡服务对比分析

在云计算时代,负载均衡作为一种关键的网络基础设施,承担着在多个服务器之间分发网络流量的重要任务。作为全球两大主要的云服务提供商,阿里云和Amazon Web Services(AWS)都提供了强大的负载均衡解决方案。本文将从性能、功能、可用性和成本等方面对两者进行对比分析。我们九河云…