{"id":6729,"date":"2019-04-22T10:31:16","date_gmt":"2019-04-22T17:31:16","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=6729"},"modified":"2025-06-13T19:27:46","modified_gmt":"2025-06-14T02:27:46","slug":"kafka-connect-mysql-couchbase-debezium","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/kafka-connect-mysql-couchbase-debezium\/","title":{"rendered":"Kafka Connect do MySQL para o Couchbase com o Debezium"},"content":{"rendered":"<div class=\"paragraph\">\n<p>O Kafka \u00e9 uma plataforma de streaming que pode ser usada para transmitir registros para (Kafka sink) e de (Kafka source) centros de dados. O Couchbase criou e oferece suporte a um aplicativo Kafka <a href=\"https:\/\/docs.couchbase.com\/kafka-connector\/3.4\/index.html\">conector<\/a> que permite que voc\u00ea use facilmente o Couchbase como uma fonte ou um coletor.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Estou trabalhando em um tutorial completo para um <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/solutions\/customer-360\/\">Cliente 360<\/a> caso de uso. Uma parte dele envolve o Kafka. Aqui est\u00e1 um diagrama de alto n\u00edvel:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/04\/12101-customer-360-full-diagram.jpg\" alt=\"Customer 360 ingestion digram\" \/><\/span><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Uma parte desse tutorial \u00e9 um guia sobre como come\u00e7ar a transmitir dados de um banco de dados MySQL (que \u00e9 usado para um sistema de \"entrega em domic\u00edlio\" em uma empresa) para a plataforma de dados Couchbase (que ser\u00e1 usada para fins do Customer 360). Para esta postagem do blog, estou me concentrando apenas nessa parte do diagrama:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><span class=\"image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/04\/12102-customer-360-focused-diagram.jpg\" alt=\"Customer 360 diagram focused on Kafka\" \/><\/span><\/p>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_prerequisites\">Pr\u00e9-requisitos<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Comecei sem saber muito sobre o Kafka, mas consegui montar uma prova de conceito funcional usando:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><a href=\"https:\/\/www.docker.com\/\">Docker<\/a>. Voc\u00ea precisar\u00e1 ter o Docker instalado para concluir este tutorial. <em>Talvez voc\u00ea queira mover tudo isso para o docker-compose ou (mais provavelmente) <a href=\"https:\/\/docs.couchbase.com\/operator\/current\/overview.html\">Kubernetes<\/a>.<\/em> Estou criando toda a arquitetura nesta postagem, mas em sua empresa haver\u00e1 pelo menos algumas partes que j\u00e1 est\u00e3o implantadas.<\/li>\n<li><a href=\"https:\/\/debezium.io\/docs\/tutorial\/\">Tutorial de in\u00edcio r\u00e1pido do Debezium<\/a> - O Debezium \u00e9 o conector que escolhi usar para configurar um banco de dados MySQL como um <strong>fonte<\/strong>.<\/li>\n<li><a href=\"https:\/\/hub.docker.com\/_\/couchbase\">In\u00edcio r\u00e1pido do Docker do Couchbase<\/a> - para executar um cluster simples do Couchbase no Docker<\/li>\n<li>Couchbase Kafka <a href=\"https:\/\/docs.couchbase.com\/kafka-connector\/3.4\/quickstart.html\">Tutorial de in\u00edcio r\u00e1pido do conector<\/a> - Este tutorial mostra como configurar o Couchbase como um coletor do Kafka ou como uma fonte do Kafka.<\/li>\n<li><a href=\"https:\/\/docs.docker.com\/engine\/reference\/builder\/\">Refer\u00eancia do Dockerfile<\/a> - como criar uma imagem do docker personalizada. Isso pode parecer intimidador, mas n\u00e3o se preocupe, s\u00e3o apenas algumas linhas de texto.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_setting_up_couchbase\">Configura\u00e7\u00e3o do Couchbase<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Instalar o Couchbase com o Docker:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>docker run -d --name db -p 8091-8094:8091-8094 -p 11210:11210 couchbase<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Voc\u00ea tamb\u00e9m precisar\u00e1 <a href=\"https:\/\/hub.docker.com\/_\/couchbase\">configurar o cluster do Couchbase<\/a> como de costume. Criei um bucket chamado \"staging\".<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_running_zookeeper_kafka_mysql\">Executando o Zookeeper, o Kafka e o MySQL<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Na maior parte do tempo, voc\u00ea s\u00f3 precisar\u00e1 seguir o <a href=\"https:\/\/debezium.io\/docs\/tutorial\/\">Tutorial do Debezium<\/a>. Certifique-se de ler todos os detalhes, mas a vers\u00e3o resumida \u00e9 seguir estas etapas:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Execute uma imagem do Zookeeper (isso \u00e9 necess\u00e1rio para o Kafka):<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>docker run -it --rm --name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 debezium\/zookeeper:0.9<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Execute uma imagem do Kafka (vinculada ao Zookeeper):<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>docker run -it --rm --name kafka -p 9092:9092 --link zookeeper:zookeeper debezium\/kafka:0.9<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Inicie um banco de dados MySQL (o Debezium fornece uma imagem do Docker que j\u00e1 cont\u00e9m alguns dados de amostra):<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>docker run -it --rm --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=debezium -e MYSQL_USER=mysqluser -e MYSQL_PASSWORD=mysqlpw debezium\/example-mysql:0.9<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Depois disso, voc\u00ea pode se conectar ao banco de dados MySQL usando as credenciais acima. O tutorial do Debezium fornece outra imagem do Docker para fazer isso, ou voc\u00ea pode usar a ferramenta MySQL de sua prefer\u00eancia. N\u00e3o \u00e9 necess\u00e1rio fazer isso agora, mas eventualmente voc\u00ea desejar\u00e1 se conectar a ele e inserir\/atualizar dados para testar o processo de ponta a ponta.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_preparing_kafka_connectors\">Prepara\u00e7\u00e3o dos conectores Kafka<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Neste ponto de minha jornada, devo divergir um pouco do tutorial do Debezium. Esse tutorial mostra como iniciar um Debezium MySQL Connector (com outra imagem do Docker e uma solicita\u00e7\u00e3o REST). No entanto, quero apresentar o Conector Kafka do Couchbase.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>A maneira mais f\u00e1cil de fazer isso \u00e9 criar uma imagem personalizada do Docker. Isso usar\u00e1 a imagem do Debezium Kafka Connect como base e simplesmente adicionar\u00e1 o arquivo JAR do Couchbase Kafka Connect a ela. Para fazer isso, crie um arquivo de texto chamado <code>Dockerfile<\/code>:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-Docker\" data-lang=\"Docker\">FROM debezium\/connect:0.9\r\n# put the kafka-connect-couchbase-3.4.3.jar into\r\n# a \/kafka\/connect\/couchbase folder\r\nADD kafka-connect-couchbase-3.4.3.jar \/kafka\/connect\/couchbase\/kafka-connect-couchbase-3.4.3.jar<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Depois de fazer isso, crie a imagem: <code>compila\u00e7\u00e3o do docker . --tag couchbasedebezium<\/code>. Chamei a imagem de <code>sof\u00e1-baseadoebezium<\/code>mas voc\u00ea pode cham\u00e1-lo como quiser. Depois que isso for conclu\u00eddo, execute <code>imagens do docker<\/code>e <code>sof\u00e1-baseadoebezium<\/code> deve aparecer em seu reposit\u00f3rio local:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-Powershell\" data-lang=\"Powershell\">PS C:\\myfolder&gt; docker images\r\nREPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE\r\ncouchbasedebezium                      latest              a48fa903cc7d        3 days ago          641MB\r\ndebezium\/connect                       0.9                 5a5e60b3f50a        2 weeks ago         633MB\r\ndebezium\/kafka                         0.9                 b4b130f4bb9c        2 weeks ago         612MB\r\ndebezium\/zookeeper                     0.9                 4ba823930ede        2 weeks ago         519MB\r\ndebezium\/example-mysql                 0.9                 ba801de1fe22        3 weeks ago         372MB\r\ncouchbase                              enterprise-6.0.1    5403ed5c6ef4        2 months ago        940MB\r\n\r\n... etc ...<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_starting_kafka_connect\">Iniciando o Kafka Connect<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Para iniciar o Kafka Connect:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p><code>docker run -it --rm --name connect -p 8083:8083 -e GROUP_ID=1 -e CONFIG_STORAGE_TOPIC=my_connect_configs -e OFFSET_STORAGE_TOPIC=my_connect_offsets -e STATUS_STORAGE_TOPIC=my_connect_statuses --link zookeeper:zookeeper --link kafka:kafka --link mysql:mysql --link db:db couchbasedebezium<\/code><\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Isso iniciar\u00e1 uma imagem do Docker que usaremos para conectar o Kafka ao MySQL e ao Couchbase. Observe que estou usando a op\u00e7\u00e3o <em>sof\u00e1-baseadoebezium<\/em> e tamb\u00e9m estou usando a imagem <em>-link db:db<\/em>mas, fora isso, \u00e9 id\u00eantico ao tutorial do Debezium.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>H\u00e1 mais duas etapas:<\/p>\n<\/div>\n<div class=\"olist arabic\">\n<ol class=\"arabic\">\n<li>Diga ao Kafka Connect para usar o MySQL como fonte.<\/li>\n<li>Diga ao Kafka Connect para usar o Couchbase como coletor.<\/li>\n<\/ol>\n<\/div>\n<div class=\"paragraph\">\n<p>H\u00e1 v\u00e1rias maneiras de fazer isso, mas decidi usar a API REST do Kafka.<\/p>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_connect_to_mysql_as_a_source\">Conecte-se ao MySQL como uma fonte<\/h3>\n<div class=\"paragraph\">\n<p>Crie uma solicita\u00e7\u00e3o POST para <code>https:\/\/localhost:8083\/connectors\/<\/code> com o corpo:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-JavaScript\" data-lang=\"JavaScript\">{\r\n  \"name\": \"inventory-connector\",\r\n  \"config\": {\r\n    \"connector.class\": \"io.debezium.connector.mysql.MySqlConnector\",\r\n    \"tasks.max\": \"1\",\r\n    \"database.hostname\": \"mysql\",\r\n    \"database.port\": \"3306\",\r\n    \"database.user\": \"debezium\",\r\n    \"database.password\": \"dbz\",\r\n    \"database.server.id\": \"184054\",\r\n    \"database.server.name\": \"dbserver1\",\r\n    \"database.whitelist\": \"inventory\",\r\n    \"database.history.kafka.bootstrap.servers\": \"kafka:9092\",\r\n    \"database.history.kafka.topic\": \"schema-changes.inventory\"\r\n  }\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Isso foi extra\u00eddo diretamente do tutorial do Debezium. Observe especialmente <code>database.server.name<\/code> e <code>banco de dados.whitelist<\/code>. Depois de fazer esse POST, os dados come\u00e7ar\u00e3o a fluir imediatamente do MySQL para o Kafka.<\/p>\n<\/div>\n<\/div>\n<div class=\"sect2\">\n<h3 id=\"_connect_to_couchbase_as_a_sink\">Conectar-se ao Couchbase como um sink<\/h3>\n<div class=\"paragraph\">\n<p>Crie outra solicita\u00e7\u00e3o POST para <code>https:\/\/localhost:8083\/connectors\/<\/code> com o corpo:<\/p>\n<\/div>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-JavaScript\" data-lang=\"JavaScript\">{\r\n  \"name\": \"home-delivery-sink\",\r\n  \"config\": {\r\n    \"connector.class\": \"com.couchbase.connect.kafka.CouchbaseSinkConnector\",\r\n    \"tasks.max\": \"2\",\r\n\t\"topics\" : \"dbserver1.inventory.customers\",\r\n\t\"connection.cluster_address\" : \"db\",\r\n\t\"connection.timeout.ms\" : \"2000\",\r\n\t\"connection.bucket\" : \"staging\",\r\n\t\"connection.username\" : \"Administrator\",\r\n\t\"connection.password\" : \"password\",\r\n\t\"couchbase.durability.persist_to\" : \"NONE\",\r\n\t\"couchbase.durability.replicate_to\" : \"NONE\",\r\n\t\"key.converter\" : \"org.apache.kafka.connect.storage.StringConverter\",\r\n\t\"value.converter\" : \"org.apache.kafka.connect.json.JsonConverter\",\r\n\t\"value.converter.schemas.enable\" : \"false\"\r\n  }\r\n}<\/code><\/pre>\n<\/div>\n<\/div>\n<div class=\"paragraph\">\n<p>Essa configura\u00e7\u00e3o \u00e9 amplamente extra\u00edda do <a href=\"https:\/\/docs.couchbase.com\/kafka-connector\/3.4\/quickstart.html\">In\u00edcio r\u00e1pido do Couchbase<\/a>. Em vez de ser um arquivo de texto para a linha de comando, \u00e9 um HTTP POST. Observe especialmente:<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li><code>conector.class<\/code> - Esta \u00e9 a classe do conector que reside no arquivo JAR<\/li>\n<li><code>t\u00f3picos<\/code> - Os t\u00f3picos dos quais o Couchbase ir\u00e1 afundar.<\/li>\n<li><code>connection.cluster_address<\/code> - Quando iniciei o Couchbase no Docker, dei a ele o nome de \"db\"<\/li>\n<li><code>conex\u00e3o.bucket<\/code>, <code>connection.username<\/code>, <code>connection.password<\/code> - Essas s\u00e3o todas as configura\u00e7\u00f5es que criei ao configurar o Couchbase.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_data_is_now_flowing\">Os dados est\u00e3o fluindo agora<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Agora, os dados devem estar fluindo para o seu bucket do Couchbase. Conecte-se ao Couchbase e voc\u00ea ver\u00e1 4 documentos no bucket de teste (isso corresponde \u00e0s 4 linhas de dados no banco de dados de amostra do MySQL). Adicione ou atualize os dados no banco de dados MySQL e mais registros come\u00e7ar\u00e3o a entrar no bucket do Couchbase automaticamente.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Passei por todo esse processo em minha <a href=\"https:\/\/www.twitch.tv\/matthewdgroves\">Transmiss\u00e3o de c\u00f3digo ao vivo no Twitch<\/a>. Se voc\u00ea quiser ver todo esse processo em a\u00e7\u00e3o, criei um v\u00eddeo de destaque para mostrar todas as etapas:<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>[youtube https:\/\/www.youtube.com\/watch?v=HCAY7EMm3pg&amp;w=560&amp;h=315]<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"sect1\">\n<h2 id=\"_resources_and_next_steps\">Recursos e pr\u00f3ximas etapas<\/h2>\n<div class=\"sectionbody\">\n<div class=\"paragraph\">\n<p>Agora que voc\u00ea concluiu este tutorial, h\u00e1 outras dire\u00e7\u00f5es que voc\u00ea pode seguir para continuar explorando.<\/p>\n<\/div>\n<div class=\"ulist\">\n<ul>\n<li>Orquestra\u00e7\u00e3o: esta amostra cont\u00e9m muitas imagens do Docker que s\u00e3o executadas manualmente. Em um ambiente de produ\u00e7\u00e3o, voc\u00ea provavelmente desejaria orquestrar e dimensionar algumas ou todas essas pe\u00e7as com algo como o Kubernetes. H\u00e1 um <a href=\"https:\/\/docs.couchbase.com\/operator\/current\/overview.html\">Operador do Kubernetes para o Couchbase Enterprise<\/a>.<\/li>\n<li>Cliente 360: O streaming de dados de um banco de dados MySQL para o Couchbase \u00e9 apenas um passo nessa dire\u00e7\u00e3o. Um aplicativo Customer 360 provavelmente extrair\u00e1 dados de uma variedade de outros bancos de dados. Fique atento ao Blog do Couchbase e aos Tutoriais do Couchbase para obter mais informa\u00e7\u00f5es sobre como criar uma arquitetura de ingest\u00e3o do Customer 360.<\/li>\n<\/ul>\n<\/div>\n<div class=\"paragraph\">\n<p>Se tiver perguntas para mim, pode entrar em contato pelo telefone <a href=\"https:\/\/twitter.com\/mgroves\">Twitter @mgroves<\/a>deixe um coment\u00e1rio abaixo ou sintonize em meu pr\u00f3ximo <a href=\"https:\/\/www.twitch.tv\/matthewdgroves\">Transmiss\u00e3o de c\u00f3digo ao vivo<\/a>.<\/p>\n<\/div>\n<div class=\"paragraph\">\n<p>Se voc\u00ea tiver d\u00favidas t\u00e9cnicas sobre o Couchbase ou o Conector Kafka do Couchbase, n\u00e3o deixe de conferir a se\u00e7\u00e3o <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/forums\/\">F\u00f3runs do Couchbase<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Kafka is a streaming platform that can be used to stream records to (Kafka sink) and from (Kafka source) data centers. Couchbase has created and supports a Kafka connector that allows you to easily use Couchbase as a source or [&hellip;]<\/p>","protected":false},"author":71,"featured_media":10893,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[2242,1816],"tags":[1295,1487,1336],"ppma_author":[8937],"class_list":["post-6729","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-connectors","category-couchbase-server","tag-connectors","tag-kafka","tag-mysql"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.5 (Yoast SEO v26.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kafka Connect from MySQL to Couchbase with Debezium<\/title>\n<meta name=\"description\" content=\"Kafka is a streaming platform that can be used to stream records to and from data centers. In this post, we&#039;ll stream data from MySQL to Couchbase.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/kafka-connect-mysql-couchbase-debezium\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kafka Connect from MySQL to Couchbase with Debezium\" \/>\n<meta property=\"og:description\" content=\"Kafka is a streaming platform that can be used to stream records to and from data centers. In this post, we&#039;ll stream data from MySQL to Couchbase.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/kafka-connect-mysql-couchbase-debezium\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-22T17:31:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T02:27:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/1280px-121-hero-queueing-Waiting_in_line_at_a_food_store.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"960\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Matthew Groves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@mgroves\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Groves\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/\"},\"author\":{\"name\":\"Matthew Groves\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\"},\"headline\":\"Kafka Connect from MySQL to Couchbase with Debezium\",\"datePublished\":\"2019-04-22T17:31:16+00:00\",\"dateModified\":\"2025-06-14T02:27:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/\"},\"wordCount\":1037,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/1280px-121-hero-queueing-Waiting_in_line_at_a_food_store.jpeg\",\"keywords\":[\"connectors\",\"kafka\",\"mysql\"],\"articleSection\":[\"Connectors\",\"Couchbase Server\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/\",\"name\":\"Kafka Connect from MySQL to Couchbase with Debezium\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/1280px-121-hero-queueing-Waiting_in_line_at_a_food_store.jpeg\",\"datePublished\":\"2019-04-22T17:31:16+00:00\",\"dateModified\":\"2025-06-14T02:27:46+00:00\",\"description\":\"Kafka is a streaming platform that can be used to stream records to and from data centers. In this post, we'll stream data from MySQL to Couchbase.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/1280px-121-hero-queueing-Waiting_in_line_at_a_food_store.jpeg\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/1280px-121-hero-queueing-Waiting_in_line_at_a_food_store.jpeg\",\"width\":1280,\"height\":960,\"caption\":\"OLYMPUS DIGITAL CAMERA\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kafka Connect from MySQL to Couchbase with Debezium\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58\",\"name\":\"Matthew Groves\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g\",\"caption\":\"Matthew Groves\"},\"description\":\"Matthew D. Groves is a guy who loves to code. It doesn't matter if it's C#, jQuery, or PHP: he'll submit pull requests for anything. He has been coding professionally ever since he wrote a QuickBASIC point-of-sale app for his parent's pizza shop back in the 90s. He currently works as a Senior Product Marketing Manager for Couchbase. His free time is spent with his family, watching the Reds, and getting involved in the developer community. He is the author of AOP in .NET, Pro Microservices in .NET, a Pluralsight author, and a Microsoft MVP.\",\"sameAs\":[\"https:\/\/crosscuttingconcerns.com\",\"https:\/\/x.com\/mgroves\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/matthew-groves\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Kafka Connect do MySQL para o Couchbase com o Debezium","description":"Kafka is a streaming platform that can be used to stream records to and from data centers. In this post, we'll stream data from MySQL to Couchbase.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/kafka-connect-mysql-couchbase-debezium\/","og_locale":"pt_BR","og_type":"article","og_title":"Kafka Connect from MySQL to Couchbase with Debezium","og_description":"Kafka is a streaming platform that can be used to stream records to and from data centers. In this post, we'll stream data from MySQL to Couchbase.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/kafka-connect-mysql-couchbase-debezium\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-04-22T17:31:16+00:00","article_modified_time":"2025-06-14T02:27:46+00:00","og_image":[{"width":1280,"height":960,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/1280px-121-hero-queueing-Waiting_in_line_at_a_food_store.jpeg","type":"image\/jpeg"}],"author":"Matthew Groves","twitter_card":"summary_large_image","twitter_creator":"@mgroves","twitter_misc":{"Written by":"Matthew Groves","Est. reading time":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/"},"author":{"name":"Matthew Groves","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58"},"headline":"Kafka Connect from MySQL to Couchbase with Debezium","datePublished":"2019-04-22T17:31:16+00:00","dateModified":"2025-06-14T02:27:46+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/"},"wordCount":1037,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/1280px-121-hero-queueing-Waiting_in_line_at_a_food_store.jpeg","keywords":["connectors","kafka","mysql"],"articleSection":["Connectors","Couchbase Server"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/","url":"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/","name":"Kafka Connect do MySQL para o Couchbase com o Debezium","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/1280px-121-hero-queueing-Waiting_in_line_at_a_food_store.jpeg","datePublished":"2019-04-22T17:31:16+00:00","dateModified":"2025-06-14T02:27:46+00:00","description":"Kafka is a streaming platform that can be used to stream records to and from data centers. In this post, we'll stream data from MySQL to Couchbase.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/1280px-121-hero-queueing-Waiting_in_line_at_a_food_store.jpeg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/04\/1280px-121-hero-queueing-Waiting_in_line_at_a_food_store.jpeg","width":1280,"height":960,"caption":"OLYMPUS DIGITAL CAMERA"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/kafka-connect-mysql-couchbase-debezium\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Kafka Connect from MySQL to Couchbase with Debezium"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/3929663e372020321b0152dc4fa65a58","name":"Matthew Groves","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ba51e6aacc53995c323a634e4502ef54","url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","caption":"Matthew Groves"},"description":"Matthew D. Groves \u00e9 um cara que adora programar. N\u00e3o importa se \u00e9 C#, jQuery ou PHP: ele enviar\u00e1 solicita\u00e7\u00f5es de pull para qualquer coisa. Ele tem programado profissionalmente desde que escreveu um aplicativo de ponto de venda QuickBASIC para a pizzaria de seus pais nos anos 90. Atualmente, ele trabalha como gerente s\u00eanior de marketing de produtos da Couchbase. Seu tempo livre \u00e9 passado com a fam\u00edlia, assistindo aos Reds e participando da comunidade de desenvolvedores. Ele \u00e9 autor de AOP in .NET, Pro Microservices in .NET, autor da Pluralsight e Microsoft MVP.","sameAs":["https:\/\/crosscuttingconcerns.com","https:\/\/x.com\/mgroves"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/matthew-groves\/"}]}},"authors":[{"term_id":8937,"user_id":71,"is_guest":0,"slug":"matthew-groves","display_name":"Matthew Groves","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/70feb1b28a099ad0112b8d21fe1e81e1a4524beed3e20b7f107d5370e85a07ab?s=96&d=mm&r=g","author_category":"","last_name":"Groves","first_name":"Matthew","job_title":"","user_url":"https:\/\/crosscuttingconcerns.com","description":"Matthew D. Groves \u00e9 um cara que adora programar.  N\u00e3o importa se \u00e9 C#, jQuery ou PHP: ele enviar\u00e1 solicita\u00e7\u00f5es de pull para qualquer coisa.  Ele tem programado profissionalmente desde que escreveu um aplicativo de ponto de venda QuickBASIC para a pizzaria de seus pais nos anos 90.  Atualmente, ele trabalha como gerente s\u00eanior de marketing de produtos da Couchbase. Seu tempo livre \u00e9 passado com a fam\u00edlia, assistindo aos Reds e participando da comunidade de desenvolvedores.  Ele \u00e9 autor de AOP in .NET, Pro Microservices in .NET, autor da Pluralsight e Microsoft MVP."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/6729","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/71"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=6729"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/6729\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/10893"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=6729"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=6729"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=6729"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=6729"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}