CN112507200A - 将数据同步到搜索引擎中的方法和装置 - Google Patents
将数据同步到搜索引擎中的方法和装置 Download PDFInfo
- Publication number
- CN112507200A CN112507200A CN202011581124.5A CN202011581124A CN112507200A CN 112507200 A CN112507200 A CN 112507200A CN 202011581124 A CN202011581124 A CN 202011581124A CN 112507200 A CN112507200 A CN 112507200A
- Authority
- CN
- China
- Prior art keywords
- data
- index
- field
- synchronization
- script
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000013515 script Methods 0.000 claims abstract description 80
- 238000013507 mapping Methods 0.000 claims abstract description 14
- 230000001360 synchronised effect Effects 0.000 claims description 63
- 238000012217 deletion Methods 0.000 claims description 18
- 230000037430 deletion Effects 0.000 claims description 18
- 239000003550 marker Substances 0.000 claims description 14
- 230000015654 memory Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000008520 organization Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
-
- 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/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- 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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的将数据同步到搜索引擎中的方法和装置,方法包括:获取数据同步配置信息;数据同步配置信息包括:ES索引中的索引字段与数据源地址之间的映射关系;ES索引包括至少一个索引类型,每一个索引类型对应至少一个索引字段;获取全量数据同步脚本;在B‑boss工具中运行全量数据同步脚本;全量数据同步脚本用于执行如下操作:根据数据同步配置信息,从数据源地址中提取与索引字段对应的第一字段数据,根据提取的第一字段数据,生成与至少一个索引类型分别对应的第一数据表;将生成的至少一个第一数据表同步到ES索引中。本发明,通过将数据同步到ES索引中,使得ES检索时直接从ES索引中进行检索,无需到数据库中检索,从而可以提高检索效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及将数据同步到搜索引擎中的方法和装置。
背景技术
随着信息技术的飞速发展,数据量也在逐年增长。在存储有大数据量的数据库中搜索目标数据时,需要借助具有强大搜索分析能力的搜索引擎工具来实现。由于数据是存储在关系型数据库中的,而关系型数据库在处理海量数据的检索时,检索效率较低。
发明内容
本发明实施例提供了将数据同步到搜索引擎中的方法和装置,以提高检索效率。
第一方面,本发明实施例提供了一种将数据同步到搜索引擎中的方法,包括:
获取数据同步配置信息;所述数据同步配置信息包括:ES索引中的索引字段与数据源地址之间的映射关系;其中,所述ES索引包括至少一个索引类型,每一个索引类型对应至少一个索引字段;
获取全量数据同步脚本;
在预先部署的B-boss工具中运行所述全量数据同步脚本;
所述全量数据同步脚本用于执行如下操作:根据所述数据同步配置信息,从所述数据源地址中提取与索引字段对应的第一字段数据,根据提取的所述第一字段数据,生成与所述至少一个索引类型分别对应的第一数据表;将生成的至少一个第一数据表同步到所述ES索引中。
优选地,所述数据同步配置信息中还包括:索引类型对应的同步优先级;
所述生成与所述至少一个索引类型分别对应的第一数据表,包括:
A1:在未进行同步的索引类型中确定同步优先级最高的第一索引类型;
A2:从所述第一字段数据中获取与所述第一索引类型所对应索引字段的第二字段数据;
A3:根据所述第二字段数据,生成与所述第一索引类型对应的第二数据表,将所述第二数据表确定为所述第一数据表,执行所述将生成的至少一个第一数据表同步到所述ES索引中,并返回A1,直到不存在未同步的索引类型为止。
优选地,所述数据同步配置信息中还包括:索引字段对应的同步优先级;
所述生成与所述至少一个索引类型分别对应的第一数据表,包括:
B1:在未进行同步的索引字段中确定同步优先级最高的第一索引字段;
B2:确定与所述第一索引字段对应的第二索引类型;
B3:从所述第一字段数据中获取与所述第一索引字段对应的第三字段数据;
B4:根据所述第三字段数据,生成与所述第二索引类型对应的第三数据表,将所述第三数据表确定为所述第一数据表,执行所述将生成的至少一个第一数据表同步到所述ES索引中,并返回B1,直到不存在未同步的索引字段为止。
优选地,进一步包括:每一次同步完成后,将当前次同步的同步时间戳更新到所述数据同步配置信息中;所述数据同步配置信息中还包括:用于进行增量数据同步的时间间隔;
进一步包括:在当前时间点距离所述同步时间戳达到所述时间间隔时,获取增量数据同步脚本,并利用预先部署的logstash运行所述增量数据同步脚本,以执行:对所述数据源地址中的字段数据的标识码进行遍历,将满足预设条件的标识码所对应的第四字段数据进行提取,根据提取的所述第四字段数据,对同步到所述ES索引中的所述第一数据表进行更新。
优选地,所述标识码为时间戳;
将遍历到的时间戳位于所述同步时间戳之后的第一时间戳确定为所述满足预设条件的标识码;
所述对同步到所述ES索引中的所述第一数据表进行更新,包括:确定所述第四字段数据对应的第二索引字段,确定所述第二索引字段对应的第三索引类型;根据所述第四字段数据生成与所述第三索引类型对应的第四数据表,将所述第四数据表同步到所述ES索引中;
和/或,
所述标识码为删除标记码;
将遍历到的删除标记码确定为所述满足预设条件的标识码;
所述对同步到所述ES索引中的所述第一数据表进行更新,包括:确定所述第四字段数据对应的第三索引字段,确定所述第三索引字段对应的第四索引类型;在所述ES索引中与所述第四索引类型对应的第一数据表中所包括的所述第三索引字段的数据上添加所述删除标记码。
第二方面,本发明实施例还提供了一种将数据同步到搜索引擎中的装置,包括:
第一获取单元,用于获取数据同步配置信息;所述数据同步配置信息包括:ES索引中的索引字段与数据源地址之间的映射关系;其中,所述ES索引包括至少一个索引类型,每一个索引类型对应至少一个索引字段;
第二获取单元,用于获取全量数据同步脚本;
第一脚本运行单元,用于在预先部署的B-boss工具中运行所述全量数据同步脚本;所述全量数据同步脚本用于执行如下操作:根据所述数据同步配置信息,从所述数据源地址中提取与索引字段对应的第一字段数据,根据提取的所述第一字段数据,生成与所述至少一个索引类型分别对应的第一数据表;将生成的至少一个第一数据表同步到所述ES索引中。
优选地,所述数据同步配置信息中还包括:索引类型对应的同步优先级;
所述第一脚本运行单元,在执行生成与所述至少一个索引类型分别对应的第一数据表时,包括:
A1:在未进行同步的索引类型中确定同步优先级最高的第一索引类型;
A2:从所述第一字段数据中获取与所述第一索引类型所对应索引字段的第二字段数据;
A3:根据所述第二字段数据,生成与所述第一索引类型对应的第二数据表,将所述第二数据表确定为所述第一数据表,执行所述将生成的至少一个第一数据表同步到所述ES索引中,并返回A1,直到不存在未同步的索引类型为止;
和/或,所述数据同步配置信息中还包括:索引字段对应的同步优先级;
所述第一脚本运行单元,在执行生成与所述至少一个索引类型分别对应的第一数据表时,包括:
B1:在未进行同步的索引字段中确定同步优先级最高的第一索引字段;
B2:确定与所述第一索引字段对应的第二索引类型;
B3:从所述第一字段数据中获取与所述第一索引字段对应的第三字段数据;
B4:根据所述第三字段数据,生成与所述第二索引类型对应的第三数据表,将所述第三数据表确定为所述第一数据表,执行所述将生成的至少一个第一数据表同步到所述ES索引中,并返回B1,直到不存在未同步的索引字段为止。
优选地,进一步包括:更新单元,用于每一次同步完成后,将当前次同步的同步时间戳更新到所述数据同步配置信息中;所述数据同步配置信息中还包括:用于进行增量数据同步的时间间隔;
进一步包括:第二脚本运行单元,用于在当前时间点距离所述同步时间戳达到所述时间间隔时,获取增量数据同步脚本,并利用预先部署的logstash运行所述增量数据同步脚本,以执行:对所述数据源地址中的字段数据的标识码进行遍历,将满足预设条件的标识码所对应的第四字段数据进行提取,根据提取的所述第四字段数据,对同步到所述ES索引中的所述第一数据表进行更新。
第三方面,本发明实施例还提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述中任一项所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述中任一项所述的方法。
本发明实施例提供了将数据同步到搜索引擎中的方法和装置,预先根据需求创建ES索引,并配置ES索引中的索引字段与数据源地址之间的映射关系,利用预先部署的B-boss工具运行全量数据同步脚本,以从数据源地址中提取出与索引字段对应的第一字段数据,根据第一字段数据生成与至少一个索引类型分别对应的第一数据表,将生成的至少一个第一数据表同步到ES索引中,在利用搜索引擎进行数据检索时,可以直接根据ES索引进行检索,无需到存储数据的关系型数据库中检索,从而可以提高检索效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例提供的一种将数据同步到搜索引擎中的方法流程图;
图2是本发明一个实施例提供的另一种将数据同步到搜索引擎中的方法流程图;
图3是本发明一个实施例提供的一种将数据同步到搜索引擎中的装置的结构示意图;
图4是本发明一个实施例提供的另一种将数据同步到搜索引擎中的装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,本发明一个实施例提供的一种将数据同步到搜索引擎中的方法,包括:
步骤101:获取数据同步配置信息;所述数据同步配置信息包括:ES索引中的索引字段与数据源地址之间的映射关系;其中,所述ES索引包括至少一个索引类型,每一个索引类型对应至少一个索引字段;
步骤102:获取全量数据同步脚本;
步骤103:在预先部署的B-boss工具中运行所述全量数据同步脚本;
所述全量数据同步脚本用于执行如下操作:根据所述数据同步配置信息,从所述数据源地址中提取与索引字段对应的第一字段数据,根据提取的所述第一字段数据,生成与所述至少一个索引类型分别对应的第一数据表;将生成的至少一个第一数据表同步到所述ES索引中。
在本发明实施例中,预先根据需求创建ES索引,并配置ES索引中的索引字段与数据源地址之间的映射关系,利用预先部署的B-boss工具运行全量数据同步脚本,以从数据源地址中提取出与索引字段对应的第一字段数据,根据第一字段数据生成与至少一个索引类型分别对应的第一数据表,将生成的至少一个第一数据表同步到ES索引中,在利用搜索引擎进行数据检索时,可以直接根据ES索引进行检索,无需到存储数据的关系型数据库中检索,从而可以提高检索效率。
搜索引擎ES在进行检索时,一般会将检索到的基本信息进行展示,例如,以项目基本信息为为例,展示出的该项目基本信息包括项目名称、参与机构和参与人员。若用户有需要查看基本信息的关联信息时,例如,用户需要查看项目基本信息中参与人员这一关联信息时,通过点击项目基本信息中的参与人员一项,可以将具体的参与人员对应的关联信息进行展示,例如,展示出的关联信息包括人员姓名、人员简介等。在本发明一个实施例中,为了保证搜索引擎在进行检索业务时快速展示,可以先将基本信息进行同步,然后将关联信息进行同步,具体地,所述数据同步配置信息中还包括:索引类型对应的同步优先级;
所述生成与所述至少一个索引类型分别对应的第一数据表,包括:
A1:在未进行同步的索引类型中确定同步优先级最高的第一索引类型;
A2:从所述第一字段数据中获取与所述第一索引类型所对应索引字段的第二字段数据;
A3:根据所述第二字段数据,生成与所述第一索引类型对应的第二数据表,将所述第二数据表确定为所述第一数据表,执行所述将生成的至少一个第一数据表同步到所述ES索引中,并返回A1,直到不存在未同步的索引类型为止。
通过将同步优先级高的索引类型对应的数据表优先进行同步,然后将同步优先级低的索引类型对应的数据表进行同步,从而可以保证了同步优先级高的索引类型对应的数据表的快速同步展示,进一步提高了检索效率。
一般情况下,为了实现搜索引擎在进行检索业务时的快速同步展示,还可以先将较短的字段数据进行同步,然后在同步较长的字段数据,在检索时,可以先展示较短字段数据,在展示较长字段数据,在本发明一个实施例中,所述数据同步配置信息中还包括:索引字段对应的同步优先级;
所述生成与所述至少一个索引类型分别对应的第一数据表,包括:
B1:在未进行同步的索引字段中确定同步优先级最高的第一索引字段;
B2:确定与所述第一索引字段对应的第二索引类型;
B3:从所述第一字段数据中获取与所述第一索引字段对应的第三字段数据;
B4:根据所述第三字段数据,生成与所述第二索引类型对应的第三数据表,将所述第三数据表确定为所述第一数据表,执行所述将生成的至少一个第一数据表同步到所述ES索引中,并返回B1,直到不存在未同步的索引字段为止。
由于在将全量数据同步到搜索引擎之后,对于数据源地址的字段数据还会发生更新,例如,新增数据、修改数据、删除数据等,为了保证搜索引擎在检索业务中检索结果的准确性,需要根据发生更新的数据同步到搜索引擎中,以对同步到搜索引擎中的数据进行更新,具体地,在本发明一个实施例中,可以进一步包括:每一次同步完成后,将当前次同步的同步时间戳更新到所述数据同步配置信息中;所述数据同步配置信息中还包括:用于进行增量数据同步的时间间隔;
进一步包括:在当前时间点距离所述同步时间戳达到所述时间间隔时,获取增量数据同步脚本,并利用预先部署的logstash运行所述增量数据同步脚本,以执行:对所述数据源地址中的字段数据的标识码进行遍历,将满足预设条件的标识码所对应的第四字段数据进行提取,根据提取的所述第四字段数据,对同步到所述ES索引中的所述第一数据表进行更新。
针对新增数据和修改数据,该新增数据和修改数据均对应有时间戳,即新增加一个数据或对数据进行修改后,针对该新增数据或修改数据均对应有一个时间戳,该时间戳为新增数据或修改数据时的时间点信息,在所述标识码为时间戳时,在本发明一个实施例中,针对新增数据和修改数据,可以进行如下方式的更新:
将遍历到的时间戳位于所述同步时间戳之后的第一时间戳确定为所述满足预设条件的标识码;
所述对同步到所述ES索引中的所述第一数据表进行更新,包括:确定所述第四字段数据对应的第二索引字段,确定所述第二索引字段对应的第三索引类型;根据所述第四字段数据生成与所述第三索引类型对应的第四数据表,将所述第四数据表同步到所述ES索引中。
针对新增数据和修改数据可以通过生成数据表的形式对ES索引中的数据表进行更新,针对删除数据无法通过数据表的形式对ES索引中的数据表进行更新,而针对删除数据,在数据库中对数据进行删除后,会有一个删除标记码对删除的数据进行标记,因此,在本发明一个实施例中,在所述标识码为删除标记码时,可以通过该删除标记码确定被删除的数据,将遍历到的删除标记码确定为所述满足预设条件的标识码;
所述对同步到所述ES索引中的所述第一数据表进行更新,包括:确定所述第四字段数据对应的第三索引字段,确定所述第三索引字段对应的第四索引类型;在所述ES索引中与所述第四索引类型对应的第一数据表中所包括的所述第三索引字段的数据上添加所述删除标记码。
由于logstash无法对ES索引中的数据进行删除,因此,通过在ES索引中添加上该删除标记码,用户可以定期手动对ES索引中携带有该删除标记吗的数据进行删除。
下面以需要同步到搜索引擎中的数据为科技项目为例,对数据同步过程进行进一步描述。
请参考图2,本发明实施例提供了一种将数据同步到搜索引擎中的方法,包括:
步骤201:根据需求创建ES索引,该ES索引包括至少一个索引类型,每一个索引类型对应至少一个索引字段。
在本实施例中,可以对科技数据进行分析,可以将科技数据划分为多类实体信息,例如,划分为的实体分别为科技项目、科技人员、科技机构、科技产出、科技政策、科技指南、大型仪器和科技报告。
针对每一类实体分别创建一个ES索引,对创建的ES索引中的索引类型进行定义,可以定义至少一个索引类型,针对每一个索引类型还需要定义索引字段,其中,每一个索引类型对应至少一个索引字段。
例如,创建一个项目索引,该项目索引的索引类型可以包括:项目基本信息、项目参与人员信息、项目参与机构信息、项目领域信息、项目参与人员的领域信息等,针对项目基本信息这一索引类型对应的索引字段可以包括:项目名称、参与机构名称、参与人员名称、项目领域名称等。
在实际进行业务检索时,由于可以先展示基本信息,例如,先展示项目基本信息,对于用户有进一步需求时,例如,想获知项目参与人员信息,在通过点击项目基本信息中的项目参与人员来获取与项目参与人员信息对应的数据表,因此,在定义时,该索引类型也可以通过父子关系来进行定义,如父结构为项目基本信息,子结构为项目参与人员信息、项目参与机构信息、项目领域信息、项目参与人员的领域信息。
针对该八类实体,可以创建8个ES索引,并分别定义有如下索引类型:
科技项目:项目基本信息、项目参与人员信息、项目参与机构信息、项目领域信息、项目参与人员的领域信息;
科研人员:人员基本信息、人员领域信息、人员参与项目信息、人员专项信息;
科研机构:机构基本信息、机构产出信息、机构参与项目信息;
科技产出:产出基本信息、产出完成人信息、产出完成单位信息、产出领域信息、产出所属项目信息;
科技政策:政策基本信息、政策发布机构信息;
科技指南:指南基本信息;
大型仪器:仪器基本信息;
科技报告:报告基本信息。
在对上述索引类型中的索引字段进行定义时,主要包括字段类型、字段长度、字段约束等的定义与维护,例如,常用的字段类型包括字符型、数值型、日期型等。
步骤202:编写增量数据同步脚本和全量数据同步脚本。
数据源地址为关系型数据库,因此,需要根据ES索引中的索引字段与关系型数据库的字段进行比对,确定ES索引中索引字段与数据源地址之间的映射关系,根据该映射关系编写数据同步脚本,该数据同步脚本可以使用sql语句进行查询。
在本发明实施例中,由于针对全量数据和增量数据进行同步时,分别采用B-boss工具和logstash服务器进行同步,因此需要分别编写增量数据同步脚本和全量数据同步脚本。由于B-boss工具和logstash服务器的脚本可以实现复用,因此,在针对增量数据同步脚本编写完成后,可以将增量数据同步脚本进行简单处理,得到全量数据同步脚本,例如,将增量数据同步脚本中的时间戳对应的语句删除,即得到全量数据同步脚本。
增量数据同步脚本和全量数据同步脚本存储在数据库内,其存储路径可以写入数据同步配置信息中。
步骤203:生成数据同步配置信息。
针对每一类实体都需要配置一个数据同步配置信息,该数据同步配置信息可以包括如下三个部分:
Input:数据来源设置区域,即数据来源是哪个服务器中的哪个数据库,为配置的数据源地址,以及还需要配置每一个数据库在连接时的账号和密码,是否开启分页查询以及配置单次分页查询的条数,同事需要设置数据同步脚本的存储路径以及用于实现增量数据同步时的标识码,以及设置用于进行增量数据同步的时间间隔。
Filter:数据加工过滤处理区域,为默认配置。
Output:输出目标设置区域,配置索引字段的地址,即该索引字段所属的索引类型及该索引类型所属的ES索引的名称,另外为了ES的安全,还引入了searchguard用户认证,还需配置ES的访问用户名和密码。
针对上述设置,该数据同步配置信息中即保存了ES索引中索引字段与数据源地址之间的映射关系。
步骤204;部署B-boss工具作为全量数据同步装置,以及部署logstash服务器作为增量数据同步装置。
在针对增量数据进行同步时,可以采用logstash服务器来运行增量数据同步脚本,logstash是一款强大的数据处理工具,它可以实现数据传输、格式处理、格式化输出等功能,还有强大的插件功能,常用于日志处理,因此,可以使用logstash来进行关系数据库到ES的数据同步。仅仅通过简单的配置,就可以非常方便的运用logstash来进行关系型数据库到ES的数据定时同步。
由于在对全量数据进行同步时,对应千万甚至亿级的数据需要进行同步,而logstash同步海量数据过程中会存在深度分页瓶颈,导致同步异常缓慢,若同步时间较长,会影响ES的检索业务的执行,因此logstash不适合初始化的全量数据同步,在本发明实施例中,可以引入B-boss工具来搭配logstash进行数据处理。
B-boss是一套基于query dsl语法操作和访问分布式搜索引擎ES的o/r mapping高性能开发库,运用B-boss进行全量数据的同步操作,极大的提高了海量数据同步到ES的效率,在本发明实施例中,在针对全量数据进行同步时,采用B-boss工具来运行全量数据同步脚本。
步骤205:全量数据的同步。
在第一次向ES中同步数据时,需要将全量数据进行同步,在同步时可以根据数据同步配置信息中全量数据脚本的存储路径获取预先编写的全量数据同步脚本,将全量数据同步脚本在B-boss中运行,执行:根据数据同步配置信息,从数据源地址中提取与索引字段对应的第一字段数据,根据提取的所述第一字段数据,生成与至少一个索引类型分别对应的第一数据表;将生成的至少一个第一数据表同步到所述ES索引中。
例如,针对项目索引中项目基本信息这一类型进行同步时,该项目基本信息中包括的索引字段为:项目名称、参与机构名称和参与人员姓名。可以根据索引字段的数据源地址,提取出对应的第一字段数据,该第一字段数据即包括项目名称、参与机构名称和参与人员姓名,利用该第一字段数据生成项目基本信息表,并将该项目基本信息表同步到ES索引中。
同理,针对八类实体分别对应的ES索引中的索引类型,均通过该方式进行数据同步。
需要说明的是,在全量数据同步完成之后,ES进行业务检索的过程中,可能会需要对ES的数据结构进行变动,那么就需要删除ES中同步的数据,重新定义ES的数据结构,进而进行全量数据的同步;或者,数据库中的源数据已经删除,但由于某些原因,ES中同步的数据未能删除,导致在ES检索时能够检索到该信息,而实际在数据库中该信息已经被删除,那么针对该情况也需要删除ES中同步的数据,重新进行全量数据的同步。
在进行全量数据的同步时,可以通过设置索引类型对应的同步优先级和/或索引字段对应的同步优先级,先对同步优先级高的索引类型和/或索引字段进行同步,然后在同步优先级低的索引类型和/或索引字段,从而可以保证ES快速实现业务检索功能。
步骤206:增量数据的同步。
在全量数据同步完成后,由于数据库中的数据会经常发生变化,因此,需要根据数据同步配置信息中设置的用于进行数据同步的时间间隔,定期进行增量数据的同步。
在进行增量数据的同步时,需要从数据同步配置信息中获取增量数据同步脚本,并在logstash中运行该增量数据同步脚本。
针对新增数据和修改数据,可以通过遍历时间戳的方式确定哪些是新增数据和修改数据,针对新增数据和修改数据生成响应索引类型的数据表,进而进行同步。
而针对删除数据,由于logstash无法通过数据表的形式对ES索引中的数据进行更新,因此,在数据库中对数据进行删除后,会有一个删除标记码对删除的数据进行标记,因此,可以将该删除标记码添加到ES索引中对应的索引字段上,然后用户可以定期在ES中执行删除命令来删除添加有删除标记码的索引字段对应的数据,从而达到同步删除的目的。
为了优化同步效率,达到数据快速入库,还需要对运行内存和ES的运行内存进行不断的调整优化,以保证最优的同步效率。
在本发明实施例中,每一类实体均可以对应一个增量数据同步脚本、全量数据同步脚本,数据同步脚本可以对应一个同步启动命令文件和停止命令文件,可以对不同实体数据进行并行同步,全量数据的同步目前可达到每秒同步10万条记录。
请参考图3,本发明实施例还提供了一种将数据同步到搜索引擎中的装置,包括:
第一获取单元301,用于获取数据同步配置信息;所述数据同步配置信息包括:ES索引中的索引字段与数据源地址之间的映射关系;其中,所述ES索引包括至少一个索引类型,每一个索引类型对应至少一个索引字段;
第二获取单元302,用于获取全量数据同步脚本;
第一脚本运行单元303,用于在预先部署的B-boss工具中运行所述全量数据同步脚本;所述全量数据同步脚本用于执行如下操作:根据所述数据同步配置信息,从所述数据源地址中提取与索引字段对应的第一字段数据,根据提取的所述第一字段数据,生成与所述至少一个索引类型分别对应的第一数据表;将生成的至少一个第一数据表同步到所述ES索引中。
在本发明一个实施例中,所述数据同步配置信息中还包括:索引类型对应的同步优先级;
所述第一脚本运行单元303,在执行生成与所述至少一个索引类型分别对应的第一数据表时,包括:
A1:在未进行同步的索引类型中确定同步优先级最高的第一索引类型;
A2:从所述第一字段数据中获取与所述第一索引类型所对应索引字段的第二字段数据;
A3:根据所述第二字段数据,生成与所述第一索引类型对应的第二数据表,将所述第二数据表确定为所述第一数据表,执行所述将生成的至少一个第一数据表同步到所述ES索引中,并返回A1,直到不存在未同步的索引类型为止;
和/或,所述数据同步配置信息中还包括:索引字段对应的同步优先级;
所述第一脚本运行单元303,在执行生成与所述至少一个索引类型分别对应的第一数据表时,包括:
B1:在未进行同步的索引字段中确定同步优先级最高的第一索引字段;
B2:确定与所述第一索引字段对应的第二索引类型;
B3:从所述第一字段数据中获取与所述第一索引字段对应的第三字段数据;
B4:根据所述第三字段数据,生成与所述第二索引类型对应的第三数据表,将所述第三数据表确定为所述第一数据表,执行所述将生成的至少一个第一数据表同步到所述ES索引中,并返回B1,直到不存在未同步的索引字段为止。
在本发明一个实施例中,请参考图4,该装置可以进一步包括:更新单元401,用于每一次同步完成后,将当前次同步的同步时间戳更新到所述数据同步配置信息中;所述数据同步配置信息中还包括:用于进行增量数据同步的时间间隔;
进一步包括:第二脚本运行单元402,用于在当前时间点距离所述同步时间戳达到所述时间间隔时,获取增量数据同步脚本,并利用预先部署的logstash运行所述增量数据同步脚本,以执行:对所述数据源地址中的字段数据的标识码进行遍历,将满足预设条件的标识码所对应的第四字段数据进行提取,根据提取的所述第四字段数据,对同步到所述ES索引中的所述第一数据表进行更新。
在本发明一个实施例中,所述标识码为时间戳;
将遍历到的时间戳位于所述同步时间戳之后的第一时间戳确定为所述满足预设条件的标识码;
所述第二脚本运行单元402,在执行对同步到所述ES索引中的所述第一数据表进行更新时,包括:确定所述第四字段数据对应的第二索引字段,确定所述第二索引字段对应的第三索引类型;根据所述第四字段数据生成与所述第三索引类型对应的第四数据表,将所述第四数据表同步到所述ES索引中;
在本发明一个实施例中,所述标识码为删除标记码;
将遍历到的删除标记码确定为所述满足预设条件的标识码;
所述第二脚本运行单元402,在执行对同步到所述ES索引中的所述第一数据表进行更新时,包括:确定所述第四字段数据对应的第三索引字段,确定所述第三索引字段对应的第四索引类型;在所述ES索引中与所述第四索引类型对应的第一数据表中所包括的所述第三索引字段的数据上添加所述删除标记码。
需要说明的是,本说明书实施例示意的结构并不构成对将数据同步到搜索引擎中的装置的具体限定。在说明书的另一些实施例中,将数据同步到搜索引擎中的装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本说明书方法实施例基于同一构思,具体内容可参见本说明书方法实施例中的叙述,此处不再赘述。
本发明实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现上述实施例中任一项所述的方法。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行上述实施例中任一项所述的方法。
综上所述,本发明各个实施例中至少具有如下有益效果:
1、在本发明实施例中,预先根据需求创建ES索引,并配置ES索引中的索引字段与数据源地址之间的映射关系,利用预先部署的B-boss工具运行全量数据同步脚本,以从数据源地址中提取出与索引字段对应的第一字段数据,根据第一字段数据生成与至少一个索引类型分别对应的第一数据表,将生成的至少一个第一数据表同步到ES索引中,在利用搜索引擎进行数据检索时,可以直接根据ES索引进行检索,无需到存储数据的关系型数据库中检索,从而可以提高检索效率。
2、在本发明实施例中,通过对索引类型配置同步优先级,将同步优先级高的索引类型对应的数据进行优先同步,将同步优先级低的索引类型对应的数据进行后续同步,从而可以保证ES能够快速进行业务检索。
3、在本发明实施例中,通过对索引字段配置同步优先级,将同步优先级高的索引字段对应的数据进行优先同步,将同步优先级低的索引字段对应的数据进行后续同步,从而可以保证ES能够快速进行业务检索。
4、在本发明实施例中,通过结合B-boss和logstash两者的优势,数据同步脚本可以开发一次,只需对脚本进行简单修改,即可实现两个工具的脚本复用,提高了开发效率。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种将数据同步到搜索引擎中的方法,其特征在于,包括:
获取数据同步配置信息;所述数据同步配置信息包括:ES索引中的索引字段与数据源地址之间的映射关系;其中,所述ES索引包括至少一个索引类型,每一个索引类型对应至少一个索引字段;
获取全量数据同步脚本;
在预先部署的B-boss工具中运行所述全量数据同步脚本;
所述全量数据同步脚本用于执行如下操作:根据所述数据同步配置信息,从所述数据源地址中提取与索引字段对应的第一字段数据,根据提取的所述第一字段数据,生成与所述至少一个索引类型分别对应的第一数据表;将生成的至少一个第一数据表同步到所述ES索引中。
2.根据权利要求1所述的方法,其特征在于,
所述数据同步配置信息中还包括:索引类型对应的同步优先级;
所述生成与所述至少一个索引类型分别对应的第一数据表,包括:
A1:在未进行同步的索引类型中确定同步优先级最高的第一索引类型;
A2:从所述第一字段数据中获取与所述第一索引类型所对应索引字段的第二字段数据;
A3:根据所述第二字段数据,生成与所述第一索引类型对应的第二数据表,将所述第二数据表确定为所述第一数据表,执行所述将生成的至少一个第一数据表同步到所述ES索引中,并返回A1,直到不存在未同步的索引类型为止。
3.根据权利要求1所述的方法,其特征在于,
所述数据同步配置信息中还包括:索引字段对应的同步优先级;
所述生成与所述至少一个索引类型分别对应的第一数据表,包括:
B1:在未进行同步的索引字段中确定同步优先级最高的第一索引字段;
B2:确定与所述第一索引字段对应的第二索引类型;
B3:从所述第一字段数据中获取与所述第一索引字段对应的第三字段数据;
B4:根据所述第三字段数据,生成与所述第二索引类型对应的第三数据表,将所述第三数据表确定为所述第一数据表,执行所述将生成的至少一个第一数据表同步到所述ES索引中,并返回B1,直到不存在未同步的索引字段为止。
4.根据权利要求1所述的方法,其特征在于,
进一步包括:每一次同步完成后,将当前次同步的同步时间戳更新到所述数据同步配置信息中;所述数据同步配置信息中还包括:用于进行增量数据同步的时间间隔;
进一步包括:在当前时间点距离所述同步时间戳达到所述时间间隔时,获取增量数据同步脚本,并利用预先部署的logstash运行所述增量数据同步脚本,以执行:对所述数据源地址中的字段数据的标识码进行遍历,将满足预设条件的标识码所对应的第四字段数据进行提取,根据提取的所述第四字段数据,对同步到所述ES索引中的所述第一数据表进行更新。
5.根据权利要求4所述的方法,其特征在于,
所述标识码为时间戳;
将遍历到的时间戳位于所述同步时间戳之后的第一时间戳确定为所述满足预设条件的标识码;
所述对同步到所述ES索引中的所述第一数据表进行更新,包括:确定所述第四字段数据对应的第二索引字段,确定所述第二索引字段对应的第三索引类型;根据所述第四字段数据生成与所述第三索引类型对应的第四数据表,将所述第四数据表同步到所述ES索引中;
和/或,
所述标识码为删除标记码;
将遍历到的删除标记码确定为所述满足预设条件的标识码;
所述对同步到所述ES索引中的所述第一数据表进行更新,包括:确定所述第四字段数据对应的第三索引字段,确定所述第三索引字段对应的第四索引类型;在所述ES索引中与所述第四索引类型对应的第一数据表中所包括的所述第三索引字段的数据上添加所述删除标记码。
6.一种将数据同步到搜索引擎中的装置,其特征在于,包括:
第一获取单元,用于获取数据同步配置信息;所述数据同步配置信息包括:ES索引中的索引字段与数据源地址之间的映射关系;其中,所述ES索引包括至少一个索引类型,每一个索引类型对应至少一个索引字段;
第二获取单元,用于获取全量数据同步脚本;
第一脚本运行单元,用于在预先部署的B-boss工具中运行所述全量数据同步脚本;所述全量数据同步脚本用于执行如下操作:根据所述数据同步配置信息,从所述数据源地址中提取与索引字段对应的第一字段数据,根据提取的所述第一字段数据,生成与所述至少一个索引类型分别对应的第一数据表;将生成的至少一个第一数据表同步到所述ES索引中。
7.根据权利要求6所述的装置,其特征在于,
所述数据同步配置信息中还包括:索引类型对应的同步优先级;
所述第一脚本运行单元,在执行生成与所述至少一个索引类型分别对应的第一数据表时,包括:
A1:在未进行同步的索引类型中确定同步优先级最高的第一索引类型;
A2:从所述第一字段数据中获取与所述第一索引类型所对应索引字段的第二字段数据;
A3:根据所述第二字段数据,生成与所述第一索引类型对应的第二数据表,将所述第二数据表确定为所述第一数据表,执行所述将生成的至少一个第一数据表同步到所述ES索引中,并返回A1,直到不存在未同步的索引类型为止;
和/或,所述数据同步配置信息中还包括:索引字段对应的同步优先级;
所述第一脚本运行单元,在执行生成与所述至少一个索引类型分别对应的第一数据表时,包括:
B1:在未进行同步的索引字段中确定同步优先级最高的第一索引字段;
B2:确定与所述第一索引字段对应的第二索引类型;
B3:从所述第一字段数据中获取与所述第一索引字段对应的第三字段数据;
B4:根据所述第三字段数据,生成与所述第二索引类型对应的第三数据表,将所述第三数据表确定为所述第一数据表,执行所述将生成的至少一个第一数据表同步到所述ES索引中,并返回B1,直到不存在未同步的索引字段为止。
8.根据权利要求6所述的装置,其特征在于,
进一步包括:更新单元,用于每一次同步完成后,将当前次同步的同步时间戳更新到所述数据同步配置信息中;所述数据同步配置信息中还包括:用于进行增量数据同步的时间间隔;
进一步包括:第二脚本运行单元,用于在当前时间点距离所述同步时间戳达到所述时间间隔时,获取增量数据同步脚本,并利用预先部署的logstash运行所述增量数据同步脚本,以执行:对所述数据源地址中的字段数据的标识码进行遍历,将满足预设条件的标识码所对应的第四字段数据进行提取,根据提取的所述第四字段数据,对同步到所述ES索引中的所述第一数据表进行更新。
9.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-5中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011581124.5A CN112507200A (zh) | 2020-12-28 | 2020-12-28 | 将数据同步到搜索引擎中的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011581124.5A CN112507200A (zh) | 2020-12-28 | 2020-12-28 | 将数据同步到搜索引擎中的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112507200A true CN112507200A (zh) | 2021-03-16 |
Family
ID=74951801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011581124.5A Pending CN112507200A (zh) | 2020-12-28 | 2020-12-28 | 将数据同步到搜索引擎中的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112507200A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676094A (zh) * | 2022-05-27 | 2022-06-28 | 云上(江西)大数据发展有限公司 | 数字化政府项目的全周期管理方法、系统及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107103067A (zh) * | 2017-04-18 | 2017-08-29 | 北京思特奇信息技术股份有限公司 | 一种基于搜索引擎的数据同步方法及系统 |
CN107291768A (zh) * | 2016-04-11 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种索引建立的方法及装置 |
CN109542966A (zh) * | 2018-11-09 | 2019-03-29 | 金色熊猫有限公司 | 数据融合方法、装置、电子设备及计算机可读介质 |
CN109815261A (zh) * | 2018-12-11 | 2019-05-28 | 北京荣之联科技股份有限公司 | 全局搜索功能实现及数据实时同步方法、装置及电子设备 |
CN111309760A (zh) * | 2020-02-10 | 2020-06-19 | 江苏满运软件科技有限公司 | 数据检索方法、系统、设备及存储介质 |
CN111767303A (zh) * | 2020-07-28 | 2020-10-13 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置、服务器及可读存储介质 |
-
2020
- 2020-12-28 CN CN202011581124.5A patent/CN112507200A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291768A (zh) * | 2016-04-11 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 一种索引建立的方法及装置 |
CN107103067A (zh) * | 2017-04-18 | 2017-08-29 | 北京思特奇信息技术股份有限公司 | 一种基于搜索引擎的数据同步方法及系统 |
CN109542966A (zh) * | 2018-11-09 | 2019-03-29 | 金色熊猫有限公司 | 数据融合方法、装置、电子设备及计算机可读介质 |
CN109815261A (zh) * | 2018-12-11 | 2019-05-28 | 北京荣之联科技股份有限公司 | 全局搜索功能实现及数据实时同步方法、装置及电子设备 |
CN111309760A (zh) * | 2020-02-10 | 2020-06-19 | 江苏满运软件科技有限公司 | 数据检索方法、系统、设备及存储介质 |
CN111767303A (zh) * | 2020-07-28 | 2020-10-13 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置、服务器及可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114676094A (zh) * | 2022-05-27 | 2022-06-28 | 云上(江西)大数据发展有限公司 | 数字化政府项目的全周期管理方法、系统及可读存储介质 |
CN114676094B (zh) * | 2022-05-27 | 2022-08-26 | 云上(江西)大数据发展有限公司 | 数字化政府项目的全周期管理方法、系统及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8959122B2 (en) | Data processing device | |
USRE48030E1 (en) | Computer-implemented system and method for tagged and rectangular data processing | |
US10565208B2 (en) | Analyzing multiple data streams as a single data object | |
US10452739B2 (en) | Graph loader for a flexible graph system | |
KR101505858B1 (ko) | 대용량 데이터를 용이하게 분석하기 위하여 테이블 관계 및 참조의 템플릿을 검색하여 제공하는 템플릿 기반 온라인 분석보고서 작성 지원 시스템 | |
JP6834060B2 (ja) | 文書整理支援システム | |
US20080120270A1 (en) | Database system | |
US7236993B2 (en) | On-demand multi-version denormalized data dictionary to support log-based applications | |
US10394844B2 (en) | Integrating co-deployed databases for data analytics | |
US7873607B1 (en) | Model driven consolidator of database information | |
CN112507200A (zh) | 将数据同步到搜索引擎中的方法和装置 | |
CN111090803A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN113094442B (zh) | 全量数据同步方法、装置、设备和介质 | |
CN112289454B (zh) | 临床数据的打标签方法及装置、存储介质、终端 | |
US20070282804A1 (en) | Apparatus and method for extracting database information from a report | |
CN101853278A (zh) | 数据存储系统应用方法 | |
Chardin et al. | RQL: a query language for rule discovery in databases | |
JP5877488B1 (ja) | Rdbシステム | |
Thasal et al. | Information retrieval and de-duplication for tourism recommender system | |
JP2001256043A (ja) | プログラムソースの修正履歴管理方法および修正履歴管理システム | |
Pröll et al. | Precise Data Identification Services for Long Tail Research Data. | |
US20170329818A1 (en) | Pattern-based query result enhancement | |
Li et al. | Research on, and development of, data extraction and data cleaning technology based on the internet of things | |
JP2011013910A (ja) | 企業情報更新処理システム、企業情報更新処理方法、および企業情報更新プログラム | |
CN109739835A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210316 |