本文隶属于专栏《大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!
本专栏目录结构和参考文献请见大数据技术体系
Maxwell 是一个能实时读取 MySQL 二进制日志 binlog ,并生成 JSON 格式的消息,作为生产者发送给 Kafka、 Kinesis、 RabbitMQ、 Redis、 Google CloudPub/Sub、文件或其它平台的应用程序。
Maxwell 的常见应用场景有 ETL 、维护缓存、收集表级别的 dml 指标、增量到搜索引擎、数据分区迁移、切库 binlog 回滚方案等。
Maxwell 主要提供了下列功能:
除了 Maxwell 外,目前常用的 MySQL Binlog 解析工具主要有阿里的 canal、mysql_streamer,三个工具对比如下:
canal 由 Java开发,分为服务端和客户端,拥有众多的衍生应用,性能稳定,功能强大;canal 需要自己编写客户端来消费 canal 解析到的数据。
maxwell 相对于 canal 的优势是使用简单,它直接将数据变更输出为 json 字符串,不需要再编写客户端