Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Tabelas estrangeiras, às vezes chamadas de tabelas federadas, são tabelas registradas usando o Unity Catalog como parte de um catálogo estrangeiro. Tabelas estrangeiras contêm dados e metadados gerenciados por sistemas externos, com o Unity Catalog 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 consultas usa conexões JDBC seguras para federar a sistemas de dados externos, como PostgreSQL e MySQL.
- A federação de catálogos conecta catálogos externos, como um Hive Metastore ou o Snowflake Horizon Catalog, para consultar dados diretamente no armazenamento de arquivos.
Important
Para garantir a compatibilidade retroativa com cargas de trabalho herdadas do Apache Spark e Azure Databricks, as tabelas externas em uma metastore federada do Hive recuperam metadados da metastore do Hive, incluindo se a tabela é gerida pelo Hive ou é uma tabela externa do Hive.
Quando usar tabelas estrangeiras
As tabelas estrangeiras fornecem flexibilidade ao integrar o Azure Databricks com sistemas de dados existentes ou ao migrar de sistemas herdados.
Muitas tabelas estrangeiras servem como solução temporária para acesso direto a dados não geridos pelo Azure Databricks, sem necessidade de migração de dados ou refatoração de código para fluxos de trabalho ETL a montante. O Databricks recomenda migrar conjuntos de dados que gerem cargas de trabalho de produção ou que são frequentemente consultados para tabelas geridas pelo Unity Catalog. As tabelas geridas proporcionam o melhor desempenho e possuem muitas otimizações incorporadas. Consulte Converter uma tabela estrangeira em uma tabela gerenciada do Catálogo Unity.
A federação de consultas é uma solução complementar para carregar dados de sistemas de dados externos não suportados pelo Lakeflow Connect. O Databricks recomenda o uso de exibições materializadas para replicar tabelas estrangeiras para o Unity Catalog. Veja Carregar dados de tabelas estrangeiras com vistas materializadas.
Criar ou gravar em tabelas estrangeiras
Se tiveres privilégios suficientes e o teu espaço de trabalho estiver configurado com uma metastore interna federada, podes criar ou escrever em tabelas estrangeiras apoiadas por essa metastore federada interna. O metastore federado externo Hive e todas as tabelas estrangeiras acedidas através da Lakehouse Federation são de somente leitura.
Embora as tabelas estrangeiras sejam apenas de leitura, o campo Atualizado por mostra o utilizador que desencadeou a atualização de metadados mais recente. O Azure Databricks atualiza automaticamente os metadados das tabelas estrangeiras durante as consultas quando detetar que os metadados estão obsoletos. Como resultado, o campo Atualizado por mostra quem session_user executou a consulta, mesmo que esse utilizador não tenha modificado os dados subjacentes.
O Azure Databricks não gerencia os metadados, dados ou semântica para gravações em tabelas estrangeiras. Tabelas estrangeiras podem ser suportadas por um formato compatível com ACID, como Delta Lake ou Apache Iceberg, mas não fornecem as garantias transacionais das tabelas geridas pelo Unity Catalog.
A maioria das otimizações do Azure Databricks para desempenho de consultas, velocidade de escrita aprimorada, saltos de dados e consultas que utilizam apenas metadados requer o Unity Catalog. O Databricks recomenda comparar o desempenho da consulta de leitura e gravação entre tabelas estrangeiras e tabelas gerenciadas pelo Unity Catalog usando a versão mais recente do Databricks Runtime para avaliar a latência e as diferenças de custo. Consulte as tabelas geridas do Unity Catalog para Delta Lake e Apache Iceberg.