1.什么是云对象存储?
云对象存储是云存储中的一种方式。主要适用于存储和管理大量非结构化数据。数据以对象的形式存储,每个对象都包含了数据本身、元数据以及一个全局唯一的标识符,使数据更易于访问和管理。(平台:Amazon S3、微软 Azure Blob、 阿里云 OSS等)
2.什么是云存储?
云存储是一种数据存储在远端服务器集群在线访问的存储类型,用户无需关注存储位置。
云储存有三种存储类型:对象存储、文件存储、块存储。(三种方式)
3.Delta Lake
3.1 什么是Delta Lake?
Delta Lake 是一个开源的存储层,可以为数据湖带来了可靠性。Delta Lake 提供了ACID事务、可伸缩的元数据处理以及统一的流和批数据处理。它运行在现有的数据湖之上,且与 Apache Spark API完全兼容。(懵)
3.2 为什么会有Delta Lake?
由于云对象存储是以键值存储很难实现ACID事务和高性能。所以提出Delta Lake用来解决云对象存储存在的不足之处。
3.3 Delta Lake 是如何解决的?
The core idea of Delta Lake is simple: we maintain information about which objects are part of a Delta table in an ACID manner, using a write-ahead log that is itself stored in the cloud object store.
Delta Lake的核心思想简单:我们以ACID事务的方式 维护 哪一个对象属于那一张表的信息,通过预先写日志的方式同时将日志也同时存储在对象存储中。
3.4 Delta Lake的存储格式
Delta Lake 的每一张表的内容以Parquet格式进行存储。这种数据格式与多种数据处理框架兼容,是大数据生态系统中广泛采用的格式。
3.5 Delta Lake 的高级特性
Delta Lake的事务设计提供了广泛的高级数据管理功能,类似于传统DBMS中的许多功能。
3.5.1 Time Travel
因为Delta Lake的数据对象和日志是不可变的,所以使用Delta Lake可以直接查询数据的过去快照,回到那个时间节点。
3.5.2 Efficient UPSERT, DELETE andMERGE
在传统的数据湖存储格式中,很难在不停止并发读取器的情况下执行这些更新。因为作业期间的失败将使表处于部分更新状态。而使用Delta Lake,所有这些操作都可以以事务方式执行,通过Delta日志中的新添加和删除记录替换任何更新的对象。
3.5.3 Data Layout Optimization
数据布局对分析系统中的查询性能有很大的影响,由于Delta Lake可以以事务方式更新表的数据结构,因此它可以支持各种布局优化,而不会影响并发操作。
3.5.4 Schema Evolution and Enforcement
长时间维护的数据集通常需要架构更新,Delta Lake可以以事务方式执行架构更改,并在需要时随着架构更改更新底层对象,同时在事务日志中保存架构更新的历史记录。
3.6 Delta Lake的一些应用场景
- Data Engineering
- BI
- Machine Learning
- Bioinformatics