转载自  1.数据湖deltalake初识

1.delta特性简介

Delta Lake是Spark计算框架和存储系统之间带有Schema信息数据的存储中间层。它给Spark带来了三个最主要的功能:

第一,Delta Lake使得Spark能支持数据更新和删除功能;

第二,Delta Lake使得Spark能支持事务;

第三,支持数据版本管理,运行用户查询历史数据快照。

核心特性

  1. ACID事务:为数据湖提供ACID事务,确保在多个数据管道并发读写数据时,数据能保持完整性。

  2. 数据版本管理和时间旅行:提供了数据快照,使开发人员能够访问和还原早期版本的数据以进行审核、回滚或重现实验

  3. 可伸缩的元数据管理:存储表或者文件的元数据信息,并且把元数据也作为数据处理,元数据与数据的对应关系存放在事务日志中;

  4. 流和批统一处理:Delta中的表既有批量的,也有流式和sink的;

  5. 数据操作审计:事务日志记录对数据所做的每个更改的详细信息,提供对更改的完整审计跟踪;

  6. Schema管理功能:提供自动验证写入数据的Schema与表的Schema是否兼容的能力,并提供显示增加列和自动更新Schema的能力;

  7. 数据表操作(类似于传统数据库的SQL):合并、更新和删除等,提供完全兼容Spark的Java/scala API;

  8. 统一格式: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初识相关推荐

  1. 2.数据湖DeltaLake之DDL操作

    转载自  2.数据湖DeltaLake之DDL操作 前面讲了delta lake简介,特性及基本操作.本文主要是讲DeltaLake的DDL操作,实际上是依赖于spark datasourcev2 和 ...

  2. DLF +DDI 一站式数据湖构建与分析最佳实践

    简介: 本文由阿里云数据湖构建 DLF 团队和 Databricks 数据洞察团队联合撰写,旨在帮助您更深入地了解阿里云数据湖构建(DLF)+Databricks 数据洞察(DDI)构建一站式云上数据 ...

  3. 如何基于MaxCompute快速打通数据仓库和数据湖的湖仓一体实践

    简介: MaxCompute 是面向分析的企业级 SaaS 模式云数据仓库,以 Serverless 架构提供快速.全托管的在线数据仓库服务,消除了传统数据平台在资源扩展性和弹性方面的限制,最小化用户 ...

  4. 数据湖 VS 数据仓库之争?阿里提出大数据架构新概念:湖仓一体

    作者 |关涛.李睿博.孙莉莉.张良模.贾扬清(from 阿里云智能计算平台) 黄波.金玉梅.于茜.刘子正(from 新浪微博机器学习研发部) 编者按 随着近几年数据湖概念的兴起,业界对于数据仓库和数据 ...

  5. 在批评数据湖的时候,你有没有想过,它并不是取代数据仓库的

    数据湖初识 近两年,为什么都开始谈论起 Data Lake 这个"新名词"了? 先说说我的想法,其实还是用户需求驱动数据服务,大家开始关注 Data Lake 的根本原因是用户需求 ...

  6. 湖仓一体:数据湖vs数据仓库之争?

    本文介绍数据仓库和数据湖的区别是什么,作者对其来龙去脉进行深入剖析,来阐述两者融合演进的新方向--湖仓一体. 导读:随着近几年数据湖概念的兴起,业界对于数据仓库和数据湖的对比甚至争论就一直不断.有人说 ...

  7. 数据湖与数据仓库的新未来:阿里提出湖仓一体架构

    点击上方 "zhisheng"关注, 星标或置顶一起成长 Flink 从入门到精通 系列文章 作者: 关涛.李睿博.孙莉莉.张良模.贾扬清 (from 阿里云智能计算平台) 黄波. ...

  8. 基于MinIO/Deleta Lake/Dremio和Superset或Metabase搭建简单的数据湖

    数据湖架构 大多数公司都有大量的业务数据,这些数据通常孤立在各种存储系统中,包括数据库和数据仓库.为了充分利用这些数据资产,您应该将数据集中并整合到统一的数据存储中,以增强分析能力. 通过数据湖架构, ...

  9. 数据湖在大数据场景下应用和实施方案调研笔记(增强版)

    点击上方蓝色字体,选择"设为星标" 回复"面试"获取更多惊喜 在读本文前你应该看过这些: <我看好数据湖的未来,但不看好数据湖的现在> <数据 ...

最新文章

  1. Oracle批量导出AWR报告
  2. vector机器人 CAN I USE MULTIPLE VECTORS OR DEVICES? 我可以使用多个向量或设备吗?
  3. ASP.NET 父页面取子页面的值
  4. c 结构体的简单封装1
  5. Java-静态方法、非静态方法
  6. win7系统怎么打开屏幕键盘
  7. 2_1 输入10个id并查找是否存在
  8. 老是原罪?技术圈为何不待见大龄企业家
  9. ETCD for java_etcd-java使用
  10. hdu 3592 差分约束
  11. python和java选择哪个-python和Java选择哪一个?
  12. Python While 循环语句
  13. Java 经典笔试题
  14. 如何获取音乐的地址链接
  15. 任正非:人感知到自己的渺小,行为才开始伟大
  16. 【shapely】自相交问题
  17. Seventh season twenty-first episode,Monica and Chandler both did not know how to write their vows???
  18. WPF GridSplitter中需要设置HorizontalAlignment和VerticalAlignment
  19. 光阑,像差和成像光学仪器
  20. 朴素贝叶斯(演示结果与SVM进行对比)

热门文章

  1. 在线教育后端开发项目总结
  2. leetcode56. 合并区间
  3. C++实现dijkstra单源最短路径
  4. [Java基础]字符串中的编码解码问题
  5. C++ 泛型编程 实现红黑树RBTree
  6. LeetCode 872叶子相似的树-简单
  7. Go中new和make的区别
  8. android webview framework,android – Webview导致ANR
  9. java8 stream 最大值_JDK8-Stream流常用方法
  10. 数据结构----单源最短路径Dijkstra