自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何利用Polaris Catalog革新數(shù)據(jù)湖屋的目錄管理

譯文 精選
人工智能
本文介紹了如何利用Polaris Catalog實現(xiàn)跨查詢引擎互操作性和構(gòu)建零數(shù)據(jù)復(fù)制架構(gòu),增強數(shù)據(jù)管理,并簡化工作流程。

譯者 | 李睿

審校 | 重樓

像軟件行業(yè)的許多其他領(lǐng)域一樣,數(shù)據(jù)工程領(lǐng)域正在快速發(fā)展。在大型語言模型(LLM)和生成式人工智能的推動下,盡管人工智能/機器學(xué)習(xí)的進步令人關(guān)注,但數(shù)據(jù)工程仍然是推動軟件開發(fā)創(chuàng)新的根本力量。

Polaris是一種用于數(shù)據(jù)湖屋(Lakehouse)的目錄實現(xiàn)工具,是該領(lǐng)域的最新進展之一,它加速了互操作性的進展,并實現(xiàn)了零數(shù)據(jù)復(fù)制架構(gòu)。在最近于2024年11月舉辦的Snowflake Build大會上,Polaris Catalog、Iceberg以及AI/ML共同成為備受關(guān)注與熱議的話題。

開放表格式和數(shù)據(jù)湖屋

數(shù)據(jù)湖屋概念憑借其開放表格式,已經(jīng)成為大數(shù)據(jù)技術(shù)領(lǐng)域內(nèi)的熱門議題之一。開放表格式在塑造行業(yè)中的數(shù)據(jù)湖屋模式方面始終走在前列。盡管還有其他具有競爭力的開放表格式技術(shù),但Iceberg無疑在這一領(lǐng)域內(nèi)占據(jù)領(lǐng)先地位。支持傳統(tǒng)數(shù)據(jù)倉庫模式的數(shù)據(jù)云巨頭Snowflake公司也在積極引領(lǐng)數(shù)據(jù)湖屋模式的發(fā)展,而Iceberg正是其解決方案核心支柱,發(fā)揮著舉足輕重的作用。

Iceberg采用了三層架構(gòu)模型,其核心在于其根目錄,這一目錄扮演著Iceberg中表元數(shù)據(jù)管理者的關(guān)鍵角色。Snowflake公司通過推出了名為Polaris的目錄服務(wù),在目錄領(lǐng)域帶來了革命性的變革。該目錄正迅速獲得認(rèn)可,并有望在未來幾個月內(nèi)得到進一步增長

在深入討論Polaris之前,需要了解有關(guān)數(shù)據(jù)湖屋、Iceberg和Snowflake的更多細(xì)節(jié),為探討Polaris奠定基礎(chǔ)。幾十年來,軟件行業(yè)一直沿襲著使用數(shù)據(jù)倉庫作為核心分析平臺的傳統(tǒng)。然而,隨著基于Hadoop的大數(shù)據(jù)技術(shù)的興起,支持半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)湖data lake)于2010年應(yīng)運而生。盡管數(shù)據(jù)湖在過去十年中迅速增長,但與此同時,它也暴露出了一系列亟待解決的問題,例如事務(wù)支持的缺失、模式強制執(zhí)行的不足等。

為了克服數(shù)據(jù)湖的局限性,大數(shù)據(jù)領(lǐng)域中出現(xiàn)了一種新的模式——數(shù)據(jù)湖屋。數(shù)據(jù)湖屋通過提供事務(wù)支持、模式實施(如數(shù)據(jù)倉庫)以及異構(gòu)數(shù)據(jù)格式(如數(shù)據(jù)湖)的支持,結(jié)合了數(shù)據(jù)倉庫和數(shù)據(jù)湖的優(yōu)點。開放文件格式是數(shù)據(jù)湖架構(gòu)成功的基礎(chǔ),特別是開放表格式。盡管在這一領(lǐng)域內(nèi),Delta Lake和Hudi等其他主要參與者同樣發(fā)揮著重要作用,但Iceberg憑借行業(yè)領(lǐng)導(dǎo)者Snowflake公司的支持而脫穎而出。

開放表格式是為了支持?jǐn)?shù)據(jù)的零復(fù)制以及從多個查詢引擎在單一權(quán)威的數(shù)據(jù)源中查詢/修改數(shù)據(jù)而創(chuàng)建的。盡管Snowflake公司起初像傳統(tǒng)和現(xiàn)代數(shù)據(jù)倉庫一樣使用原生表,并在這一過程中增加了對非結(jié)構(gòu)化數(shù)據(jù)的支持,但Snowflake公司一直是推廣和采用與Iceberg相結(jié)合的開放表格式來實現(xiàn)數(shù)據(jù)湖倉解決方案的領(lǐng)導(dǎo)者。

開放表格式的基本架構(gòu)概念是關(guān)于存儲表元數(shù)據(jù)的。開放表格式不存儲實際數(shù)據(jù),而是存儲“關(guān)于數(shù)據(jù)的數(shù)據(jù)”。不同的開放表格式有其各自的元數(shù)據(jù)架構(gòu)。然而,它們之間的共同模式是都存在一個目錄組件。在開放表格式中,目錄包含指向?qū)嶋H表的元數(shù)據(jù)指針,這些表以開放文件格式(如Parquet、ORC)存儲數(shù)據(jù)。

目錄的挑戰(zhàn):Polaris背后的驅(qū)動力

對于目錄實現(xiàn),業(yè)界一直在使用諸如Hive Metastore、AWS Glue、Nessie、Unity Catalog等技術(shù)。可用目錄技術(shù)的激增阻礙了互操作性和開放表格式的零數(shù)據(jù)復(fù)制原則充分發(fā)揮其潛力,因為不同的目錄技術(shù)開始導(dǎo)致組織內(nèi)部出現(xiàn)供應(yīng)商鎖定和數(shù)據(jù)一致性問題。圖1展示了由于缺乏統(tǒng)一的目錄解決方案而導(dǎo)致組織一直在實現(xiàn)的典型構(gòu)。

圖1:Iceberg生態(tài)系統(tǒng)的多目錄技術(shù)解決方案圖1:Iceberg生態(tài)系統(tǒng)的多目錄技術(shù)解決方案

不同的查詢引擎或數(shù)據(jù)平臺使用不同技術(shù)開發(fā)的目錄來訪問Iceberg的元數(shù)據(jù)(如圖1所示)和存儲層,因此無法在組織內(nèi)部提供存儲的統(tǒng)一視圖。此外,由于沒有共享的目錄標(biāo)準(zhǔn),不僅目錄數(shù)據(jù)會被重復(fù)且存在不一致性,而且其他方面(如安全和訪問控制配置)也需要被重復(fù),從而造成不必要的開銷。

為了應(yīng)對實現(xiàn)真正互操作性和零數(shù)據(jù)復(fù)制的挑戰(zhàn),Snowflake公司推出了Polaris Catalog這一創(chuàng)新性的目錄服務(wù)。該目錄設(shè)計的初衷是使不同的查詢引擎能夠輕松訪問,并且展望未來,它還將支持所有主流的開放表格式,而不僅僅是Iceberg。

關(guān)于Polaris:優(yōu)勢與現(xiàn)狀

作為開放表格式的目錄,Polaris主要提供以下三好處:

  • 讀和寫操作的跨引擎互操作性。
  • 支持在任何地方托管目錄——在云中或組織的數(shù)據(jù)中心作為容器化應(yīng)用程序。
  • 集中的安全和基于角色的訪問控制。

Snowflake公司將Polaris Catalog外包給Apache軟件基金會,以鼓勵社區(qū)驅(qū)動的技術(shù)進步,并使其與供應(yīng)商保持中立,以實現(xiàn)Polaris的多個長期目標(biāo),如下所示

  • 使其與所有開放表格式(如Delta Lake、Hudi)兼容
  • 支持API表格維護
  • 更廣泛的安全和訪問控制,例如支持Okta/Auth0等IDP、細(xì)粒度訪問控制等。

當(dāng)前,Polaris軟件正處于Apache軟件基金會的孵化階段。盡管Snowflake公司已將Polaris的開發(fā)工作交由Apache軟件基金會負(fù)責(zé),但Snowflake依然在其自身的部署中持續(xù)為Polaris Catalog提供支持。Snowflake所托管的Polaris Catalog被稱為Snowflake Open Catalog。

Polaris架構(gòu)

Polaris Catalog在Iceberg生態(tài)系統(tǒng)中的架構(gòu)如圖2所示。查詢引擎將使用Polaris REST API訪問Polaris Catalog中的表元數(shù)據(jù)。Polaris API的核心業(yè)務(wù)邏輯將作為接口,通過Iceberg元數(shù)據(jù)提供對存儲在開放文件格式(如Parquet、ORC)中的實際數(shù)據(jù)的訪問。

圖2:Iceberg生態(tài)系統(tǒng)中的Polaris架構(gòu)圖2:Iceberg生態(tài)系統(tǒng)中的Polaris架構(gòu)

Polaris架構(gòu)圍繞兩個核心組件構(gòu)建:用于數(shù)據(jù)安全的基于角色的訪問控制(RBAC)和用于管理表元數(shù)據(jù)的Data Catalog。在RBAC中,主體(Principal)代表用戶或系統(tǒng)身份,而主體角色則定義分配給該主體的權(quán)限。一個主體可以擁有多個主體角色,并且每個主體角色可以包含多個主體。在目錄方面,目錄作為邏輯數(shù)據(jù)庫或模式,組織成命名空間(Namespaces),這些命名空間對Iceberg表或視圖進行分組。權(quán)限通過目錄角色進行管理,這些角色定義了目錄對象的直接權(quán)限,而主體角色則通過其與目錄角色的關(guān)聯(lián)來繼承這些權(quán)限。

該架構(gòu)確保在邏輯組織的框架內(nèi)對Iceberg表和視圖進行安全、可擴展和有效的管理。

從基礎(chǔ)設(shè)施部署的角度來看,盡管Polaris可以作為容器化的應(yīng)用程序在云平臺和組織的數(shù)據(jù)中心中運行,但是需要為查詢引擎進行適當(dāng)?shù)木W(wǎng)絡(luò)連接,以便能夠訪問Polaris基于REST API的目錄。目前,將Polaris Catalog部署在公共云平臺之外的情況并不常見,因為通常希望實際的開放文件格式存儲將位于云平臺中。

隨著技術(shù)的進步,為了滿足各個行業(yè)(如金融、醫(yī)療保?。┙M織的數(shù)據(jù)隱私和地理限制要求,在組織的防火墻內(nèi)部署Polaris可能是一個有價值的用例。

Polaris的實際操作

Snowflake公司在2024年6月發(fā)布了Polaris,并于7月將其開源給Apache軟件基金會。該項目目前在Apache處于孵化狀態(tài)。Polaris Catalog的開源版本可以在GitHub存儲庫中獲得。開發(fā)人員只需幾個簡單的步驟就可以在本地工作站中開始使用Polaris。

1.安裝OpenJDK和Docker

JDK的最低版本要求是21,Docker的最低版本要求是27。除此之外,還需要安裝Gradle這一工具編譯項目源代碼。

2.克隆存儲庫

要在本地工作站中設(shè)置Polaris,第一步是克隆存儲庫。

3.在Docker容器中運行Polaris

Plain Text 
 docker compose -f docker-compose.yml up --build

4.作為本地Java應(yīng)用程序運行

Plain Text 
 gradle runApp

GitHub中的Polaris項目分為兩個主要模塊。

  • polaris-core:包含實體定義和業(yè)務(wù)邏輯。這是通過Iceberg元數(shù)據(jù)與開放文件格式存儲進行交互的層。
  • API:包含Polaris的REST API定義。查詢引擎與API通信以訪問底層數(shù)據(jù)。

結(jié)論

在數(shù)據(jù)湖和開放表格式不斷發(fā)展的背景下,Polaris是下一個重大突破。這項技術(shù)有助于消除對查詢引擎特定數(shù)據(jù)目錄的需求,并帶來可互操作的協(xié)調(diào)解決方案。

Polaris最初是為Iceberg構(gòu)建的,它不僅旨在成為查詢引擎的通用平臺,而且未來的開發(fā)目標(biāo)是使其能夠跨其他開放表格式工作,例如Delta Lake。擁有可互操作的目錄技術(shù)可以降低組織架構(gòu)的復(fù)雜性,有助于實現(xiàn)零數(shù)據(jù)復(fù)制原則,減少IT的支持開銷,并最終為組織節(jié)省成本。Polaris正在不斷發(fā)展,預(yù)計在未來幾個月內(nèi),在Apache軟件基金會和Snowflake公司的推動下,其采用率將上升。

原文標(biāo)題:Revolutionizing Catalog Management for Data Lakehouse With Polaris Catalog,作者:Dipankar Saha

責(zé)任編輯:華軒 來源: 51CTO
點贊
收藏

51CTO技術(shù)棧公眾號