Monitorar e gerenciar os custos de saída do Delta Sharing (para provedores)

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

Ao contrário de outras plataformas de partilha de dados, o Delta Sharing não requer replicação de dados. Este modelo tem muitas vantagens, mas significa que o fornecedor da cloud pode cobrar taxas de saída de dados quando partilha dados entre clouds ou regiões. Se você usar o Delta Sharing para compartilhar dados e ativos de IA dentro de uma região, não incorrerá em nenhum custo de saída.

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

Replicar dados para evitar custos de saída

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

Usar 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 de acordo.

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

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

CREATE OR REPLACE TABLE table_name DEEP CLONE source_table_name;

Consulte Clonar uma tabela no Azure Databricks e Agendar e orquestrar fluxos de trabalho.

Habilitar o feed de dados de alteração (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 executam consultas. Nesse cenário, o acesso do destinatário aos dados não cruza 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 em uma réplica local.

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

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

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

O armazenamento de objetos do Cloudflare R2 não incorre em taxas de saída. Replicar ou migrar dados que você compartilha para o R2 permite que você compartilhe dados usando o Delta Sharing sem incorrer em taxas de saída. Esta seção descreve como replicar dados para um local R2 e habilitar atualizações incrementais de tabelas de origem.

Requisitos

  • Espaço de trabalho Databricks habilitado para o 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. Consulte a documentação de funções da Cloudflare.
  • CREATE STORAGE CREDENTIAL no metastore do Unity Catalog anexado ao espaço de trabalho. Os administradores de conta e os 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 da Metastore têm esse privilégio por padrão.
  • CREATE MANAGED STORAGE privilégio no local externo.
  • CREATE CATALOG no metastore. Os administradores da Metastore têm esse privilégio por padrão.

Monte um bucket R2 como um local externo no Azure Databricks

  1. Crie um bucket do Cloudflare R2.

    Consulte Configurar um bucket R2.

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

    Consulte Criar a credencial de armazenamento.

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

    Consulte Criar um local externo para conectar o armazenamento em nuvem ao Azure Databricks.

Criar um novo catálogo usando o local externo

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

Consulte Criar catálogos.

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

Explorador de Catálogos

  • 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 definido como um local externo. Por exemplo, r2://mybucket@my-account-id.r2.cloudflarestorage.com

SQL

Use o caminho para o bucket R2 definido como um 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 de acordo.

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 do Databricks para atualizar os dados da tabela de destino incrementalmente 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;

Consulte Clonar uma tabela no Azure Databricks e Agendar e orquestrar fluxos de trabalho.

Partilhar a nova tabela

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

Consulte Criar e gerenciar compartilhamentos para o Delta Sharing.