1.数据湖deltalake初识
转载自 1.数据湖deltalake初识
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版本进行测试,首先是导入依赖:
<dependency>
<groupId>io.delta</groupId>
<artifactId>delta-core_2.12</artifactId>
<version>0.7.0</version>
</dependency>
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()
3.总结
本文的目标只是让大家对delta有个大致的认识。其实,delta lake的api对于spark来说基本是一致的,没啥变动。delta底层是完全基于spark的,而且可以支持实时和离线,对于多读少更新,多批次更新的场景也是可以的。
1.数据湖deltalake初识相关推荐
- 2.数据湖DeltaLake之DDL操作
转载自 2.数据湖DeltaLake之DDL操作 前面讲了delta lake简介,特性及基本操作.本文主要是讲DeltaLake的DDL操作,实际上是依赖于spark datasourcev2 和 ...
- DLF +DDI 一站式数据湖构建与分析最佳实践
简介: 本文由阿里云数据湖构建 DLF 团队和 Databricks 数据洞察团队联合撰写,旨在帮助您更深入地了解阿里云数据湖构建(DLF)+Databricks 数据洞察(DDI)构建一站式云上数据 ...
- 如何基于MaxCompute快速打通数据仓库和数据湖的湖仓一体实践
简介: MaxCompute 是面向分析的企业级 SaaS 模式云数据仓库,以 Serverless 架构提供快速.全托管的在线数据仓库服务,消除了传统数据平台在资源扩展性和弹性方面的限制,最小化用户 ...
- 数据湖 VS 数据仓库之争?阿里提出大数据架构新概念:湖仓一体
作者 |关涛.李睿博.孙莉莉.张良模.贾扬清(from 阿里云智能计算平台) 黄波.金玉梅.于茜.刘子正(from 新浪微博机器学习研发部) 编者按 随着近几年数据湖概念的兴起,业界对于数据仓库和数据 ...
- 在批评数据湖的时候,你有没有想过,它并不是取代数据仓库的
数据湖初识 近两年,为什么都开始谈论起 Data Lake 这个"新名词"了? 先说说我的想法,其实还是用户需求驱动数据服务,大家开始关注 Data Lake 的根本原因是用户需求 ...
- 湖仓一体:数据湖vs数据仓库之争?
本文介绍数据仓库和数据湖的区别是什么,作者对其来龙去脉进行深入剖析,来阐述两者融合演进的新方向--湖仓一体. 导读:随着近几年数据湖概念的兴起,业界对于数据仓库和数据湖的对比甚至争论就一直不断.有人说 ...
- 数据湖与数据仓库的新未来:阿里提出湖仓一体架构
点击上方 "zhisheng"关注, 星标或置顶一起成长 Flink 从入门到精通 系列文章 作者: 关涛.李睿博.孙莉莉.张良模.贾扬清 (from 阿里云智能计算平台) 黄波. ...
- 基于MinIO/Deleta Lake/Dremio和Superset或Metabase搭建简单的数据湖
数据湖架构 大多数公司都有大量的业务数据,这些数据通常孤立在各种存储系统中,包括数据库和数据仓库.为了充分利用这些数据资产,您应该将数据集中并整合到统一的数据存储中,以增强分析能力. 通过数据湖架构, ...
- 数据湖在大数据场景下应用和实施方案调研笔记(增强版)
点击上方蓝色字体,选择"设为星标" 回复"面试"获取更多惊喜 在读本文前你应该看过这些: <我看好数据湖的未来,但不看好数据湖的现在> <数据 ...
最新文章
- Oracle批量导出AWR报告
- vector机器人 CAN I USE MULTIPLE VECTORS OR DEVICES? 我可以使用多个向量或设备吗?
- ASP.NET 父页面取子页面的值
- c 结构体的简单封装1
- Java-静态方法、非静态方法
- win7系统怎么打开屏幕键盘
- 2_1 输入10个id并查找是否存在
- 老是原罪?技术圈为何不待见大龄企业家
- ETCD for java_etcd-java使用
- hdu 3592 差分约束
- python和java选择哪个-python和Java选择哪一个?
- Python While 循环语句
- Java 经典笔试题
- 如何获取音乐的地址链接
- 任正非:人感知到自己的渺小,行为才开始伟大
- 【shapely】自相交问题
- Seventh season twenty-first episode,Monica and Chandler both did not know how to write their vows???
- WPF GridSplitter中需要设置HorizontalAlignment和VerticalAlignment
- 光阑,像差和成像光学仪器
- 朴素贝叶斯(演示结果与SVM进行对比)