統一目錄的最佳實踐

本文檔提供了一個固執己見的角度如何最好采用磚統一目錄和δ來滿足您的數據共享的治理需求。

配置一個統一目錄metastore

聯合目錄是一個細粒度的數據治理解決方案和磚Lakehouse AI。它有助於簡化數據的安全性和治理提供一個中心位置管理和審計數據訪問。下圖展示了主要統一目錄中可獲得的對象:

統一目錄對象模型圖

metastore頂層容器的對象在統一目錄。它存儲數據資產(表和視圖)和控製訪問權限。磚帳戶管理員可以創建metastores並將它們分配給磚工作區來控製每個metastore工作負載使用。你在每個區域中創建一個單一metastore操作並鏈接到所有的工作區。因此,如果你有多個區域使用磚,你將有多個metastores。metastores之間共享數據,看看三角洲分享

每個metastore配置了一個根存儲位置可用於管理表。您需要確保沒有用戶直接訪問該存儲位置管理。給這個存儲位置可以允許用戶訪問繞過訪問控製在一個統一的目錄metastore和幹擾可審核性。由於這些原因,你不應該重用一桶,你目前DBFS根文件係統或以前一直是DBFS根文件係統根目錄metastore統一存儲位置。

看到創建一個目錄metastore統一

外部位置和存儲憑證

外部位置和存儲憑證允許統一目錄讀取和寫入數據雲租戶代表用戶。

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

一個外部位置是一個對象,結合了雲存儲路徑和存儲憑證以授權訪問雲存儲路徑。

重要的

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

看到管理外部位置和存儲憑證

組織你的數據

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

統一目錄目錄

一個模式(也稱為一個數據庫)是聯合目錄的第二層三級名稱空間和組織表和視圖。一個表可以管理或外部。

管理表默認統一目錄創建表的方法。統一目錄管理生命周期,這些表文件布局。你不應該使用工具以外的磚在這些表直接操作文件。默認情況下,存儲在根管理表存儲位置當你創建一個metastore配置。您可以選擇性地指定管理表目錄存儲位置或模式的水平,覆蓋根存儲位置。總是使用管理表δ表的格式。

外部表是表的數據生命周期和文件布局並不是由統一目錄管理。使用外部表注冊大量的現有數據統一目錄,或者如果您需要直接訪問數據使用工具以外的磚集群或磚SQL的倉庫。外部表支持三角洲湖和許多其他數據格式,包括拚花、JSON和CSV。

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

管理外部位置和外部表

下圖表示一個雲存儲桶的文件係統層次結構。

有四個外部位置創建一個存儲憑證使用。用戶和組可以授予訪問統一目錄metastore內不同的存儲位置。這允許您提供特定群體訪問不同的雲存儲桶的一部分。

您可以創建外部表目錄metastore統一使用一個存儲位置。外部表可以獲得獨立。磚建議您創建外部表從一個存儲位置在一個模式。

磚強烈建議對共同注冊表在不止一個外部表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,然後從源贈款將不適用於目標份額。目的地份額必須製定自己的贈款。