Ler tabelas do Databricks a partir de clientes Delta
Esta página fornece uma visão geral sobre como utilizar o Unity REST API para acessar Unity Catalog gerenciar e tabelas externas a partir de clientes Delta externos. Para criar tabelas Delta externas a partir de clientes externos, consulte Criar tabelas Delta externas a partir de clientes externos.
Use o catálogo REST do Iceberg para ler tabelas registradas no Unity Catalog em Databricks a partir de clientes Iceberg compatíveis, incluindo Apache Spark e DuckDB.
Para obter uma lista completa das integrações compatíveis, consulte Integrações do Unity Catalog.
Ler e gravar usando a API REST do Unity
A API REST do Unity fornece aos clientes externos acesso de leitura às tabelas registradas no Unity Catalog. Alguns clientes também oferecem suporte à criação de tabelas e à gravação em tabelas existentes.
Para evitar possíveis problemas de corrupção e perda de dados, a Databricks recomenda que o senhor não modifique a mesma tabela Delta armazenada no S3 a partir de diferentes clientes de gravação.
Configure o acesso usando o endpoint /api/2.1/unity-catalog.
Requisitos
O Databricks oferece suporte ao acesso à API REST do Unity para tabelas como parte do Unity Catalog. O senhor deve ter o Unity Catalog ativado em seu workspace para usar esses endpoints. Os tipos de tabela a seguir são elegíveis para leituras da API REST do Unity:
- Unity Catalog Gerenciar tabelas.
- Tabelas externas do Unity Catalog.
O senhor deve concluir as seguintes etapas de configuração para configurar o acesso à leitura de objetos do Databricks de clientes Delta usando a API REST do Unity:
- Ative o acesso externo a dados para sua metastore. Consulte Habilitar o acesso externo a dados no metastore.
- Conceda ao principal que configura a integração o privilégio
EXTERNAL USE SCHEMAno esquema que contém os objetos. Consulte Conceder privilégios de administrador principal do Unity Catalog. - Autentique-se usando um dos seguintes métodos:
- access token pessoal (PAT): Consulte Autorizar acesso ao recurso Databricks.
- Autenticação OAuth máquina a máquina (M2M): Suporta refresh automática de credenciais e tokens para trabalhos Spark de longa duração (mais de 1 hora). Consulte Autorizar o acesso da entidade de serviço ao Databricks com OAuth.
Leia tabelas Delta com Apache Spark usando autenticação PAT.
A seguinte configuração é necessária para ler Unity Catalog gerenciado e tabelas Delta externas com Apache Spark usando autenticação PAT:
"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>/api/2.1/unity-catalog",
"spark.sql.catalog.<uc-catalog-name>.token": "<token>",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.hadoop.fs.s3.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem",
"spark.jars.packages": "io.delta:delta-spark_2.13:4.0.1,io.unitycatalog:unitycatalog-spark_2.13:0.3.1,org.apache.hadoop:hadoop-aws:3.4.0"
Substitua as seguintes variáveis:
<uc-catalog-name>: O nome do catálogo no Unity Catalog que contém suas tabelas.<workspace-url>: URL do site Databricks workspace.<token>access token pessoal (PAT) para a entidade principal que configura a integração.
Para habilitar a renovação automática de credenciais para tarefas de longa duração, adicione a seguinte configuração:
"spark.sql.catalog.<catalog-name>.renewCredential.enabled": true
As versões dos pacotes mostradas acima são as atuais até a última atualização desta página. Versões mais recentes podem estar disponíveis. Verifique se as versões dos pacotes são compatíveis com a versão Databricks Runtime e a versão Spark .
Para obter mais detalhes sobre como configurar Apache Spark para armazenamento de objetos cloud , consulte a documentação OSSUnity Catalog.
Leia tabelas Delta com Apache Spark usando autenticação OAuth.
O Databricks também oferece suporte à autenticação OAuth de máquina para máquina (M2M). OAuth lida automaticamente com a renovação de tokens para autenticação Unity Catalog . Para trabalhos de longa duração que também exigem renovação automática de credenciais de armazenamento cloud , habilite a configuração spark.sql.catalog.<uc-catalog-name>.renewCredential.enabled em sua configuração Spark .
A autenticação OAuth para clientes Spark externos requer:
- Unity Catalog Cliente Spark versão 0.3.1 ou posterior (
io.unitycatalog:unitycatalog-spark) - Apache Spark 4.0 ou posterior
- Delta Spark 4.0.1 ou posterior com suporte a OAuth
- Uma entidade de serviço OAuth M2M com as permissões apropriadas. Consulte Autorizar o acesso da entidade de serviço ao Databricks com OAuth.
A seguinte configuração é necessária para ler tabelas gerenciais Unity Catalog e tabelas Delta externas com Apache Spark usando autenticação OAuth :
"spark.sql.extensions": "io.delta.sql.DeltaSparkSessionExtension",
"spark.sql.catalog.spark_catalog": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>": "io.unitycatalog.spark.UCSingleCatalog",
"spark.sql.catalog.<uc-catalog-name>.uri": "<workspace-url>/api/2.1/unity-catalog",
"spark.sql.catalog.<uc-catalog-name>.auth.type": "oauth",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.uri": "<oauth-token-endpoint>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientId": "<oauth-client-id>",
"spark.sql.catalog.<uc-catalog-name>.auth.oauth.clientSecret": "<oauth-client-secret>",
"spark.sql.catalog.<uc-catalog-name>.renewCredential.enabled": "true",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.hadoop.fs.s3.impl": "org.apache.hadoop.fs.s3a.S3AFileSystem",
"spark.jars.packages": "io.delta:delta-spark_2.13:4.0.1,io.unitycatalog:unitycatalog-spark_2.13:0.3.1,org.apache.hadoop:hadoop-aws:3.4.0"
Substitua as seguintes variáveis:
-
<uc-catalog-name>: O nome do catálogo no Unity Catalog que contém suas tabelas. -
<workspace-url>: URL do workspace Databricks . Veja os nomes, URLs e IDs das instâncias do espaço de trabalho. -
<oauth-token-endpoint>URL endpoint de tokens OAuth . Para construir este URL:- Localize o ID da sua account Databricks . Consulte Localizar o ID da sua account.
- Utilize o seguinte formato:
https://accounts.cloud.databricks.com/oidc/accounts/<account-id>/v1/token
-
<oauth-client-id>ID do cliente OAuth para sua entidade de serviço. Consulte Autorizar o acesso da entidade de serviço ao Databricks com OAuth. -
<oauth-client-secret>Segredo do cliente OAuth para sua entidade de serviço. Consulte Autorizar o acesso da entidade de serviço ao Databricks com OAuth.
As versões dos pacotes mostradas acima são as atuais até a última atualização desta página. Versões mais recentes podem estar disponíveis. Verifique se as versões dos pacotes são compatíveis com a sua versão Spark .