Compartilhar via


Trabalhar com tabelas estrangeiras

Tabelas estrangeiras, às vezes conhecidas como tabelas federadas, são tabelas registradas usando o Unity Catalog como parte de um catálogo estrangeiro. As tabelas estrangeiras contêm dados e metadados gerenciados por sistemas externos, com o Catálogo do Unity adicionando governança de dados para consultar essas tabelas.

O Azure Databricks dá suporte aos seguintes métodos para registrar tabelas estrangeiras:

  • A federação de consulta usa conexões JDBC seguras para federar sistemas de dados externos, como PostgreSQL e MySQL.
  • A federação do catálogo conecta catálogos externos, como um Metastore do Hive ou o Catálogo do Snowflake Horizon, para consultar dados diretamente no armazenamento de arquivos.

Important

Para compatibilidade com versões anteriores de cargas de trabalho herdadas do Apache Spark e do Azure Databricks, as tabelas estrangeiras em um metastore do Hive federado retornam metadados do metastore do Hive, incluindo se a tabela é uma tabela gerenciada do Hive ou uma tabela externa do Hive.

Por que usar uma tabela estrangeira?

Tabelas estrangeiras fornecem flexibilidade ao integrar o Azure Databricks a sistemas de dados existentes ou migrar de sistemas herdados.

Muitas tabelas estrangeiras servem como uma solução temporária para acesso direto a dados não gerenciados pelo Azure Databricks, pois fornecem uma solução rápida sem a necessidade de migração de dados ou refatoração de código para fluxos de trabalho ETL upstream. O Databricks recomenda a migração de conjuntos de dados que conduzem cargas de trabalho de produção ou são consultados com frequência para tabelas gerenciadas do Catálogo do Unity, pois as tabelas gerenciadas fornecem o melhor desempenho e têm muitas otimizações internas. Consulte Converter uma tabela externa em uma tabela gerenciada do Catálogo do Unity.

A federação de consultas fornece uma solução complementar para carregar dados de sistemas de dados externos sem suporte do Lakeflow Connect. O Databricks recomenda o uso de exibições materializadas para replicar tabelas estrangeiras para o Catálogo do Unity. Confira Carregar os dados de tabelas estrangeiras com exibições materializadas.

Criar ou gravar em tabelas estrangeiras

Se você tiver privilégios suficientes e seu workspace tiver sido configurado com um metastore do Hive federado interno, você poderá criar ou gravar em tabelas estrangeiras apoiadas por um metastore do Hive federado interno. O metastore externo federado do Hive e todas as tabelas externas apoiadas pela Federação Lakehouse são somente leitura.

O Azure Databricks não gerencia os metadados, dados ou semântica para gravações em tabelas estrangeiras. As tabelas estrangeiras podem ser apoiadas por um formato compatível com ACID, como Delta Lake ou Apache Iceberg, mas tabelas estrangeiras não fornecem as garantias transacionais das tabelas gerenciadas do Catálogo do Unity.

A maioria das otimizações do Azure Databricks para desempenho de consulta, velocidade de gravação aprimorada, omissão de dados desnecessários e consultas somente de metadados exige o Unity Catalog. O Databricks recomenda comparar o desempenho da consulta de leitura e gravação entre tabelas estrangeiras e tabelas gerenciadas do Catálogo do Unity usando a versão mais recente do Databricks Runtime para avaliar as diferenças de latência e custo. Consulte tabelas gerenciadas do Unity Catalog no Azure Databricks para Delta Lake e Apache Iceberg.