Perguntas frequentes sobre o conector PostgreSQL
Visualização
O conector PostgreSQL para LakeFlow Connect está em versão prévia pública. Entre em contato com a equipe da sua account Databricks para se inscrever na Prévia Pública.
Esta página responde a perguntas frequentes sobre o conector PostgreSQL no Databricks LakeFlow Connect.
Perguntas frequentes gerais sobre conectores de gerenciamento
As respostas nas perguntas frequentes sobre conectores de gerenciamento se aplicam a todos os conectores de gerenciamento no LakeFlow Connect. Continue lendo para ver as perguntas frequentes específicas sobre conectores.
Como o Databricks se conecta ao PostgreSQL?
O Databricks se conecta ao PostgreSQL usando segurança da camada de transporte (TLS) e uma conexão JDBC. As credenciais são armazenadas com segurança no Unity Catalog e só podem ser recuperadas se o usuário que executou o fluxo de ingestão tiver as permissões apropriadas. A Databricks recomenda a criação de um usuário de replicação separado no PostgreSQL para a ingestão de dados. Caso existam bancos de dados ou tabelas que você não queira expor a este usuário, você pode usar as permissões integradas PostgreSQL .
Se o pipeline falhar, a ingestão é retomada sem perda de dados?
Sim. O Databricks mantém um registro do que o conector extraiu da origem e aplicou no destino. Caso ocorra algum problema, Databricks pode ser retomado a partir desse ponto, desde que o slot de replicação e os dados do Write-Ahead Log (WAL) permaneçam no banco de dados de origem. Isso pode ser afetado se o pipeline não for executado antes do período de retenção do WAL ou se os limites de slots de replicação forem atingidos, o que exige uma refresh completa das tabelas de destino.
Quais variações do PostgreSQL o conector suporta?
O conector é compatível com AWS RDS PostgreSQL, Aurora PostgreSQL, Amazon EC2, Banco de Dados Azure para PostgreSQL, máquinas virtuais Azure e Cloud SQL GCP para PostgreSQL. Isso inclui o PostgreSQL sendo executado em máquinas virtuais. O conector também oferece suporte ao PostgreSQL on-premises usando Azure ExpressRoute, AWS Direct Connect e VPN, caso haja largura de banda suficiente disponível.
Como o conector extrai dados incrementalmente?
O conector usa replicação lógica do PostgreSQL com o plugin pgoutput . A replicação lógica captura todas as operações de modificação de dados (inserções, atualizações e exclusões) por meio do Write-Ahead Log, sem impacto significativo no desempenho do banco de dados de origem.
O conector captura fusos horários para colunas de data e hora?
O conector preserva as informações de fuso horário para colunas TIMESTAMP WITH TIME ZONE . As colunas TIMESTAMP WITHOUT TIME ZONE e TIME são ingeridas como strings em seu formato original, sem conversão de fuso horário.
Posso personalizar o programador do gateway de ingestão?
Não, o gateway de ingestão deve ser executado em modo contínuo. Isso é fundamental para PostgreSQL evitar o inchaço do log de escrita antecipada (WAL) e garantir que os slots de replicação não acumulem alterações não consumidas. Se o gateway ficar inativo por um período prolongado, o slot de replicação pode causar o acúmulo de arquivos WAL no banco de dados de origem, potencialmente preenchendo todo o espaço em disco.
Como o conector lida com uma tabela sem key primária?
O conector pode replicar tabelas sem uma key primária se a identidade da réplica for definida como FULL. Neste caso, o conector trata todas as colunas, exceto objetos grandes, como uma key primária agrupada. Se houver linhas duplicadas na tabela de origem, essas linhas serão inseridas como uma única linha na tabela de destino, a menos que você habilite o acompanhamento.
Com que frequência posso programar o pipeline de ingestão para execução?
Não há limite para a frequência com que você pode programar o pipeline de ingestão para execução. No entanto, Databricks recomenda um intervalo de pelo menos 5 minutos entre as requisições, pois a compute serverless leva algum tempo para iniciar. O Databricks não suporta a execução do pipeline de ingestão em modo contínuo.
Por que não estou vendo todas as linhas do meu banco de dados na execução inicial do pipeline?
O gateway de ingestão extrai dados históricos e CDC assim que começa a funcionar. O pipeline de ingestão pode ser executado antes que todos esses dados sejam extraídos, resultando em uma aplicação parcial dos dados nas tabelas de destino. Pode ser necessário executar o pipeline de ingestão algumas vezes para que todos os dados sejam extraídos e aplicados às tabelas de destino.
Posso ingerir dados de uma réplica de leitura ou de uma instância em espera?
Não. O suporte é limitado a instâncias primárias do PostgreSQL, pois a replicação lógica não é suportada em réplicas de leitura ou instâncias de espera.
O que acontece com o slot de replicação quando excluo um pipeline?
Ao excluir um pipeline de ingestão, o slot de replicação não é removido automaticamente do banco de dados PostgreSQL de origem. Você deve remover manualmente o slot de replicação para evitar o acúmulo de logs de gravação antecipada (WAL). Consulte a seção Limpar slots de replicação para obter instruções sobre como limpar os slots de replicação.
Qual versão do PostgreSQL é necessária?
É necessário PostgreSQL 13 ou superior.
O parâmetro `wal_level = logical` é obrigatório para a ingestão de dados do CDC?
Sim. Para AWS RDS e Aurora, defina o parâmetro rds.logical_replication como 1 para habilitar a replicação lógica.
Posso replicar tabelas de vários bancos de dados PostgreSQL em um único pipeline?
Sim. Você pode especificar vários bancos de dados de origem no campo source_catalog do ingestion_definition. No entanto, cada banco de dados de origem requer sua própria conexão com o Unity Catalog e configuração de publicação.
Quantas tabelas posso ingerir em um único pipeline?
Para um desempenho ideal, a Databricks recomenda a ingestão de 250 tabelas ou menos por pipeline. No entanto, não há um limite rígido para o número de linhas ou colunas que são suportadas nesses objetos.
O conector suporta tipos e extensões definidos pelo usuário?
O conector suporta a maioria dos tipos de dados do PostgreSQL, incluindo arrays e JSONB. Os tipos definidos pelo usuário e os tipos de extensão de terceiros são inseridos como strings. Consulte a referência do conector PostgreSQL para obter uma lista completa dos mapeamentos de tipo suportados.