Delta的真正用处和价值,你可知道

栏目: 软件资讯 · 发布时间: 6年前

内容简介:应该说,Delta是最近几年Databricks开源的最有价值的东西。Databricks这几年对外致力于AI,对内则努力给客户提供一站式分析处理平台。这个一站式的核心是,内核包含了流和批的真正统一,那什么才是真正的流和批的统一呢?其中1,2两点Spark开源项目已经完成,而第三个,其实一直是没有一个好的开源项目完成的。功能上虽然很早就实现了,但是一直在DB内部作为商业产品databricks runtime的一部分来使用。不得不说,其实之前我们已经使用Parquet实现了统一,但这仅仅是格式上的统一,因为

前言

应该说,Delta是最近几年Databricks开源的最有价值的东西。Databricks这几年对外致力于AI,对内则努力给客户提供一站式分析处理平台。这个一站式的核心是,内核包含了流和批的真正统一,那什么才是真正的流和批的统一呢?

  1. 引擎内核统一

  2. API统一

  3. 数据存储统一

其中1,2两点Spark开源项目已经完成,而第三个,其实一直是没有一个好的开源项目完成的。功能上虽然很早就实现了,但是一直在DB内部作为商业产品databricks runtime的一部分来使用。

数据存储统一

不得不说,其实之前我们已经使用Parquet实现了统一,但这仅仅是格式上的统一,因为你唯一能做到的是:流写入的数据,批可以读。但是用过的人才知道真正的痛。对一个数据而言,我们不可避免会遇到如下问题:

  1. 并发写

  2. 一写多读

  3. 多版本管理

在没有delta之前,一个文件如果在写,此时其无论批或者流读和写都会存在问题。简直没办法忍。比如你要更新一个数据,这个时候读也受到影响,还怎么对外提供服务?当然,你可能总有办法绕过去,但骨子里还是因为数据没办法得到真正的统一。

另外就是一个很常用的场景,就是可能有流,有批都会往一个表写入数据,然后流实时读取(场景是实时报表)。这个之前也是做不到的。 有了Delta,这些都可以做了

实际场景演示下

MLSQL 1.3.0-SNAPHOT已经升级支持Spark 2.4.2,并且支持Delta。 下面我们用MLSQL Stack演示下如何使用Delta.

set rawText='''
{"content":"MLSQL是一个好的语言","label":0.0},
{"content":"Spark是一个好的语言","label":1.0}
{"content":"MLSQL语言","label":0.0}
{"content":"MLSQL是一个好的语言","label":0.0}
{"content":"MLSQL是一个好的语言","label":1.0}
{"content":"MLSQL是一个好的语言","label":0.0}
{"content":"MLSQL是一个好的语言","label":0.0}
{"content":"MLSQL是一个好的语言","label":1.0}
{"content":"Spark好的语言","label":0.0}
{"content":"MLSQL是一个好的语言","label":0.0}
''';

load jsonStr.`rawText` as orginal_text_corpus;

save append orginal_text_corpus as delta.`/tmp/delta/table1`;
load delta.`/tmp/delta/table1` as output;

这里,我们人工造了一些数据,用delta格式写入。

接着,我们启动一个流式程序读取delta表的新增数据:

-- the stream name, should be uniq.
set streamName="streamExample";

-- load data as table
load rate.`/tmp/delta/table1` as datasource;

select *  from datasource 
as table21;

-- output the the result to console.
save append table21  
as console.`` 
options mode="Append"
and duration="15"
and checkpointLocation="/tmp/cpl4";

注意,这里用的rate而不是delta。 其实本质上他们是一致的,只是为了方便程序区分是流和批。

不时点击下写入delta的脚本,这样产生新的数据,然后通过下面命令查看流程序的情况:

!show "progress/streamExample";
Delta的真正用处和价值,你可知道

在这里插入图片描述

总结

Delta为我们带来了一个流和批真正可以共用,并且可以并发读写的格式,除此之外,还做了大量的性能提升(包括提供新的索引),一个真正的数据湖便这么产生了。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Applications (Hacking Exposed)

Web Applications (Hacking Exposed)

Joel Scambray、Mike Shema / McGraw-Hill Osborne Media / 2002-06-19 / USD 49.99

Get in-depth coverage of Web application platforms and their vulnerabilities, presented the same popular format as the international bestseller, Hacking Exposed. Covering hacking scenarios across diff......一起来看看 《Web Applications (Hacking Exposed)》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具