首页 > 解决方案 > 如何使用 nifi CaptureChangeMySQL?

问题描述

介绍

我有一个接收定期更新的 mysql 数据库。我想定期检查这个 mysql 数据库以了解 Nifi 的变化。

为此,CaptureChangeMySQL 处理器似乎很完美。

但是,我无法使其工作。

我按照本教程进行操作,但是在从数据库中插入/删除行时,处理器没有捕获任何内容。


设置


MySQL 配置

它有一个以表命名的数据库testdevice其中包含超过 20k 行。

我的my.cnf文件/etc/mysql/如下:

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
[mysqld]
server_id = 1
log_bin = delta
binlog_format=row
binlog_do_db = source

Nifi CaptureChangeMySQL 配置

配置 CCMySQL


Nifi CDC MapCache 配置(分布式地图缓存客户端服务)

DMCCS 配置


Nifi分布式地图缓存服务器配置

在此处输入图像描述

使用这种配置,我的 CaptureChange 处理器什么都不做(至少什么都不可见)。我做错了什么阻止我使用它?

标签: mysqlhadoopapache-nifi

解决方案


在您的my.cnf文件中,您已设置binlog_do_db = source.

binlog-do-db使 master 只将指定 DB 的 statements 写入其二进制 log。在您的情况下,它应该设置为测试。

参考MySQL 5.7 binlog-do-db=db_name


推荐阅读