Venda automática de credenciais do Unity Catalog para acesso externo ao sistema
Esta página descreve como a funcionalidade de venda de credenciais do Unity Catalog oferece suporte ao acesso a dados no Databricks a partir de mecanismos de processamento externos.
O sistema de venda de credenciais oferece suporte a sistemas externos que se conectam ao Unity Catalog usando a API REST do Unity e o catálogo REST do Apache Iceberg. Consulte Acessar tabelas Databricks a partir de clientes Delta e Acessar Databricks usando dados de sistemas externos.
O que é a venda automática de credenciais do Unity Catalog?
O sistema de venda de credenciais concede credenciais de curta duração usando a API REST Unity Catalog . As credenciais concedidas herdam os privilégios da entidade Databricks usada para configurar a integração. Existem dois tipos de venda de credenciais:
- A venda de credenciais de tabela fornece acesso aos dados registrados no seu metastore do Unity Catalog.
- A venda de credenciais de caminho fornece acesso a locais externos no seu metastore do Unity Catalog.
Requisitos
- O acesso externo deve ser configurado no metastore com
EXTERNAL USE SCHEMAconcedido ao principal solicitante. Consulte Ativar o acesso a dados externos no metastore. - O URL workspace deve ser acessível ao mecanismo solicitante, incluindo mecanismos que estejam atrás de listas de acesso IP ou do Google Private Service Connect.
- Os URLs de armazenamento em nuvem devem ser acessíveis através de firewall e controles de rede.
Venda de credenciais de mesa
As credenciais da tabela incluem uma sequência de access token de curta duração e o URL do local de armazenamento cloud que o mecanismo externo pode usar para acessar os dados e metadados da tabela no local de armazenamento cloud .
Tipos de acesso suportados
O fornecimento de credenciais de tabela suporta os seguintes tipos de tabela e operações:
Tipo de tabela | Ler | Gravar | Criar |
|---|---|---|---|
Delta | Sim | Sim* | Sim* |
Delta externo | Sim | Sim | Sim |
Iceberg | Sim | Sim | Sim |
Iceberg estrangeiro | Sim | Não | Não |
Delta com leituras Iceberg (UniForm) | Sim | Sim** | Não |
* Criação e gravação em tabelas gerenciadas do Unity Catalog de clientes Delta está em pré-visualização pública.
** Após escrever externamente em uma tabela UniForm a partir de um cliente Delta , execute MSCK REPAIR TABLE para gerar metadados Iceberg .
Alguns clientes oferecem suporte ao acesso a tabelas com base em Delta Lake, enquanto outros exigem que você ative as leituras do Iceberg (UniForm) nas tabelas. Veja Ler tabelas Delta Lake com clientes Iceberg usando UniForm.
Solicite uma credencial de tabela temporária para acesso externo a dados
O suporte para venda de credenciais varia de acordo com o cliente externo. Onde houver suporte, o cliente deve aproveitar automaticamente as credenciais vendidas quando uma conexão é configurada.
Esta seção fornece um exemplo de como chamar explicitamente o endpoint da API de venda de credenciais. Alguns clientes externos podem exigir que o senhor defina explicitamente as configurações para acessar dados e metadados no armazenamento de objetos na nuvem que fazem backup das tabelas do Unity Catalog. Você pode usar valores retornados pela venda de credenciais para configurar o acesso.
O senhor pode recuperar uma lista de tabelas que suportam a venda de credenciais invocando a API ListTables com a opção include_manifest_capabilities ativada. Somente as tabelas marcadas como HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT ou HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT são elegíveis para referência na API temporary-table-credentials. Consulte GET /api/2.1/unity-catalog/tables.
O exemplo curl a seguir solicita explicitamente uma credencial temporária para acesso externo a dados. Essa solicitação deve ser preenchida por um diretor com privilégios suficientes workspace.
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 obter detalhes, consulte POST /api/2.1/unity-catalog/temporary-table-credentials na referência da API REST da Databricks.
Limitações
Aplicam-se as seguintes limitações:
-
Nem todos os clientes externos oferecem suporte à venda de credenciais, e o suporte pode variar dependendo do armazenamento subjacente de objetos na nuvem.
-
Os clientes leitores do Delta Lake só podem ler tabelas com suporte do Delta Lake e devem oferecer suporte a todos os protocolos de leitura ou gravação habilitados na tabela. Consulte Delta Lake recurso compatibilidade e protocolos.
-
As tabelas externas que não usam o Delta Lake não oferecem garantias transacionais.
-
Não há suporte para os seguintes tipos de tabela ou tabelas com recurso ativado:
- Tabelas com filtros de linha ou máscaras de coluna.
- Tabelas compartilhadas usando OpenSharing.
- vista.
- Visualização materializada.
- LakeFlow Spark Tabelas declarativas de transmissão de pipeline.
- Tabelas online.
- Índices de Pesquisa de IA.
-
A credencial refresh não é compatível com o site Iceberg 1.9.0. Use a versão mais recente do Iceberg para a credencial refresh.
Venda de credenciais da Path
As credenciais emitidas permitem o acesso direto ao local de armazenamento cloud , restrito ao caminho relevante. São válidos por um período limitado e não concedem acesso mais amplo além do local ou mesa definidos.
Solicite uma credencial de caminho temporária para acesso externo a dados
O suporte para venda de credenciais varia de acordo com o cliente externo. Onde houver suporte, o cliente deve aproveitar automaticamente as credenciais vendidas quando uma conexão é configurada.
Esta seção fornece um exemplo de como chamar explicitamente o endpoint da API de venda de credenciais. Alguns clientes externos podem exigir que o senhor defina explicitamente as configurações para acessar dados e metadados no armazenamento de objetos na nuvem que fazem backup das tabelas do Unity Catalog. Você pode usar valores retornados pela venda de credenciais para configurar o acesso.
O exemplo curl a seguir solicita explicitamente uma credencial temporária para acesso externo a dados. Essa solicitação deve ser preenchida por um diretor com privilégios suficientes workspace.
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 obter detalhes, consulte Gerar uma credencial de caminho temporário na referência da API REST do Databricks.
Venda de credenciais em grande volume
Pré-visualização pública
Esse recurso está em Public Preview.
O fornecimento de credenciais de volume permite que mecanismos externos acessem arquivos armazenados em volumes do Unity Catalog com credenciais temporárias e com escopo definido. 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 gravação. Veja O que são volumes Unity Catalog ?.
Unity Catalog valida as permissões e retorna credenciais de armazenamento cloud de curta duração e com escopo definido, vinculadas ao caminho de armazenamento do volume. As credenciais expiram automaticamente e não concedem acesso além do volume especificado.
Requisitos
- O acesso externo deve estar habilitado no 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 gravação. - O mecanismo externo deve ser capaz de acessar o URL workspace .
- Os URLs de armazenamento em nuvem devem ser acessíveis através de firewall e controles de rede.
Solicite uma credencial de volume temporária para acesso a dados externos.
O exemplo 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 utilize o SDK Python da Databricks:
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 obter detalhes, consulte POST /api/2.0/unity-catalog/temporary-volume-credentials na referência da API REST do Databricks.
Limitações
- O gerenciamento de volumes é suportado somente para acesso de leitura. Os volumes externos suportam acesso de leitura e gravação.