开云体育官方注册网址Debezium博客

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事件。

Baidu
map