統一目錄的最佳實踐

本文檔提供了建議使用統一目錄和δ來滿足您的數據共享的治理需求。

聯合目錄是一個細粒度的數據治理解決方案和磚Lakehouse AI。它有助於簡化數據的安全性和治理提供一個中心位置管理和審計數據訪問。三角洲分享是一個安全的數據共享平台,讓你在磚與用戶共享數據以外的組織。Beplay体育安卓版本它使用統一目錄管理和審計分享行為。

數據治理、數據隔離的構建塊

開發一個數據治理模型和數據隔離計劃,為您的組織工作,它有助於理解主要構建塊可用您當您創建數據治理解決方案在磚。

下圖展示了主要數據層次結構統一目錄(可獲得的對象不是,嚴格地說,數據對象顯示為灰色)。

統一目錄對象模型圖

中的對象層次結構包括以下:

  • Metastore:metastore頂層容器的對象在統一目錄。Metastores住在帳戶級別和功能的金字塔的頂端磚數據治理的模式。

    Metastores管理數據資產(表、視圖和卷)和控製訪問權限。磚的帳戶管理員可以創建一個metastore每個區域的操作,並將它們分配給多個磚工作區在同一地區。Metastore Metastore管理員可以管理所有對象。他們沒有直接訪問讀寫注冊表metastore,但他們有間接訪問對象所有權傳遞數據的能力。

    物理存儲對於任何給定metastore,默認情況下,從存儲其他metastore分離您的帳戶。

    Metastores提供區域隔離,但並不打算作為單位的數據隔離。數據隔離應該開始在目錄級別。

  • 目錄:目錄是最高水平的數據層次結構(目錄>模式>表/視圖/卷)由metastore統一目錄管理。他們是打算作為最基本單位的數據隔離在一個典型的磚數據治理的模式。

    目錄代表的邏輯分組模式,通常由數據訪問需求有限。目錄通常鏡子組織單位或軟件開發生命周期的範圍。例如,你可以選擇一個目錄的生產數據和發展一個目錄數據,或目錄非定製數據,一個用於敏感的客戶數據。

    目錄可以存儲在相同的物理存儲父metastore,或者您可以配置一個目錄存儲與其他家長metastore分開。

    如果編目數據隔離的主要單位是磚數據治理模型,工作空間是主要的環境處理數據資產。Metastore管理員和目錄所有者可以訪問目錄獨立的工作空間,也可以將目錄綁定到特定的工作區,以確保某些類型的數據隻有在處理這些工作區。你可以單獨的生產和開發工作區,例如,或一個獨立的工作空間進行處理個人數據。

    默認情況下,可獲得的對象的訪問權限繼承了該對象,目錄層次結構的頂部。這使得它更容易設置默認為數據訪問規則,指定不同的規則在每個層次隻在你需要他們。

  • 模式(數據庫):模式,也稱為數據庫的邏輯分組表格數據(表和視圖),non-tabular數據(卷),功能,和機器學習模型。他們給你一種方式組織更細粒度的訪問控製數據目錄。通常他們代表單個用例、項目或團隊沙箱。

    模式可以存儲在相同的物理存儲父目錄,或者您可以配置一個模式分開存儲剩餘的父目錄。

    Metastore管理員、父目錄的所有者和模式所有者可以訪問模式。

  • 表:統一目錄表位於第三層的三級名稱空間。他們包含數據行。

    統一目錄允許您創建管理表外部表

    對於管理表,統一目錄完全管理生命周期和文件布局。默認情況下,存儲在根管理表存儲位置當你創建一個metastore配置。你可以選擇而不是隔離存儲管理表的目錄或模式的水平。

    外部表是表的數據生命周期管理和文件布局使用您的雲提供商和其他數據平台,統一編目。Beplay体育安卓版本通常使用外部表注冊大量的現有數據,或者如果你還需要寫訪問的數據使用工具以外的磚集群和磚SQL的倉庫。一旦外部表目錄metastore統一注冊,你可以管理和審計數據磚訪問它就像你可以與管理表。

    父目錄所有者和模式所有者可以訪問表,是可以metastore管理員(間接)。

  • 視圖:一個視圖是一個隻讀對象來自一個或多個metastore表和視圖。

  • 行和列:行和列級訪問,隨著數據屏蔽,授予使用動態視圖。動態視圖是隻讀的。

  • 卷:卷住在第三層的聯合目錄的三級名稱空間。他們管理non-tabular數據。您可以使用卷存儲、組織和訪問任何格式的文件,包括結構化、半結構化和非結構化數據。文件數量不能注冊為表。

模型和函數是可獲得的對象統一目錄,但沒有數據對象如表和卷,因此不包括在本文的討論的數據隔離和治理。看到模型統一目錄_

計劃你的數據隔離模型

當一個組織使用一個數據平台像磚一樣,通常會有需要數據隔離界限環境(Beplay体育安卓版本如開發和生產)或組織之間的操作單元。

組織隔離標準可能有所不同,但通常包括以下預期:

  • 用戶隻能訪問數據基於指定的訪問規則。

  • 數據隻能由指定的人或團隊管理。

  • 數據在物理上分開存儲。

  • 隻能在指定的環境中訪問數據。

需要數據隔離會導致孤立的環境,可以使數據治理和協作變得比較困難。磚使用統一目錄解決了這個問題,它提供了大量的數據隔離選項,同時保持一個統一的數據管理平台。Beplay体育安卓版本本節討論的數據隔離選擇在磚和如何使用它們,你是否更喜歡集中式或分布式數據治理模型。

用戶隻能訪問數據基於指定的訪問規則

大部分組織都有嚴格的要求在數據訪問基於內部或監管要求。典型的數據,必須保持安全的例子包括員工薪資信息或信用卡付款信息。對這類信息的訪問通常是定期嚴格地控製和審計。統一目錄為您提供細粒度控製目錄中的數據資產來滿足這些行業標準。統一目錄提供的控件,用戶隻能查看和查詢數據,他們有權查看和查詢。

數據隻能由指定的人或團隊管理

統一目錄使您能夠選擇集中式和分布式控製模型。

在集中式控製模型中,您的治理管理員metastore所有者和可以采取任何對象的所有權授予和撤銷權限。

在分布式治理模型,目錄的目錄或一組數據域。目錄的所有者可以創建和自己的所有資產和管理域中治理。任何給定域的所有者可以獨立運作的其他領域的所有者。

無論你選擇metastore或目錄數據域,磚強烈建議您設置一個組作為metastore管理員或目錄所有者。

統一目錄所有權和訪問

數據在物理上分開存儲

當metastore磚賬戶管理員創建一個統一的目錄,它們提供了一個雲存儲位置和憑證作為管理表的默認位置。

然而,組織需要監管原因或物理隔離的數據,例如,在SDLC範圍、業務單位之間,或者成本分配目的分配獨立的物理數據存儲位置在目錄和模式的水平。

統一目錄存儲層次結構

隻能在指定的環境中訪問數據

組織和法規遵循需求通常指定某些數據,如個人數據,隻能在特定的環境中。您可能還想阻止生產數據隔離的開發環境或確保某些數據集和域都連接在一起。

在磚,工作區是主要的數據處理環境,目錄是主數據域。統一目錄讓metastore管理員和目錄所有者分配,或“綁定”,工作區目錄。這些environment-aware綁定使您能夠確保隻有某些目錄可用在一個工作區,不管具體的數據對象上的特權授予一個用戶。

現在讓我們來看一個更深層次的設置統一編目的過程來滿足您的需求。

配置一個統一目錄metastore

metastore頂層容器的對象在統一目錄。Metastores管理數據資產(表、視圖和卷)以及其他可獲得的對象由統一目錄管理。(可獲得的對象的完整列表,請參閱在統一目錄中可獲得的對象)。

建議配置metastores:

  • 你應該建立一個為每個地區metastore磚工作區。

    每個工作區連接到一個地區metastore metastore訪問數據的管理。如果你想metastores之間共享數據,使用三角洲分享

  • 每個metastore配置了一個根存儲位置可用於管理對象,如表和管理管理卷。你必須確保沒有用戶直接訪問該存儲位置管理。

    給這個存儲位置可以允許用戶訪問繞過訪問控製在一個統一的目錄metastore和幹擾可審核性。由於這些原因,metastore根存儲應專用桶。你不應該重用一桶也DBFS根文件係統或此前DBFS根文件係統。

    你也可以選擇定義管理存儲在目錄和模式水平,覆蓋metastore根的存儲位置。

看到創建一個目錄metastore統一

配置外部位置和存儲憑證

外部位置允許統一目錄讀取和寫入數據雲租戶代表用戶。外部的位置被定義為雲存儲的路徑,結合存儲憑證可以用來訪問這個位置。

您可以使用外部位置注冊外部表和外部卷在統一目錄。這些實體的內容是物理上位於中的外部引用位置,當一個用戶創建的體積或桌子上。

一個存儲憑證封裝了一個長期的雲憑據提供對雲存儲的訪問。例如,在AWS訪問S3 bucket可以配置一個我的角色。

建議配置外部位置:

  • 外部位置,通過結合存儲憑證和存儲路徑,提供強大的存儲訪問控製和審核。,以防止用戶繞過訪問控製提供了統一目錄,你應該確保你限製用戶的數量直接訪問任何桶被用作外部位置。出於同樣的原因,你不應該掛載存儲賬戶DBFS如果他們也被用作外部位置。磚建議你掛載在雲存儲位置遷移到外部位置統一目錄使用數據瀏覽

最佳實踐列表管理外部位置,明白了管理外部位置,外部表,和外部卷。另請參閱管理外部位置和存儲憑證

組織你的數據

磚建議使用目錄提供隔離在你組織的信息架構。通常這意味著目錄對應的軟件開發環境範圍,團隊,或業務單位。如果你使用工作區作為一個數據隔離工具的例子,對生產和開發環境,使用不同的工作空間或一個特定的工作區處理高度敏感數據時,您還可以將一個目錄綁定到特定的工作區。這確保了所有處理數據處理在指定適當的工作區。看到(可選)指定一個特定的工作區目錄

統一目錄目錄

一個模式(也稱為一個數據庫)是聯合目錄的第二層三級名稱空間和組織表、視圖和卷。您可以使用模式來組織和為你的資產定義權限。

對象由統一目錄管理外部:

  • 管理的對象是默認方式統一目錄中創建數據對象。統一目錄管理生命周期,並為這些可獲得的文件布局。你不應該使用工具以外的磚直接操作文件管理表或卷。默認情況下,存儲在根表和管理卷存儲位置當你創建一個metastore配置。您可以選擇性地指定目錄存儲位置或模式管理的水平,覆蓋根存儲位置。管理表和體積是一個方便的解決方案,當你想為你的內容規定支配位置沒有創建和管理外部位置的開銷和存儲憑證。

    總是使用管理表δ表的格式。

  • 外部對象的可獲得的數據生命周期和文件布局並不是由統一目錄管理。外部卷和注冊表在外部位置提供大量的文件已經存在於雲存儲不需要數據複製活動。使用外部對象文件時所產生的其他係統和希望他們從內部訪問數據磚,或者當工具以外的磚需要直接訪問這些文件。

    外部表支持三角洲湖和許多其他數據格式,包括拚花、JSON和CSV。管理和外部卷可以用來訪問和存儲文件的任意格式:數據結構化、半結構化或非結構化。

關於創建表和卷的更多信息,請參閱創建表創建卷

管理外部位置,外部表,和外部卷

下圖表示一個雲存儲桶的文件係統層次結構,有四個外部位置共享一個存儲憑證。

外部位置

一旦外部位置中配置統一目錄,您可以創建外部表和卷目錄內部外部的位置。然後,您可以使用統一目錄管理用戶和組訪問這些表和卷。這允許您提供特定用戶或組能夠訪問特定的目錄和文件雲存儲桶。

建議使用外部的位置

建議授予權限外部位置:

  • 創建外部位置的能力隻授予管理員是誰負責建立統一目錄和雲存儲之間的連接,或可信的數據工程師。

    從內部外部位置提供統一目錄大體包括位置在雲存儲的例子中,一個完整的桶(gs: / / mybucket)或廣泛的子路徑(gs: / / mybucket / alotofdata)。的目的是雲管理員可以參與一些外部位置的設置,然後將管理這些位置的責任委托給磚管理員在你的組織中。磚管理員可以進一步組織外部位置為地區更細粒度的權限通過注冊外部卷或外部表在特定前綴根據外部的位置。

    因為外部位置包括,磚建議給創建外部位置隻允許管理員是誰負責建立統一目錄和雲存儲之間的連接,或可信的數據工程師。為其他用戶提供更細粒度的訪問,磚推薦注冊的外部表或卷上的外部位置和授予用戶訪問數據使用卷或表。由於表和卷目錄和模式,目錄或模式管理員最終控製訪問權限。

  • 不要格蘭特將軍文件文件權限外部位置給終端用戶。

    卷的可用性,用戶不能使用外部地點創建表,卷,或管理的位置。他們不應該使用外部位置基於路徑訪問數據科學或其他non-tabular數據用例。

    卷提供支持處理文件使用SQL命令,dbutils,火花api, REST api,起程拓殖,和一個用戶界麵來瀏覽,上傳和下載文件。此外,卷提供了一個保險絲山是在本地文件係統訪問/卷/ < catalog_name > / < schema_name > / < volume_name > /。保險絲安裝允許數據科學家和ML工程師訪問文件,如果他們是在一個本地文件係統,根據需要由許多機器學習或操作係統庫。

    如果你必須授予直接訪問文件在外部位置(探索文件雲存儲在用戶創建外部表或體積,例如),可以資助文件。用例給予文件是罕見的。

你應該使用外部位置做以下:

  • 外部表和卷使用登記創建外部體積創建命令。

  • 探索現有文件雲存儲在你創建外部表或卷在一個特定的前綴。的文件特權是一個先決條件。

  • 注冊一個位置作為目錄和管理存儲模式而不是metastore根鬥。的創建管理存儲特權是一個先決條件。

更多的建議使用外部位置:

  • 避免路徑重疊衝突:永遠不要創建外部卷或表的根源外部位置。

    如果你在外部位置創建外部卷或表根,你不能創造任何額外的外部卷或表外的位置。相反,在子目錄創建外部卷或表內部外部的位置。

建議使用外部卷

你應該使用外部卷做以下:

  • 注冊登陸地區原始數據由外部係統,以支持其加工的早期階段ETL管道和其他數據工程活動。

  • 攝入寄存器暫存的位置,例如,使用自動加載程序,複製或cta (創建作為)語句。

  • 為數據科學家提供文件存儲位置,數據分析師,和機器學習工程師使用的部分探索性數據分析和其他數據科學任務,當卷管理不是一個選項。

  • 給磚用戶訪問任意文件的產生和沉積在雲存儲的係統中,例如,大量非結構化數據(如圖像、音頻、視頻和PDF文件)被監測係統或物聯網設備,或庫文件(jar和車輪)從當地出口依賴關係管理係統或CI / CD管道。

  • 存儲操作數據,比如日誌或檢查點文件,當卷管理不是一個選項。

更多的建議使用外部卷:

  • 磚建議您創建外部卷從一個外部的位置在一個模式。

提示

攝入用例的數據複製到另一個位置使用自動加載程序或例子複製用外部卷。當你想要使用外部表查詢數據作為一個表,沒有涉及到複製。

建議使用外部表

您應該使用外部表支持正常查詢模式的數據存儲在雲存儲中,當創建管理表不是一個選擇。

更多的建議使用外部表:

  • 磚建議你創建外部表從一個外部的位置在一個模式。

  • 磚強烈建議對注冊表如表在多個外部metastore由於一致性問題的風險。例如,改變模式在一個第二metastore metastore不會注冊。使用三角洲metastores之間共享數據的共享。看到共享數據安全地使用三角洲共享

配置訪問控製

統一目錄中的每個可獲得的對象有一個所有者。創建一個對象的主體成為其最初的主人。一個對象的所有者對象上的所有權限,如選擇和修改表,以及可獲得的對象權限授予的特權和其他主體。隻有一個可獲得的對象的所有者許可授予特權,反對其他主體。因此,最佳實踐來配置在所有對象的所有權集團負責政府資助的對象。業主和metastore管理員都可以過戶的一組可獲得的對象。此外,如果對象是包含在一個目錄(比如一個表或視圖),目錄和模式所有者可以改變對象的所有權。

可獲得的對象統一目錄層次和特權是繼承了下行。這意味著授予特權在目錄或模式自動授予的特權目錄內的所有當前和未來的對象或模式。有關更多信息,請參見繼承模型

為了讀取數據從一個表或視圖用戶必須有以下特權:

  • 選擇表或視圖

  • 使用模式在擁有表的模式

  • 使用目錄在目錄擁有模式

使用目錄使授權者遍曆目錄來訪問它的子對象使用模式遍曆模式使受讓人為了訪問它的子對象。例如,選擇一個表的數據,用戶需要選擇那張桌子和特權使用目錄特權的父目錄,以及使用模式特權在母公司模式。因此,您可以使用這個特權的限製部分數據名稱空間特定的團體。一個常見的場景是每個團隊建立一個模式,隻有團隊使用模式創建的模式。這意味著任何表由團隊成員隻能在團隊內部分享。

你可以獲得一個表使用以下SQL語法:

格蘭特使用目錄目錄<catalog_name><group_name>;格蘭特使用模式模式<catalog_name><schema_name><group_name>;格蘭特選擇<catalog_name><schema_name><table_name>;<group_name>;

您可以獲得使用動態視圖列在第二個模式如以下所示的SQL語法:

創建視圖<catalog_name><schema_name><view_name>作為選擇id,情況下is_account_group_member(<group_name>)然後電子郵件其他的“修訂”結束作為電子郵件,國家,產品,<catalog_name><schema_name><table_name>;格蘭特使用目錄目錄<catalog_name><group_name>;格蘭特使用模式模式<catalog_name><schema_name><view_name>;<group_name>;格蘭特選擇<catalog_name><schema_name><view_name>;<group_name>;

你可以安全訪問模式中使用動態視圖行二次見以下SQL語法:

創建視圖<catalog_name><schema_name><view_name>作為選擇*<catalog_name><schema_name><table_name>在哪裏情況下is_account_group_member(經理)然後真正的其他的< =1000000結束;格蘭特使用目錄目錄<catalog_name><group_name>;格蘭特使用模式模式<catalog_name><schema_name><table_name>;<group_name>;格蘭特選擇<catalog_name><schema_name><table_name>;<group_name>;

看到統一目錄管理權限

管理集群配置

磚建議使用集群政策限製配置集群基於一組規則。集群政策讓你限製隻有團結Catalog-enabled創建集群。使用集群政策減少了可用的選擇,這將大大簡化集群為用戶創建過程並確保他們能夠無縫地訪問數據。集群政策也允許您控製成本通過限製每個集群的最大成本。

確保訪問控製和實施強有力的隔離的完整性保證,統一編目對計算資源的安全要求。出於這個原因,統一編目引入了一個集群的概念的訪問模式。統一目錄默認是安全的;如果集群配置合適的訪問模式,集群不能訪問數據在統一目錄。看到集群統一目錄的訪問模式

磚時建議使用共享訪問模式共享集群和單個用戶訪問模式自動化工作和機器學習工作負載。

下麵的JSON提供了策略定義一個集群的共享訪問模式:

{“spark_version”:{“類型”:“正則表達式”,“模式”:“1 (0 - 1)\ \ [0 - 9]* \ \ .x-scala。*”,“defaultValue”:“10.4.x-scala2.12”},“access_mode”:{“類型”:“固定”,“價值”:“USER_ISOLATION”,“隱藏”:真正的}}

下麵的JSON提供了一個自動化的策略定義工作與單用戶訪問集群模式:

{“spark_version”:{“類型”:“正則表達式”,“模式”:“1 (0 - 1)\ \ [0 - 9]*”。,“defaultValue”:“10.4.x-scala2.12”},“access_mode”:{“類型”:“固定”,“價值”:“SINGLE_USER”,“隱藏”:真正的},“single_user_name”:{“類型”:“正則表達式”,“模式”:“。*”,“隱藏”:真正的}}

審計訪問

一個完整的數據治理解決方案要求審計訪問數據,並提供報警和監控功能。統一目錄捕獲對metastore執行的操作的審計日誌,這些日誌交付磚審計日誌的一部分。

看到監控你的磚Lakehouse平台與審計日誌Beplay体育安卓版本有關如何獲取完整的可視性與磚Lakehouse平台相關的關鍵事件。Beplay体育安卓版本

共享數據安全地使用三角洲共享

三角洲分享是一個開放的協議由磚安全數據共享與其他組織或組織內部的其他部門,不管他們所使用的計算平台。Beplay体育安卓版本當δmetastore啟用共享,統一目錄運行三角洲共享服務器。

metastores之間共享數據,您可以利用Databricks-to-Databricks三角洲分享。這允許您從metastores注冊表在不同的地區。這些表將會出現在消費metastore隻讀對象。這些表可以被授予訪問像任何其他對象在統一目錄。

當你使用Databricks-to-Databricks三角洲metastores之間共享來分享,記住metastore訪問控製是有限的。如果可獲得的對象,就像一張桌子,有資金和資源共享intra-account metastore,然後從源贈款將不適用於目標份額。目的地份額必須製定自己的贈款。