Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo fornece uma visão geral das conexões de armazenamento em nuvem necessárias para trabalhar com dados usando o Catálogo do Unity, juntamente com informações sobre como o Catálogo do Unity controla o acesso ao armazenamento em nuvem e aos serviços de nuvem externos.
Como o Catálogo do Unity usa o armazenamento em nuvem?
O Databricks recomenda usar o Catálogo do Unity para gerenciar o acesso a todos os dados armazenados no armazenamento de objetos na nuvem. O Catálogo do Unity 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 um lakehouse.
- Crie e leia tabelas gerenciadas e volumes gerenciados de dados não estruturados no armazenamento em nuvem gerenciado pelo Catálogo do Unity.
- Registre ou crie tabelas externas contendo dados tabulares e volumes externos contendo dados não estruturados no armazenamento em nuvem gerenciado usando seu provedor de nuvem.
- Ler e gravar dados não estruturados ( volumes do Catálogo do Unity).
Para ser mais específico, o Catálogo do Unity 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) que você cria no Databricks. Esses locais de armazenamento gerenciado podem ser definidos no nível do metastore, do catálogo ou do esquema. Você cria locais de armazenamento gerenciados em seu provedor de nuvem, mas seu ciclo de vida é totalmente gerenciado pelo Catálogo do Unity.
- 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 dos dados e organização 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 as tabelas do Azure Databricks e o que são volumes do Catálogo do Unity?.
Aviso
Não forneça acesso ao nível de armazenamento para identidades que não fazem parte do Catálogo do Unity a tabelas ou volumes gerenciados pelo Catálogo do 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 a contêineres do Azure Data Lake Storage que contêm dados regidos pelo Catálogo do Unity ignora o Catálogo do Unity. Isso expõe dados a excesso de permissão, exfiltração e acesso não autorizado, complicando a auditoria e aumentando a sobrecarga de gerenciamento.
Não há suporte para acesso de armazenamento direto para tabelas gerenciadas do Catálogo do Unity.
Opções de armazenamento em nuvem compatíveis com o Catálogo do Unity
O Catálogo do Unity dá suporte às seguintes opções de armazenamento em nuvem para o Azure Databricks.
| Opção de armazenamento em nuvem | Descrição |
|---|---|
| Contêineres do Azure Data Lake Storage | O Azure Data Lake Storage é apropriado para a maioria dos casos de uso do Azure Databricks. Consulte Criar uma credencial de armazenamento para se conectar ao Azure Data Lake Storage |
| Buckets do AWS S3 | O Azure Databricks dá suporte ao acesso somente leitura multiplataforma a buckets S3. Consulte Criar uma credencial de armazenamento para se conectar ao AWS S3 (somente leitura). |
| Buckets do Cloudflare R2 | O Cloudflare R2 destina-se principalmente a casos de uso de compartilhamento Delta nos quais você deseja evitar custos de saída de dados. Consulte Criar uma credencial de armazenamento para se conectar ao Cloudflare R2. |
| Raiz do DBFS | A raiz DBFS é um local de armazenamento em nuvem herdado. Embora o Databricks recomende não armazenar dados no armazenamento raiz do DBFS, seu workspace pode fazer isso devido a práticas herdadas. Consulte Conectar-se a um local externo raiz do DBFS (herdado). |
Como o Catálogo do Unity controla o acesso ao armazenamento em nuvem?
Para gerenciar o acesso ao armazenamento em nuvem subjacente que contém tabelas e volumes, o Catálogo do Unity 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 Catálogo do Unity chamado credencial de armazenamento. Ao conceder e revogar o acesso a protegíveis de localização externa no Catálogo do Unity, você controla o acesso aos dados no local de armazenamento em nuvem. Ao conceder e revogar o acesso a protegíveis de credenciais de armazenamento no Catálogo do Unity, você controla a capacidade de criar objetos de localização externos.
Visão geral das credenciais de armazenamento
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, uma credencial de armazenamento é associada a uma identidade gerenciada do Azure ou entidade de serviço para contêineres do Azure Data Lake Storage ou com um token de API R2 para buckets Cloudflare R2.
Privilégios concedidos no catálogo do Unity controlam quais usuários e grupos podem usar a credencial para definir locais externos. A permissão para criar e usar credenciais de armazenamento deve ser concedida somente aos usuários que precisam criar objetos de localização externos.
Visão geral de locais externos
Um local externo combina um caminho de armazenamento em nuvem com uma credencial de armazenamento que autoriza o acesso ao caminho especificado. Vários locais externos podem usar a mesma credencial de armazenamento. Locais externos podem referenciar caminhos de armazenamento em qualquer uma das opções de armazenamento em nuvem com suporte.
O diagrama a seguir mostra como locais externos fazem referência a credenciais de armazenamento e locais de armazenamento em nuvem.
Neste diagrama:
- Cada local externo faz referência a uma credencial de armazenamento e a um local de armazenamento em nuvem.
- Vários locais externos podem fazer referência à mesma credencial de armazenamento.
A credencial de armazenamento 1 concede acesso a tudo no caminho
bucket/tables/*, portanto, a localização externa A e a localização externa B fazem referência a ela.
Os locais externos são usados no Catálogo do Unity para ativos de dados externos, como tabelas externas e volumes externos, e 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 do Unity, consulte as tabelas do Azure Databricks e o que são volumes do Catálogo do Unity?.
Os privilégios concedidos no Catálogo do Unity 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 deve ser concedida somente aos usuários que precisam criar tabelas externas, volumes externos ou locais de armazenamento gerenciado.
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 Catálogo do Unity 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 Catálogo do Unity, você deve fazer referência a um caminho de armazenamento em nuvem incluído em um objeto de localização 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 do Unity, consulte as tabelas do Azure Databricks e o que são volumes do Catálogo do Unity?. Para privilégios, consulte Conceder permissões em um local externo.
Usando locais externos ao criar armazenamento gerenciado
As tabelas gerenciadas e os volumes gerenciados são totalmente gerenciados pelo Catálogo do Unity. Eles são armazenados por padrão em um local de armazenamento gerenciado, que pode ser definido no nível do 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 deve ter privilégios adequados para usá-lo. Consulte Especificar um local de armazenamento gerenciado no Catálogo do Unity e Práticas recomendadas do Catálogo do Unity.
Acesso baseado em caminho aos dados no armazenamento em nuvem
Embora o Catálogo do Unity dê suporte ao acesso baseado em caminho a tabelas externas e volumes externos usando URIs de armazenamento em nuvem, o Databricks recomenda que os usuários leiam e gravem todas as tabelas do Catálogo do Unity usando nomes de tabela e acessem dados em volumes usando /Volumes caminhos.
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. Confira O que são volumes do Unity Catalog?.
Aviso
Se você atualizar metadados de tabela externa usando um cliente não Databricks ou usando o acesso baseado em caminho de dentro do Databricks, esses metadados não sincronizam automaticamente o estado com o Catálogo do Unity. O Databricks não recomenda tais atualizações de metadados, mas se você 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 Catálogo do Unity
Para gerenciar o acesso ao armazenamento em nuvem usando o Catálogo do Unity, faça o seguinte:
- Crie um objeto de credencial de armazenamento que contenha uma credencial de nuvem de longo prazo, como uma identidade gerenciada do Azure ou um principal de serviço, com acesso ao caminho de armazenamento na nuvem.
- Crie um objeto de localização externo que faça referência ao caminho de armazenamento e ao objeto de credencial de armazenamento.
- 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. Esse pode ser o caminho exato definido no local externo ou em um subcaminho.
Práticas recomendadas para o armazenamento em nuvem do Azure com o Catálogo do Unity
O Azure Databricks requer o uso do Azure Data Lake Storage como o serviço de armazenamento do Azure para dados processados no Azure Databricks usando a governança do Unity Catalog. O Azure Data Lake Storage permite separar os custos de armazenamento e computação e aproveitar o controle de acesso refinado fornecido pelo Catálogo do Unity. Se os dados forem armazenados no OneLake (o data lake do Microsoft Fabric) e processados pelo Databricks (ignorando o Catálogo do Unity), você poderá incorrer em custos de armazenamento e computação empacotados. Se agrupado, isso pode levar a custos aproximadamente 2x mais altos para leituras e 2,6x mais altos para gravações em comparação com a Camada Premium do Azure Data Lake Storage para armazenar, ler e gravar dados. O Armazenamento de Blobs do Azure também é incompatível com o Catálogo do Unity. O Databricks recomenda usar o modelo de preços pay-as-you-go para o Fabric, oferecendo maior flexibilidade nas opções de armazenamento e computação.
| Característica | Armazenamento de Blobs do Azure | Azure Data Lake Storage | OneLake |
|---|---|---|---|
| Compatível com o Catálogo Unity | X | ✓ | X |
| Requer compra de capacidade adicional do Fabric | X | X | ✓ |
| Operações suportadas por mecanismos externos |
|
|
Ao usar um modelo de preço de computação/armazenamento agrupado, as leituras incorrem em até 2x o custo em comparação com a leitura de dados do Azure Data Lake Storage e as gravações incorrem em até 2,6x no custo em comparação com a gravação de dados no Azure Data Lake Storage Premium Tier. Para obter detalhes, confira a documentação do OneLake. |
| Implantação | Regional | Regional | Mundial |
| Autenticação | Assinatura de Acesso Compartilhado do Entra ID | Assinatura de Acesso Compartilhado do Entra ID | Entra ID |
| Eventos de armazenamento | ✓ | ✓ | X |
| Exclusão reversível | ✓ | ✓ | ✓ |
| Controle de acesso | RBAC | RBAC, ABAC, ACL | RBAC (somente tabela/pasta, ACLs de atalho sem suporte) |
| Chaves de criptografia | ✓ | ✓ | X |
| Níveis de acesso | Arquivo Online | Frequente, frio, esporádico, arquivo morto | Somente Frequente |
Próximas etapas
- Criar uma credencial de armazenamento para se conectar ao Azure Data Lake Storage
- Crie uma credencial de armazenamento para se conectar ao Cloudflare R2
- Criar uma credencial de armazenamento para se conectar ao AWS S3 (somente leitura)
- Criar um local externo para conectar o armazenamento em nuvem ao Azure Databricks
- Especificar um local de armazenamento gerenciado no Catálogo do Unity
- Gerenciar credenciais de armazenamento
- Gerenciar locais externos