debezium-sql-azure-event-hubs

所属分类:数据库系统
开发工具:TSQL
文件大小:168KB
下载次数:0
上传日期:2022-06-25 16:01:37
上 传 者sh-1993
说明:  教程utilizando debezium sql com azure事件中心
(Tutorial utilizando debezium sql com azure event hubs)

文件列表:
debezium (0, 2022-06-26)
debezium\register-debezium.json (505, 2022-06-26)
doc (0, 2022-06-26)
doc\arquitetura.png (83488, 2022-06-26)
doc\event-bus-1.png (15674, 2022-06-26)
doc\event-bus-2.png (20654, 2022-06-26)
doc\event-bus-3.png (22701, 2022-06-26)
doc\event-bus-4.png (17137, 2022-06-26)
doc\event-bus-5.png (9605, 2022-06-26)
doc\event-bus-6.png (7393, 2022-06-26)
docker-compose.yaml (1612, 2022-06-26)
sql (0, 2022-06-26)
sql\init.sql (737, 2022-06-26)

# Debezium SQL Server com Azure Event-hubs O Debezium e uma plataforma opensource de captura de dados alterados utilizando como tecnologia Change Data Capture (CDC), que atinge suas qualidades de durabilidade, confiabilidade e tolerancia a falhas reutilizando o Kafka e o Kafka Connect. A utilizacao do CDC para os aplicativos nos dias de hoje, e quase que um cenario obrigatorio. Como para realizacao de analise de dados em tempo real, comunicacao entre aplicacoes utilizando arquitetura de event-driven. Hubs de Eventos e um servico PaaS da Microsoft Azure para ingestao de dados em tempo real totalmente gerenciado, simples e escalavel. Transmite milhoes de eventos por segundo. Os dados enviados para um hub de eventos podem ser transformados e armazenados usando qualquer provedor de analise em tempo real ou adaptadores de envio em lote/armazenamento. Para esse exemplo iremos utilizado a captura dos dados em Sql Server utilizando o Debezium e enviado para o Hub de eventos na Cloud, utilizando Docker. ![Arquitetura](https://raw.githubusercontent.com/nandorsilva/debezium-sql-azure-event-hubs/master/doc/arquitetura.png "Arquitetura") ### Event-Hub No portal da azure consulte a opcao event bus. ![](https://raw.githubusercontent.com/nandorsilva/debezium-sql-azure-event-hubs/master/doc/event-bus-1.png) ![](https://raw.githubusercontent.com/nandorsilva/debezium-sql-azure-event-hubs/master/doc/event-bus-2.png) > Nota: O Pricing tier precisa ser Standard, somente a opcao Standard e Dedicated tem suporta para a utilizacao do Kafka. ### Subindo os containers Para nosso tutorial utilizo os conteineres das imagens sql server da Microsoft e para o conector do debezium, conforme arquivo docker-compose.yaml ### Registrando as variaveis de ambiente. O Docker Compose utilizara as variaveis de ambiente abaixo: ```bash export DEBEZIUM_VERSION=1.1 export EH_NAME=pocevento export EH_CONNECTION_STRING="Endpoint=sb://pocevento.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=hXWVP8Bbmx1g3hJH2SYlazVF6wlIfR2dm1oy4t/+V+Y=" ``` > Os dados das variaveis EH_NAME e EH_CONNECTION_STRING estao no hub de eventos: ![](https://raw.githubusercontent.com/nandorsilva/debezium-sql-azure-event-hubs/master/doc/event-bus-3.png) ![](https://raw.githubusercontent.com/nandorsilva/debezium-sql-azure-event-hubs/master/doc/event-bus-4.png) O Debezium precisa do Apache Kafka para executar, o EventHubs expoe conexao compativel com Kafka, para que ainda possamos desfrutar do Kafka com todo o conforto de uma oferta PaaS. Antes de mais, o EventHubs requer autenticacao: ```yaml - CONNECT_SECURITY_PROTOCOL=SASL_SSL - CONNECT_SASL_MECHANISM=PLAIN - CONNECT_SASL_JAAS_CONFIG ``` Outras opcoes uteis para executar o Debezium no EventHubs sao as seguintes: ```yaml - CONNECT_KEY_CONVERTER_SCHEMAS_ENABLE = false - CONNECT_VALUE_CONVERTER_SCHEMAS_ENABLE = true ``` Eles controlam se o esquema e enviado com os dados ou nao. Como o EventHub suporta apenas valores, ao contrario do Apache Kafka, que na verdade e um par de valores-chave, a geracao do esquema para a secao de chaves pode ser desativada com seguranca. Para saber mais sobre as configuracoes do event hus e conectores [Para saber mais sobre as configuracoes do event hus e conectores](https://github.com/debezium/docker-images/tree/master/connect-base/0.10#others) A seguranca dos EventHubs usa a cadeia `$ConnectionString` como nome de usuario. Para evitar que o Docker Compose o trate como uma variavel, por ter somente um cifrao e necessario usar ele duas vezes (`$$`). ```shell docker-compose -f docker-compose.yaml up ``` Se tudo estiver dado certo ate aqui, veremos os containers abaixo: ```shell docker container ls ``` ![](https://raw.githubusercontent.com/nandorsilva/debezium-sql-azure-event-hubs/master/doc/event-bus-6.png) ### Sql Server Para esse tutorial estou utilizando a imagem sql server da Microsoft `microsoft/mssql-server-linux` Para criar a estrutura dos dados estou utilizando o proprio container criado. ```shell cat sql/init.sql | docker exec -i debezium-sql-azure-event-hubs_sqlserver_1 bash -c '/opt/mssql-tools/bin/sqlcmd -U sa -P $SA_PASSWORD' ``` ### Criando o conector ```shell curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" http://localhost:8083/connectors/ -d @debezium/register-debezium.json ``` Apos a criacao do conector vamos criar um registro no banco de dados e ver o topico sendo criado no event-bus ```shell INSERT INTO produtos(nome,descricao) VALUES ('Celular','Celular novo'); ``` ![](https://raw.githubusercontent.com/nandorsilva/debezium-sql-azure-event-hubs/master/doc/event-bus-5.png) [Para mais informacoes sobre debezium](https://debezium.io/)

近期下载者

相关文件


收藏者