Pular para o conteúdo principal

Adicionar um recurso de tabela do Unity Catalog a um aplicativo Databricks

Adicione tabelasUnity Catalog como recursos Databricks Apps para que seu aplicativo possa consultar e modificar dados armazenados no Unity Catalog com governança e controle de acesso. As tabelas do Unity Catalog oferecem armazenamento de dados estruturado com permissões detalhadas, permitindo que seu aplicativo leia e grave dados com segurança sem a necessidade de codificar credenciais diretamente no código.

Requisitos de privilégio

Para acessar uma tabela Unity Catalog , a entidade de serviço do aplicativo deve ter o privilégio USE CATALOG no catálogo pai, o privilégio USE SCHEMA no esquema pai e o privilégio SELECT ou MODIFY na tabela. Ao adicionar o recurso de tabela, o Databricks concede automaticamente esses privilégios à entidade de serviço do aplicativo.

Para que essa concessão automática seja bem-sucedida, uma das seguintes condições deve ser verdadeira para cada privilégio:

  • Para USE CATALOG: Ou todos os usuários account têm o privilégio USE CATALOG no catálogo, ou você tem o privilégio MANAGE no catálogo.
  • Para USE SCHEMA: Ou todos os usuários account têm o privilégio USE SCHEMA no esquema, ou você tem o privilégio MANAGE no esquema.
  • Para SELECT ou MODIFY: Ou todos os usuários account têm o privilégio SELECT ou MODIFY na tabela, ou você tem o privilégio MANAGE na tabela.

Consulte PrivilégiosUnity Catalog e objetos protegíveis.

Adicionar um recurso de tabela Unity Catalog

Antes de adicionar uma tabela como recurso, revise os pré-requisitos do recurso do aplicativo.

  1. Ao criar ou editar um aplicativo, navegue até Configurar o passo.

  2. Na seção Recurso do aplicativo , clique em + Adicionar recurso .

  3. Selecione a tabela UC como o tipo de recurso.

  4. Escolha uma tabela Unity Catalog dentre as tabelas disponíveis em seu workspace. A tabela já deve existir no Unity Catalog.

  5. Selecione o nível de permissão apropriado para seu aplicativo:

    • Selecionar: Concede permissão ao aplicativo para consultar e ler dados da tabela. Isso é adequado para aplicativos que precisam apenas ler dados.
    • Modificar: Concede ao aplicativo permissão para inserir, atualizar e excluir dados na tabela. Esta permissão inclui implicitamente SELECT, portanto o aplicativo também pode ler dados.
  6. (Opcional) Especifique uma key de recurso personalizada, que é como você referencia a tabela na configuração do seu aplicativo. A key default é table.

nota

MODIFY Não está disponível para todos os tipos de tabela. Por exemplo, as visualizações não suportam o privilégio MODIFY . Se a tabela não suportar MODIFY, apenas SELECT estará disponível.

variável de ambiente

Quando você implanta um aplicativo com um recurso de tabela Unity Catalog , Databricks expõe o nome completo de três níveis da tabela por meio de uma variável de ambiente que você pode referenciar usando o campo valueFrom .

Configuração de exemplo:

YAML
env:
- name: UC_TABLE_NAME
valueFrom: table # Use your custom resource key if different

Utilizando a tabela em sua aplicação:

Python
import os
from databricks.sdk import WorkspaceClient

# Access the table name
table_name = os.getenv("UC_TABLE_NAME")

# Initialize workspace client
w = WorkspaceClient()

# Query the table using a SQL warehouse resource
result = w.statement_execution.execute_statement(
warehouse_id=os.getenv("DATABRICKS_WAREHOUSE_ID"), # Requires a SQL warehouse resource
statement=f"SELECT * FROM {table_name} LIMIT 10"
)

Para mais informações, veja Usar variável de ambiente para acessar recurso.

Remover um recurso de tabela Unity Catalog

Quando você remove um recurso de tabela Unity Catalog de um aplicativo, a entidade de serviço do aplicativo perde as concessões SELECT, MODIFY e ALL PRIVILEGES na tabela. O Databricks também tenta revogar permissões hierárquicas de catálogo e esquema. A tabela em si permanece inalterada e continua disponível para outros usuários e aplicativos que possuam as permissões adequadas.

Melhores práticas

Ao trabalhar com recursos de tabela Unity Catalog , leve em consideração o seguinte:

  • Conceda as permissões mínimas. Use SELECT a menos que seu aplicativo precise gravar dados na tabela.
  • Combine um recurso de tabela com um recursoSQL warehouse quando seu aplicativo precisar executar consultas SQL na tabela.
  • Utilize recursos de tabela separados para tabelas diferentes em vez de conceder acesso amplo em nível de esquema, para que você possa aplicar o princípio do menor privilégio.
  • Considere usar volumes do Unity Catalog para dados não estruturados e tabelas do Unity Catalog para dados estruturados.