MySQL 5.7引入了一种新的数据类型存储和处理JSON数据.客户端可以使用newJSON数据类型,它们可以使用SQL语句和新的内置JSON函数存储和读取JSON数据,从其他关系列构造JSON数据,反省JSON值的结构,并在JSON数据中搜索和操作。可以在表上定义生成的列,这些列的值是从同一表的另一列的JSON值计算出来的,然后用这些生成的列定义索引。总的来说,这是MySQL中非常强大的特性。

开云体育官方注册网址Debezium的MySQL连接器将支持JSON从即将发布的0.3.4版本开始的数据类型。JSON文档、数组和标量值将以字符串的形式出现在更改事件中io.开云体育官方注册网址debezium.data.json模式名。这将使消费者很自然地处理JSON数据。顺便说一句,这与MongoDB连接器用于表示JSON数据的语义模式类型相同。

这听起来很简单,我们也希望如此。但实现这个需要大量的工作。这是因为尽管MySQL将JSON数据作为字符串公开给客户端应用程序,在内部它以特殊的二进制形式存储所有JSON数据,允许MySQL引擎在查询、JSON函数和生成的列中有效地访问JSON数据。所有JSON数据也以这种二进制形式出现在binlog中,这意味着如果我们想提取更有用的字符串表示,我们必须自己解析二进制形式。编写和测试这个解析器花费了一些时间和精力,最终我们捐赠献给优秀的人MySQL binlog客户端库连接器在内部使用它来读取binlog事件。

我们要谢谢你斯坦利Shyiko他指导我们并帮助我们调试binlog中解析JSON的最终问题,接受我们建议的更改到他的库中,在需要时快速释放他的库,并在这个和其他问题上做出如此快速的响应!

兰德尔Hauch

Randall是Red Hat的一名开源软件开发人员,在数据集成领域工作了近20年。他是Debezium的创始人,并参与了其他开云体育官方注册网址几个开源项目。他住在伊利诺伊州圣路易斯附近的爱德华维尔。


关于Debe开云体育官方注册网址zium

开云体育官方注册网址Debezium是一个开源的分布式平台,它将现有数据库转换为事件流,因此应用程序几乎可以立即看到并响应数据库中提交的每一个行级更改。开云体育电动老虎机开云体育官方注册网址Debezium是建立在卡夫卡并提供卡夫卡连接监控特定数据库管理系统的兼容连接器。开云体育电动老虎机开云体育官方注册网址Debezium在Kafka日志中记录了数据更改的历史,所以你的应用程序可以在任何时候停止和重新启动,并且可以很容易地使用它没有运行时错过的所有事件,确保所有事件都被正确和完整地处理。开云体育官方注册网址Debezium是开源Apache许可证,版本2.0

参与

我们希望您觉得Debezium有趣开云体育官方注册网址且有用,并愿意尝试一下。在Twitter上关注我们@开云体育官方注册网址debezium在Zulip上和我们聊天,或加入我们的邮件列表与社区对话。所有的代码都是开源的GitHub上,因此在本地构建代码并帮助我们改进现有连接器并添加更多连接器。如果您发现了问题或对我们如何改进Debezium有想法,请告诉我们开云体育官方注册网址记录问题

Baidu
map