監控與管理 Delta Sharing 資料傳出成本(適用於提供者)
本文說明當您使用 Delta Sharing 共用資料和 AI 資產時,可用來監視和管理雲端廠商輸出成本的工具。
與其他資料共用平台不同,Delta Sharing 不需要資料複製。 此模型有許多優點,但這意味著當跨雲端或跨區域共用資料時,你的雲端廠商可能會收取資料輸出費用。 如果您使用 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 上複製資料表 以及 在 Databricks 上的協同工作概觀。
在共享數據表上啟用變更數據摘要(CDF)以進行累加式複寫
當數據表與其CDF共用時,收件者可以存取變更,並將其合併到數據表的本機複本,讓使用者執行查詢。 在此案例中,資料的收件者存取不會跨越區域界限,而輸出僅限於重新整理本機複本。 如果收件者位於 Databricks 上,他們可以使用 Databricks 工作流程將變更傳播至本機複本。
若要與 CDF 共享資料表,您必須在資料表中啟用 CDF,並共用 WITH HISTORY
。
如需有關使用 CDF 的更多資訊,請參閱 在 Azure Databricks 上使用 Delta Lake 變更資料摘要 和 將資料表新增至共用。
使用 Cloudflare R2 複本或將儲存體移轉至 R2
Cloudflare R2 物件儲存體不收取任何輸出費用。 複製或移轉您共用至 R2 的資料可讓您使用 Delta Sharing 來共享資料,而不會產生流出費用。 不過,這不適用於檢視共用,這可能會產生傳輸成本。 本節說明如何將數據復寫至 R2 位置,並從源數據表啟用累加式更新。
需求
- 已為 Unity Catalog 啟用了 Databricks 工作區。
- 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 的限制
提供者無法共用使用液體叢集和 V2 檢查點的 R2 數據表。
將 R2 儲存桶掛載為 Azure Databricks 中的外部位置
建立 Cloudflare R2 儲存桶。
請參閱設定 R2 桶。
在 Unity Catalog 中建立儲存認證,以存取 R2 儲存桶。
請參閱建立儲存體認證。
使用記憶體認證在 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 Storage 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 上複製資料表 以及 在 Databricks 上的協同工作概觀。
共用新數據表
當您建立共享時,請新增位於 R2 的新目錄中的資料表。 此過程與將任何資料表新增至共享相同。
請參閱 建立和管理 Delta 共享。