Acessar tabelas do Databricks a partir de clientes Delta

Esta página descreve como usar a API REST do Unity para criar, ler e escrever em tabelas gerenciadas e externas do Catálogo Unity a partir de clientes Delta externos. Para obter uma lista completa de integrações com suporte, consulte as integrações do Catálogo do Unity.

Dica

Para obter informações sobre como ler dados Azure Databricks usando Microsoft Fabric, consulte Microsoft Fabric com Azure Databricks.

Criar, ler e gravar usando a API REST do Unity

Importante

A criação e gravação em tabelas gerenciadas do Catálogo do Unity de clientes Delta está em Beta.

A API REST do Unity fornece aos clientes externos acesso de criação, leitura e gravação a tabelas registradas no Catálogo do Unity. Configure o acesso usando a URL do workspace como o endpoint. Os seguintes tipos de tabela são acessíveis:

Tipo de tabela Leitura Escrever Criar
Delta Gerenciado Sim Sim* Sim*
Delta Externo Sim Sim Sim

* Com suporte para tabelas Delta gerenciadas com confirmações de catálogo.

Requisitos

Azure Databricks dá suporte ao acesso à API REST do Unity para tabelas como parte do Catálogo do Unity. Você deve ter o Catálogo do Unity habilitado em seu espaço de trabalho para usar esses endpoints.

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

Limitações

  • No momento, não há suporte para o acesso externo às tabelas UniForm com IcebergCompatV3. Depois de gravar externamente em uma tabela UniForm, você deve executar MSCK REPAIR TABLE no Databricks para gerar metadados do Iceberg.
  • Atualmente, não há suporte para alterações de esquema (por exemplo), ALTER TABLEatualizações de propriedade de tabela e alterações de recursos de tabela em tabelas gerenciadas de clientes externos.
  • Clientes externos não podem executar operações de manutenção de tabela, como OPTIMIZE, VACUUMe ANALYZE, em tabelas Delta gerenciadas.
  • Clientes externos não podem criar clones rasos.
  • Clientes externos não podem criar tabelas com colunas geradas, colunas padrão ou colunas de restrição.
  • Ao criar tabelas externas, Azure Databricks recomenda usar o 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.

Acessar tabelas Delta com Apache Spark usando autenticação PAT

A autenticação pat para clientes externos do Spark requer:

  • Cliente Spark do Unity Catalog 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 token de acesso pessoal para o principal que acessa o Unity Catalog. Consulte Autorizar o acesso aos recursos do Azure Databricks.

A configuração a seguir é necessária para ler ou gravar tabelas Delta gerenciadas e externas do Catálogo do Unity com Apache Spark, usando a 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,org.apache.hadoop:hadoop-azure:3.4.2"

Substitua as seguintes variáveis:

  • <uc-catalog-name>: o nome do catálogo no Unity Catalog que contém suas tabelas.
  • <token>: Token de acesso pessoal (PAT) para o principal que está configurando a integração.
  • <workspace-url>: A URL do workspace Azure Databricks , incluindo a ID do workspace. Por exemplo, adb-1234567890123456.12.azuredatabricks.net.

Observação

As versões do pacote mostradas acima são atuais a partir da última atualização para esta página. Versões mais recentes podem estar disponíveis. Verifique se as versões do pacote são compatíveis com sua versão do Spark.

Para obter detalhes adicionais sobre como configurar o Apache Spark para armazenamento de objetos na nuvem, consulte a documentação do Catálogo do Unity OSS.

Importante

O Databricks Runtime 16.4 ou superior é necessário para ler, gravar ou criar tabelas com commits de catálogo ativados. O Databricks Runtime 18.0 e superior é necessário para habilitar ou desabilitar confirmações de catálogo em tabelas existentes.

Para criar tabelas Delta gerenciadas com confirmações de catálogo, use o seguinte 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, use o seguinte SQL:

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

Acessar tabelas Delta com o Apache Spark usando a autenticação OAuth

Azure Databricks também dá suporte à autenticação M2M (máquina a máquina) do OAuth. O OAuth manipula automaticamente o token e a renovação de credenciais para a autenticação do Catálogo do Unity.

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

A configuração a seguir é necessária para criar, ler ou gravar em tabelas gerenciadas do Catálogo do Unity e tabelas Delta externas com Apache Spark usando a 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,org.apache.hadoop:hadoop-azure:3.4.2"

Substitua as seguintes variáveis:

  • <workspace-url>: A URL do workspace Azure Databricks , incluindo a ID do workspace. Por exemplo, adb-1234567890123456.12.azuredatabricks.net.

Observação

As versões do pacote mostradas acima são atuais a partir da última atualização para esta página. Versões mais recentes podem estar disponíveis. Verifique se as versões do pacote são compatíveis com sua versão do Spark.