監控和管理 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 中的外部位置
建立 Cloudflare R2 貯體。
請參閱設定 R2 貯體。
在 Unity Catalog 中建立儲存憑證,用於存取 R2 儲存桶。
請參閱建立儲存體認證。
使用儲存憑證在 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。