Share via


監控與管理差異共享輸出成本(適用於提供者 )

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

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

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

複寫數據以避免輸出成本

避免輸出成本的其中一種方法是提供者在收件者所使用的區域中建立及同步共享數據的本機複本。 另一種方法是讓收件者將共用數據複製到本機區域以供使用中查詢,設定共用數據表與本機複製之間的同步處理。 本節討論一些復寫模式。

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

提供者可用來 DEEP CLONE 將 Delta 數據表復寫到其所共享區域的外部位置。 深層複製會將源數據表數據和元數據複製到複製目標。 深層複製也會藉由識別源數據表中的新數據並據以重新整理目標,來啟用累加式更新。

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

您可以使用下列命令,排程 Databricks 工作流程作業,利用共享資料表中最近的更新,以累加方式重新整理目標數據表數據:

CREATE OR REPLACE TABLE table_name DEEP CLONE source_table_name;

請參閱 在 Azure Databricks 上複製數據表和 Azure Databricks 工作流程簡介。

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

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

若要與CDF共用資料表,您必須在資料表上啟用CDF,並加以共用 WITH HISTORY

如需使用CDF的詳細資訊,請參閱 在 Azure Databricks 上使用 Delta Lake 變更數據摘要和 將數據表新增至共用

使用 Cloudflare R2 複本或將記憶體遷移至 R2

重要

這項功能處於公開預覽狀態

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

需求

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

將 R2 貯體掛接為 Azure Databricks 中的外部位置

  1. 建立 Cloudflare R2 貯體。

    請參閱 設定 R2 貯體

  2. 在 Unity 目錄中建立記憶體認證,以存取 R2 貯體。

    請參閱 建立記憶體認證

  3. 使用記憶體認證在 Unity 目錄中建立外部位置。

    請參閱 建立外部位置以將雲端記憶體連線到 Azure Databricks

使用外部位置建立新的目錄

建立使用新外部位置作為其受控儲存位置的目錄。

請參閱 建立和管理目錄

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

目錄總管

  • 選取標準目錄類型。
  • 在 [儲存體 位置] 下,選取 [選取儲存位置],然後輸入您定義為外部位置之 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';

將您想要分享的數據複製到新目錄中的數據表

使用 DEEP CLONE 將 Azure Data Lake 儲存體 Gen2 中的數據表復寫至使用 R2 進行受控記憶體的新目錄。 深層複製會將源數據表數據和元數據複製到複製目標。 深層複製也會藉由識別源數據表中的新數據並據以重新整理目標,來啟用累加式更新。

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 工作流程作業,以累加方式使用源數據表中的最近更新,以累加方式重新整理目標數據表數據:

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

請參閱 在 Azure Databricks 上複製數據表和 Azure Databricks 工作流程簡介。

共用新數據表

當您建立共用時,請新增儲存在 R2 中新目錄中的數據表。 此程式與將任何數據表新增至共用相同。

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