Skip to content

HenryCaiHaiying/maxwell

This branch is 2027 commits behind zendesk/maxwell:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Ben Osheroff
Feb 22, 2017
3b78867 · Feb 22, 2017
Dec 7, 2016
Feb 14, 2017
Feb 20, 2017
Mar 26, 2015
Feb 20, 2017
Sep 16, 2016
Feb 17, 2017
May 23, 2016
Feb 27, 2016
Feb 7, 2017
Feb 22, 2017
Feb 20, 2017
Nov 28, 2016
Feb 17, 2017
Feb 20, 2017
Jan 3, 2017
Jan 2, 2017
Feb 20, 2017

Repository files navigation

This is Maxwell's daemon, an application that reads MySQL binlogs and writes row updates to Kafka as JSON. Maxwell has a low operational bar and produces a consistent, easy to ingest stream of updates. It allows you to easily "bolt on" some of the benefits of stream processing systems without going through your entire code base to add (unreliable) instrumentation points. Common use cases include ETL, cache building/expiring, metrics collection, and search indexing.

advanced features:

  • Can do SELECT * from table (bootstrapping) initial loads of a table.
  • supports automatic position recover on master promotion
  • flexible partitioning schemes for Kakfa - by database, table, primary key, or column
  • Maxwell pulls all this off by acting as a full mysql replica, including a SQL parser for create/alter/drop statements (nope, there was no other way).

→ Download: https://github.com/zendesk/maxwell/releases/download/v1.8.1/maxwell-1.8.1.tar.gz
→ Source: https://github.com/zendesk/maxwell


  mysql> insert into `test`.`maxwell` set id = 1, daemon = 'Stanislaw Lem';
  maxwell: {
    "database": "test",
    "table": "maxwell",
    "type": "insert",
    "ts": 1449786310,
    "xid": 940752,
    "commit": true,
    "data": { "id":1, "daemon": "Stanislaw Lem" }
  }
  mysql> update test.maxwell set daemon = 'firebus!  firebus!' where id = 1;
  maxwell: {
    "database": "test",
    "table": "maxwell",
    "type": "update",
    "ts": 1449786341,
    "xid": 940786,
    "commit": true,
    "data": {"id":1, "daemon": "Firebus!  Firebus!"},
    "old":  {"daemon": "Stanislaw Lem"}
  }
<script> jQuery(document).ready(function () { jQuery("#maxwell-header").append( jQuery("

The Daemon, maybe

") ); jQuery("pre").addClass("home-code"); }); </script>

About

Maxwell's daemon, a mysql-to-json kafka producer

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 90.2%
  • ANTLR 4.5%
  • Ruby 3.2%
  • Makefile 1.1%
  • Shell 1.0%