Objetos de banco de dados no Azure Databricks

O Azure Databricks usa dois objetos protegíveis principais para armazenar e acessar dados.

  • As tabelas controlam o acesso a dados tabulares.
  • Os volumes controlam o acesso a dados não tabulares.

Este artigo descreve como esses objetos de banco de dados se relacionam a catálogos, esquemas, exibições e outros objetos de banco de dados no Azure Databricks. Este artigo também fornece uma introdução de alto nível sobre como os objetos de banco de dados funcionam no contexto da arquitetura geral da plataforma.

O que são objetos de banco de dados no Azure Databricks?

Objetos de banco de dados são entidades que ajudam a organizar, acessar e governar dados. O Azure Databricks usa uma hierarquia de três camadas para organizar objetos de banco de dados:

  1. Catálogo: O contêiner de nível superior contém esquemas. Consulte O que são catálogos no Azure Databricks?.
  2. Esquema ou banco de dados: contém objetos de dados. Consulte O que são esquemas no Azure Databricks?.
  3. Objetos de dados que podem estar contidos em um esquema:

Diagrama de modelo de objeto do Unity Catalog

Os catálogos são registrados em um metastore que é gerenciado no nível da conta. Apenas os administradores interagem diretamente com o metastore. Consulte Metastores.

O Azure Databricks fornece ativos adicionais para trabalhar com dados, todos governáveis usando controles de acesso no nível do espaço de trabalho ou o Unity Catalog, a solução de governança de dados Databricks:

  • Ativos de dados no nível do espaço de trabalho, como blocos de anotações, trabalhos e consultas.
  • Objetos protegíveis do Unity Catalog, como credenciais de armazenamento e compartilhamentos Delta Sharing, que controlam principalmente o acesso ao armazenamento ou compartilhamento seguro.

Para obter mais informações, consulte Objetos de banco de dados versus ativos de dados protegíveis do espaço de trabalho e Credenciais e infraestrutura protegíveis do Unity Catalog.

Gerenciando o acesso a objetos de banco de dados usando o Unity Catalog

Você pode conceder e revogar acesso a objetos de banco de dados em qualquer nível da hierarquia, incluindo o próprio metastore. O acesso a um objeto concede implicitamente o mesmo acesso a todos os filhos desse objeto, a menos que o acesso seja revogado.

Você pode usar comandos ANSI SQL típicos para conceder e revogar acesso a objetos no Unity Catalog. Você também pode usar o Gerenciador de Catálogos para gerenciamento controlado por interface do usuário de privilégios de objeto de dados.

Para obter mais informações sobre como proteger objetos no Unity Catalog, consulte Objetos protegíveis no Unity Catalog.

Permissões de objeto padrão no Unity Catalog

Dependendo de como seu espaço de trabalho foi criado e habilitado para o Unity Catalog, seus usuários podem ter permissões padrão em catálogos provisionados automaticamente, incluindo o main catálogo ou o catálogo de espaço de trabalho (<workspace-name>). Para obter mais informações, consulte Privilégios de usuário padrão.

Se seu espaço de trabalho foi habilitado para o Unity Catalog manualmente, ele inclui um esquema padrão nomeado default no main catálogo que é acessível a todos os usuários em seu espaço de trabalho. Se seu espaço de trabalho foi habilitado para o Unity Catalog automaticamente e inclui um <workspace-name> catálogo, esse catálogo contém um esquema nomeado default que é acessível a todos os usuários em seu espaço de trabalho.

Objetos de banco de dados versus ativos de dados protegíveis do espaço de trabalho

O Azure Databricks permite que você gerencie vários ativos de engenharia de dados, análises, ML e IA junto com seus objetos de banco de dados. Você não registra esses ativos de dados no Unity Catalog. Em vez disso, esses ativos são gerenciados no nível do espaço de trabalho, usando listas de controle para controlar permissões. Esses ativos de dados incluem o seguinte:

  • Notebooks
  • Dashboards
  • Tarefas
  • Pipelines
  • Arquivos de espaço de trabalho
  • Consultas SQL
  • Experimentações

A maioria dos ativos de dados contém lógica que interage com objetos de banco de dados para consultar dados, usar funções, registrar modelos ou outras tarefas comuns. Para saber mais sobre como proteger ativos de dados do espaço de trabalho, consulte Listas de controle de acesso.

Nota

O acesso à computação é regido por listas de controle de acesso. Você configura a computação com um modo de acesso e pode adicionar permissões de nuvem adicionais, que controlam como os usuários podem acessar os dados. O Databricks recomenda o uso de políticas de computação e a restrição de privilégios de criação de cluster como uma prática recomendada de governança de dados. Consulte Modos de acesso.

Credenciais e infraestrutura protegíveis do Unity Catalog

O Unity Catalog gerencia o acesso ao armazenamento de objetos na nuvem, compartilhamento de dados e federação de consultas usando objetos protegíveis registrados no nível do metastore. A seguir estão breves descrições desses objetos não protegíveis de dados.

Conectando o Unity Catalog ao armazenamento de objetos na nuvem

Você deve definir credenciais de armazenamento e locais externos para criar um novo local de armazenamento gerenciado ou registrar tabelas externas ou volumes externos. Esses objetos protegíveis são registrados no Catálogo Unity:

  • Credencial de armazenamento: uma credencial de nuvem de longo prazo que fornece acesso ao armazenamento em nuvem.
  • Local externo: uma referência a um caminho de armazenamento de objetos na nuvem acessível usando a credencial de armazenamento emparelhada.

Consulte Conectar-se ao armazenamento e serviços de objetos na nuvem usando o Unity Catalog.

Compartilhamento Delta

O Azure Databricks registra os seguintes objetos protegíveis do Delta Sharing no Unity Catalog:

  • Compartilhar: uma coleção somente leitura de tabelas, volumes e outros ativos de dados.
  • Provedor: a organização ou entidade que compartilha dados. No modelo de compartilhamento Databricks-to-Databricks, o provedor é registrado no metastore do Unity Catalog do destinatário como uma entidade exclusiva identificada por seu ID de metastore.
  • Destinatário: a entidade que recebe ações de um provedor. No modelo de compartilhamento Databricks-to-Databricks, o destinatário é identificado para o provedor por sua ID de metastore exclusiva.

Consulte O que é Delta Sharing?.

Federação Lakehouse

A Lakehouse Federation permite que você crie catálogos estrangeiros para fornecer acesso somente leitura a dados residentes em outros sistemas, como PostgreSQL, MySQL e Snowflake. Você deve definir uma conexão com o sistema externo para criar catálogos estrangeiros.

Conexão: um objeto protegível do Unity Catalog especifica um caminho e credenciais para acessar um sistema de banco de dados externo em um cenário de Federação Lakehouse.

Veja O que é Lakehouse Federation?.

Locais de armazenamento gerenciado para volumes e tabelas gerenciados

Ao criar tabelas e volumes do Azure Databricks, você tem a opção de torná-los gerenciados ou externos. O Unity Catalog gerencia o acesso a tabelas e volumes externos do Azure Databricks, mas não controla arquivos subjacentes nem gerencia totalmente o local de armazenamento desses arquivos. As tabelas e volumes gerenciados, por outro lado, são totalmente gerenciados pelo Unity Catalog e são armazenados em um local de armazenamento gerenciado associado ao esquema que contém. Consulte Especificar um local de armazenamento gerenciado no Catálogo Unity.

O Databricks recomenda volumes gerenciados e tabelas gerenciadas para a maioria das cargas de trabalho, pois simplificam a configuração, a otimização e a governança.

Catálogo Unity vs. metastore herdado do Hive

O Databricks recomenda o uso do Unity Catalog para registrar e controlar todos os objetos de banco de dados, mas também fornece suporte herdado para o metastore do Hive para gerenciar esquemas, tabelas, exibições e funções.

Se você estiver interagindo com objetos de banco de dados registrados usando o metastore do Hive, consulte Objetos de banco de dados no metastore herdado do Hive.