Venda automática de credenciais do Unity Catalog para acesso ao sistema externo

Importante

Este recurso está no Public Preview.

Dica

Para informações sobre como ler dados Azure Databricks usando Microsoft Fabric, consulte Use Microsoft Fabric para ler dados registados no Unity Catalog.

Esta página descreve como a funcionalidade de venda automática de credenciais do Unity Catalog suporta o acesso a dados no Azure Databricks a partir de motores de processamento externos.

A venda automática de credenciais suporta sistemas externos que se conectam ao Unity Catalog usando a API REST Unity e o catálogo REST do Apache Iceberg. Consulte como aceder tabelas do Databricks a partir de clientes Delta e aceder dados do Databricks usando sistemas externos.

O que é a venda de credenciais do Unity Catalog?

Distribuição de credenciais concede credenciais de curta duração usando a API REST do Unity Catalog. As credenciais concedidas herdam os privilégios do principal da Azure Databricks utilizado para configurar a integração. Existem dois tipos de fornecimento de credenciais:

  • Emissão de credenciais de tabela fornece acesso aos dados registados no seu metastore do Unity Catalog.
  • A distribuição de credenciais de caminho fornece acesso a locais externos no seu metastore do Catálogo Unity.

Requerimentos

  • O acesso externo deve ser configurado na metastore, sendo EXTERNAL USE SCHEMA concedido ao principal solicitante. Consulte Ativar o acesso a dados externos no metastore.
  • A URL do espaço de trabalho deve ser acessível ao motor de pedido, incluindo motores por trás das listas de acesso IP ou Azure Private Link.
  • Os URLs de armazenamento na cloud devem ser acessíveis através de controlos de firewall e de rede.

Venda automática de credenciais de tabela

As credenciais de tabela incluem uma cadeia de token de acesso de curta duração e URL de localização de armazenamento na nuvem que o motor externo pode usar para aceder a dados e metadados da tabela a partir da localização de armazenamento na nuvem.

Tipos de acesso suportados

A venda automática de credenciais de tabela suporta os seguintes tipos e operações de tabelas:

Tipo de tabela Leitura Escreve Criar
Delta de gestão Sim Sim* Sim*
Delta Externo Sim Sim Sim
Iceberg gerenciado Sim Sim Sim
Delta com suporte para Iceberg (UniForm) Sim Sim** No

* A criação e escrita em tabelas geridas pelo Unity Catalog a partir de clientes Delta está em Beta.

Depois de escrever externamente numa tabela UniForm a partir de um cliente Delta, execute MSCK REPAIR TABLE para gerar metadados do Iceberg.

Observação

Alguns clientes suportam o acesso a tabelas apoiadas pelo Delta Lake, enquanto outros exigem que você habilite as leituras do Iceberg (UniForm) nas tabelas. Veja Ler tabelas Delta com clientes Iceberg.

Solicitar uma credencial de tabela temporária para acesso a dados externos

O suporte para distribuição de credenciais varia de acordo com o cliente externo. Se suportado, o cliente deve usar automaticamente as credenciais fornecidas quando uma conexão é configurada.

Esta seção fornece um exemplo de como chamar explicitamente o endpoint da API de vending de credenciais. Alguns clientes externos podem exigir que você defina explicitamente as configurações para acessar dados e metadados no armazenamento de objetos na nuvem que faz backup das tabelas do Catálogo Unity. Você pode usar valores retornados pela venda automática de credenciais para configurar o acesso.

Observação

Você pode recuperar uma lista de tabelas que oferecem suporte à venda automática de credenciais invocando a API ListTables com a opção include_manifest_capabilities habilitada. Somente tabelas marcadas como HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT ou HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT são qualificadas para referência na API de credenciais de tabela temporária. Consulte GET /api/2.1/unity-catalog/tables.

O exemplo de curl a seguir solicita explicitamente uma credencial temporária para acesso a dados externos. Esta solicitação deve ser concluída por um utilizador do espaço de trabalho com privilégios suficientes.

curl -X POST -H "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-table-credentials \
-d '{"table_id": "<string>", "operation": "<READ|READ_WRITE>"}'

Para detalhes, consulte POST /api/2.1/unity-catalog/temporary-table-credentials na referência da API REST do Azure Databricks.

Limitações

Existem as seguintes limitações:

  • Nem todos os clientes externos oferecem suporte à venda de credenciais e o suporte pode variar dependendo do armazenamento de objetos na nuvem subjacente.
  • Somente tabelas gerenciadas do Unity Catalog e tabelas externas do Unity Catalog são suportadas.
  • Não há suporte para os seguintes tipos de tabela ou tabelas com recursos habilitados:
    • Tabelas com filtros de linha ou máscaras de coluna.
    • Tabelas compartilhadas usando o Compartilhamento Delta.
    • Lakehouse federated tables (tabelas estrangeiras).
    • Vistas.
    • Visões materializadas.
    • Tabelas de streaming de Pipelines Declarativas do Lakeflow Spark.
    • Tabelas online.
    • Índices de pesquisa vetorial.
  • A atualização de credenciais não é suportada no Iceberg 1.9.0. Use a versão mais recente do Iceberg para atualizar as credenciais.

Venda automática de credenciais de caminho

Credenciais emitidas permitem acesso direto à localização de armazenamento na nuvem, restringindo-se ao caminho relevante. Eles são válidos por um tempo limitado e não concedem acesso mais amplo além do local ou tabela definidos.

Solicitar uma credencial de caminho temporário para acesso a dados externos

O suporte para distribuição de credenciais varia de acordo com o cliente externo. Se suportado, o cliente deve usar automaticamente as credenciais fornecidas quando uma conexão é configurada.

Esta seção fornece um exemplo de como chamar explicitamente o endpoint da API de vending de credenciais. Alguns clientes externos podem exigir que você defina explicitamente as configurações para acessar dados e metadados no armazenamento de objetos na nuvem que faz backup das tabelas do Catálogo Unity. Você pode usar valores retornados pela venda automática de credenciais para configurar o acesso.

O exemplo de curl a seguir solicita explicitamente uma credencial temporária para acesso a dados externos. Esta solicitação deve ser concluída por um utilizador do espaço de trabalho com privilégios suficientes.

curl -X POST -H "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-path-credentials \
-d '{"url": "<string>", "operation": <PATH_READ|PATH_READ_WRITE|PATH_CREATE_TABLE>"}'

Para mais detalhes, consulte Generate a temporary path credential na referência da API Azure Databricks REST.