CN110263028B - 一种应用于搜索服务的全量同步方法 - Google Patents
一种应用于搜索服务的全量同步方法 Download PDFInfo
- Publication number
- CN110263028B CN110263028B CN201910343332.2A CN201910343332A CN110263028B CN 110263028 B CN110263028 B CN 110263028B CN 201910343332 A CN201910343332 A CN 201910343332A CN 110263028 B CN110263028 B CN 110263028B
- Authority
- CN
- China
- Prior art keywords
- tables
- level
- configuration information
- upstream
- information corresponding
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种应用于搜索服务的全量同步方法。该方法能够将应用***中的海量不同数据源类型、不同中心库下的多表关联的复杂业务数据做拉平处理,以高效的速度全量同步至搜索引擎,具有很好的应用前景。
Description
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种应用于搜索服务的全量同步方法。
背景技术
随着信息技术的迅速发展,各应用***的数据量与日俱增。在一些大型应用***中,常常是大数据分布式存储方式,因此,在对用户所需的信息进行查询时,通常需要对不同中心库下的不同数据库做表关联查询,且检索及筛选条件比较复杂,从而导致数据库查询性能较差、响应超时等问题。因此,如何从海量数据中对用户所需的信息进行快速查询和分词检索,是各应用***在建设过程中迫切需要解决的问题。搜索引擎技术由于可以进行数据的实时查询和分词检索,无疑成为解决上述问题的优选方案。但是,现有的数据传输服务只能实现将应用***的数据库中的单表数据进行全部提取并同步至搜索引擎,不能解决多表关联同步至搜索引擎查询的复杂业务场景。
现有的数据传输服务只能实现对应用***的数据库中的单表数据进行全部提取并同步至搜索引擎,并不能实现对多表关联的复杂索引结构进行数据的快速同步传输,具体说明如下:
单表数据传输是指将数据库中的单一的一个表作为源端,将搜索引擎作为目标端,把源端的一个表中的所有数据进行提取传输至搜索引擎,然后以搜索引擎作为应用***的数据源进行数据的查询检索。但单表数据同步至搜索引擎,常常不能满足业务需求。例如,用户想对某电商***中的订单信息通过搜索引擎进行分词检索,此时,用户在搜索引擎中建立一个订单索引,通过现有的数据传输服务,将数据库中的订单表数据进行全部提取并同步至搜索引擎的订单索引中,随后,用户便可通过搜索引擎进行订单数据的查询检索。但是,用户在进行订单查询时,通常也需要将该订单下的商品、物流等相关信息查询出来。由于在搜索引擎中不同索引之间不能做关联查询,因此,用户在将订单数据、该订单下的商品数据和物流数据同步至搜索引擎前,需要对上述数据做关联处理,即,用户以订单表作为主表,以商品表和物流表作为附表,通过关联键将主表中的数据和附表中的数据进行关联,形成包含订单、商品、物流等完善的JSON格式的数据信息,然后将该数据信息同步至搜索引擎的订单索引中。如此,用户在搜索引擎的订单索引中查询检索订单信息时,也会将订单的商品、物流等信息一并查出。
由此可见,单表数据传输不能解决复杂的业务场景,即便现有的一些数据传输服务做了多表关联传输,也只能实现简单关联和小数据量的传输。因此,如何将应用***中的海量不同数据源类型、不同中心库下的多表关联的复杂业务数据做拉平处理,以高效的速度全量同步至搜索引擎,成为业界急需解决的技术难题。
为了解决上述技术问题,本发明提供了一种应用于搜索服务的全量同步方法。
发明内容
本发明所要解决的技术问题是:现有技术中不能将应用***中的海量不同数据源类型、不同中心库下的多表关联的复杂业务数据做拉平处理,以高效的速度全量同步至搜索引擎。
为了解决上述技术问题,本发明提供了一种应用于搜索服务的全量同步方法,包括:
获取需要进行全量同步操作的搜索引擎索引名称;
根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息和数据源配置信息,其中,与所述搜索引擎索引名称对应的索引配置信息包括:利用所述搜索引擎索引名称配置的多个表的数目、所述多个表中的每个表的名称、所述多个表中的每两个表之间的关联关系和关联键、所述多个表中的每个表配置的字段、以及与所述多个表中的每个表对应的数据源配置名称;
通过JDBC与数据库进行连接,并查询所述多个表中的每个表在数据库中存储的数据条数;
根据所述多个表中的每两个表之间的关联关系和关联键,为所述多个表创建表树形结构,其中,所述表树形结构包括多个层级,第一层级上具有一个表,除第一层级之外的其他层级上具有至少一个表;
针对所述表树形结构的每个层级,从最低层级开始到第二层级为止,依次执行以下操作:
利用预设规则,依次将与各层级上的表及其上游表对应的索引配置信息和数据源配置信息、该上游表的名称、以及所述表树形结构中的所有表之间的关联关系存储到堆栈中;
按照存储顺序,依次从堆栈中取出与各层级上的表及其上游表对应的索引配置信息和数据源配置信息,并对各层级上的表及其上游表在数据库中存储的数据进行处理,形成各层级上的表与各层级上的表的上游表的关联表,其中,所述关联表包括:各层级上的表的上游表配置的所有字段,以及分别对各层级上的各表配置的所有字段进行格式转换后形成的JSON格式的数据;
将通过上述操作形成的第一层级上的表与第二层级上的表的关联表中的数据转换为JSON格式的数据,并调用搜索引擎的接口将所述JSON格式的数据写入到搜索引擎中,从而实现了从数据库到搜索引擎的全量同步。
在本发明一优选实施例中,根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息和数据源配置信息,包括:
根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息;
根据与所述搜索引擎索引名称对应的索引配置信息,查询与所述多个表中的每个表对应的数据源配置信息。
在本发明一优选实施例中,根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息,包括:
根据所述搜索引擎索引名称,通过调用搜索引擎的配置库的查询接口,从所述配置库的索引配置表中查询与所述搜索引擎索引名称对应的索引配置信息。
在本发明一优选实施例中,根据与所述搜索引擎索引名称对应的索引配置信息,查询与所述多个表中的每个表对应的数据源配置信息,包括:
根据与所述多个表中的每个表对应的数据源配置名称,通过调用搜索引擎的配置库的查询接口,从所述配置库的数据源配置表中查询与所述多个表中的每个表对应的数据源配置信息。
在本发明一优选实施例中,与所述多个表中的每个表对应的数据源配置信息包括:与所述多个表中的每个表对应的数据源所属的数据库的类型、地址、端口、库名、用户名、以及密码。
在本发明一优选实施例中,与所述多个表中的每个表对应的数据源所属的数据库的类型包括:SQL Server数据库、MYSQL数据库和ORACLE数据库。
在本发明一优选实施例中,在查询所述多个表中的每个表在数据库中存储的数据条数之后,且在根据所述多个表中的每两个表之间的关联关系和关联键,为所述多个表创建表树形结构之前,还包括:
判断所述多个表中的每个表在数据库中存储的数据条数是否为0;
若该表在数据库中存储的数据条数为0,则从与所述搜索引擎索引名称对应的索引配置信息中去除该表。
在本发明一优选实施例中,利用预设规则,依次将与各层级上的表及其上游表对应的索引配置信息和数据源配置信息、该上游表的名称、以及所述表树形结构中的所有表之间的关联关系存储到堆栈中,包括:
针对所述表树形结构的每个层级,从最低层级开始到第二层级为止,均执行以下操作:
依次将与各层级上的表对应的索引配置信息和数据源配置信息、以及与各层级上的表的上游表对应的索引配置信息和数据源配置信息作为一个单元放入到堆栈中,其中,与各层级上的表对应的索引配置信息包括:各层级上的表与各层级上的表的上游表之间的关联关系和关联键、各层级上的表配置的字段、以及与各层级上的表对应的数据源配置名称,与各层级上的表的上游表对应的索引配置信息包括:各层级上的表与各层级上的表的上游表之间的关联关系和关联键、各层级上的表的上游表配置的字段、以及与各层级上的表的上游表对应的数据源配置名称;
依次将与各层级上的表对应的索引配置信息、与各层级上的表的上游表对应的索引配置信息、以及各层级上的表的上游表的名称作为一个单元放入到堆栈中;
将所述表树形结构中的所有表之间的关联关系作为一个单元放入到堆栈中。
在本发明一优选实施例中,按照存储顺序,依次从堆栈中取出与各层级上的表及其上游表对应的索引配置信息和数据源配置信息,并对各层级上的表及其上游表在数据库中存储的数据进行处理,形成各层级上的表与各层级上的表的上游表的关联表,包括:
针对所述表树形结构的每个层级,从最低层级开始到第二层级为止,依次执行以下操作:
将与各层级上的表对应的索引配置信息和数据源配置信息、以及与各层级上的表的上游表对应的索引配置信息和数据源配置信息从堆栈中取出;
将各层级上的表与各层级上的表的上游表在数据库中存储的数据通过异构数据源同步工具上传到服务器的数据仓库中;
通过各层级上的表与各层级上的表的上游表之间的关联键对上传到服务器的数据仓库中的数据进行JOIN关联,形成各层级上的表与各层级上的表的上游表的关联表。
在本发明一优选实施例中,通过各层级上的表与各层级上的表的上游表之间的关联键对上传到服务器的数据仓库中的数据进行JOIN关联,形成各层级上的表与各层级上的表的上游表的关联表,包括:
通过各层级上的表与各层级上的表的上游表之间的关联键,利用结构化查询语句,对上传到服务器的数据仓库中的数据进行JOIN关联,形成各层级上的表与各层级上的表的上游表的关联表。
与现有技术相比,上述方案中的一个或多个实施例可以具有如下优点或有益效果:
应用本发明实施例提供的应用于搜索服务的全量同步方法,能够将应用***中的海量不同数据源类型、不同中心库下的多表关联的复杂业务数据做拉平处理,以高效的速度全量同步至搜索引擎,具有很好的应用前景。
本发明的其它特征和优点将在随后的说明书中阐述,并且部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例共同用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例的应用于搜索服务的全量同步方法的具体流程示意图;
图2为图1中的步骤S102的具体流程示意图;
图3为图1中的步骤S105的具体流程示意图;
图4为图1中的步骤S106的具体流程示意图;
图5为本发明示例性实施例中的表树形结构的示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
为解决现有技术中不能将应用***中的海量不同数据源类型、不同中心库下的多表关联的复杂业务数据做拉平处理,以高效的速度全量同步至搜索引擎的技术问题,本发明实施例提供了一种应用于搜索服务的全量同步方法。
图1为本发明实施例的应用于搜索服务的全量同步方法的具体流程示意图。
如图1所示,本发明实施例的应用于搜索服务的全量同步方法,主要包括以下步骤S101至步骤S107。
在步骤S101中,获取需要进行全量同步操作的搜索引擎索引名称。
在步骤S102中,根据搜索引擎索引名称,查询与搜索引擎索引名称对应的索引配置信息和数据源配置信息。其具体过程如图2所示。
在步骤S1021中,根据搜索引擎索引名称,查询与搜索引擎索引名称对应的索引配置信息。
具体地,根据搜索引擎索引名称,通过调用搜索引擎的配置库(MongoDB)的查询接口,从配置库的索引配置表中查询与搜索引擎索引名称对应的索引配置信息。
其中,与搜索引擎索引名称对应的索引配置信息包括:利用搜索引擎索引名称配置的多个表的数目、多个表中的每个表的名称、多个表中的每两个表之间的关联关系和关联键、多个表中的每个表配置的字段、以及与多个表中的每个表对应的数据源配置名称。
在步骤S1022中,根据与搜索引擎索引名称对应的索引配置信息,查询与多个表中的每个表对应的数据源配置信息。
具体地,根据与多个表中的每个表对应的数据源配置名称,通过调用搜索引擎的配置库(MongoDB)的查询接口,从配置库的数据源配置表中查询与多个表中的每个表对应的数据源配置信息。
其中,与多个表中的每个表对应的数据源配置信息包括:与多个表中的每个表对应的数据源所属的数据库的类型、地址、端口、库名、用户名、以及密码。
优选地,与多个表中的每个表对应的数据源所属的数据库的类型包括:SQLServer数据库、MYSQL数据库和ORACLE数据库。
在步骤S103中,通过JDBC与数据库进行连接,并查询多个表中的每个表在数据库中存储的数据条数。
在本发明一优选实施例中,该步骤还包括:判断多个表中的每个表在数据库中存储的数据条数是否为0。若该表在数据库中存储的数据条数为0,则从与搜索引擎索引名称对应的索引配置信息中去除该表。
在步骤S104中,根据多个表中的每两个表之间的关联关系和关联键,为多个表创建表树形结构。
其中,表树形结构包括多个层级,第一层级上具有一个表,除第一层级之外的其他层级上具有至少一个表。
表树形结构包括:各层级上的表的名称、与各层级上的表对应的索引配置信息和数据源配置信息、各层级上的表的上游表的名称、以及各层级上的表与各层级上的表的上游表之间的关联键名称。
针对表树形结构的每个层级,从最低层级开始到第二层级为止,依次执行以下操作:
在步骤S105中,利用预设规则,依次将与各层级上的表及其上游表对应的索引配置信息和数据源配置信息、该上游表的名称、以及表树形结构中的所有表之间的关联关系存储到堆栈中。其具体过程如图3所示。
具体地,针对表树形结构的每个层级,从最低层级开始到第二层级为止,均执行以下操作:
在步骤S1051中,从最低层级开始到第二层级为止,依次将与各层级上的表对应的索引配置信息和数据源配置信息、以及与各层级上的表的上游表对应的索引配置信息和数据源配置信息作为一个单元放入到堆栈中。其中,与各层级上的表对应的索引配置信息包括:各层级上的表与各层级上的表的上游表之间的关联关系和关联键、各层级上的表配置的字段、以及与各层级上的表对应的数据源配置名称,与各层级上的表的上游表对应的索引配置信息包括:各层级上的表与各层级上的表的上游表之间的关联关系和关联键、各层级上的表的上游表配置的字段、以及与各层级上的表的上游表对应的数据源配置名称。
在步骤S1052中,从最低层级开始到第二层级为止,依次将与各层级上的表对应的索引配置信息、与各层级上的表的上游表对应的索引配置信息、以及各层级上的表的上游表的名称作为一个单元放入到堆栈中。
在步骤S1053中,将表树形结构中的所有表之间的关联关系作为一个单元放入到堆栈中。
在步骤S106中,按照存储顺序,依次从堆栈中取出与各层级上的表及其上游表对应的索引配置信息和数据源配置信息,并对各层级上的表及其上游表在数据库中存储的数据进行处理,形成各层级上的表与各层级上的表的上游表的关联表。其中,关联表包括:各层级上的表的上游表配置的所有字段,以及分别对各层级上的各表配置的所有字段进行格式转换后形成的JSON格式的数据。其具体过程如图4所示。
具体地,针对表树形结构的每个层级,从最低层级开始到第二层级为止,依次执行以下操作:
在步骤S1061中,将与各层级上的表对应的索引配置信息和数据源配置信息、以及与各层级上的表的上游表对应的索引配置信息和数据源配置信息从堆栈中取出。
在步骤S1062中,将各层级上的表与各层级上的表的上游表在数据库中存储的数据通过异构数据源同步工具上传到服务器的数据仓库中。
在步骤S1063中,通过各层级上的表与各层级上的表的上游表之间的关联键对上传到服务器的数据仓库中的数据(即,各层级上的表与各层级上的表的上游表在数据库中存储的数据)进行JOIN关联,形成各层级上的表与各层级上的表的上游表的关联表。
具体地,通过各层级上的表与各层级上的表的上游表之间的关联键,利用结构化查询语句(SQL),对上传到服务器的数据仓库中的数据进行JOIN关联,形成各层级上的表与各层级上的表的上游表的关联表。
在步骤S107中,将通过上述操作形成的第一层级上的表与第二层级上的表的关联表中的数据转换为JSON格式的数据,并调用搜索引擎的接口将该JSON格式的数据写入到搜索引擎中,从而实现了从数据库到搜索引擎的全量同步。
应用本发明实施例提供的应用于搜索服务的全量同步方法,能够将应用***中的海量不同数据源类型、不同中心库下的多表关联的复杂业务数据做拉平处理,以高效的速度全量同步至搜索引擎,具有很好的应用前景。
为了便于更好地理解本发明,下面通过示例方式对本发明的技术方案进行详细描述。
在步骤S101中,获取需要进行全量同步操作的搜索引擎索引名称。
在步骤S102中,根据搜索引擎索引名称,查询与搜索引擎索引名称对应的索引配置信息和数据源配置信息。具体过程如下。
在步骤S1021中,根据搜索引擎索引名称,查询与搜索引擎索引名称对应的索引配置信息。
具体地,根据搜索引擎索引名称,通过调用搜索引擎的配置库(MongoDB)的查询接口,从配置库的索引配置表中查询与搜索引擎索引名称对应的索引配置信息。
其中,与搜索引擎索引名称对应的索引配置信息包括:利用搜索引擎索引名称配置的多个表的数目、多个表中的每个表的名称、多个表中的每两个表之间的关联关系和关联键、多个表中的每个表配置的字段、以及与多个表中的每个表对应的数据源配置名称。
在步骤S1022中,根据与搜索引擎索引名称对应的索引配置信息,查询与多个表中的每个表对应的数据源配置信息。
具体地,根据与多个表中的每个表对应的数据源配置名称,通过调用搜索引擎的配置库(MongoDB)的查询接口,从配置库的数据源配置表中查询与多个表中的每个表对应的数据源配置信息。
其中,与多个表中的每个表对应的数据源配置信息包括:与多个表中的每个表对应的数据源所属的数据库的类型、地址、端口、库名、用户名、以及密码。
在步骤S103中,通过JDBC与数据库进行连接,查询多个表中的每个表在数据库中存储的数据条数,并判断多个表中的每个表在数据库中存储的数据条数是否为0。
若该表在数据库中存储的数据条数为0,则从与搜索引擎索引名称对应的索引配置信息中去除该表。
在步骤S104中,根据多个表中的每两个表之间的关联关系和关联键,为多个表创建表树形结构。具体如图5所示。
在本示例中,表树形结构包括三个层级,第一层级上具有一个表(即,一级表A),第二层级上具有两个表(即,位于一级表A下游的、且与一级表A具有关联关系的二级表B和二级表C),第三层级上具有两个表(即,位于二级表B下游的、且与二级表B具有关联关系的三级表D和三级表E)。
针对表树形结构的每个层级,从第三层级开始到第二层级为止,依次执行以下操作:
在步骤S105中,利用预设规则,依次将与各层级上的表及其上游表对应的索引配置信息和数据源配置信息、该上游表的名称、以及表树形结构中的所有表之间的关联关系存储到堆栈中。其具体过程如下。
具体地,在步骤S1051中,首先,将与三级表D和三级表E对应的索引配置信息和数据源配置信息、以及二级表B(即,三级表D和三级表E的上游表)对应的索引配置信息和数据源配置信息作为一个单元放入到堆栈中。然后,将与二级表B和二级表C对应的索引配置信息和数据源配置信息、以及一级表A(即,二级表B和二级表C的上游表)对应的索引配置信息和数据源配置信息作为一个单元放入到堆栈中。
在步骤S1052中,首先,将与三级表D和三级表E对应的索引配置信息、与二级表B(即,三级表D和三级表E的上游表)对应的索引配置信息、以及二级表B的名称作为一个单元放入到堆栈中。然后,将与二级表B和二级表C对应的索引配置信息、与一级表A(即,二级表B和二级表C的上游表)对应的索引配置信息、以及一级表A的名称作为一个单元放入到堆栈中。
在步骤S1053中,将表树形结构中的所有表之间的关联关系(即,一级表A、二级表B、二级表C、三级表D和三级表E之间的关联关系)作为一个单元放入到堆栈中。
在步骤S106中,按照存储顺序,依次从堆栈中取出与各层级上的表及其上游表对应的索引配置信息和数据源配置信息,并对各层级上的表及其上游表在数据库中存储的数据进行处理,形成各层级上的表与各层级上的表的上游表的关联表。其具体过程如下。
具体地,首先,将与三级表D和三级表E对应的索引配置信息和数据源配置信息、以及二级表B(即,三级表D和三级表E的上游表)对应的索引配置信息和数据源配置信息从堆栈中取出。
其次,将三级表D、三级表E和二级表B在数据库中存储的数据通过异构数据源同步工具上传到服务器的数据仓库中,形成三张表(即,三级表D、三级表E和二级表B)。
再次,通过三级表D和三级表E与二级表B之间的关联键,利用结构化查询语句(SQL),对上传到服务器的数据仓库中的数据(即,三级表D、三级表E和二级表B)进行JOIN关联,形成三级表D和三级表E与二级表B的关联表,即B_D_E表。其中,B_D_E表包括:二级表B配置的所有字段、对三级表D配置的所有字段进行格式转换后形成的一条JSON格式的数据、以及对三级表E配置的所有字段进行格式转换后形成的一条JSON格式的数据。
需要说明的是,对三级表D配置的所有字段进行格式转换后形成的一条JSON格式的数据作为B_D_E表中的一个独立字段来存储,对三级表E配置的所有字段进行格式转换后形成的一条JSON格式的数据作为B_D_E表中的一个独立字段来存储。
接着,将与二级表B和二级表C对应的索引配置信息和数据源配置信息、以及一级表A(即,二级表B和二级表C的上游表)对应的索引配置信息和数据源配置信息从堆栈中取出。
接着,将二级表B、二级表C和一级表A在数据库中存储的数据通过异构数据源同步工具上传到服务器的数据仓库中,形成三张表(即,二级表B、二级表C、一级表A)。
最后,通过二级表B和二级表C与一级表A之间的关联键,利用结构化查询语句(SQL),对上传到服务器的数据仓库中的数据(即,二级表B、二级表C和一级表A)进行JOIN关联,形成二级表B和二级表C与一级表A的关联表,即A_B_C表。其中,A_B_C表包括:一级表A配置的所有字段、对B_D_E表中的所有字段进行格式转换后形成的一条JSON格式的数据、以及对二级表C配置的所有字段进行格式转换后形成的一条JSON格式的数据。
需要说明的是,对B_D_E表中的所有字段进行格式转换后形成的一条JSON格式的数据作为A_B_C表中的一个独立字段来存储,对二级表C配置的所有字段进行格式转换后形成的一条JSON格式的数据作为A_B_C表中的一个独立字段来存储。
在步骤S107中,将A_B_C表中的数据转换为JSON格式的数据,并调用搜索引擎的接口将该JSON格式的数据批量写入到搜索引擎中,从而实现了从数据库到搜索引擎的全量同步。
本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
虽然本发明所公开的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所公开的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (10)
1.一种应用于搜索服务的全量同步方法,其特征在于,包括:
获取需要进行全量同步操作的搜索引擎索引名称;
根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息和数据源配置信息,其中,与所述搜索引擎索引名称对应的索引配置信息包括:利用所述搜索引擎索引名称配置的多个表的数目、所述多个表中的每个表的名称、所述多个表中的每两个表之间的关联关系和关联键、所述多个表中的每个表配置的字段、以及与所述多个表中的每个表对应的数据源配置名称;
通过JDBC与数据库进行连接,并查询所述多个表中的每个表在数据库中存储的数据条数;
根据所述多个表中的每两个表之间的关联关系和关联键,为所述多个表创建表树形结构,其中,所述表树形结构包括多个层级,第一层级上具有一个表,除第一层级之外的其他层级上具有至少一个表;
针对所述表树形结构的每个层级,从最低层级开始到第二层级为止,依次执行以下操作:
利用预设规则,依次将与各层级上的表及其上游表对应的索引配置信息和数据源配置信息、该上游表的名称、以及所述表树形结构中的所有表之间的关联关系存储到堆栈中;
按照存储顺序,依次从堆栈中取出与各层级上的表及其上游表对应的索引配置信息和数据源配置信息,并对各层级上的表及其上游表在数据库中存储的数据进行处理,形成各层级上的表与各层级上的表的上游表的关联表,其中,所述关联表包括:各层级上的表的上游表配置的所有字段,以及分别对各层级上的各表配置的所有字段进行格式转换后形成的JSON格式的数据;
将通过上述操作形成的第一层级上的表与第二层级上的表的关联表中的数据转换为JSON格式的数据,并调用搜索引擎的接口将所述JSON格式的数据写入到搜索引擎中,从而实现了从数据库到搜索引擎的全量同步。
2.根据权利要求1所述的应用于搜索服务的全量同步方法,其特征在于,根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息和数据源配置信息,包括:
根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息;
根据与所述搜索引擎索引名称对应的索引配置信息,查询与所述多个表中的每个表对应的数据源配置信息。
3.根据权利要求2所述的应用于搜索服务的全量同步方法,其特征在于,根据所述搜索引擎索引名称,查询与所述搜索引擎索引名称对应的索引配置信息,包括:
根据所述搜索引擎索引名称,通过调用搜索引擎的配置库的查询接口,从所述配置库的索引配置表中查询与所述搜索引擎索引名称对应的索引配置信息。
4.根据权利要求2所述的应用于搜索服务的全量同步方法,其特征在于,根据与所述搜索引擎索引名称对应的索引配置信息,查询与所述多个表中的每个表对应的数据源配置信息,包括:
根据与所述多个表中的每个表对应的数据源配置名称,通过调用搜索引擎的配置库的查询接口,从所述配置库的数据源配置表中查询与所述多个表中的每个表对应的数据源配置信息。
5.根据权利要求4所述的应用于搜索服务的全量同步方法,其特征在于,与所述多个表中的每个表对应的数据源配置信息包括:与所述多个表中的每个表对应的数据源所属的数据库的类型、地址、端口、库名、用户名、以及密码。
6.根据权利要求5所述的应用于搜索服务的全量同步方法,其特征在于,与所述多个表中的每个表对应的数据源所属的数据库的类型包括:SQL Server数据库、MYSQL数据库和ORACLE数据库。
7.根据权利要求1至6中任一项所述的应用于搜索服务的全量同步方法,其特征在于,在查询所述多个表中的每个表在数据库中存储的数据条数之后,且在根据所述多个表中的每两个表之间的关联关系和关联键,为所述多个表创建表树形结构之前,还包括:
判断所述多个表中的每个表在数据库中存储的数据条数是否为0;
若该表在数据库中存储的数据条数为0,则从与所述搜索引擎索引名称对应的索引配置信息中去除该表。
8.根据权利要求7所述的应用于搜索服务的全量同步方法,其特征在于,利用预设规则,依次将与各层级上的表及其上游表对应的索引配置信息和数据源配置信息、该上游表的名称、以及所述表树形结构中的所有表之间的关联关系存储到堆栈中,包括:
针对所述表树形结构的每个层级,从最低层级开始到第二层级为止,均执行以下操作:
依次将与各层级上的表对应的索引配置信息和数据源配置信息、以及与各层级上的表的上游表对应的索引配置信息和数据源配置信息作为一个单元放入到堆栈中,其中,与各层级上的表对应的索引配置信息包括:各层级上的表与各层级上的表的上游表之间的关联关系和关联键、各层级上的表配置的字段、以及与各层级上的表对应的数据源配置名称,与各层级上的表的上游表对应的索引配置信息包括:各层级上的表与各层级上的表的上游表之间的关联关系和关联键、各层级上的表的上游表配置的字段、以及与各层级上的表的上游表对应的数据源配置名称;
依次将与各层级上的表对应的索引配置信息、与各层级上的表的上游表对应的索引配置信息、以及各层级上的表的上游表的名称作为一个单元放入到堆栈中;
将所述表树形结构中的所有表之间的关联关系作为一个单元放入到堆栈中。
9.根据权利要求8所述的应用于搜索服务的全量同步方法,其特征在于,按照存储顺序,依次从堆栈中取出与各层级上的表及其上游表对应的索引配置信息和数据源配置信息,并对各层级上的表及其上游表在数据库中存储的数据进行处理,形成各层级上的表与各层级上的表的上游表的关联表,包括:
针对所述表树形结构的每个层级,从最低层级开始到第二层级为止,依次执行以下操作:
将与各层级上的表对应的索引配置信息和数据源配置信息、以及与各层级上的表的上游表对应的索引配置信息和数据源配置信息从堆栈中取出;
将各层级上的表与各层级上的表的上游表在数据库中存储的数据通过异构数据源同步工具上传到服务器的数据仓库中;
通过各层级上的表与各层级上的表的上游表之间的关联键对上传到服务器的数据仓库中的数据进行JOIN关联,形成各层级上的表与各层级上的表的上游表的关联表。
10.根据权利要求9所述的应用于搜索服务的全量同步方法,其特征在于,通过各层级上的表与各层级上的表的上游表之间的关联键对上传到服务器的数据仓库中的数据进行JOIN关联,形成各层级上的表与各层级上的表的上游表的关联表,包括:
通过各层级上的表与各层级上的表的上游表之间的关联键,利用结构化查询语句,对上传到服务器的数据仓库中的数据进行JOIN关联,形成各层级上的表与各层级上的表的上游表的关联表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910343332.2A CN110263028B (zh) | 2019-04-26 | 2019-04-26 | 一种应用于搜索服务的全量同步方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910343332.2A CN110263028B (zh) | 2019-04-26 | 2019-04-26 | 一种应用于搜索服务的全量同步方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110263028A CN110263028A (zh) | 2019-09-20 |
CN110263028B true CN110263028B (zh) | 2021-06-15 |
Family
ID=67913911
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910343332.2A Active CN110263028B (zh) | 2019-04-26 | 2019-04-26 | 一种应用于搜索服务的全量同步方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110263028B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360367A (zh) * | 2011-09-29 | 2012-02-22 | 广州中浩控制技术有限公司 | 一种xbrl数据搜索方法及搜索引擎 |
CN106657170A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及装置 |
CN107103067A (zh) * | 2017-04-18 | 2017-08-29 | 北京思特奇信息技术股份有限公司 | 一种基于搜索引擎的数据同步方法及*** |
CN108121827A (zh) * | 2018-01-15 | 2018-06-05 | 农信银资金清算中心有限责任公司 | 一种全量数据的同步方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7966426B2 (en) * | 2006-11-14 | 2011-06-21 | Microsoft Corporation | Offline synchronization capability for client application |
US20120078899A1 (en) * | 2010-09-27 | 2012-03-29 | Fontana James A | Systems and methods for defining objects of interest in multimedia content |
-
2019
- 2019-04-26 CN CN201910343332.2A patent/CN110263028B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360367A (zh) * | 2011-09-29 | 2012-02-22 | 广州中浩控制技术有限公司 | 一种xbrl数据搜索方法及搜索引擎 |
CN106657170A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及装置 |
CN107103067A (zh) * | 2017-04-18 | 2017-08-29 | 北京思特奇信息技术股份有限公司 | 一种基于搜索引擎的数据同步方法及*** |
CN108121827A (zh) * | 2018-01-15 | 2018-06-05 | 农信银资金清算中心有限责任公司 | 一种全量数据的同步方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110263028A (zh) | 2019-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106649378B (zh) | 一种数据同步方法及装置 | |
CN111459985B (zh) | 标识信息处理方法及装置 | |
CN107784044B (zh) | 表数据查询方法及装置 | |
CN110245134B (zh) | 一种应用于搜索服务的增量同步方法 | |
CN110659282B (zh) | 数据路由的构建方法、装置、计算机设备和存储介质 | |
CN102262640A (zh) | 一种全文检索文档数据库的方法及装置 | |
CN105468720A (zh) | 集成分布式数据处理***的方法、相应***及其数据处理方法 | |
CN110837520A (zh) | 一种数据处理方法、平台及*** | |
CN111597160A (zh) | 分布式数据库***、分布式数据处理方法和装置 | |
CN110399368B (zh) | 一种定制数据表的方法、数据操作方法及装置 | |
CN110399395A (zh) | 基于预计算的加速查询方法、存储介质 | |
CN102779138A (zh) | 实时数据的硬盘存取方法 | |
CN111460240B (zh) | 一种跨地域多活微服务架构下翻页数据查询方法及装置 | |
CN108984626B (zh) | 一种数据处理方法、装置及服务器 | |
CN110928900A (zh) | 多表数据的查询方法、装置、终端以及计算机存储介质 | |
CN107291938A (zh) | 订单查询***及方法 | |
CN110263028B (zh) | 一种应用于搜索服务的全量同步方法 | |
JP2011216029A (ja) | 分散メモリデータベースシステム、データベースサーバ、データ処理方法およびそのプログラム | |
CN115525655A (zh) | 一种数据查询切片的方法和*** | |
CN103020300A (zh) | 一种信息检索方法和设备 | |
CN105718485B (zh) | 一种将数据录入数据库的方法及装置 | |
CN113032368A (zh) | 一种数据迁移方法、装置、存储介质及平台 | |
CN105868406A (zh) | 基于多数据库的专利检索*** | |
CN102339284B (zh) | 数据库索引的建立方法及其电脑*** | |
CN105447137A (zh) | 一种基于关系数据库从大数据下检索相同主从关系数据的算法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |