外部表(Databricks SQL)

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

外部表

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

存儲路徑應該包含在現有的外部位置你已經被授予訪問權限了。

或者你也可以引用存儲憑證你已經被授予訪問權限了。

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

警告

為避免意外數據丟失,不要將模式(數據庫)注冊到具有現有數據的位置,也不要在由模式管理的位置中創建新的外部表。刪除模式將遞歸地刪除托管位置中的所有數據文件。

關係的圖形表示

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

  • 存儲憑證

  • 外部位置

  • 外部表

  • 存儲路徑

  • 我的實體

  • Azure服務帳戶

外部位置ER圖

例子

——' finance '可以在' finance_loc '位置的特定對象上創建一個外部表> create table sec_files location 's3://depts/finance/ sec_files ';> list ' s3://depts/finance/ sec_files /_delta_log '錯誤> list ' s3://depts/finance/ sec_files /_delta_log '錯誤——授予所有員工sec_files的訪問權限> Grant SELECT on table sec_files to employee;——employee組的任何成員都可以安全地讀取sec_files > SELECT count(1) FROM sec_files;20——' employee '組的任何成員都可以列出sec_files表> list ' s3://depts/finance/ sec_files ' _delta_log > list ' s3://depts/finance/ sec_files /_delta_log ' 00000.json下的文件