{"id":108461,"date":"2025-05-11T02:42:11","date_gmt":"2025-05-10T23:12:11","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/"},"modified":"2025-05-11T02:42:11","modified_gmt":"2025-05-10T23:12:11","slug":"connecting-rdbs-and-search-engines-chapter-3-3jh1","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/","title":{"rendered":"\u0627\u062a\u0635\u0627\u0644 RDB \u0647\u0627 \u0648 \u0645\u0648\u062a\u0648\u0631\u0647\u0627\u06cc \u062c\u0633\u062a\u062c\u0648 &#8211; \u0641\u0635\u0644 3"},"content":{"rendered":"<div data-article-id=\"2476018\" id=\"article-body\">\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u062a\u063a\u06cc\u06cc\u0631 \u0648\u0636\u0639\u06cc\u062a \u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/#%D9%81%D8%B5%D9%84_3_%D8%AA%D8%A3%DB%8C%DB%8C%D8%AF_%D8%AC%D8%B1%DB%8C%D8%A7%D9%86_%D8%A7%D8%B2_postgresql_%D8%A8%D9%87_debezium_%D8%A8%D9%87_Kafka\" >\u0641\u0635\u0644 3: \u062a\u0623\u06cc\u06cc\u062f \u062c\u0631\u06cc\u0627\u0646 \u0627\u0632 postgresql \u0628\u0647 debezium \u0628\u0647 Kafka<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/#1_%D8%B4%D8%B1%D9%88%D8%B9_%D9%85%D8%AD%DB%8C%D8%B7_%D8%B2%DB%8C%D8%B3%D8%AA\" >1. \u0634\u0631\u0648\u0639 \u0645\u062d\u06cc\u0637 \u0632\u06cc\u0633\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/#2_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_postgreSQL\" >2. \u062a\u0646\u0638\u06cc\u0645 postgreSQL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/#3_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%DA%A9%D8%A7%D9%86%D8%AA%DB%8C%D9%86%D8%B1_PostgreSQL\" >3. \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 PostgreSQL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/#4_%D8%AB%D8%A8%D8%AA_%D8%A7%D8%AA%D8%B5%D8%A7%D9%84_Debezium\" >4. \u062b\u0628\u062a \u0627\u062a\u0635\u0627\u0644 Debezium<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/#%D8%AF%D8%B1_%D9%85%D9%88%D8%B1%D8%AF_snapshotmode\" >\u062f\u0631 \u0645\u0648\u0631\u062f snapshot.mode<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/#5_%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C_%D9%88%D8%B6%D8%B9%DB%8C%D8%AA_%D8%A7%D8%AA%D8%B5%D8%A7%D9%84\" >5. \u0628\u0631\u0631\u0633\u06cc \u0648\u0636\u0639\u06cc\u062a \u0627\u062a\u0635\u0627\u0644<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/#6_%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C_%D9%85%D8%A8%D8%A7%D8%AD%D8%AB_%DA%A9%D8%A7%D9%81%DA%A9%D8%A7\" >6. \u0628\u0631\u0631\u0633\u06cc \u0645\u0628\u0627\u062d\u062b \u06a9\u0627\u0641\u06a9\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/#7_%D9%85%D8%B4%D8%A7%D9%87%D8%AF%D9%87_%D8%B1%D9%88%DB%8C%D8%AF%D8%A7%D8%AF%D9%87%D8%A7%DB%8C_CDC_%D8%A7%D8%B2_%DA%A9%D8%A7%D9%81%DA%A9%D8%A7\" >7. \u0645\u0634\u0627\u0647\u062f\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc CDC \u0627\u0632 \u06a9\u0627\u0641\u06a9\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/#8_%D8%AA%D8%A3%DB%8C%DB%8C%D8%AF_%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1%D8%A7%D8%AA_%D8%AF%D8%A7%D8%AF%D9%87_%D9%87%D8%A7%DB%8C_%D8%B2%D9%86%D8%AF%D9%87\" >8. \u062a\u0623\u06cc\u06cc\u062f \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0632\u0646\u062f\u0647<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/#%D9%82%D8%A7%D9%84%D8%A8_%D8%B1%D9%88%DB%8C%D8%AF%D8%A7%D8%AF_Debezium_JSON\" >\u0642\u0627\u0644\u0628 \u0631\u0648\u06cc\u062f\u0627\u062f Debezium JSON<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/#%D8%B9%DB%8C%D8%A8_%DB%8C%D8%A7%D8%A8%DB%8C\" >\u0639\u06cc\u0628 \u06cc\u0627\u0628\u06cc<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/#%D9%85%D9%88%D8%B6%D9%88%D8%B9%DB%8C_%DA%A9%D9%87_%D8%AF%D8%B1_%DA%A9%D8%A7%D9%81%DA%A9%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%86%D8%B4%D8%AF%D9%87_%D8%A7%D8%B3%D8%AA\" >\u0645\u0648\u0636\u0648\u0639\u06cc \u06a9\u0647 \u062f\u0631 \u06a9\u0627\u0641\u06a9\u0627 \u0627\u06cc\u062c\u0627\u062f \u0646\u0634\u062f\u0647 \u0627\u0633\u062a<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/nabfollower.com\/blog\/connecting-rdbs-and-search-engines-chapter-3-3jh1\/#%D9%87%DB%8C%DA%86_%D8%B1%D9%88%DB%8C%D8%AF%D8%A7%D8%AF%DB%8C_%D8%A7%D8%B2_%DA%A9%D8%A7%D9%81%DA%A9%D8%A7_%D9%86%D9%85%D8%A7%DB%8C%D8%B4_%D8%AF%D8%A7%D8%AF%D9%87_%D9%86%D9%85%DB%8C_%D8%B4%D9%88%D8%AF\" >\u0647\u06cc\u0686 \u0631\u0648\u06cc\u062f\u0627\u062f\u06cc \u0627\u0632 \u06a9\u0627\u0641\u06a9\u0627 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0646\u0645\u06cc \u0634\u0648\u062f<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"%D9%81%D8%B5%D9%84_3_%D8%AA%D8%A3%DB%8C%DB%8C%D8%AF_%D8%AC%D8%B1%DB%8C%D8%A7%D9%86_%D8%A7%D8%B2_postgresql_%D8%A8%D9%87_debezium_%D8%A8%D9%87_Kafka\"><\/span>\n<p>  \u0641\u0635\u0644 3: \u062a\u0623\u06cc\u06cc\u062f \u062c\u0631\u06cc\u0627\u0646 \u0627\u0632 postgresql \u0628\u0647 debezium \u0628\u0647 Kafka<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0641\u0635\u0644 \u060c \u0645\u0627 \u0631\u0648\u0646\u062f \u067e\u0627\u06cc\u0627\u0646 \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u06af\u0631\u0641\u062a\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0632 PostgreSQL \u0631\u0627 \u0628\u0627 Debezium \u0648 \u062a\u062d\u0648\u06cc\u0644 \u0622\u0646 \u0628\u0647 Kafka \u0622\u0632\u0645\u0627\u06cc\u0634 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.<\/p>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"1_%D8%B4%D8%B1%D9%88%D8%B9_%D9%85%D8%AD%DB%8C%D8%B7_%D8%B2%DB%8C%D8%B3%D8%AA\"><\/span>\n<p>  1. \u0634\u0631\u0648\u0639 \u0645\u062d\u06cc\u0637 \u0632\u06cc\u0633\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0642\u0628\u0644 \u0627\u0632 \u0634\u0631\u0648\u0639 \u0627\u06cc\u0646 \u0641\u0635\u0644 \u060c \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062a\u0645\u0627\u0645 \u062e\u062f\u0645\u0627\u062a \u0644\u0627\u0632\u0645 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0622\u0647\u0646\u06af\u0633\u0627\u0632\u06cc Docker \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u0646\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>docker compose up <span class=\"nt\">-d<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062a\u0623\u06cc\u06cc\u062f \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u062c\u0632\u0627\u06cc \u0632\u06cc\u0631 \u062f\u0631 \u062d\u0627\u0644 \u0627\u062c\u0631\u0627 \u0647\u0633\u062a\u0646\u062f:<\/p>\n<ul>\n<li>\u067e\u0633 \u0627\u0632<\/li>\n<li>\u0622\u067e\u0627\u0686\u06cc \u06a9\u0627\u0641\u06a9\u0627<\/li>\n<li>Debezium Connect (Kafka Connect)<\/li>\n<li>\u0628\u0627\u063a \u0648\u062d\u0634<\/li>\n<\/ul>\n<p>\u062f\u06cc\u062f\u0646 <code>docker-compose.yaml<\/code> \u062f\u0631 \u0645\u062e\u0632\u0646 \u0628\u0631\u0627\u06cc \u062c\u0632\u0626\u06cc\u0627\u062a \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u062e\u062f\u0645\u0627\u062a.<\/p>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"2_%D8%AA%D9%86%D8%B8%DB%8C%D9%85_postgreSQL\"><\/span>\n<p>  2. \u062a\u0646\u0638\u06cc\u0645 postgreSQL<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0628\u062a\u062f\u0627 \u062c\u062f\u0648\u0644 \u0631\u0627 \u0627\u06cc\u062c\u0627\u062f \u0645\u06cc \u06a9\u0646\u06cc\u0645 \u06a9\u0647 Debezium \u0646\u0638\u0627\u0631\u062a \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f. \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f <code>postgres\/00-init.sql<\/code>:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight sql\"><code><span class=\"c1\">-- Create Debezium user<\/span>\n<span class=\"k\">CREATE<\/span> <span class=\"k\">ROLE<\/span> <span class=\"n\">debezium<\/span> <span class=\"k\">WITH<\/span> <span class=\"n\">LOGIN<\/span> <span class=\"n\">PASSWORD<\/span> <span class=\"s1\">'dbz'<\/span> <span class=\"n\">REPLICATION<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">-- Create target table<\/span>\n<span class=\"k\">CREATE<\/span> <span class=\"k\">TABLE<\/span> <span class=\"n\">testtable<\/span> <span class=\"p\">(<\/span>\n  <span class=\"n\">id<\/span> <span class=\"nb\">INTEGER<\/span> <span class=\"k\">PRIMARY<\/span> <span class=\"k\">KEY<\/span><span class=\"p\">,<\/span>\n  <span class=\"n\">message<\/span> <span class=\"nb\">VARCHAR<\/span><span class=\"p\">(<\/span><span class=\"mi\">255<\/span><span class=\"p\">)<\/span>\n<span class=\"p\">);<\/span>\n<span class=\"k\">INSERT<\/span> <span class=\"k\">INTO<\/span> <span class=\"n\">testtable<\/span> <span class=\"p\">(<\/span><span class=\"n\">id<\/span><span class=\"p\">,<\/span> <span class=\"n\">message<\/span><span class=\"p\">)<\/span> <span class=\"k\">VALUES<\/span> <span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"s1\">'CDC test row'<\/span><span class=\"p\">);<\/span>\n\n<span class=\"c1\">-- Grant SELECT permission<\/span>\n<span class=\"k\">GRANT<\/span> <span class=\"k\">SELECT<\/span> <span class=\"k\">ON<\/span> <span class=\"n\">testtable<\/span> <span class=\"k\">TO<\/span> <span class=\"n\">debezium<\/span><span class=\"p\">;<\/span>\n\n<span class=\"c1\">-- Create publication (for pgoutput plugin)<\/span>\n<span class=\"k\">CREATE<\/span> <span class=\"n\">PUBLICATION<\/span> <span class=\"n\">debezium_pub<\/span> <span class=\"k\">FOR<\/span> <span class=\"k\">TABLE<\/span> <span class=\"n\">testtable<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0627\u06cc\u0646 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0627\u062c\u0631\u0627 \u0645\u06cc \u0634\u0648\u062f <strong>\u0641\u0642\u0637 \u06cc\u06a9 \u0628\u0627\u0631<\/strong> \u062f\u0631 \u062d\u06cc\u0646 \u0627\u06cc\u062c\u0627\u062f \u0638\u0631\u0648\u0641 \u0627\u0648\u0644\u06cc\u0647.<br \/>\u0628\u0631\u0627\u06cc \u0627\u0639\u0645\u0627\u0644 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0631 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u060c \u0628\u0627\u06cc\u062f \u062d\u062c\u0645 \u0645\u062f\u0627\u0648\u0645 \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0631\u062f\u0647 \u0648 \u0645\u062c\u062f\u062f\u0627\u064b \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>docker compose down <span class=\"nt\">--volumes<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"3_%D9%BE%DB%8C%DA%A9%D8%B1%D8%A8%D9%86%D8%AF%DB%8C_%DA%A9%D8%A7%D9%86%D8%AA%DB%8C%D9%86%D8%B1_PostgreSQL\"><\/span>\n<p>  3. \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc \u06a9\u0627\u0646\u062a\u06cc\u0646\u0631 PostgreSQL<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0628\u0631\u0627\u06cc \u0641\u0639\u0627\u0644 \u06a9\u0631\u062f\u0646 CDC \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 WAL (\u0648\u0631\u0648\u062f \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645) \u060c \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0631\u0627 \u0628\u0647 \u0645\u0648\u0627\u0631\u062f \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f <code>docker-compose.yaml<\/code> \u067e\u06cc\u06a9\u0631\u0628\u0646\u062f\u06cc:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight yaml\"><code><span class=\"na\">command<\/span><span class=\"pi\">:<\/span> <span class=\"pi\">&gt;<\/span>\n  <span class=\"s\">postgres<\/span>\n  <span class=\"s\">-c wal_level=logical<\/span>\n  <span class=\"s\">-c max_replication_slots=4<\/span>\n  <span class=\"s\">-c max_wal_senders=4<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u0645\u062c\u062f\u062f postgresql \u0628\u062f\u0648\u0646 \u0627\u0632 \u062f\u0633\u062a \u062f\u0627\u062f\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>docker compose restart postgres\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0628\u0631\u0627\u06cc \u0634\u0631\u0648\u0639 \u0645\u062c\u062f\u062f SQL \u060c \u0628\u0627\u06cc\u062f \u062d\u062c\u0645 \u0631\u0627 \u062d\u0630\u0641 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>docker compose down <span class=\"nt\">--volumes<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"4_%D8%AB%D8%A8%D8%AA_%D8%A7%D8%AA%D8%B5%D8%A7%D9%84_Debezium\"><\/span>\n<p>  4. \u062b\u0628\u062a \u0627\u062a\u0635\u0627\u0644 Debezium<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u067e\u0633 \u0627\u0632 \u0627\u062c\u0631\u0627\u06cc DeBezium Connect \u060c \u0627\u062a\u0635\u0627\u0644 \u0631\u0627 \u0628\u0627 \u062f\u0633\u062a\u0648\u0631 \u0632\u06cc\u0631 \u062b\u0628\u062a \u06a9\u0646\u06cc\u062f (\u0641\u0631\u0645\u062a DeBezium 1.9):<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>curl <span class=\"nt\">-X<\/span> POST <span class=\"s2\">\"localhost:8083\/connectors\"<\/span> <span class=\"se\">\\<\/span>\n  <span class=\"nt\">-H<\/span> <span class=\"s2\">\"Content-Type: application\/json\"<\/span> <span class=\"se\">\\<\/span>\n  <span class=\"nt\">-d<\/span> <span class=\"s1\">'{\n    \"name\": \"postgres-connector\",\n    \"config\": {\n      \"connector.class\": \"io.debezium.connector.postgresql.PostgresConnector\",\n      \"database.hostname\": \"postgres\",\n      \"database.port\": \"5432\",\n      \"database.user\": \"debezium\",\n      \"database.password\": \"dbz\",\n      \"database.dbname\": \"postgres\",\n      \"database.server.name\": \"dbserver1\",\n      \"topic.prefix\": \"dbserver1\",\n      \"plugin.name\": \"pgoutput\",\n      \"publication.name\": \"debezium_pub\",\n      \"slot.name\": \"debezium_slot\",\n      \"slot.drop.on.stop\": \"true\",\n      \"table.include.list\": \"public.testtable\",\n      \"snapshot.mode\": \"initial\",\n      \"tombstones.on.delete\": \"false\",\n      \"key.converter\": \"org.apache.kafka.connect.json.JsonConverter\",\n      \"value.converter\": \"org.apache.kafka.connect.json.JsonConverter\",\n      \"key.converter.schemas.enable\": \"false\",\n      \"value.converter.schemas.enable\": \"false\"\n    }\n  }'<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AF%D8%B1_%D9%85%D9%88%D8%B1%D8%AF_snapshotmode\"><\/span>\n<p>  \u062f\u0631 \u0645\u0648\u0631\u062f <code>snapshot.mode<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062f\u0631 <code>snapshot.mode<\/code> \u06af\u0632\u06cc\u0646\u0647 \u06a9\u0646\u062a\u0631\u0644 \u0645\u06cc \u06a9\u0646\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0645\u062d\u062a\u0648\u06cc\u0627\u062a \u06a9\u0627\u0645\u0644 \u067e\u0627\u06cc\u06af\u0627\u0647 \u062f\u0627\u062f\u0647 \u0631\u0627 \u062f\u0631 \u0631\u0627\u0647 \u0627\u0646\u062f\u0627\u0632\u06cc \u06a9\u0627\u0646\u06a9\u062a\u0648\u0631 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<ul>\n<li>\n<code>initial<\/code>: \u062a\u0645\u0627\u0645 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0631\u0627 \u06cc\u06a9 \u0628\u0627\u0631 \u0628\u0627\u0631\u06af\u06cc\u0631\u06cc \u06a9\u0646\u06cc\u062f \u060c \u0633\u067e\u0633 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0631\u0627 \u0636\u0628\u0637 \u06a9\u0646\u06cc\u062f (\u067e\u06cc\u0634 \u0641\u0631\u0636)<\/li>\n<li>\n<code>never<\/code>: \u067e\u0631\u0634 \u0628\u0627\u0631 \u0627\u0648\u0644\u06cc\u0647 \u061b \u0641\u0642\u0637 \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u0628\u0639\u062f\u06cc \u0631\u0627 \u0636\u0628\u0637 \u06a9\u0646\u06cc\u062f<\/li>\n<\/ul>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0631\u0627\u0647\u0646\u0645\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u06cc\u0645 <code>initial<\/code>\u060c \u0628\u0646\u0627\u0628\u0631\u0627\u06cc\u0646 \u0631\u062f\u06cc\u0641 \u0647\u0627\u06cc \u0645\u0648\u062c\u0648\u062f \u0628\u0627 \u06a9\u0627\u0641\u06a9\u0627 \u0627\u0631\u0633\u0627\u0644 \u0645\u06cc \u0634\u0648\u0646\u062f <code>op: r<\/code> (\u0628\u062e\u0648\u0627\u0646\u06cc\u062f).<\/p>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"5_%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C_%D9%88%D8%B6%D8%B9%DB%8C%D8%AA_%D8%A7%D8%AA%D8%B5%D8%A7%D9%84\"><\/span>\n<p>  5. \u0628\u0631\u0631\u0633\u06cc \u0648\u0636\u0639\u06cc\u062a \u0627\u062a\u0635\u0627\u0644<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0648\u0636\u0639\u06cc\u062a \u0627\u062a\u0635\u0627\u0644 \u0631\u0627 \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>curl http:\/\/localhost:8083\/connectors\/postgres-connector\/status\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062e\u0631\u0648\u062c\u06cc \u0645\u0648\u0631\u062f \u0627\u0646\u062a\u0638\u0627\u0631:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight json\"><code><span class=\"p\">{<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"name\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"postgres-connector\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"connector\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"state\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"RUNNING\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"worker_id\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"10.4.1.81:8083\"<\/span><span class=\"w\">\n  <\/span><span class=\"p\">},<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"tasks\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">[<\/span><span class=\"w\">\n    <\/span><span class=\"p\">{<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"id\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"state\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"RUNNING\"<\/span><span class=\"p\">,<\/span><span class=\"w\">\n      <\/span><span class=\"nl\">\"worker_id\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"10.4.1.81:8083\"<\/span><span class=\"w\">\n    <\/span><span class=\"p\">}<\/span><span class=\"w\">\n  <\/span><span class=\"p\">],<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"type\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"source\"<\/span><span class=\"w\">\n<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"6_%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C_%D9%85%D8%A8%D8%A7%D8%AD%D8%AB_%DA%A9%D8%A7%D9%81%DA%A9%D8%A7\"><\/span>\n<p>  6. \u0628\u0631\u0631\u0633\u06cc \u0645\u0628\u0627\u062d\u062b \u06a9\u0627\u0641\u06a9\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0645\u0628\u0627\u062d\u062b \u06a9\u0627\u0641\u06a9\u0627 \u0631\u0627 \u0644\u06cc\u0633\u062a \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"c\"># Enter Kafka container<\/span>\ndocker compose <span class=\"nb\">exec <\/span>kafka bash\n\n<span class=\"c\"># List topics<\/span>\nkafka-topics <span class=\"nt\">--bootstrap-server<\/span> localhost:9092 <span class=\"nt\">--list<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062e\u0631\u0648\u062c\u06cc \u0645\u0648\u0631\u062f \u0627\u0646\u062a\u0638\u0627\u0631:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>dbserver1.public.testtable\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"7_%D9%85%D8%B4%D8%A7%D9%87%D8%AF%D9%87_%D8%B1%D9%88%DB%8C%D8%AF%D8%A7%D8%AF%D9%87%D8%A7%DB%8C_CDC_%D8%A7%D8%B2_%DA%A9%D8%A7%D9%81%DA%A9%D8%A7\"><\/span>\n<p>  7. \u0645\u0634\u0627\u0647\u062f\u0647 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627\u06cc CDC \u0627\u0632 \u06a9\u0627\u0641\u06a9\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u0627\u0632 \u0645\u0648\u0627\u0631\u062f \u0632\u06cc\u0631 \u0628\u0631\u0627\u06cc \u0645\u0635\u0631\u0641 \u0631\u0648\u06cc\u062f\u0627\u062f\u0647\u0627 \u0627\u0632 \u0645\u0648\u0636\u0648\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>kafka-console-consumer <span class=\"nt\">--bootstrap-server<\/span> localhost:9092 <span class=\"se\">\\<\/span>\n  <span class=\"nt\">--topic<\/span> dbserver1.public.testtable <span class=\"se\">\\<\/span>\n  <span class=\"nt\">--from-beginning<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u0646\u0645\u0648\u0646\u0647 \u062e\u0631\u0648\u062c\u06cc \u0639\u06a9\u0633 \u0641\u0648\u0631\u06cc:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight json\"><code><span class=\"p\">{<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"before\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">null<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"after\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"id\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"message\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"CDC test row\"<\/span><span class=\"w\">\n  <\/span><span class=\"p\">},<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"op\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"r\"<\/span><span class=\"w\">\n<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"8_%D8%AA%D8%A3%DB%8C%DB%8C%D8%AF_%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1%D8%A7%D8%AA_%D8%AF%D8%A7%D8%AF%D9%87_%D9%87%D8%A7%DB%8C_%D8%B2%D9%86%D8%AF%D9%87\"><\/span>\n<p>  8. \u062a\u0623\u06cc\u06cc\u062f \u062a\u063a\u06cc\u06cc\u0631\u0627\u062a \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0632\u0646\u062f\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u06cc\u06a9 \u0631\u062f\u06cc\u0641 \u062c\u062f\u06cc\u062f \u062f\u0631 PostgreSQL \u0627\u0636\u0627\u0641\u0647 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code><span class=\"c\"># Log into PostgreSQL<\/span>\ndocker compose <span class=\"nb\">exec <\/span>postgres psql <span class=\"nt\">-U<\/span> postgres\n\n<span class=\"c\"># Insert new row<\/span>\nINSERT INTO testtable <span class=\"o\">(<\/span><span class=\"nb\">id<\/span>, message<span class=\"o\">)<\/span> VALUES <span class=\"o\">(<\/span>2, <span class=\"s1\">'inserted row'<\/span><span class=\"o\">)<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<p>\u062e\u0631\u0648\u062c\u06cc \u06a9\u0627\u0641\u06a9\u0627 \u0645\u0648\u0631\u062f \u0627\u0646\u062a\u0638\u0627\u0631:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight json\"><code><span class=\"p\">{<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"before\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">null<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"after\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"id\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"message\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"inserted row\"<\/span><span class=\"w\">\n  <\/span><span class=\"p\">},<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"op\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"c\"<\/span><span class=\"w\">\n<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%82%D8%A7%D9%84%D8%A8_%D8%B1%D9%88%DB%8C%D8%AF%D8%A7%D8%AF_Debezium_JSON\"><\/span>\n<p>  \u0642\u0627\u0644\u0628 \u0631\u0648\u06cc\u062f\u0627\u062f Debezium JSON<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>DeBezium \u0627\u0632 \u0642\u0627\u0644\u0628 \u0632\u06cc\u0631 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0627\u0645 \u0647\u0627\u06cc CDC \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f:<\/p>\n<div class=\"table-wrapper-paragraph\">\n<table>\n<thead>\n<tr>\n<th>\n<code>op<\/code>  \u0627\u0631\u0632\u0634<\/th>\n<th>\u0645\u0639\u0646\u06cc<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>r<\/code><\/td>\n<td>\u0639\u06a9\u0633 \u0641\u0648\u0631\u06cc \u062e\u0648\u0627\u0646\u062f\u0647 \u0634\u062f\u0647 (\u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0627\u0648\u0644\u06cc\u0647)<\/td>\n<\/tr>\n<tr>\n<td><code>c<\/code><\/td>\n<td>\u062f\u0631\u062c (\u0627\u06cc\u062c\u0627\u062f)<\/td>\n<\/tr>\n<tr>\n<td><code>u<\/code><\/td>\n<td>\u0628\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06cc<\/td>\n<\/tr>\n<tr>\n<td><code>d<\/code><\/td>\n<td>\u062d\u0630\u0641 \u06a9\u0631\u062f\u0646<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u060c JSON \u0632\u06cc\u0631 \u0628\u0647 \u0627\u06cc\u0646 \u0645\u0639\u0646\u06cc \u0627\u0633\u062a \u06a9\u0647 \u06cc\u06a9 \u0631\u062f\u06cc\u0641 \u062c\u062f\u06cc\u062f \u062f\u0631\u062c \u0634\u062f\u0647 \u0627\u0633\u062a:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight json\"><code><span class=\"p\">{<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"before\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"kc\">null<\/span><span class=\"p\">,<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"after\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"p\">{<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"id\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span><span class=\"w\">\n    <\/span><span class=\"nl\">\"message\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"inserted row\"<\/span><span class=\"w\">\n  <\/span><span class=\"p\">},<\/span><span class=\"w\">\n  <\/span><span class=\"nl\">\"op\"<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"s2\">\"c\"<\/span><span class=\"w\">\n<\/span><span class=\"p\">}<\/span><span class=\"w\">\n<\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<h2><span class=\"ez-toc-section\" id=\"%D8%B9%DB%8C%D8%A8_%DB%8C%D8%A7%D8%A8%DB%8C\"><\/span>\n<p>  \u0639\u06cc\u0628 \u06cc\u0627\u0628\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D9%88%D8%B6%D9%88%D8%B9%DB%8C_%DA%A9%D9%87_%D8%AF%D8%B1_%DA%A9%D8%A7%D9%81%DA%A9%D8%A7_%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF_%D9%86%D8%B4%D8%AF%D9%87_%D8%A7%D8%B3%D8%AA\"><\/span>\n<p>  \u0645\u0648\u0636\u0648\u0639\u06cc \u06a9\u0647 \u062f\u0631 \u06a9\u0627\u0641\u06a9\u0627 \u0627\u06cc\u062c\u0627\u062f \u0646\u0634\u062f\u0647 \u0627\u0633\u062a<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06af\u0631 <code>dbserver1.public.testtable<\/code> \u0638\u0627\u0647\u0631 \u0646\u0645\u06cc \u0634\u0648\u062f \u060c \u0628\u0631\u0631\u0633\u06cc \u06a9\u0646\u06cc\u062f:<\/p>\n<ul>\n<li>\u0627\u06cc\u0646 \u06a9\u0647 <code>debezium_pub<\/code> \u062f\u0631 PostgreSQL \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f:\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight sql\"><code><span class=\"k\">SELECT<\/span> <span class=\"o\">*<\/span> <span class=\"k\">FROM<\/span> <span class=\"n\">pg_publication<\/span><span class=\"p\">;<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>docker compose down <span class=\"nt\">--volumes<\/span>\ndocker compose up <span class=\"nt\">-d<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<ul>\n<li>\u06a9\u0647 \u0633\u06cc\u0627\u0647\u0647\u0647\u0627\u06cc \u0645\u0631\u0628\u0648\u0637 \u0628\u0647 Kafka \u0628\u062f\u0648\u0646 \u062e\u0637\u0627 \u0647\u0633\u062a\u0646\u062f:\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>docker compose logs connect\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%87%DB%8C%DA%86_%D8%B1%D9%88%DB%8C%D8%AF%D8%A7%D8%AF%DB%8C_%D8%A7%D8%B2_%DA%A9%D8%A7%D9%81%DA%A9%D8%A7_%D9%86%D9%85%D8%A7%DB%8C%D8%B4_%D8%AF%D8%A7%D8%AF%D9%87_%D9%86%D9%85%DB%8C_%D8%B4%D9%88%D8%AF\"><\/span>\n<p>  \u0647\u06cc\u0686 \u0631\u0648\u06cc\u062f\u0627\u062f\u06cc \u0627\u0632 \u06a9\u0627\u0641\u06a9\u0627 \u0646\u0645\u0627\u06cc\u0634 \u062f\u0627\u062f\u0647 \u0646\u0645\u06cc \u0634\u0648\u062f<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0627\u06af\u0631 \u062d\u0648\u0627\u062f\u062b CDC \u062f\u0631 \u06a9\u0627\u0641\u06a9\u0627 \u0642\u0627\u0628\u0644 \u0645\u0634\u0627\u0647\u062f\u0647 \u0646\u0628\u0627\u0634\u062f:<\/p>\n<ul>\n<li>\u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u06a9\u0627\u0646\u06a9\u062a\u0648\u0631 \u0627\u0633\u062a <code>RUNNING<\/code> (\u0628\u0647 \u0645\u0631\u062d\u0644\u0647 5 \u0645\u0631\u0627\u062c\u0639\u0647 \u06a9\u0646\u06cc\u062f)<\/li>\n<li>\u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0631\u062f\u06cc\u0641 \u062f\u0631\u062c \u0634\u062f\u0647 \u062f\u0627\u0631\u0627\u06cc \u06cc\u06a9 \u0634\u0646\u0627\u0633\u0647 \u0645\u0646\u062d\u0635\u0631 \u0628\u0647 \u0641\u0631\u062f \u0627\u0633\u062a<\/li>\n<li>\u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u0627\u0632 \u0627\u0628\u062a\u062f\u0627 \u0645\u0635\u0631\u0641 \u0645\u06cc \u06a9\u0646\u06cc\u062f:\n<\/li>\n<\/ul>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>kafka-console-consumer <span class=\"nt\">--bootstrap-server<\/span> localhost:9092 <span class=\"se\">\\<\/span>\n  <span class=\"nt\">--topic<\/span> dbserver1.public.testtable <span class=\"se\">\\<\/span>\n  <span class=\"nt\">--from-beginning<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0631\u0627 \u0648\u0627\u0631\u062f \u06a9\u0646\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<hr\/>\n<p>\u062f\u0631 \u0627\u06cc\u0646 \u0641\u0635\u0644 \u060c \u0645\u0627 \u062c\u0631\u06cc\u0627\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0632 postgreSQL \u0628\u0647 Kafka \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 Debezium \u062a\u0623\u06cc\u06cc\u062f \u06a9\u0631\u062f\u06cc\u0645. \u062f\u0631 \u0641\u0635\u0644 \u0628\u0639\u062f \u060c \u0645\u0627 \u0627\u0632 Flink \u0628\u0631\u0627\u06cc \u067e\u0631\u062f\u0627\u0632\u0634 \u0627\u06cc\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f.<\/p>\n<blockquote>\n<p><em>(\u0628\u0647 \u0632\u0648\u062f\u06cc: \u0641\u0635\u0644 4 \u0642\u0633\u0645\u062a 1 &#8211; \u062e\u0631\u0648\u062c\u06cc \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc CDC Kafka \u0628\u0631\u0627\u06cc \u06a9\u0646\u0633\u0648\u0644 \u0628\u0627 \u0641\u0644\u06cc\u0646\u06a9)<\/em>  <\/p>\n<\/blockquote><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u0641\u0635\u0644 3: \u062a\u0623\u06cc\u06cc\u062f \u062c\u0631\u06cc\u0627\u0646 \u0627\u0632 postgresql \u0628\u0647 debezium \u0628\u0647 Kafka \u062f\u0631 \u0627\u06cc\u0646 \u0641\u0635\u0644 \u060c \u0645\u0627 \u0631\u0648\u0646\u062f \u067e\u0627\u06cc\u0627\u0646 \u0628\u0647 \u067e\u0627\u06cc\u0627\u0646 \u06af\u0631\u0641\u062a\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0632 PostgreSQL \u0631\u0627 \u0628\u0627 Debezium \u0648 \u062a\u062d\u0648\u06cc\u0644 \u0622\u0646 \u0628\u0647 Kafka \u0622\u0632\u0645\u0627\u06cc\u0634 \u062e\u0648\u0627\u0647\u06cc\u0645 \u06a9\u0631\u062f. 1. \u0634\u0631\u0648\u0639 \u0645\u062d\u06cc\u0637 \u0632\u06cc\u0633\u062a \u0642\u0628\u0644 \u0627\u0632 \u0634\u0631\u0648\u0639 \u0627\u06cc\u0646 \u0641\u0635\u0644 \u060c \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062d\u0627\u0635\u0644 \u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062a\u0645\u0627\u0645 \u062e\u062f\u0645\u0627\u062a \u0644\u0627\u0632\u0645 \u0627\u0632 \u0637\u0631\u06cc\u0642 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":108462,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-108461","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/108461","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=108461"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/108461\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/108462"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=108461"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=108461"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=108461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}