Pular para o conteúdo principal

Acesse tabelas do Databricks a partir de clientes Delta.

Esta página descreve como usar a API REST do Unity para criar, ler e gravar em tabelas gerenciadas Unity Catalog e em tabelas externas a partir de clientes Delta externos. Para obter uma lista completa das integrações compatíveis, consulte IntegraçõesUnity Catalog.

Crie, leia e escreva usando a API REST do Unity.

info

Beta

A criação e a gravação de tabelas no Unity Catalog a partir de clientes Delta estão em versão Beta.

A API REST do Unity fornece aos clientes externos acesso para criar, ler e gravar tabelas registradas no Unity Catalog. Configure o acesso usando a URLworkspace como endpoint. Os seguintes tipos de tabela estão acessíveis:

Tipo de tabela

Ler

Gravar

Criar

Delta

Sim

Sim*

Sim*

Delta externo

Sim

Sim

Sim

* Suportado para gerenciamento de tabelas Delta com confirmação de catálogo.

Requisitos

Databricks oferece suporte ao acesso API REST do Unity para tabelas como parte do Unity Catalog. Você precisa ter Unity Catalog ativado em seu workspace para usar esses endpoints.

Você também deve concluir as seguintes etapas de configuração para configurar o acesso às tabelas a partir de clientes Delta usando a API REST do Unity:

Limitações

  • O acesso externo a tabelas UniForm com IcebergCompatV3 não é suportado atualmente. Após escrever externamente em uma tabela UniForm , você deve executar MSCK REPAIR TABLE no Databricks para gerar metadados Iceberg .
  • Alterações de esquema (por exemplo, ALTER TABLE), atualizações de propriedades de tabela e alterações de recursos de tabela não são atualmente suportadas em tabelas gerencia de clientes externos.
  • Clientes externos não podem executar operações de manutenção de tabelas, como OPTIMIZE, VACUUM e ANALYZE, em tabelas Delta gerenciadas.
  • Clientes externos não podem criar clones superficiais.
  • Clientes externos não podem criar tabelas com colunas geradas automaticamente, colunas default ou colunas de restrição.
  • Ao criar tabelas externas, a Databricks recomenda o uso do Apache Spark para garantir que as definições de coluna estejam em um formato compatível com o Apache Spark. A API não valida a correção da especificação da coluna. Se a especificação não for compatível com o Apache Spark, o Databricks Runtime poderá não conseguir ler as tabelas.

Acesse tabelas Delta com Apache Spark usando autenticação PAT.

A autenticação PAT para clientes Spark externos requer:

  • Unity Catalog Cliente Spark versão 0.4.1 ou superior (io.unitycatalog:unitycatalog-spark)
  • Apache Spark 4.0 ou superior
  • Delta Spark 4.2.0 ou superior
  • Um access token pessoal para o usuário principal que acessa Unity Catalog. Consulte Autorizar acesso ao recurso Databricks.

A seguinte configuração é necessária para ler ou gravar em tabelas gerenciadas Unity Catalog 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>",
"spark.sql.catalog.<uc-catalog-name>.token": "<token>",
"spark.sql.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_4.1_2.13:4.2.0,io.unitycatalog:unitycatalog-spark_2.13:0.4.1",
"spark.jars": "/path/to/gcs-connector-3.0.2-shaded.jar"
nota

Você precisa download o arquivo JAR do conectorGCS separadamente. Atualize o caminho spark.jars para apontar para o arquivo de downloads gcs-connector-3.0.2-shaded.jar .

Substitua as seguintes variáveis:

  • <uc-catalog-name>: O nome do catálogo no Unity Catalog que contém suas tabelas.

  • <token>access token pessoal (PAT) para a entidade principal que configura a integração.

  • <workspace-url>: O URLworkspace Databricks . Por exemplo, cust-success.cloud.databricks.com.

nota

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 .

Para obter mais detalhes sobre como configurar Apache Spark para armazenamento de objetos cloud , consulte a documentação OSSUnity Catalog.

importante

É necessário Databricks Runtime 16.4 ou superior para ler, gravar ou criar tabelas com o recurso de confirmação de catálogo ativado. É necessário Databricks Runtime 18.0 ou superior para habilitar ou desabilitar a confirmação de catálogo em tabelas existentes.

Para criar tabelas Delta gerenciadas com confirmação de catálogo, use o seguinte SQL:

SQL
CREATE TABLE <uc-catalog-name>.<schema-name>.<table-name> (id INT, desc STRING)
TBLPROPERTIES ('delta.feature.catalogManaged' = 'supported') USING delta;

Para criar tabelas Delta externas, utilize o seguinte SQL:

SQL
CREATE TABLE <uc-catalog-name>.<schema-name>.<table-name> (id INT, desc STRING)
USING delta
LOCATION <path>;

Acesse 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 gerencia automaticamente os tokens e a renovação de credenciais para autenticação Unity Catalog .

A autenticação OAuth para clientes Spark externos requer:

A seguinte configuração é necessária para criar, ler ou gravar em tabelas gerenciadas 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>",
"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.defaultCatalog": "<uc-catalog-name>",
"spark.jars.packages": "io.delta:delta-spark_4.1_2.13:4.2.0,io.unitycatalog:unitycatalog-spark_2.13:0.4.1",
"spark.jars": "/path/to/gcs-connector-3.0.2-shaded.jar"
nota

Você precisa download o arquivo JAR do conectorGCS separadamente. Atualize o caminho spark.jars para apontar para o arquivo de downloads gcs-connector-3.0.2-shaded.jar .

Substitua as seguintes variáveis:

nota

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 .