Monitore e gerencie custos de saída do Delta Sharing (para provedores)

Esse artigo descreve ferramentas que você pode usar para monitorar e gerenciar custos de saída de fornecedores de nuvem ao compartilhar dados e ativos de IA usando o Delta Sharing.

Ao contrário de outras plataformas de compartilhamento de dados, o Delta Sharing não requer replicação de dados. Esse modelo tem muitas vantagens, mas significa que seu fornecedor de nuvem pode cobrar valor de saída de dados quando você compartilha dados entre nuvens ou regiões. Se você usar o Delta Sharing para compartilhar dados e ativos de IA em uma região, não haverá custos de saída.

Para monitorar e gerenciar cobranças de saída, o Databricks fornece:

Replique dados para evitar custos de saída

Uma abordagem para evitar custos de saída é o provedor criar e sincronizar réplicas locais de dados compartilhados nas regiões que seus destinatários estão usando. Outra abordagem é os destinatários clonarem os dados compartilhados em regiões locais para consulta ativa, configurando sincronizações entre a tabela compartilhada e o clone local. Essa seção discute vários padrões de replicação.

Use o clone profundo Delta para replicação incremental

Os provedores podem usar DEEP CLONE para replicar tabelas Delta para locais externos nas regiões com as quais compartilham. Os clones profundos copiam os dados e metadados da tabela de origem para o destino do clone. Os clones profundos também permitem atualizações incrementais, identificando novos dados na tabela de origem e atualizando o destino adequadamente.

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

Você pode agendar um trabalho de fluxos de trabalho do Databricks para atualizar os dados da tabela de destino de forma incremental com atualizações recentes na tabela compartilhada, usando o seguinte comando:

CREATE OR REPLACE TABLE table_name DEEP CLONE source_table_name;

Veja Clone uma tabela no Azure Databricks e Introdução aos fluxos de trabalho do Azure Databricks.

Habilitar feed de dados alterados (CDF) em tabelas compartilhadas para replicação incremental

Quando uma tabela é compartilhada com seu CDF, o destinatário pode acessar as alterações e mesclá-las em uma cópia local da tabela, onde os usuários realizam consultas. Nesse cenário, o acesso do destinatário aos dados não ultrapassa os limites da região e a saída é limitada à atualização de uma cópia local. Se o destinatário estiver no Databricks, ele poderá usar um trabalho de fluxo de trabalho do Databricks para propagar alterações para uma réplica local.

Para compartilhar uma tabela com CDF, você deve habilitar o CDF na tabela e compartilhá-lo WITH HISTORY.

Para obter mais informações sobre o uso do CDF, veja Usar feed de dados de alteração do Delta Lake no Azure Databricks e Adicionar tabelas a um compartilhamento.

Use réplicas Cloudflare R2 ou migre o armazenamento para R2

Importante

Esse recurso está em uma versão prévia.

O armazenamento de objetos Cloudflare R2 não incorre em valor de saída. A replicação ou migração de dados compartilhados para R2 permite compartilhar dados usando o Delta Sharing sem incorrer em valor de saída. Essa seção descreve como replicar dados para um local R2 e habilitar atualizações incrementais de tabelas de origem.

Requisitos

  • Espaço de trabalho do Databricks habilitado para Unity Catalog.
  • Databricks Runtime 14.3 ou superior ou SQL warehouse 2024.15 ou superior.
  • Conta Cloudflare. Consulte https://dash.cloudflare.com/sign-up.
  • Função de administrador do Cloudflare R2. Veja a documentação de funções da Cloudflare.
  • Privilégio CREATE STORAGE CREDENTIAL no metastore do Catálogo do Unity anexado ao workspace. Os administradores de conta e administradores de metastore têm esse privilégio por padrão.
  • CREATE EXTERNAL LOCATION privilégio no metastore e na credencial de armazenamento referenciada no local externo. Os administradores do metastore têm esse privilégio por padrão.
  • CREATE MANAGED STORAGE privilégio na localização externa.
  • CREATE CATALOG no metastore. Os administradores do metastore têm esse privilégio por padrão.

Monte um bucket R2 como local externo no Azure Databricks

  1. Crie um bucket Cloudflare R2.

    Veja Configurar um bucket R2.

  2. Crie uma credencial de armazenamento no Unity Catalog que dê acesso ao bucket R2.

    Veja Crie a credencial de armazenamento.

  3. Use a credencial de armazenamento para criar um local externo no Unity Catalog.

    Veja Crie um local externo para conectar o armazenamento em nuvem ao Azure Databricks.

Crie um novo catálogo usando o local externo

Crie um catálogo que use o novo local externo como local de armazenamento gerenciado.

Consulte Criar e gerenciar catálogos.

Ao criar o catálogo, faça o seguinte:

Explorador do Catálogo

  • Selecione um tipo de catálogo Padrão.
  • Em Local de armazenamento, selecione Selecionar um local de armazenamento e insira o caminho para o bucket R2 que você definiu como local externo. Por exemplo, r2://mybucket@my-account-id.r2.cloudflarestorage.com

Sql

Use o caminho para o bucket R2 definido como local externo. Por exemplo:

  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';

Clone os dados que você deseja compartilhar em uma tabela no novo catálogo

Use DEEP CLONE para replicar tabelas no Azure Data Lake Storage Gen2 para o novo catálogo que usa R2 para armazenamento gerenciado. Os clones profundos copiam os dados e metadados da tabela de origem para o destino do clone. Os clones profundos também permitem atualizações incrementais, identificando novos dados na tabela de origem e atualizando o destino adequadamente.

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';

Você pode agendar um trabalho de fluxos de trabalho do Databricks para atualizar os dados da tabela de destino de forma incremental com atualizações recentes na tabela de origem, usando o seguinte comando:

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

Veja Clone uma tabela no Azure Databricks e Introdução aos fluxos de trabalho do Azure Databricks.

Compartilhe a nova tabela

Ao criar o compartilhamento, adicione as tabelas que estão no novo catálogo, armazenado em R2. O processo é o mesmo que adicionar qualquer tabela a um compartilhamento.

Confira Criar e gerenciar compartilhamentos para o Compartilhamento Delta.