共用方式為


監控和管理 Delta Sharing 數據傳出成本(用於 providers)

本文說明當您使用 Delta Sharing 共用資料和 AI 資產時,可用來監視和管理雲端廠商輸出成本的工具。

與其他資料共用平台不同,差異共用不需要資料複寫。 此模型有許多優點,但這意味著當跨雲端或跨區域共用資料時,你的雲端廠商可能會收取資料輸出費用。 如果您使用 Delta Sharing 來共用區域內的資料和 AI 資產,則不會產生任何輸出成本。

為了監視和管理輸出費用,Databricks 提供:

複寫資料以避免輸出成本

避免輸出成本的一種方法是讓提供者在他們的 recipients 使用的區域中創建 sync 共用數據的本地副本。 另一種方法是讓 recipients 將共用數據複製到本地區域以供即時查詢,並在共用 table 與本地複製之間設定資料同步。 本節討論一些複寫模式。

使用 Delta 深層複製進行累加式複寫

Providers 可以使用 DEEP CLONE,將 Delta tables 複寫到其共用區域的外部位置。 深層複製會將來源 table 數據和元數據複製到複製目標。 深層複製也會透過辨識來源 table 中的新數據,並據此更新目標,以達成漸進式更新。

CREATE TABLE [IF NOT EXISTS] table_name DEEP CLONE source_table_name
   [TBLPROPERTIES clause] [LOCATION path];

您可以使用下列命令,將 Databricks 作業排程以累加方式 refresh 目標 table 共用 table中的最新更新。

CREATE OR REPLACE TABLE table_name DEEP CLONE source_table_name;

請參閱 在 Azure Databricks 上複製 table,以及 排程及協調工作流程

在共用 tables 上啟用變更數據摘要 (CDF) 以進行累加式複寫

當 table 與其 CDF 共用時,收件者可以存取變更,並將其合併到 table的本機複本,where 使用者執行查詢。 在此案例中,資料的收件者存取不會跨越區域界限,而輸出僅限於重新整理本機複本。 如果收件者位於 Databricks 上,他們可以使用 Databricks 工作流程工作將變更傳播至本機複本。

若要與CDF共用 table,您必須在 table 上啟用CDF,並將它共用 WITH HISTORY

如需有關使用 CDF 的詳細資訊,請參閱 在 Azure Databricks 上使用 Delta Lake 變更資料摘要將 tables 新增至共用

使用 Cloudflare R2 複本或將儲存體移轉至 R2

Cloudflare R2 物件儲存體不會產生任何輸出費用。 複寫或移轉您共用至 R2 的資料可讓您使用差異共用來共享資料,而不會產生輸出費用。 本節說明如何將數據復寫至 R2 位置,並從來源 tables啟用累加式更新。

需求

  • 已啟用 Databricks 工作區以支援 Unity Catalog。
  • Databricks Runtime 14.3 或更新版本,或 SQL 倉儲 2024.15 或更新版本。
  • Cloudflare 帳戶。 請參閱 https://dash.cloudflare.com/sign-up
  • Cloudflare R2 系統管理員角色。 請參閱 Cloudflare 角色文件
  • CREATE STORAGE CREDENTIAL 附加至工作區的 Unity Catalog 中繼存放區許可權。 帳戶管理員和中繼存放區管理員預設具有此權限。
  • CREATE EXTERNAL LOCATION 中繼存放區和外部位置所參考之儲存體認證的權限。 預設中繼存放區管理員擁有此權限。
  • CREATE MANAGED STORAGE 外部位置的權限。
  • 中繼存放區上的 CREATE CATALOG。 預設中繼存放區管理員擁有此權限。

Cloudflare R2 的限制

Providers 無法共用使用液體叢集和 V2 檢查點的 R2 tables。

將 R2 貯體裝載為 Azure Databricks 中的外部位置

  1. 建立 Cloudflare R2 貯體。

    請參閱設定 R2 貯體

  2. 在 Unity Catalog 中建立儲存憑證,用於存取 R2 儲存桶。

    請參閱建立儲存體認證

  3. 使用儲存憑證在 Unity Catalog中創建一個外部位置。

    如需相關資訊,請參閱建立外部位置以將雲端儲存連線到 Azure Databricks

使用外部位置建立新的 catalog

建立一個 catalog,將新外部位置設為其受控儲存位置。

請參閱 ,建立 catalogs

當您建立 catalog時,請執行下列動作:

Catalog 資源管理器

  • Select 標準catalog 類型。
  • 在 [記憶體位置下,selectSelect 儲存位置,然後輸入您定義為外部位置的 R2 貯體路徑。 例如,r2://mybucket@my-account-id.r2.cloudflarestorage.com

SQL

使用您定義為外部位置之 R2 貯體的路徑。 例如:

  CREATE CATALOG IF NOT EXISTS my-r2-catalog
    MANAGED LOCATION 'r2://mybucket@my-account-id.r2.cloudflarestorage.com'
    COMMENT 'Location for managed tables and volumes to share using Delta Sharing';

將您想要共享的數據複製到新 catalog 中的 table

使用 DEEP CLONE 將 Azure Data Lake Storage Gen2 中的 tables 複製到新的 catalog,此 catalog 使用 R2 進行受管理儲存。 深層複製會將來源 table 數據和元數據複製到複製目標。 深層複製還可以透過識別來源 table 中的新數據並據此刷新目標,來實現增量更新。

CREATE TABLE IF NOT EXISTS new_catalog.schema1.new_table DEEP CLONE old_catalog.schema1.source_table
  LOCATION 'r2://mybucket@my-account-id.r2.cloudflarestorage.com';

您可以使用以下命令,將 Databricks 作業排程為 refresh ,以增量方式處理來源 table中的更新並針對 table 目標執行。

CREATE OR REPLACE TABLE new_catalog.schema1.new_table DEEP CLONE old_catalog.schema1.source_table;

請參閱 在 Azure Databricks 上複製 table,以及 排程及協調工作流程

分享全新的 table

當您建立共用時,請將儲存在 R2 的新 catalog中的 tables 新增進去。 此過程與將任何 table 新增至共用資源相同。

請參閱 建立和管理差異共用的 shares。