Partilhar via


Conecte-se ao armazenamento de objetos na nuvem usando o Unity Catalog

Este artigo fornece uma visão geral das conexões de armazenamento em nuvem necessárias para trabalhar com dados usando o Unity Catalog, juntamente com informações sobre como o Unity Catalog controla o acesso ao armazenamento em nuvem e aos serviços de nuvem externos.

Como o Unity Catalog usa o armazenamento em nuvem?

O Databricks recomenda o uso do Unity Catalog para gerenciar o acesso a todos os dados armazenados no armazenamento de objetos na nuvem. O Unity Catalog fornece um conjunto de ferramentas para configurar conexões seguras com o armazenamento de objetos na nuvem. Essas conexões fornecem acesso para concluir as seguintes ações:

  • Ingerir dados brutos em uma casa de lago.
  • Crie e leia tabelas gerenciadas e volumes gerenciados de dados não estruturados no armazenamento em nuvem gerenciado pelo Unity Catalog.
  • Registre ou crie tabelas externas contendo dados tabulares e volumes externos contendo dados não estruturados no armazenamento em nuvem que é gerenciado usando seu provedor de nuvem.
  • Ler e gravar dados não estruturados (volumes do Catálogo Unity).

Para ser mais específico, o Unity Catalog usa o armazenamento em nuvem de duas maneiras principais:

  • Locais de armazenamento padrão (ou "gerenciados") para tabelas gerenciadas e volumes gerenciados (dados não estruturados e não tabulares) criados no Databricks. Esses locais de armazenamento gerenciado podem ser definidos no nível de metastore, catálogo ou esquema. Você cria locais de armazenamento gerenciados em seu provedor de nuvem, mas seu ciclo de vida é totalmente gerenciado pelo Unity Catalog.
  • Locais de armazenamento onde tabelas e volumes externos são armazenados. Essas são tabelas e volumes cujo acesso do Azure Databricks é gerenciado pelo Unity Catalog, mas cujo ciclo de vida de dados e layout de arquivo são gerenciados usando seu provedor de nuvem e outras plataformas de dados. Normalmente, você usa tabelas externas para registrar grandes quantidades de seus dados existentes no Azure Databricks ou se também precisar de acesso de gravação aos dados usando ferramentas fora do Azure Databricks.

Para obter mais informações sobre tabelas e volumes gerenciados versus externos, consulte Introdução às tabelas do Azure Databricks e O que são volumes do Catálogo Unity?.

Advertência

Não conceda às identidades que não sejam do Catálogo Unity acesso em nível de armazenamento a tabelas ou volumes gerenciados pelo Catálogo Unity. Isso compromete a segurança e a governança dos dados.

Conceder aos usuários, entidades de serviço ou identidades gerenciadas acesso direto aos contêineres do Armazenamento Azure Data Lake que contêm dados regidos pelo Catálogo Unity ignora o Catálogo Unity. Isso expõe os dados a permissão excessiva, exfiltração e acesso não autorizado, ao mesmo tempo em que complica a auditoria e aumenta a sobrecarga de gerenciamento.

O acesso direto ao armazenamento não é suportado para tabelas gerenciadas do Unity Catalog.

Opções de armazenamento na nuvem suportadas pelo Unity Catalog

O Unity Catalog suporta as seguintes opções de armazenamento em nuvem para o Azure Databricks.

Opção de armazenamento na nuvem Descrição
Contêineres de Armazenamento de Data Lake do Azure O Armazenamento Azure Data Lake é apropriado para a maioria dos casos de uso do Azure Databricks. Consulte Criar uma credencial de armazenamento para se conectar ao Armazenamento do Azure Data Lake
Buckets do AWS S3 O Azure Databricks dá suporte ao acesso somente leitura entre plataformas a buckets do S3. Consulte Criar uma credencial de armazenamento para se conectar ao AWS S3 (somente leitura).
Baldes Cloudflare R2 O Cloudflare R2 destina-se principalmente a casos de uso do Delta Sharing nos quais você deseja evitar taxas de saída de dados. Consulte Criar uma credencial de armazenamento para se conectar ao Cloudflare R2.
Raiz DBFS DBFS root é um local de armazenamento em nuvem herdado. Embora o Databricks recomende não armazenar dados no armazenamento raiz DBFS, seu espaço de trabalho pode fazê-lo devido a práticas herdadas. Consulte Criar um local externo de armazenamento para dados na raiz do DBFS (legado).

Como o Unity Catalog controla o acesso ao armazenamento em nuvem?

Para gerenciar o acesso ao armazenamento em nuvem subjacente que contém tabelas e volumes, o Unity Catalog usa um objeto protegível chamado local externo, que define um caminho para um local de armazenamento em nuvem e as credenciais necessárias para acessar esse local. Essas credenciais são, por sua vez, definidas em um objeto protegível do Unity Catalog chamado credencial de armazenamento. Ao conceder e revogar o acesso a recursos protegidos de localização externa no Unity Catalog, controla o acesso aos dados armazenados na nuvem. Ao conceder e revogar o acesso a credenciais de armazenamento protegíveis no Unity Catalog, você controla a capacidade de criar objetos de localização externa.

Credenciais de armazenamento e locais externos

Aqui está um pouco mais de detalhes sobre esses dois objetos protegíveis:

  • Uma credencial de armazenamento representa um mecanismo de autenticação e autorização para acessar dados armazenados em seu locatário de nuvem, por exemplo, usando uma identidade gerenciada do Azure ou uma entidade de serviço para contêineres do Armazenamento Azure Data Lake ou um token de API R2 para buckets do Cloudflare R2. Os privilégios concedidos no Unity Catalog controlam quais usuários e grupos podem usar a credencial para definir locais externos. A permissão para criar e usar credenciais de armazenamento só deve ser concedida a usuários que precisam criar objetos de localização externa. Para obter detalhes, consulte os links nas opções de armazenamento em nuvem suportadas pelo Unity Catalog.
  • Um local externo combina um caminho de armazenamento em nuvem com uma credencial de armazenamento que autoriza o acesso ao caminho de armazenamento em nuvem. Os privilégios concedidos no Unity Catalog controlam quais usuários e grupos podem acessar o caminho de armazenamento em nuvem definido pelo local externo. A permissão para criar e usar locais externos só deve ser concedida a usuários que precisem criar tabelas externas, volumes externos ou locais de armazenamento gerenciados. Consulte Criar um local externo para conectar o armazenamento em nuvem ao Azure Databricks.

Os locais externos são usados no Unity Catalog tanto para ativos de dados externos, como tabelas externas e volumes externos, quanto para ativos de dados gerenciados, como tabelas gerenciadas e volumes gerenciados. Para obter mais informações sobre a diferença entre ativos de dados externos e gerenciados no Catálogo Unity, consulte Introdução às tabelas do Azure Databricks e O que são volumes do Catálogo Unity?.

Para saber mais sobre as práticas recomendadas para usar locais externos, consulte Locais externos.

Usando locais externos ao criar tabelas e volumes externos

Tabelas externas e volumes externos registrados no Unity Catalog são essencialmente ponteiros para dados no armazenamento em nuvem que você gerencia fora do Azure Databricks. Ao criar uma tabela externa ou um volume externo no Unity Catalog, você deve fazer referência a um caminho de armazenamento em nuvem incluído em um objeto de local externo no qual você recebeu privilégios adequados. Para obter mais informações sobre a diferença entre ativos de dados externos e gerenciados no Catálogo Unity, consulte Introdução às tabelas do Azure Databricks e O que são volumes do Catálogo Unity?. Para obter privilégios, consulte Conceder permissões em um local externo.

Usando locais externos ao criar armazenamento gerenciado

Tabelas gerenciadas e volumes gerenciados são totalmente gerenciados pelo Unity Catalog. Eles são armazenados por padrão em um local de armazenamento gerenciado, que pode ser definido no nível de metastore, catálogo ou esquema. Ao atribuir um local de armazenamento gerenciado a um metastore, catálogo ou esquema, você deve fazer referência a um objeto de local externo e ter privilégios adequados para usá-lo. Consulte Especificar um local de armazenamento gerenciado nas práticas recomendadas do Unity Catalog e do Unity Catalog.

Acesso baseado em caminhos a dados no armazenamento em nuvem

Embora o Unity Catalog suporte o acesso através de caminhos a tabelas externas e volumes externos usando URIs de armazenamento em nuvem, o Databricks recomenda que os usuários usem nomes de tabelas para ler e escrever todas as tabelas no Unity Catalog e acessem dados em volumes usando caminhos /Volumes. Os volumes são o objeto protegível que a maioria dos usuários do Azure Databricks deve usar para interagir diretamente com dados não tabulares no armazenamento de objetos na nuvem. Consulte Quais são os volumes do Catálogo Unity?.

Advertência

Se você atualizar metadados de tabela externa usando um cliente não-Databricks ou usando acesso baseado em caminho de dentro do Databricks, esses metadados não sincronizarão automaticamente o estado com o Unity Catalog. O Databricks recomenda não realizar essas atualizações de metadados, mas se si realizar uma, deverá executar MSCK REPAIR TABLE <table-name> SYNC METADATA para atualizar o esquema no Unity Catalog. Consulte REPAIR TABLE.

Fluxo de trabalho para gerenciar o acesso ao armazenamento em nuvem no Unity Catalog

Para gerenciar o acesso ao armazenamento em nuvem usando o Unity Catalog, faça o seguinte:

  1. Crie um objeto de credencial de armazenamento que contenha uma credencial de nuvem de longo prazo, como uma identidade gerida do Azure ou um serviço principal, com acesso ao caminho de armazenamento em nuvem.
  2. Crie um objeto de local externo que faça referência ao caminho de armazenamento e ao objeto de credencial de armazenamento.
  3. Faça referência a um caminho incluído no local externo ao criar tabelas externas, volumes externos ou locais de armazenamento gerenciado padrão. Este pode ser o caminho exato definido no local externo ou um subcaminho.

Práticas recomendadas para o armazenamento em nuvem do Azure com o Unity Catalog

O Azure Databricks requer o uso do Azure Data Lake Storage como o serviço de armazenamento do Azure para dados que são processados no Azure Databricks usando a governança do Catálogo Unity. O Armazenamento Azure Data Lake permite separar os custos de armazenamento e computação e aproveitar o controle de acesso refinado fornecido pelo Catálogo Unity. Se os dados forem armazenados no OneLake (o data lake do Microsoft Fabric) e processados pelo Databricks (ignorando o Unity Catalog), você incorrerá em custos de armazenamento e computação agrupados. Isso pode levar a custos aproximadamente 3 vezes maiores para leituras e 1,6 vezes maiores para gravações em comparação com o Armazenamento Azure Data Lake para armazenamento, leitura e gravação de dados. O Armazenamento de Blobs do Azure também é incompatível com o Catálogo Unity.

Característica Armazenamento de Blobs do Azure Armazenamento Azure Data Lake OneLago
Suportado pelo Catálogo Unity X X
Requer compra adicional de capacidade de malha X X
Operações suportadas a partir de motores externos
  • Leitura
  • Escreve
  • Leitura
  • Escreve
  • Leituras (As leituras resultam em um custo três vezes maior em comparação com a leitura de dados do Armazenamento Azure Data Lake).
  • Gravações (as gravações incorrem em 1,6 vezes o custo em comparação com a gravação de dados no Armazenamento do Azure Data Lake).

Para obter detalhes, consulte a documentação do OneLake.
Implantação Regionais Regionais A nível mundial
Autenticação Assinatura de Acesso Compartilhado Entra ID Assinatura de Acesso Compartilhado Entra ID Entra ID
Eventos de armazenamento X
Eliminação suave
Controlo de acessos RBAC RBAC, ABAC, ACL RBAC (Somente tabela/pasta, ACLs de atalho não suportadas)
Chaves de encriptação X
Níveis de acesso Arquivo online Quente, fresco, frio, arquivo Somente quente

Próximos passos