什么是Record接口-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

什么是Record接口

云栖大讲堂 2017-10-31 13:44:36 1914

Record代表订阅的RDS binlog中的每条记录,例如begin, commit,update等。

  • String getAttribute(String key)
    这个函数可以获取Record中主要的一些属性值。传入参数为属性名,返回这个属性的值。
    可以调用这个函数获取属性值的属性名及对应的属性值如下表:
key说明
record_id这条Record的ID,这个ID在订阅过程中不保证递增
instance这条Record对应的数据库实例的连接地址,格式为:IP:Port
source_type这条Record对应数据库实例的引擎类型,目前取值为:mysql
source_category这条Record的类型,目前取值为:full_recorded
timestamp这条Record落binlog的时间,这个时间同时也是这条SQL在RDS中执行的时间
checkpoint这条Record对应的binlog文件的位点,格式为:file_offset@file_name,filen_name为binlog文件的数字后缀
record_type这条Record对应的操作类型,主要取值包括:insert/update/delete/replace/ddl/begin/commit/heartbeat
db这条Record更新表,对应的数据库名
table_name这条Record更新表的表名
record_recording这条Record对应的编码
primary这条Record更新表的主键列名
fields_enc这条Record每个字段值的编码,各个字段之间用逗号隔开,如果非字符类型那么取值为空

  • Type getOpt()
    获取这条记录的变更类型,包括:
    insert、delete、update、replace、ddl、begin、commit、heartbeat。
    其中heartbeat为数据传输内部定义的心跳表,主要用于检查订阅通道是否健康,理论上每秒都会产生一条 heartbeat。

  • String getCheckpoint()
    获取这条变更记录在binlog中的位点,返回的位点格式为:binlog_offset@binlog_fid。
    其中binlog_offset为变更记录在binlog文件中的偏移量,binlog_fid为binlog文件的数字后缀,例如binlog文件名为mysql-bin.0008,那么binlog_fid为8。

  • String gettimestamp()
    获取这条变更记录在binlog中记录的运行时间戳。

  • String getDbname()
    获取这条变更记录修改的表所对应的数据库库名。

  • String getTablename()
    获取这条表更记录修改表对应的表名。

  • String getPrimaryKeys()
    获取这条变更记录对应的主键列名,如果是联合主键,那么这些列名之间用逗号分隔。

  • DBType getDbType()
    获得订阅实例的数据库类型,目前数据传输仅支持RDS MySQL,所以这个值为MySQL。

  • String getServerId()
    获取这条变更记录对应的RDS MySQL实例运行进程的IP:PORT。

  • int getFieldCount()
    获取这条变更记录的字段Field的个数。

  • List<Field> getFieldList()
    这个函数的返回结果的数据类型为List <Field >。
    List<Field> 包含了这条变更记录对应表的所有字段的定义及变更前后的镜像值,Field对象的定义详见[backcolor=transparent]Field接口定义。

  • Boolean isFirstInLogevent()
    判断这条Record 是否数据库批量变更中的第一条事务日志,如果是的话返回True,否则返回False。
SQL 关系型数据库 MySQL 数据库 RDS
分享到
取消 提交回答
全部回答(0)
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程