外部表

適用於:勾選“是”磚的SQL勾選“是”磚運行時

Unity Catalog和內置的Databricks Hive metastore為托管表使用默認位置。Unity Catalog引入了幾個新的安全對象,為雲對象存儲中的數據授予特權。

外部表

外部表是表格類引用外部存儲路徑位置條款。

存儲路徑應該包含在現有的外部位置你已經被允許進入了。

或者,您可以引用存儲憑證你已經被允許進入了。

使用外部表抽象了被授予外部表訪問權的用戶的存儲路徑、外部位置和存儲憑據。

警告

如果一個模式(數據庫)注冊在你的工作空間級Hive metastore中,使用級聯選項會導致遞歸地刪除該模式位置中的所有文件,而不管表類型(托管或外部)如何。

如果模式被注冊到一個Unity Catalog metastore,則Unity Catalog的文件管理表遞歸刪除。然而,文件外部表不會被刪除。您必須直接使用雲存儲提供商管理這些文件。

因此,為了避免意外的數據丟失,永遠不要將Hive metastore中的模式注冊到具有現有數據的位置。也不應該在由Hive metastore模式管理的位置或包含Unity Catalog管理的表中創建新的外部表。

關係的圖形表示

下圖描述了兩者之間的關係:

  • 存儲憑證

  • 外部位置

  • 外部表

  • 存儲路徑

  • 我的實體

  • Azure服務帳戶

外部位置ER圖

例子

——' finance '可以在' finance_loc '位置的特定對象上創建一個外部表>創建表格sec_filings位置s3: / /部門/金融/ sec_filings '不能在沒有權限的外部表下列出文件>列表s3//部門/金融/sec_filings錯誤>列表s3//部門/金融/sec_filings/_delta_log錯誤——允許所有員工訪問sec_files>格蘭特選擇表格sec_filings員工“雇員”組的任何成員都可以安全地讀取sec_files>選擇1sec_filings20.employee組的任何成員都可以在sec_files表下列出文件>列表s3//部門/金融/sec_filings_delta_log>列表s3//部門/金融/sec_filings/_delta_log00000json