首批通过分布式安全可靠测评,为关键业务系统打造
使用 Maxwell 读取 OceanBase 数据
更新时间:2024-10-10 21:40:45
Maxwell 是一个读取 MySQL Binlog 并将其转换成 JSON 格式输出的应用程序。它旨在捕获数据库中的所有数据更改事件。本文介绍使用 Maxwell 将 OceanBase 数据库 MySQL 租户的数据输出为 JSON 格式的数据。
前提条件
在使用 Maxwell 之前,确认以下信息:
- 您已安装 oblogproxy。更多信息,参考 安装 oblogproxy 文档。
- 您已安装 Java 1.8 或更高版本。
- 您已下载 Maxwell。更多信息,参考 Maxwell GitHub 项目。
操作步骤
配置 Maxwell。 编辑 Maxwell 目录下的
config.properties文件。如果没有该文件,则复制config.properties.example为config.properties并编辑。user=maxwell password=yourpassword host=源 OceanBase 数据库 MySQL 服务器地址 producer=stdout此配置将 Maxwell 设置为将事件直接输出到标准输出(控制台)。要将数据发送到 Kafka 等其他目标,您需要更改 producer 属性及相关的配置。
启动 Maxwell。
通过下面的命令来启动 Maxwell:
bin/maxwell --config config.properties查看数据变更 在 OceanBase 数据库 数据库中进行数据更改(如插入、更新、删除数据),然后观察 Maxwell 输出的 JSON 数据。步骤 3 命令将 Maxwell 的输出设置为标准输出(stdout)。可能返回的结果如下:
{ "database": "mydb", "table": "mytable", "type": "insert", "ts": 1589372847, "xid": 12345678, "commit": true, "data": { "id": 1, "column1": "value1", "column2": "value2" } }返回结果表明向
mydb.mytable表执行插入操作。
注意
OceanBase 数据库 从 V4.1.0 支持拉丁字符集。如果您将 OceanBase 数据库 作为 Maxwell 的元数据库,且使用的是 V4.1.0 之前的版本,您需要手动构建 Maxwell 的元数据表。
例如,此处删除了 Maxwell 建表语句中的 latin1 字符集。
CREATE TABLE IF NOT EXISTS `databases` (
id bigint auto_increment NOT NULL primary key,
schema_id bigint,
name varchar(255) charset 'utf8',
charset varchar(255),
index (schema_id)
);
为方便起见,本文仅提供了单表示例。请针对其他元数据表执行相同操作。