本发明涉及计算机软件技术领域,尤其涉及一种自动化数据查询同步存储系统。
背景技术:
随着互联网技术的发展,对于数据的存储、查询已由单一的数据库操作逐渐发展到多样化,其中Elasticserach(开源数据存储工具)在复杂查询的速度上用户体验明显优于数据库。但由于数据库的稳定性、安全性表现突出,又不能完全的抛开数据库独立的使用ES作为存储的容器。一种使用数据库充当数据容器,ES来实现快速查询的模型就产生。既能够确保数据的准确性,又能确保复杂查询的速度。因此,如何确保数据库和ES的数据完全一致成为一个技术难点。
当前同步模型趋向于控制数据的入口,在数据入库时同步更新数据库和开源数据存储工具的内容,确保数据一致,但两套逻辑其中任何一方失败都会导致数据的不一致,故需要再以数据库数据为原始数据进行全量校验。该模型能够实现快速查询复杂逻辑的要求,但是从代码开发层面,需要付出大量的开发成本。
技术实现要素:
本发明要解决的技术问题是提供一种自动化数据查询同步存储系统,该自动化数据查询同步存储系统能自动捕获数据库中更新数据并同步至开源数据存储工具,节约开发人员开发成本,无需进行开源数据存储工具同步、校验,系统各环节都实现可配置化,能够按配置的灵活的添加、删除新旧业务。
为解决上述技术问题,本发明提供了一种自动化数据查询同步存储系统,包括:
数据库;
开源数据存储工具,用于快速对复杂多样化的待查询的数据进行存储;
数据缓存工具,用于对查询过程中数据进行缓存;
消息队列单元,用于对变更信息进行队列处理;
获取解析信息单元,获取数据库变更、生成变更信息,分发解析数据并将数据输出给消息队列单元;
及信息同步处理单元,用于将消息队列单元的消息数据同步处理后输入到所述开源数据存储工具;
所述数据库、开源数据存储工具及数据缓存工具通过数据封装单元进行数据交换,所述数据库通过所述获取解析信息单元将数据传输给消息队列单元,所述消息队列单元通过所述信息同步处理单元将消息传输给所述开源数据存储工具;
所述信息同步处理单元包括开源数据同步工具,所述开源数据同步工具自动获取数据库的日志信息,通过指定的数据结构完成对日志信息的解析;
所述开源数据存储工具由索引和类型指定数据空间,所述数据库中表格结构和开源数据存储工具一一映射从而完成数据同步,或者所述数据库中一个表格分别以不同的类型存在于所述开源数据存储工具,针对一份数据,同时同步数据至所述开源数据存储工具中指定的n个类型或类型中的子属性。
优选地,所述获取解析信息单元包括若干个业务服务端、数据集群服务管理服务器及若干个订阅客户端及数据转发中心子单元,所述数据库根据各个所述业务服务端将各种数据分配到各个数据服务端,各个所述订阅客户端通过所述数据集群服务管理服务器获取各个所述业务服务端中的对应的业务数据,各个所述订阅客户端将接收到的数据通过所述数据转发中心子单元进行解析后传给所述消息队列单元。
优选地,所述信息同步处理单元包括业务端数据同步处理子单元、若干消费客户端及数据同步消费服务子单元。
优选地,通过所述订阅客户端订阅指定的数据库及表,使用所述开源数据同步工具获取数据库的日志信息,并通过指定的数据结构完成对日志信息的解析。
优选地,所述获取解析信息单元根据数据库变更的信息配置的不同业务线的信息,并通过所述消息队列单元将变更的数据自动的分发到各业务订阅的消息队列,数据同步消费服务子单元将各业务的数据同步进行物理隔离,再由各个所述对应的消费客户端的消费服务独立完成各自的数据同步。
优选地,所述开源数据存储工具及所述数据缓存工具包括集群、索引、类型。
优选地,所述数据库包括数据库链接基本信息、数据库索引、数据表。
优选地,所述消息队列单元指定待消费数据源。
优选地,所述数据同步服务单元设定消费模型,并指定消费者按何种模型进行消费。
采用了上述系统之后,获取解析信息单元获取数据库变更数据,判断是否订阅自动化同步服务信息,如果是,则生成变更信息,所述消息队列单元分发业务信息至信息同步处理单元,所述信息同步处理单元对所述消息队列单元分发的业务信息进行数据同步,如果否,则结束生成变更信息;所述消息队列单元输入口为获取数据库变更信息,所述消息队列单元的输出口为输出待进行信息同步处理的业务信息;获取数据库变更信息步骤包括捕获变更数据和生成、分发变更信息到消息队列单元,所述信息同步处理步骤包括将消息队列单元中存放的变更信息自动同步至所述开发源数据存储工具中;所述获取解析信息单元包括数据同步工具,获取解析信息单元获取数据库变更数据并生成变更信息步骤包括:将数据同步工具定义成从服务器库,向数据库发送dump协议,数据库收到dump协议后将二进制日志信息发送给从服务器库,所述数据同步工具对二进制日志信息进行解析,获取数据库的数据变化,该自动化数据查询同步存储系统能自动捕获数据库中更新数据并同步至开源数据存储工具,节约开发人员开发成本,无需进行开源数据存储工具同步、校验,系统各环节都实现可配置化,能够按配置的灵活的添加、删除新旧业务。
附图说明
图1是本发明的自动化数据查询同步存储系统的整体结构示意图;
图2是本发明自动化数据查询同步存储系统的信息同步处理步骤的流程图;
图3是本发明自动化数据查询同步存储系统的获取解析信息步骤的流程图;
图4是本发明自动化数据查询同步存储系统的不同类型的业务同步模型的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。
请参阅图1,图1是本发明的自动化数据查询同步存储系统的整体结构示意图。
本发明提供的一种自动化数据查询同步存储系统,包括:
数据库20;
开源数据存储工具30,用于快速对复杂多样化的待查询的数据进行存储;
数据缓存工具50,用于对查询过程中数据进行缓存;
消息队列单元16,用于对变更信息进行队列处理;
获取解析信息单元10,获取数据库变更、生成变更信息,分发解析数据并将数据输出给消息队列单元16;
及信息同步处理单元60,用于将消息队列单元16的消息数据同步处理后输入到所述开源数据存储工具30;
数据缓存工具50;
数据库20、开源数据存储工具30及数据缓存工具50通过数据封装单元40进行数据交换,数据库20通过获取解析信息单元10将数据传输给消息队列单元16,消息队列单元16通过所述信息同步处理单元60将消息传输给开源数据存储工具30;
信息同步处理单元60包括开源数据同步工具,开源数据同步工具自动获取数据库的日志信息,通过指定的数据结构完成对日志信息的解析;
请参阅图3,图3是本发明自动化数据查询同步存储系统的获取解析信息步骤的流程图;
获取解析信息单元10包括若干个业务服务端12、数据集群服务管理服务器13、若干个订阅客户端14及数据转发中心子单元15,数据库20根据各个业务服务端12将各种数据分配到各个数据服务端,各个所述订阅客户端14通过数据集群服务管理服务器获取各个业务服务端12中的对应的业务数据,各个订阅客户端14将接收到的数据通过数据转发中心子单元15进行解析后传给消息队列单元16。
信息同步处理单元60包括业务端数据同步处理子单元61、若干消费客户端62及数据同步消费服务子单元63。
通过订阅客户端14订阅指定的数据库20及表,使用开源数据同步工具30获取数据库20的日志信息,并通过指定的数据结构完成对日志信息的解析。
获取解析信息单元10根据数据库20变更的信息配置的不同业务线的信息,并通过消息队列单元16将变更的数据自动的分发到各业务订阅的消息队列,数据同步消费服务子单元25将各业务的数据同步进行物理隔离,再由各个对应的消费客户端62的消费服务独立完成各自的数据同步。
开源数据存储工具30及数据缓存工具50包括集群、索引、类型。
数据库20包括数据库链接基本信息、数据库索引、数据表。
消息队列单元16指定待消费数据源。
信息同步处理单元60设定消费模型,并指定消费者按何种模型进行消费。
请参阅图2,图2是本发明自动化数据查询同步存储系统的信息同步处理步骤的流程图;
数据库变更、生成变更信息即是生产,获取数据同步即是消费。
各业务线各有一个消费者实例,通过配置,获取到业务注册队列,从消息队列单元中获取对应待消费数据,开源数据存储工具30由索引和类型指定数据空间,本实施例中,开源数据存储工具30的同步包括两种模型:
模型一:1:1模型,即数据库20中表格结构和开源数据存储工具30的类型一一映射从而完成数据同步;
模型二:数据库20中一个表格分别以不同的类型存在于开源数据存储工具30,针对一份数据,同时同步数据至开源数据存储工具30中指定的n个类型或类型中的子属性。
以上的同步操作,通过消费者自身的配置即可完成,即当添加一个新业务需要使用数据同步服务,无需做任何代码上的开发,只需按标准化配置,配置好即可完成数据库20和开源数据存储工具30的数据同步。
请参阅图4,图4是本发明自动化数据查询同步存储系统的不同类型的业务同步模型的结构示意图;
图4中共有四条相互独立的业务线,其中业务A、B、C分别订阅了数据同步服务,业务D未订阅同步服务。当业务D中的数据库发生变化,由于未订阅同步服务,更新完数据库后,并未有任何其他操作。业务A、B、C分别订阅了同步分钟中的不同模型。业务A满足1:1模型。数据库表结构能够与的类型一一对应。业务B也满足1:1模型,但其表结构只是某个开源数据存储工具30的类型的子属性。业务C满足1:n模型,即同一个表结构在开源数据存储工具30中有若干份数据需要同步,其数据能够是一个开源数据存储工具30的类型也可以是开源数据存储工具30任一种类型中的一个子属性。当订阅了自动同步服务的业务有相关表数据变化后,同步服务通过开源数据同步工具获取数据库变更日志,解析成消费端指定的数据格式,通过配置的消息队列名,通过数据分发中心将待消费的数据分别的存入对应的消息对列单元队列,获取解析信息单元需要完成数据的捕获、解析、分发。
当消费者服务侦听到对应队列有待消费数据,则开始数据消费。消费者具备高可配性,能够灵活的配置开源数据存储工具30、数据库、消息队列、消费模型。
开源数据存储工具30配置包括集群、索引、类型。
数据库包括数据库链接基本信息、数据库、表。
消费队列指定待消费数据源。消费模型指定消费者按何种模型进行消费。从而能够满足不同业务的不同同步需求。消费者将数据库变更同步至开源数据存储工具30则整个服务流程就完成了。
整个同步服务具备高可配性,业务D若因业务变更需要使用开源数据存储工具30,则只需在生产和消费两个部分,添加对应规范化配置,则能够使用数据的自动化同步。
采用了上述系统之后,获取解析信息单元10获取数据库20变更数据,判断是否订阅自动化同步服务信息,如果是,则生成变更信息,消息队列单元16分发业务信息至信息同步处理单元60,信息同步处理单元60对消息队列单元16分发的业务信息进行数据同步,如果否,则结束生成变更信息;消息队列单元16输入口为获取数据库变更信息,消息队列单元16的输出口为输出待进行信息同步处理的业务信息;获取数据库20变更信息步骤包括捕获变更数据和生成、分发变更信息到消息队列单元16,所述信息同步处理步骤包括将消息队列单元16中存放的变更信息自动同步至开发源数据存储工具30中;获取解析信息单元10包括数据同步工具,获取解析信息单元10获取数据库变更数据并生成变更信息步骤包括:将数据同步工具定义成从服务器库,向数据库20发送dump协议,数据库20收到dump协议后将二进制日志信息发送给从服务器库,所述数据同步工具对二进制日志信息进行解析,获取数据库的数据变化,该自动化数据查询同步存储系统能自动捕获数据库中更新数据并同步至开源数据存储工具,节约开发人员开发成本,无需进行开源数据存储工具同步、校验,系统各环节都实现可配置化,能够按配置的灵活的添加、删除新旧业务。
同时,应当理解的是,以上仅为本发明的优选实施例,不能因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效实现方法,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。