Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve como adicionar o CDC (Captura de Dados de Alterações) do banco de dados PostgreSQL como fonte de eventos no hub do Fabric em tempo real.
O conector de origem da captura de dados de alterações (CDA) do Banco de Dados PostgreSQL para fluxos de eventos do Microsoft Fabric permite capturar um instantâneo dos dados atuais em um Banco de Dados PostgreSQL. Atualmente, o CDC (Captura de Dados de Alteração de Banco de Dados postgreSQL) tem suporte nos seguintes serviços em que os bancos de dados podem ser acessados publicamente:
- Banco de Dados do Azure para PostgreSQL
- Amazon RDS para PostgreSQL
- Amazon Aurora PostgreSQL
- SQL do Google Cloud para PostgreSQL
Depois que a fonte CDC do banco de dados PostgreSQL é adicionada ao fluxo de eventos, ela captura alterações no nível da linha nas tabelas especificadas. Essas alterações podem ser processadas em tempo real e enviadas para destinos diferentes para análise posterior.
Observação
Com DeltaFlow (versão prévia), você pode transformar eventos brutos de CDC do Debezium em fluxos prontos para análise que espelham a estrutura de sua tabela de origem. O DeltaFlow automatiza o registro de esquema, o gerenciamento de tabela de destino e o tratamento da evolução do esquema. Para usar o DeltaFlow, escolha eventos prontos para análise e esquema atualizado automaticamente durante a etapa de tratamento de esquema.
Pré-requisitos
Acesso a um espaço de trabalho no modo de licença de capacidade do Fabric (ou) no modo de licença de Avaliação com permissões de Colaborador ou superior.
Acesso de usuário registrado no Banco de Dados PostgreSQL.
Seu banco de dados PostgreSQL deve ser acessível publicamente e não estar atrás de um firewall ou protegido em uma rede virtual. Se ele residir em uma rede protegida, conecte-se a ela usando a injeção de rede virtual do conector Eventstream.
CDC habilitado no banco de dados PostgreSQL e suas tabelas.
Caso tenha o Azure Database for PostgreSQL, siga as etapas na próxima seção para habilitar o CDC. Para obter informações detalhadas, confira Duplicação lógica e decodificação lógica no Banco de Dados do Azure para PostgreSQL – Servidor Flexível.
Para outros bancos de dados PostgreSQL, confira Debezium connector for PostgreSQL :: Debezium Documentation.
Caso não tenha um Eventstream, crie um Eventstream.
Habilitar CDC em seu Banco de Dados PostgreSQL
Esta seção usa o Banco de Dados do Azure para PostgreSQL como exemplo.
Para habilitar o CDC em seu servidor flexível do Banco de Dados do Azure para PostgreSQL, siga essas etapas:
No portal do Azure, na página do servidor flexível do Banco de Dados do Azure para PostgreSQL, selecione Parâmetros do servidor no menu de navegação.
Na página Parâmetros do servidor:
- Defina wal_level para lógico.
- Atualize max_worker_processes para pelo menos 16.
Salve as alterações e reinicie o servidor.
Confirme se a instância de servidor flexível do Banco de Dados do Azure para PostgreSQL permite tráfego de rede pública.
Conceda ao usuário administrador permissões para executar a instrução SQL a seguir. Se você quiser usar outra conta de usuário para conectar seu Banco de Dados PostgreSQL (BD) para buscar o CDC, verifique se o usuário é o proprietário da tabela.
ALTER ROLE <admin_user_or_table_owner_user> WITH REPLICATION;
Navegue até a página Fontes de Dados
Faça login no Microsoft Fabric.
Caso veja Power BI no canto inferior esquerdo da página, alterne para a carga de trabalho Fabric selecionando Power BI e, em seguida, selecionando Fabric.
Selecione Tempo Real na barra de navegação esquerda.
A página de dados streaming é aberta por padrão. Clique no botão Adicionar dados para acessar a página Fontes de Dados .
Você também pode acessar a página Fontes de dados diretamente selecionando a opção Adicionar dados na barra de navegação esquerda.
Selecione o CDC do Banco de Dados PostgreSQL como tipo de origem
Na página Fontes de dados, selecione a categoria Fontes da Microsoft na parte superior e selecione Conectar no bloco Banco de Dados do Azure para PostgreSQL (CDC).
Configurar origem CDC do Banco de Dados do Azure para PostgreSQL
Ingerir dados de alteração de bancos de dados PostgreSQL com registro automático de esquema de tabela via CDC em Eventstream.
Observação
DeltaFlow (versão prévia): quando você seleciona eventos prontos para análise e esquema atualizado automaticamente na etapa de tratamento de esquema, o DeltaFlow transforma eventos brutos do Debezium CDC em fluxos prontos para análise que espelham sua estrutura de tabela de origem. O DeltaFlow também automatiza a criação da tabela de destino e a manipulação da evolução do esquema.
Na página Conectar, selecione Nova conexão.
Na seção Configurações de conexão, insira as informações a seguir.
Servidor: o endereço do servidor do seu Banco de Dados PostgreSQL, por exemplo my-pgsql-server.postgres.database.azure.com.
Banco de dados: o nome do banco de dados, por exemplo my_database.
Nome da conexão: insira um nome para a conexão.
Tipo de autenticação, selecione Básico e insira seu nome de usuário e senha para o banco de dados.
Observação
Atualmente, os fluxos de eventos do Fabric dão suporte apenas à autenticação Básica .
Selecione Conectar para concluir as configurações de conexão.
Porta: insira o número da porta do servidor. O valor padrão é 5432. Se a conexão de nuvem selecionada estiver configurada em Gerenciar conexões e gateways, certifique-se de que o número da porta corresponda ao configurado lá. Se eles não corresponderem, o número da porta na conexão de nuvem em Gerenciar conexões e gateways terá precedência.
Você pode escolher entre duas opções ao capturar alterações de tabelas de banco de dados:
- Todas as tabelas: capturar alterações de todas as tabelas do banco de dados.
-
Insira os nomes da tabela: permite que você especifique um subconjunto de tabelas usando uma lista separada por vírgulas. Você pode usar: identificadores de tabela completos no formato
schemaName.tableNameou expressões regulares válidas. Exemplos: -
dbo.test.*: selecione todas as tabelas cujostestnomes começam nodboesquema. -
dbo\.(test1|test2): Selecionedbo.test1edbo.test2.
Você pode combinar os dois formatos na lista. O limite total de caracteres para toda a entrada é de 102.400 caracteres .
Nome do slot (opcional): Insira o nome do slot de decodificação lógica do PostgreSQL criado para o streaming de alterações de um plug-in específico para um banco de dados/esquema específico. O servidor utiliza este slot para transferir eventos para o conector de streaming Eventstream. Ele deve conter apenas letras minúsculas, números e sublinhados.
- Caso não seja especificado, um GUID será utilizado para criar o slot, sendo necessário ter as permissões adequadas no banco de dados.
- Se houver um nome de slot especificado, o conector o usará diretamente.
Expanda as configurações avançadas para acessar mais opções de configuração para a origem CDC do Banco de Dados PostgreSQL:
Nome da publicação: especifica o nome da publicação de replicação lógica postgreSQL a ser usada. Esse valor deve corresponder a uma publicação existente no banco de dados ou é criado automaticamente dependendo do modo de criação automática. Valor padrão:
dbz_publication.Observação
O usuário do conector deve ter privilégios de administrador para criar a publicação. Recomendamos que você crie a publicação manualmente antes de iniciar o conector pela primeira vez para evitar problemas relacionados à permissão.
Modo de criação automática de publicação: controla se e como a publicação é criada automaticamente. As opções incluem:
-
Filtered(padrão): se a publicação especificada não existir, o conector criará uma que inclua apenas as tabelas selecionadas (conforme especificado na lista de inclusão da tabela). -
AllTables: se a publicação especificada existir, o conector a usará. Se ele não existir, o conector criará um que inclui todas as tabelas do banco de dados. -
Disabled: o conector não cria uma publicação. Se a publicação especificada estiver ausente, o conector gerará uma exceção e irá parar. Nesse caso, a publicação deve ser criada manualmente no banco de dados.
Para obter mais informações, consulte a documentação do Debezium sobre o modo de criação automática de publicação
-
Modo de tratamento decimal: Especifica como o conector lida com
DECIMALe valores de colunaNUMERICPostgreSQL:-
Precise: representa valores usando tipos decimais exatos (por exemplo, JavaBigDecimal) para garantir a precisão total e a precisão na representação de dados. -
Double: converte valores em números de ponto flutuante de precisão dupla. Essa opção melhora a usabilidade e o desempenho, mas pode resultar em uma perda de precisão. -
String: codifica valores como cadeias de caracteres formatadas. Essa opção facilita o consumo em sistemas downstream, mas perde informações semânticas sobre o tipo numérico original.
-
Modo de instantâneo: especifique os critérios para executar um instantâneo quando o conector for iniciado:
-
Initial: O conector executa um instantâneo somente quando nenhum offset foi registrado para o nome lógico do servidor, ou se detecta que um instantâneo anterior não foi concluído. Após a conclusão do instantâneo, o conector começa a transmitir registros de eventos para alterações subsequentes no banco de dados. -
InitialOnly: O conector executa um instantâneo somente quando nenhum offset foi registrado para o nome do servidor lógico. Depois que o instantâneo for concluído, o conector para. Ele não adota o modo de streaming para ler eventos de alteração do binlog. -
NoData: o conector executa um instantâneo que captura apenas o esquema, mas não qualquer dado de tabela. Defina essa opção se você não precisa de uma visão consistente dos dados, mas apenas das alterações ocorrendo desde a inicialização do conector.
-
Consulta de ação de pulsação: especifica uma consulta que o conector executa no banco de dados de origem quando o conector envia uma mensagem de pulsação.
Override da instrução SELECT para snapshot: especifica as linhas da tabela a serem incluídas em um snapshot. Use essa propriedade se você quiser que um instantâneo inclua apenas um subconjunto das linhas em uma tabela. Essa propriedade afeta somente instantâneos. Ele não se aplica a eventos que o conector lê do log.
Detalhes do fluxo ou da origem
Na página Conectar , siga uma destas etapas com base em se você está usando o Eventstream ou Real-Time hub.
Fluxo de eventos:
No painel Detalhes da origem à direita, siga estas etapas:
Para Fonte, selecione o botão Lápis para alterar o nome.
Observe que o nome do fluxo de eventos e o nome do fluxo são somente leitura.
Real-Time hub:
Na seção Detalhes de streaming à direita, siga estas etapas:
Selecione o workspace do Fabric no qual você deseja criar o fluxo de eventos.
Para nome do Eventstream, selecione o botão Lápis e insira um nome para o Eventstream.
O valor do nome do Stream é gerado automaticamente para você acrescentando -stream ao nome do fluxo de eventos. Esse fluxo aparece na página Todos os fluxos de dados do hub em tempo real quando a execução do assistente é finalizada.
Selecione Avançar na parte inferior da página Configurar .
Examinar e conectar
Na tela Examinar + conectar, examine o resumo e selecione Adicionar (Eventstream) ou Conectar (Real-Time Hub).
Página de tratamento de esquema
Na etapa de tratamento de esquema , escolha uma das seguintes opções:
- Eventos prontos para análise e esquema atualizado automaticamente (Versão Prévia do DeltaFlow): o conector transforma eventos CDC brutos em fluxos prontos para análise que espelham sua estrutura de tabela de origem. O DeltaFlow enriquece eventos com metadados, como tipo de alteração (inserir, atualizar ou excluir) e carimbos de data/hora, e gerencia automaticamente tabelas de destino e evolução do esquema.
- Eventos CDC brutos: o conector ingere e disponibiliza os eventos CDC brutos. Opcionalmente, o conector pode fazer a descoberta automática de esquemas de tabela e registrá-los no registro de esquema. Use essa opção quando desejar reconhecimento de esquema sem a transformação DeltaFlow.
Observação
A captura de tela a seguir mostra o CDC do Azure SQL Database. As opções de tratamento de esquema são as mesmas para todos os conectores de origem suportados pelo CDC.
Habilitar a associação de esquema de eventos.
Para Workspace, selecione um workspace do Fabric para o conjunto de esquemas.
Para o conjunto de esquemas, + Criar é selecionado por padrão, o que cria um novo conjunto de esquemas. Você pode alterá-lo para selecionar um conjunto de esquemas de eventos existente.
Se você selecionou a opção + Criar na etapa anterior, insira um nome para o conjunto de esquemas.
Na página Revisar + conectar, examine o resumo e selecione Adicionar (Eventstream) ou Conectar (Real-Time Hub).
Para todas as tabelas ou tabelas selecionadas no banco de dados PostgreSQL, o conector faz descobertas automáticas e cria esquemas e as registra no registro de esquema.
DeltaFlow: transformação de evento pronto para análise (versão prévia)
Quando você habilita eventos prontos para análise e esquema atualizado automaticamente (DeltaFlow), o conector fornece os seguintes recursos:
-
Forma de evento pronta para análise: os eventos CDC brutos do Debezium são transformados em um formato tabular que espelha a estrutura da tabela de origem. Os eventos são enriquecidos com colunas de metadados, incluindo o tipo de alteração (
insertouupdatedelete) e o carimbo de data/hora do evento. - Gerenciamento automático de tabela de destino: quando você roteia fluxos habilitados para DeltaFlow para um destino com suporte, como uma casa de eventos, as tabelas de destino são criadas automaticamente para corresponder ao esquema da tabela de origem. Você não precisa criar ou configurar manualmente tabelas de destino.
- Tratamento da evolução do esquema: quando as tabelas de banco de dados de origem são alteradas (por exemplo, novas colunas são adicionadas ou tabelas são criadas), o DeltaFlow detecta automaticamente as alterações, atualiza os esquemas registrados e ajusta as tabelas de destino adequadamente. Esse comportamento minimiza a intervenção manual causada por alterações de esquema.
Observação
Atualmente, há suporte para DeltaFlow (versão prévia) com Banco de Dados SQL do Azure CDC, Instância Gerenciada de SQL do Azure CDC, SQL Server na máquina virtual CDC e conectores de origem do PostgreSQL CDC.
Para obter detalhes sobre como o DeltaFlow transforma eventos CDC brutos em saída pronta para análise, incluindo tipos de operação e colunas de metadados, consulte a transformação de saída DeltaFlow.
Exibir detalhes do fluxo de dados
Na página Examinar e conectar, se você selecionar Abrir Eventstream, o assistente abrirá o Eventstream criado para você com o CDC do Banco de Dados PostgreSQL selecionado como origem. Para fechar o assistente, selecione Concluir na parte inferior da página.
Você deve ver o fluxo na seção Dados de streaming recentes da home page do hubReal-Time . Para ver etapas detalhadas, confira Detalhes dos fluxos de dados no hub em tempo real do Fabric.
Conteúdo relacionado
Para saber mais sobre consumo de fluxos de dados, confira os seguintes artigos: