Trabalhe com tabelas estrangeiras
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 Databricks oferece suporte aos seguintes métodos de registro de tabelas estrangeiras:
- A federação de consultas utiliza conexões JDBC seguras para se federar a sistemas de dados externos, como PostgreSQL e MySQL.
- A federação de catálogos conecta catálogos externos, como Hive metastore, AWS Glue ou Snowflake Horizon Catalog, para consultar dados diretamente no armazenamento de arquivos.
Para compatibilidade retroativa com as cargas de trabalho legadas Apache Spark e Databricks, as tabelas estrangeiras em um Hive metastore federado retornam metadados de Hive metastore, incluindo se a tabela é uma tabela gerenciar Hive ou uma tabela externa Hive.
Quando usar tabelas estrangeiras
As tabelas estrangeiras proporcionam flexibilidade ao integrar o Databricks aos sistemas de dados existentes ou ao migrar de sistemas legados.
Muitas tabelas externas servem como uma solução temporária para acesso direto a dados não gerenciados pelo Databricks, sem exigir migração de dados ou refatoração de código para fluxos de trabalho ETL upstream. A Databricks recomenda migrar os conjuntos de dados que impulsionam as cargas de trabalho de produção ou que são consultados com frequência para tabelas gerenciadas do Unity Catalog. As tabelas gerenciadas oferecem o melhor desempenho e possuem diversas otimizações integradas. Consulte Converter uma tabela estrangeira em uma tabela gerenciada do Unity Catalog.
A federação de consultas é uma solução complementar para carregar dados de sistemas de dados externos não suportados pelo Lakeflow Connect. A Databricks recomenda o uso de visualizações materializadas para replicar tabelas externas no Unity Catalog. Consulte Carregar dados de tabelas externas com visualizações materializadas.
Criar ou gravar em tabelas estrangeiras
Se você tiver privilégios suficientes e seu workspace estiver configurado com um Hive metastore federado interno, poderá criar ou gravar em tabelas externas com suporte desse Hive metastore federado interno. Hive metastore e todas as tabelas externas acessadas por meio da federação do Lakehouse são somente leitura.
Embora as tabelas externas sejam somente leitura, o campo "Atualizado por " mostra o usuário que acionou o metadata refresh mais recente. O Databricks atualiza automaticamente os metadados de tabelas externas durante as consultas quando detecta que os metadados estão desatualizados. Como resultado, o campo Atualizado por exibe o session_user que executou a consulta, mesmo que esse usuário não tenha modificado os dados subjacentes.
O Databricks não gerencia os metadados, os dados ou a semântica das gravações em tabelas externas. Tabelas externas podem ser suportadas por um formato compatível com ACID, como Delta Lake ou Apache Iceberg, mas não oferecem as garantias transacionais das tabelas gerenciadas pelo Unity Catalog.
A maioria das otimizações do Databricks para desempenho de consulta, velocidade de escrita aprimorada, salto de dados e consultas somente de metadados requer o Unity Catalog. A Databricks recomenda comparar o desempenho de leitura e escrita de consultas entre tabelas estrangeiras e tabelas gerenciadas do Unity Catalog 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 para Delta Lake e Apache Iceberg.