跳轉到主要內容
工程的博客

本地查詢你的三角洲湖Scala、Java、Python

使用獨立的讀者和δ鏽API查詢你的三角洲湖沒有Apache火花
分享這篇文章

今天,我們很高興宣布,你可以本地查詢與Scala和Java(通過三角洲湖三角洲地區獨立的讀者)和Python(通過三角洲鏽API)。三角洲湖是一個開源存儲層,數據可靠性湖泊。三角洲湖提供ACID事務,可擴展的元數據處理,結合流媒體和批量數據處理。湖三角洲湖上運行你的現有數據,與Apache火花™api完全兼容。這個項目已經部署在成千上萬的組織和流程每周艾字節的數據在數據,成為一個不可或缺的支柱和AI架構。超過75%的數據掃描數據磚平台是三角洲湖!Beplay体育安卓版本

除了Apache火花,三角洲湖集成與亞馬遜紅移,光譜紅移,雅典娜,轉眼間,蜂巢,等等;你可以找到更多的信息三角洲湖集成。對於這篇文章,我們將討論的最新版本三角洲地區獨立的讀者三角洲鏽API允許你查詢你的三角洲湖Scala, Java、Python沒有Apache火花。

得到的早期預覽O ' reilly的新電子書一步一步的指導你需要開始使用三角洲湖。

三角洲地區獨立的讀者

三角洲獨立讀者(域)是一個JVM庫,允許您閱讀三角洲湖表而不需要使用Apache火花;即它可以使用任何應用程序無法運行火花。創建安全域是使背後的動機更好的與其他係統集成轉眼間,雅典娜,光譜紅移,雪花,Apache蜂巢。對於Apache蜂巢,我們重寫了使用安全域的嵌入式引發的新版本。

使用域的使用sbt包括delta-standalone以及hadoop-client parquet-hadoop。

libraryDependencies + + = Seq (
% %“io.delta delta-standalone“%”0.2.0”,
”表示。hadoop“%”hadoop-client“%”2.7.2”,
”表示。拚花“%”parquet-hadoop“%”1.10.1”)

使用安全域三角洲湖表查詢

下麵是一些例子如何查詢你的表在Java三角洲湖。

讀取元數據

導入必要的庫之後,您可以確定表版本和相關的元數據(文件數量、大小等)如下表示。

進口io.delta.standalone.DeltaLog;進口io.delta.standalone.Snapshot;進口io.delta.standalone.data.CloseableIterator;進口io.delta.standalone.data.RowRecord;進口org.apache.hadoop.conf.Configuration;DeltaLog日誌= DeltaLog.forTable (配置(),“(δ日誌位置)”);/ /返回當前的快照log.snapshot ();/ /返回版本1的快照log.getSnapshotForVersionAsOf (1);/ /返回快照版本log.snapshot.getVersion ();/ /返回數據文件的數量.size log.snapshot.getAllFiles () ();

閱讀差值表

查詢表格,打開一個快照,然後遍曆表如下。

/ /創建一個closeable迭代器CloseableIterator iter = snapshot.open ();RowRecord行=;intnumRows =0;{/ /模式δ表長,字符串}(iter.hasNext ()) {行= iter.next ();numRows + +;長c1 = row.isNullAt (“c1”)?:row.getLong (“c1”);長c2 = row.isNullAt (“c2”)?:row.getLong (“c2”);字符串c3 = row.getString (“c3”);system . out。println (c1 +”“+ c2 +”“+ c3);}/ /輸出示例175年0foo -1176年1foo -0177年2foo -1178年3foo -0179年4foo -1

需求

域有以下要求:

  • JDK 8以上
  • Scala 2.11或Scala 2.12
  • 依賴parquet-hadoophadoop-client

有關更多信息,請參考Java API文檔三角洲獨立讀者維基

三角洲鏽API

delta.rs是一個實驗界麵為鐵鏽三角洲湖。這個庫提供了低級訪問三角洲表和目的是使用像datafusion與數據處理框架,古代武器,rust-dataframe,維加。它還可以作為本地綁定在其他語言的基礎如Python、Ruby、或Golang。

QP侯和r·泰勒突堤Scribd使用三角洲湖,使世界上最大的數字圖書館是這個API的最初的創造者。三角洲鏽API很快獲得牽引在社區特別callout社區主導型Azure支持後幾周內初始釋放。

Scribd如何使用三角洲湖,使世界上最大的數字圖書館。

讀取元數據(貨物)

您可以使用CLI API或檢查的文件三角洲湖表以及提供元數據信息;下麵是示例命令使用CLI通過貨物。一旦0.2.0釋放delta.rs已發表,“貨物安裝deltalake”將提供delta-inspect二進製。

檢查文件,查看源代碼和使用delta-inspect文件:

❯貨物運行——本delta-inspect文件。/測試/數據/ delta-0.2.0

部分- 00000 - cb6b150b - 30 - b8 - 4662 - ad28 ff32ddab96d2 c000.snappy.parquet
部分- 00000 - 7 - c2deba3 - 1994 - 4 - fb8 bc07 - d46c948aa415 c000.snappy.parquet
部分- 00001 c373a5bd - 85 f0 - 4758 - 815 - e - 7 - eb62007a15c c000.snappy.parquet

檢查元數據,使用delta-inspect信息:

❯貨物運行——本delta-inspect信息。/測試/數據/ delta-0.2.0
DeltaTable(. /測試/數據/ delta-0.2.0)
版本:3
元數據:GUID = 22 ef18ba - 191 c - 4 - c36 a606 - 3 dad5cdf3830 name =, =沒有描述,partitionColumns =[],配置= {}
min_version:讀= 1,寫= 2
文件數:3

讀取元數據(Python)

您還可以使用delta.rs使用Python通過查詢三角洲湖delta.rsPython bindings

獲取三角洲湖版本和文件,使用.version()和.files分別()方法。

從deltalake進口DeltaTable
dt = DeltaTable(“. . /生鏽/測試/數據/ delta-0.2.0”)

#三角洲湖表版本
dt.version ()

#示例輸出
3

#三角洲湖表文件列表
dt.files ()

#示例輸出
['部分- 00000 - cb6b150b - 30 - b8 - 4662 - ad28 ff32ddab96d2 c000.snappy。拚花”、“部分- 00000 - 7 - c2deba3 - 1994 - 4 - fb8 bc07 - d46c948aa415 c000.snappy。拚花”、“部分- 00001 c373a5bd - 85 f0 - 4758 - 815 - e - 7 - eb62007a15c c000.snappy.parquet ']

閱讀三角洲表(Python)

閱讀使用δδ表。rs Python綁定,you will need to convert the Delta table into a PyArrow Table and熊貓Dataframe

#進口差值表deltalake進口DeltaTable#讀三角洲表使用生鏽APIdt = DeltaTable (“. . /生鏽/測試/數據/ simple_table”)#創建一個熊貓Dataframe最初將三角洲湖#表成PyArrow表.to_pandas df = dt.to_pyarrow_table () ()#熊貓表查詢Df#示例輸出051729您還可以使用時間旅行加載之前版本的三角洲表通過指定版本號用load_version方法。#負載表的版本2dt.load_version (2)

筆記

目前,您還可以查詢通過δδ湖表。rs使用Python和Ruby,但潛在的鐵鏽api應該直接融入Golang或其他語言了. .指三角洲。rs獲取更多信息。有很多機會為δ。rs,所以一定要查看打開的問題!https://github.com/delta-io/delta.rs/issues

討論

我們想感謝Scott Sandre和三角洲湖工程團隊創建三角洲獨立讀者和QP侯和r·泰勒突堤來創建的三角洲鏽API。嚐試的三角洲地區獨立的讀者今天和δ鏽API——不需要火花!

加入我們在三角洲湖社區通過我們的公共鬆弛通道(注冊在這裏|日誌在這裏)或公共郵件列表

免費試著磚

相關的帖子

看到所有工程的博客的帖子
Baidu
map