扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本篇文章给大家分享的是有关如何进行数据湖deltalake的分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
创新互联公司致力于互联网网站建设与网站营销,提供成都网站建设、网站设计、网站开发、seo优化、网站排名、互联网营销、微信小程序开发、公众号商城、等建站开发,创新互联公司网站建设策划专家,为不同类型的客户提供良好的互联网应用定制解决方案,帮助客户在新的全球化互联网环境中保持优势。
1.delta特性简介
Delta Lake是Spark计算框架和存储系统之间带有Schema信息数据的存储中间层。它给Spark带来了三个最主要的功能:
第一,Delta Lake使得Spark能支持数据更新和删除功能;
第二,Delta Lake使得Spark能支持事务;
第三,支持数据版本管理,运行用户查询历史数据快照。
ACID事务:为数据湖提供ACID事务,确保在多个数据管道并发读写数据时,数据能保持完整性。
数据版本管理和时间旅行:提供了数据快照,使开发人员能够访问和还原早期版本的数据以进行审核、回滚或重现实验
可伸缩的元数据管理:存储表或者文件的元数据信息,并且把元数据也作为数据处理,元数据与数据的对应关系存放在事务日志中;
流和批统一处理:Delta中的表既有批量的,也有流式和sink的;
数据操作审计:事务日志记录对数据所做的每个更改的详细信息,提供对更改的完整审计跟踪;
Schema管理功能:提供自动验证写入数据的Schema与表的Schema是否兼容的能力,并提供显示增加列和自动更新Schema的能力;
数据表操作(类似于传统数据库的SQL):合并、更新和删除等,提供完全兼容Spark的Java/scala API;
统一格式:Delta中所有的数据和元数据都存储为Apache Parquet。
Delta的特性实现是基于事务日志,比如ACID事务管理、数据原子性、元数据处理和时间旅行等功能。
Delta Lake 说白了就是一个lib库
Delta Lake 是一个lib 而不是一个service,不同于HBase,他不需要单独部署,而是直接依附于计算引擎的。目前只支持Spark引擎。这意味什么呢?Delta Lake 和普通的parquet文件使用方式没有任何差异,你只要在你的Spark代码项目里引入delta包,按标准的Spark datasource操作即可,可谓部署和使用成本极低。
Delta Lake真实内容幕
Parquet文件 + Meta 文件 + 一组操作的API = Delta Lake.
所以Delta没啥神秘的,和parquet没有任何区别。但是他通过meta文件以及相应的API,提供众多特性功能的支持。在Spark中使用它和使用parquet的唯一区别就是把format parquet换成detla。
上图可以看出,数据湖目的实一站式提供各种数据服务。
2.delta测试
采用的Spark 3.0版本,delta是0.7版本进行测试,首先是导入依赖:
io.delta delta-core_2.12 0.7.0
spark使用delta也很简单,就如使用json,csv等数据格式一样,只需要在format函数传入delta字符串就可以了。比如创建一张表,scala的表达如下:
val data = spark.range(0, 5)data.write.format("delta").save("tmp/delta-table")
schema信息,他自己会从dataframe中推断出来。
读取一张表
spark.read.format("delta").load("tmp/delta-table").show()
delta lake的api对于spark来说基本是一致的,没啥变动。delta底层是完全基于spark的,而且可以支持实时和离线,对于多读少更新,多批次更新的场景也是可以的。
以上就是如何进行数据湖deltalake的分析,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流