Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Dica
Para informações sobre como ler dados Azure Databricks usando Microsoft Fabric, veja Microsoft Fabric com Azure Databricks.
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 SCHEMAconcedido 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 |
| Iceberg estrangeiro | Sim | No | No |
| Delta com suporte para Iceberg (UniForm) | Sim | Sim** | No |
* A criação e escrita para tabelas geridas pelo catálogo Unity a partir de clientes Delta está disponível no Pré-visualização Pública.
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. Consulte Ler tabelas Delta Lake 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.
- Os clientes de leitor Delta Lake só podem ler tabelas apoiadas pelo Delta Lake e devem suportar todos os protocolos de leitor ou gravador habilitados na tabela. Consulte Compatibilidade de recursos e protocolos do Delta Lake.
- As tabelas externas que não usam o Delta Lake não fornecem garantias transacionais.
- 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 partilhadas através do OpenSharing.
- Vistas.
- Visões materializadas.
- Tabelas de streaming de Pipelines Declarativas do Lakeflow Spark.
- Tabelas online.
- Índices de pesquisa com IA.
- 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.
Venda automática de credenciais por volume
A disponibilização de credenciais por volume permite que motores externos acedam a ficheiros armazenados em volumes do Unity Catalog com credenciais temporárias e de âmbito limitado. O principal solicitante deve ter EXTERNAL USE SCHEMA no esquema que contém o volume, mais READ VOLUME para acesso de leitura ou READ VOLUME e WRITE VOLUME para acesso de escrita. Consulte Quais são os volumes do Catálogo Unity?.
O Unity Catalog valida permissões e devolve credenciais de armazenamento na nuvem de curta duração, com âmbito definido, associadas ao caminho de armazenamento do volume. As credenciais expiram automaticamente e não concedem acesso para além do volume especificado.
Requerimentos
- O acesso externo deve estar ativado na metastore. Consulte Ativar o acesso a dados externos no metastore.
- O principal solicitante deve ter
EXTERNAL USE SCHEMAno esquema que contém o volume, maisREAD VOLUMEpara acesso de leitura ouREAD VOLUMEeWRITE VOLUMEpara acesso de escrita. - O motor externo deve conseguir aceder à URL do espaço de trabalho.
- Os URLs de armazenamento na cloud devem ser acessíveis através de controlos de firewall e de rede.
Solicitar uma credencial temporária de volume para acesso externo a dados
O exemplo de curl a seguir solicita explicitamente uma credencial temporária para acesso a dados externos.
curl -X POST -H "Authorization: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.0/unity-catalog/temporary-volume-credentials \
-d '{"volume_id": "<volume-id>", "operation": "<READ_VOLUME|WRITE_VOLUME>"}'
Ou usa o SDK Azure Databricks Python:
from databricks.sdk.service.catalog import VolumeOperation
creds = w.temporary_volume_credentials.generate_temporary_volume_credentials(
volume_id=volume_id,
operation=VolumeOperation.READ_VOLUME,
)
Para detalhes, consulte POST /api/2.0/unity-catalog/temporary-volume-credentials na referência da API Azure Databricks REST.
Limitações
- Os volumes geridos são suportados apenas para acesso de leitura. Os volumes externos suportam tanto acesso de leitura como de escrita.