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 o uso de dados Unity Catalog, juntamente com informações sobre como o site Unity Catalog rege o acesso ao armazenamento em nuvem e ao serviço de nuvem externo.
Como o Unity Catalog usa o armazenamento em nuvem?
A Databricks recomenda o uso do Unity Catalog para gerenciar o acesso a todos os dados que o senhor armazenou no armazenamento de objetos na nuvem. O Unity Catalog oferece 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 gerenciais e volumes gerenciais de dados não estruturados no armazenamento em nuvem do Unity Catalog-gerenciar.
- registrar ou criar 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 Unity Catalog).
Para ser mais específico, o Unity Catalog usa o armazenamento em nuvem de duas maneiras principais:
- locais de armazenamento padrão (ou "gerenciar") para tabelas gerenciar e volumes gerenciar (dados não estruturados e não tabulares) que o senhor cria em Databricks. Esses locais de armazenamento gerenciais podem ser definidos no nível do metastore, do catálogo ou do esquema. O senhor cria locais de armazenamento gerenciar em seu provedor de nuvem, mas o ciclo de vida deles é totalmente gerenciado por Unity Catalog.
- Locais de armazenamento onde tabelas e volumes externos são armazenados. São tabelas e volumes cujo acesso a partir de Databricks é gerenciado por Unity Catalog, mas cujo ciclo de vida de dados e disposição de arquivos são gerenciados usando seu provedor de nuvem e outras plataformas de dados. Normalmente, o senhor usa tabelas externas para registrar grandes quantidades de dados existentes em Databricks ou se também precisar de acesso de gravação às ferramentas de uso de dados fora de Databricks.
Para obter mais informações sobre gerenciar versus tabelas e volumes externos, consulte O que é uma tabela? e What are Unity Catalog volumes (O que são volumes do Unity Catalog?).
Não conceda a identidades que não sejamUnity Catalog acesso em nível de armazenamento a tabelas ou volumes gerenciados pelo Unity Catalog. Esses dados comprometem a segurança e a governança.
Evite conceder aos usuários ou à entidade de serviço acesso direto a Amazon S3 ou aos buckets do Cloudflare R2 que são usados como armazenamento gerenciar Unity Catalog. A única identidade que deve ter acesso aos dados gerenciados por Unity Catalog é a identidade usada por Unity Catalog. Ignorar isso cria os seguintes problemas em seu ambiente:
- Os controles de acesso estabelecidos no Unity Catalog podem ser contornados por usuários que têm acesso direto a buckets S3 ou R2.
- Auditoria, linhagem e outros recursos de monitoramento do Unity Catalog não capturarão o acesso direto.
- O ciclo de vida dos dados está quebrado. Ou seja, modificar, excluir ou evoluir tabelas no Databricks interromperá os consumidores que têm acesso direto ao armazenamento, e gravações fora do Databricks podem resultar em corrupção de dados.
Opções de armazenamento em nuvem compatíveis com o Unity Catalog
O Unity Catalog oferece suporte às seguintes opções de armazenamento em nuvem para o Databricks on AWS.
Opção de armazenamento em nuvem | Descrição |
---|---|
Baldes do AWS S3 | O S3 é adequado para a maioria dos casos de uso do Databricks. Consulte Criar uma credencial de armazenamento para se conectar ao AWS S3 |
Caçambas Cloudflare R2 | O Cloudflare R2 destina-se principalmente a casos de uso do Delta Sharing em que o senhor deseja evitar taxas de saída de dados. Consulte Criar uma credencial de armazenamento para se conectar ao Cloudflare R2. |
DBFS root | DBFS root é um local de armazenamento em nuvem legado. Embora o site Databricks recomende que os dados não sejam armazenados no armazenamento DBFS root, é possível que o seu workspace faça isso devido a práticas herdadas. Consulte Criar um local externo para os dados em DBFS root (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 seguro chamado de 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 seguro do Unity Catalog chamado credencial de armazenamento . Ao conceder e revogar o acesso a locais externos seguros em Unity Catalog, o senhor controla o acesso ao local de armazenamento de dados na nuvem. Ao conceder e revogar o acesso a credenciais de armazenamento seguras no Unity Catalog, o senhor controla a capacidade de criar objetos de localização externa.
Credenciais de armazenamento e locais externos
Aqui estão mais 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 sua nuvem tenant, por exemplo, usando um IAM role para buckets S3 ou um token R2 API para buckets R2 do Cloudflare. 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 aos usuários que precisam criar objetos de localização externos. Para obter detalhes, consulte os links em Opções de armazenamento em nuvem compatíveis com o 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 gerenciar locais de armazenamento. Consulte Criar um local externo para conectar o armazenamento em nuvem à Databricks.
Os locais externos são usados em Unity Catalog tanto para dados externos ativos, como tabelas externas e volumes externos , quanto para dados gerenciais ativos, como tabelas gerenciais e volumes gerenciais . Para obter mais informações sobre a diferença entre dados externos e gerenciar dados ativos em Unity Catalog, consulte O que é uma tabela? e What are Unity Catalog volumes (O que são volumes do Unity Catalog?).
Para saber mais sobre as práticas recomendadas de uso de locais externos, consulte gerenciar locais externos, tabelas externas e volumes externos.
Usando locais externos ao criar tabelas e volumes externos
Tabelas externas e volumes externos registrados em Unity Catalog são essencialmente ponteiros para dados no armazenamento em nuvem que o senhor gerencia fora de Databricks. Ao criar uma tabela externa ou um volume externo no Unity Catalog, o senhor deve fazer referência a um caminho de armazenamento em nuvem que esteja incluído em um objeto de local externo no qual lhe foram concedidos privilégios adequados. Para obter mais informações sobre a diferença entre dados externos e gerenciar dados ativos em Unity Catalog, consulte O que é uma tabela? e What are Unity Catalog volumes (O que são volumes do Unity Catalog?). Para obter privilégios, consulte Conceder permissões em um local externo.
Uso de locais externos quando o senhor cria armazenamento gerenciado
gerenciar tabelas e gerenciar volumes são totalmente gerenciados pelo site Unity Catalog. Eles são armazenados pelo site default em um local de armazenamento gerencial , que pode ser definido no nível do metastore, do catálogo ou do esquema. Quando o senhor atribui um local de armazenamento gerenciar a um metastore, catálogo ou esquema, deve fazer referência a um objeto de local externo e deve ter os privilégios adequados para usá-lo. Consulte Especificar um local de armazenamento gerenciar em Unity Catalog e Unity Catalog práticas recomendadas.
Acesso baseado em caminhos aos dados no armazenamento em nuvem
Embora o Unity Catalog ofereça suporte ao acesso baseado em caminho a tabelas externas e volumes externos usando URIs de armazenamento em nuvem, a Databricks recomenda que os usuários leiam e gravem todas as tabelas do Unity Catalog usando nomes de tabela e acessem dados em volumes usando caminhos /Volumes
. Os volumes são o objeto seguro que a maioria dos usuários do Databricks deve usar para interagir diretamente com dados não tabulares no armazenamento de objetos na nuvem. Consulte O que são volumes do Unity Catalog?
Se o senhor atualizar os metadados da tabela externa usando um cliente que não seja do Databricks ou usando o acesso baseado em caminho de dentro do Databricks, esses metadados não sincronizarão automaticamente o estado com o Unity Catalog. Databricks recomenda não fazer essas atualizações de metadados, mas se o senhor fizer uma, deverá executar MSCK REPAIR TABLE <table-name> SYNC METADATA
para atualizar o esquema em Unity Catalog. Veja a TABELA DE REPARO.
fluxo de trabalho para gerenciar o acesso ao armazenamento em nuvem em Unity Catalog
Para gerenciar o acesso ao armazenamento em nuvem usando o Unity Catalog, faça o seguinte:
- Crie um objeto de credencial de armazenamento que contenha uma credencial de nuvem de longo prazo, como IAM role, com acesso ao caminho de armazenamento na nuvem.
- Crie um objeto de localização externa 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 quando o senhor criar tabelas externas, volumes externos ou locais de armazenamento gerenciados pelo default. Esse pode ser o caminho exato definido no local externo ou em um subcaminho.
Próximas etapas
- Crie uma credencial de armazenamento para conexão com o AWS S3
- Crie uma credencial de armazenamento para conectar-se ao Cloudflare R2
- Crie uma external location para conectar o armazenamento em cloud ao Databricks
- Especifique um local de armazenamento gerenciado no Unity Catalog
- Gerenciar credenciais de armazenamento
- Gerenciar localizações externas
- Onde o Databricks grava os dados?