日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1.数据湖deltalake初识

發(fā)布時(shí)間:2023/12/3 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1.数据湖deltalake初识 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載自??1.數(shù)據(jù)湖deltalake初識(shí)

1.delta特性簡(jiǎn)介

Delta Lake是Spark計(jì)算框架和存儲(chǔ)系統(tǒng)之間帶有Schema信息數(shù)據(jù)的存儲(chǔ)中間層。它給Spark帶來了三個(gè)最主要的功能:

第一,Delta Lake使得Spark能支持?jǐn)?shù)據(jù)更新和刪除功能;

第二,Delta Lake使得Spark能支持事務(wù);

第三,支持?jǐn)?shù)據(jù)版本管理,運(yùn)行用戶查詢歷史數(shù)據(jù)快照。

核心特性

  • ACID事務(wù):為數(shù)據(jù)湖提供ACID事務(wù),確保在多個(gè)數(shù)據(jù)管道并發(fā)讀寫數(shù)據(jù)時(shí),數(shù)據(jù)能保持完整性。

  • 數(shù)據(jù)版本管理和時(shí)間旅行:提供了數(shù)據(jù)快照,使開發(fā)人員能夠訪問和還原早期版本的數(shù)據(jù)以進(jìn)行審核、回滾或重現(xiàn)實(shí)驗(yàn)

  • 可伸縮的元數(shù)據(jù)管理:存儲(chǔ)表或者文件的元數(shù)據(jù)信息,并且把元數(shù)據(jù)也作為數(shù)據(jù)處理,元數(shù)據(jù)與數(shù)據(jù)的對(duì)應(yīng)關(guān)系存放在事務(wù)日志中;

  • 流和批統(tǒng)一處理:Delta中的表既有批量的,也有流式和sink的;

  • 數(shù)據(jù)操作審計(jì):事務(wù)日志記錄對(duì)數(shù)據(jù)所做的每個(gè)更改的詳細(xì)信息,提供對(duì)更改的完整審計(jì)跟蹤;

  • Schema管理功能:提供自動(dòng)驗(yàn)證寫入數(shù)據(jù)的Schema與表的Schema是否兼容的能力,并提供顯示增加列和自動(dòng)更新Schema的能力;

  • 數(shù)據(jù)表操作(類似于傳統(tǒng)數(shù)據(jù)庫的SQL):合并、更新和刪除等,提供完全兼容Spark的Java/scala API;

  • 統(tǒng)一格式:Delta中所有的數(shù)據(jù)和元數(shù)據(jù)都存儲(chǔ)為Apache Parquet。

  • Delta的特性實(shí)現(xiàn)是基于事務(wù)日志,比如ACID事務(wù)管理、數(shù)據(jù)原子性、元數(shù)據(jù)處理和時(shí)間旅行等功能。

    Delta Lake 說白了就是一個(gè)lib庫

    Delta Lake 是一個(gè)lib 而不是一個(gè)service,不同于HBase,他不需要單獨(dú)部署,而是直接依附于計(jì)算引擎的。目前只支持Spark引擎。這意味什么呢?Delta Lake 和普通的parquet文件使用方式?jīng)]有任何差異,你只要在你的Spark代碼項(xiàng)目里引入delta包,按標(biāo)準(zhǔn)的Spark datasource操作即可,可謂部署和使用成本極低。

    ?

    Delta Lake真實(shí)內(nèi)容幕

    Parquet文件 + Meta 文件 + 一組操作的API = Delta Lake.

    所以Delta沒啥神秘的,和parquet沒有任何區(qū)別。但是他通過meta文件以及相應(yīng)的API,提供眾多特性功能的支持。在Spark中使用它和使用parquet的唯一區(qū)別就是把format parquet換成detla。

    上圖可以看出,數(shù)據(jù)湖目的實(shí)一站式提供各種數(shù)據(jù)服務(wù)。

    ?

    2.delta測(cè)試

    采用的Spark 3.0版本,delta是0.7版本進(jìn)行測(cè)試,首先是導(dǎo)入依賴:

    <dependency> <groupId>io.delta</groupId> <artifactId>delta-core_2.12</artifactId> <version>0.7.0</version></dependency>

    spark使用delta也很簡(jiǎn)單,就如使用json,csv等數(shù)據(jù)格式一樣,只需要在format函數(shù)傳入delta字符串就可以了。比如創(chuàng)建一張表,scala的表達(dá)如下:

    val data = spark.range(0, 5)data.write.format("delta").save("tmp/delta-table")

    schema信息,他自己會(huì)從dataframe中推斷出來。

    讀取一張表

    spark.read.format("delta").load("tmp/delta-table").show()

    ?

    3.總結(jié)

    本文的目標(biāo)只是讓大家對(duì)delta有個(gè)大致的認(rèn)識(shí)。其實(shí),delta lake的api對(duì)于spark來說基本是一致的,沒啥變動(dòng)。delta底層是完全基于spark的,而且可以支持實(shí)時(shí)和離線,對(duì)于多讀少更新,多批次更新的場(chǎng)景也是可以的。

    總結(jié)

    以上是生活随笔為你收集整理的1.数据湖deltalake初识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。