CN116795858A - 链路调用检索方法、装置、设备、介质及产品 - Google Patents
链路调用检索方法、装置、设备、介质及产品 Download PDFInfo
- Publication number
- CN116795858A CN116795858A CN202310761077.XA CN202310761077A CN116795858A CN 116795858 A CN116795858 A CN 116795858A CN 202310761077 A CN202310761077 A CN 202310761077A CN 116795858 A CN116795858 A CN 116795858A
- Authority
- CN
- China
- Prior art keywords
- file
- files
- keywords
- matched
- content
- 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 74
- 230000015654 memory Effects 0.000 claims description 29
- 238000012545 processing Methods 0.000 claims description 21
- 238000003860 storage Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 18
- 238000003491 array Methods 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000013518 transcription Methods 0.000 claims description 4
- 230000035897 transcription Effects 0.000 claims description 4
- 238000011166 aliquoting Methods 0.000 claims description 2
- 230000011218 segmentation Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 238000009960 carding Methods 0.000 description 5
- 238000012358 sourcing Methods 0.000 description 5
- 230000006378 damage Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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/24—Querying
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本公开提供一种链路调用检索方法、装置、设备、介质及产品,涉及大数据及信息技术领域,可以应用于金融科技技术领域,方法应用于本地操作系统,包括:获取第一文件,从第一文件中提取待匹配的关键词。根据当前业务场景配置检索匹配规则。根据设置的链路获取多个第二文件。基于线程池,根据检索匹配规则对待匹配的关键词与多个第二文件进行并行匹配,确定多个第二文件中与待匹配的关键词匹配的至少一个第二文件内容以及至少一个第二文件内容在第二文件中位置。分别根据至少一个第二文件内容中相同类型的文件内容生成与每一类型对应的文件结果。
Description
技术领域
本公开涉及大数据及信息技术领域,可以应用于金融科技技术领域,特别涉及一种链路调用检索方法、装置、设备、介质及产品。
背景技术
数据库具有处理、存储、管理数据的功能,已经被广泛应用于金融、制造、科技等领域。数据库在信息化时代扮演者至关重要的角色,是应用系统、信息安全的基石。
目前,金融行业主要应用的数据库为Oracle数据库,随着数据库国产化和替换趋势的推动,Oracle数据库及存储过程需要陆续进行退出,针对表以及存储过程的应用调用也需要进行相应的改造,这就意味着相应调用链路的梳理工作迫在眉睫。
现如今,很多企业将代码托管在自建的GitLab仓库中,这种方式很适合团队协作,但是开源版本GitLab不支持全局检索功能,因此SourceGraph成为了主流的检索方式。
然而,SourceGraph虽然功能强大,但是依旧不能很好地支持对于数据库表以及存储过程调用链路的梳理工作。
发明内容
有鉴于此,本公开的主要目的是提供一种链路调用检索方法、装置、设备、介质及产品,旨在至少部分解决不能很好地支持对于数据库表以及存储过程调用链路的梳理工作等技术问题。
为实现上述目的,本公开实施例的第一方面提供一种链路调用检索方法,应用于本地操作系统,包括:获取第一文件,从所述第一文件中提取待匹配的关键词;根据当前业务场景配置检索匹配规则;根据设置的链路获取多个第二文件;基于线程池,根据所述检索匹配规则对待匹配的关键词与所述多个第二文件进行并行匹配,确定所述多个第二文件中与所述待匹配的关键词匹配的至少一个第二文件内容以及所述至少一个第二文件内容在所述第二文件中位置;分别根据所述至少一个第二文件内容中相同类型的文件内容生成与每一类型对应的文件结果。
根据本公开的实施例,所述获取第一文件包括:通过FileReader读取所述第一文件。
根据本公开的实施例,所述从所述第一文件中提取待匹配的关键词包括:通过BufferedReader读取所述第一文件的每一行内容,得到第一文件内容,其中,每一行内容作为一条记录;按照所述第一文件的分割字符方式对所述第一文件内容进行分组,得到多个数组;遍历所述多个数组,得到所述关键词;将所述关键词插入所述数据库的关键词表格中。
根据本公开的实施例,基于线程池,根据所述检索匹配规则对待匹配的关键词与所述多个第二文件进行并行匹配包括:根据所述链路确定所述多个第二文件的总数量;基于所述总数量将所述多个第二文件等分为多组,每一组包括相等数量的所述第二文件;将每一组第二文件分别输入所述线程池中的一个线程,使得该线程对输入该线程的一组第二文件中的每一行内容与待匹配的关键词进行匹配,其中,一个线程对应一组第二文件。
根据本公开的实施例,根据信号量对所述线程池中线程的并发数进行限流。
根据本公开的实施例,在根据所述检索匹配规则对待匹配的关键词与所述多个第二文件进行并行匹配之前,所述方法还包括:根据所述关键词的类型对所述关键词进行处理,包括:添加数据库用户和/或添加操作类型和/或关键词转小写和/或特殊字符转化。
根据本公开的实施例,所述分别根据所述至少一个第二文件内容中相同类型的文件内容生成与每一类型对应的文件结果包括:对所述至少一个第二文件内容进行分类,将相同类型的所述第二文件内容存入一个本地内存集合;通过POI对分别每个本地内存集合中的所述第二文件内容进行处理,生成对应于该本地内存集合的所述文件结果,其中所述文件结果为可编辑且可移行的xls文件。
本公开实施例的第二方面提供一种链路调用检索装置,应用于本地操作系统,包括:第一获取模块,用于获取第一文件,从所述第一文件中提取待匹配的关键词;配置模块,用于根据当前业务场景配置检索匹配规则;第二获取模块,用于根据设置的链路获取多个第二文件;匹配模块,用于基于线程池,根据所述检索匹配规则对待匹配的关键词与所述多个第二文件进行并行匹配,确定所述多个第二文件中与所述待匹配的关键词匹配的至少一个第二文件内容以及所述至少一个第二文件内容在所述第二文件中位置;生成模块,用于分别根据所述至少一个第二文件内容中相同类型的文件内容生成与每一类型对应的文件结果。
本公开实施例第三方面提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据上述链路调用检索方法。
本公开实施例第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行指令,该指令被处理器执行时使处理器执行根据上述链路调用检索方法。
本公开实施例第五方面提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据上述链路调用检索方法。
根据本公开实施例提供的链路调用检索方法、装置、设备、介质及产品,至少具备以下有益效果:
由于该检索方法基于本地操作系统执行,因此,检索过程与网络完全解耦,不会受到网络波动、带宽等客观因素影响,极大程度提升了检索的速度和效率。由于检索匹配规则是基于当前业务场景配置,因此,能够灵活支持文件匹配和检索的动态配置,从而支持多样化的业务场景,灵活性高,扩展性强。由于基于线程池开启多个线程进行关键词的并发匹配,因此,任务不需要等到线程创建就能立即执行,提高了检索速度,并且,基于线程池能够重复调用已创建的线程进行检索匹配,降低了线程创建、线程销毁造成的损耗,从而提高了线程的可管理性及系统的稳定性。
通过FileReader的方式能够快速准确地从本地系统的数据存储区读取指定的文件。通过BufferedReader的方式能够高效地读取文件中的每一行内容,形成数组,从而能够快速地遍历数组,获取待匹配的关键词。
由于将文件等量均衡分配至多个线程进行处理,避免由于资源分配不均衡导致不同线程承载的计算压力差异过大,提升线程执行效率且保证了系统的稳定性。
由于通过信号量对线程池的并发数进行限流,因此,能够预防文件数量过大,导致并发的线程过多,从而有效地降低线程隔离开销的负荷,提升线程执行效率。
通过对关键词进行相应的转化及加工,能够更容易第根据匹配的规则在文件中进行检索,从而提高了检索效率。
对于匹配检索的结果,采用POI的方式将相同类型的结果生成对应的文件结果,得到一个归档分类、可编辑、可移行的xls文件,从而便于直观的查看检索结果,满足调用链路检索的结果展示诉求。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1示意性示出了根据本公开实施例的链路调用检索方法及装置的系统架构100;
图2示意性示出了根据本公开一实施例的链路调用检索方法的流程图;
图3示意性示出了根据本公开实施例的操作S201中从第一文件中提取待匹配的关键词的流程图;
图4示意性示出了根据本公开实施例的操作S201中从第一文件中提取待匹配的关键词的原理图;
图5示意性示出了根据本公开实施例的操作S204中基于线程池,根据检索匹配规则对待匹配的关键词与多个第二文件进行并行匹配的流程图;
图6示意性示出了根据本公开实施例的操作S204中基于线程池,根据所述检索匹配规则对待匹配的关键词与多个第二文件进行并行匹配的原理图;
图7示意性示出了根据本公开实施例的操作S205中分别根据至少一个第二文件内容中相同类型的文件内容生成与每一类型对应的文件结果的流程图;
图8示意性示出了根据本公开实施例的操作S205中分别根据至少一个第二文件内容中相同类型的文件内容生成与每一类型对应的文件结果的原理图;
图9示意性示出了根据本公开一实施例的链路调用检索装置的框图;
图10示意性示出了根据本公开另一实施例的链路调用检索装置的框图;
图11示意性示出了根据本公开又一实施例的链路调用检索装置的框图;
图12示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据一致性修复装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
在本公开的技术方案中,所涉及的信息的收集、存储、使用、加工、传输、提供、公开和应用等处理,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
在本公开的技术方案中,若需要获取用户个人信息,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
针对相关技术中存在的技术问题,本公开实施例提供了一种链路调用检索方法,应用于本地操作系统,包括:获取第一文件,从第一文件中提取待匹配的关键词。根据当前业务场景配置检索匹配规则。根据设置的链路获取多个第二文件。基于线程池,根据检索匹配规则对待匹配的关键词与多个第二文件进行并行匹配,确定多个第二文件中与待匹配的关键词匹配的至少一个第二文件内容以及至少一个第二文件内容在第二文件中位置。分别根据至少一个第二文件内容中相同类型的文件内容生成与每一类型对应的文件结果。
图1示意性示出了根据本公开实施例的链路调用检索方法及装置的系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括数据库101和本地操作系统102。数据库101与本地操作系统102之间通过本地通信。
数据库101中可以设置关键词表格和检索结果表格,关键词表格可以用于存储提取的待匹配的关键词。检索结果表格可以用于存储基于待匹配的关键词进行检索后的检索结果。
本地操作系统102可以是提供各种服务的服务器,例如执行链路调用检索的后台管理服务器(仅为示例)。本地操作系统102例如可以包括关键词提取模块、检索模块以及结果生成模块。检索过程中,关键词检索模块从文件中提取待匹配的关键词,检索模块根据关键词进行匹配检索,得到检索结果,结果生成模块用于根据兼做结果生成一个归档分类、可编辑、可移行的xls文件。
需要说明的是,本公开实施例所提供的链路调用检索方法可以由本地操作系统102执行。相应地,本公开实施例所提供的链路调用检索装置可以设置于本地操作系统102中。或者,本公开实施例所提供的链路调用检索方法也可以由不同于本地操作系统102且能够与数据库101和/或本地操作系统102进行本地通信的服务器或服务器集群执行。相应地,本公开实施例所提供的链路调用检索装置也可以设置于不同于本地操作系统102且能够与数据库101和/或转本地操作系统102进行本地通信的服务器或服务器集群中。或者,本公开实施例所提供的链路调用检索法也可以部分由本地操作系统102执行,部分由数据库101执行。相应的,本公开实施例所提供的链路调用检索装置也可以部分设置于本地操作系统102中,部分设置于数据库101中。
应该理解,图1中的数据库和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的数据库和服务器。
本公开实施例提供的链路调用检索方法,可以应用于金融科技领域。例如,对于金融机构而言,一般都会将执行金融业务的代码托管在自建的GitLab仓库中,但是开源版本GitLab不支持全局检索功能,因此,SourceGraph成为了主流的检索方式。在实现本发明构思的过程中,申请人发现SourceGraph主要存在的问题有:Sourcegraph需要金融机构自行安装部署、配置Nginx代理、配置网站、关联GitLab仓库等,操作复杂,投入成本较大;Sourcegraph搜索提供页面进行搜索,需要相应的搜索条件设置及规则,学习成本较高;Sourcegraph功能重点集中在搜索模块,场景比较单一,不能满足当前的梳理工作(例如针对梳理结果整合与导出);Sourcegraph搜索会受到网络波动或者服务器性能的影响,偶尔会出现搜索时间较久并超时的情况;搜索的结果采用平铺的方式展示,不满足调用链路检索的结果展示诉求。基于此场景,针对现有检索工具的缺点,提供一种基于文件系统的链路调用检索实现方式,支持多个关键字,多种类型的检索,能够达成简单、准确、高效的完成链路调用检索的目的,并将检索出来的结果进行分类和整合。
应当理解是,本公开实施例提供的链路调用检索方法不仅限于应用于金融科技领域,也可用于除金融领域之外的任意领域。上述描述只是示例性的,对于例涉及任何具有检索的领域,例如电子商务、物流等其他技术领域,都可以应用本公开实施例的链路调用检索方法。
以下将基于图1描述链路调用检索的场景,通过图2~图8对本公开实施例的链路调用检索方法进行详细描述。
图2示意性示出了根据本公开一实施例的链路调用检索方法的流程图。
如图2所示,该链路调用检索方法基于本地操作系统执行,不需要借助网络传递数据,所有过程均在本地执行,例如可以包括操作S201~操作S205。
在操作S201,获取第一文件,从第一文件中提取待匹配的关键词。
在操作S202,根据当前业务场景配置检索匹配规则。
在操作S203,根据设置的链路获取多个第二文件。
在操作S204,基于线程池,根据检索匹配规则对待匹配的关键词与多个第二文件进行并行匹配,确定多个第二文件中与待匹配的关键词匹配的至少一个第二文件内容以及至少一个第二文件内容在第二文件中位置。
在操作S205,分别根据至少一个第二文件内容中相同类型的文件内容生成与每一类型对应的文件结果。
在本公开的实施例中,第一文件可以理解为当前需要检索的文件,也即当前需要基于该文件中的关键词去检索目标数据,一般情况下其包含的数据量不大。第二文件可以理解为包含有目标数据的文件,其包含的数据量大,检索的目的即从这海量的数据中匹配与关键词关联的数据。
在本公开的实施例中,链路可以理解为预先设置的获取第二文件的路径。
在本公开的实施例中,线程池可以理解为一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程为后台线程,每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程,但线程的数目永远不会超过最大值,超过最大值的线程可以排队,但需要等到其他线程完成后才启动。
由此,开启线程池具备优点有:降低资源消耗:通过重复调用已创建的线程降低线程创建、销毁线程造成的损耗;提高响应速度:任务不需要等到线程创建就能立即执行。提高线程的可管理性:线程是稀缺资源,如果无限制的创建,会消耗系统资源,降低系统的稳定性,使用线程池可以进行统一的分配、调优和监控。
根据本公开的实施例,由于该检索方法基于本地操作系统执行,因此,检索过程与网络完全解耦,不会受到网络波动、带宽等客观因素影响,极大程度提升了检索的速度和效率。由于检索匹配规则是基于当前业务场景配置,因此,能够灵活支持文件匹配和检索的动态配置,从而支持多样化的业务场景,灵活性高,扩展性强。由于基于线程池开启多个线程进行关键词的并发匹配,因此,任务不需要等到线程创建就能立即执行,提高了检索速度,并且,基于线程池能够重复调用已创建的线程进行检索匹配,降低了线程创建、线程销毁造成的损耗,从而提高了线程的可管理性及系统的稳定性。
作为本公开实施例中一种可选的实施方法,获取第一文件例如可以包括:通过FileReader读取第一文件。
在本公开的实施例中,FileReader对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用File或Blob对象指定要读取的文件或数据。
根据本公开的实施例,通过FileReader的方式能够快速准确地从本地系统的数据存储区读取指定的文件。
图3示意性示出了根据本公开实施例的操作S201中从第一文件中提取待匹配的关键词的流程图。
图4示意性示出了根据本公开实施例的操作S201中从第一文件中提取待匹配的关键词的原理图。
请参阅图3结合图4,操作S201中从第一文件中提取待匹配的关键词例如可以包括操作S301~操作S304。
在操作S301,通过BufferedReader读取第一文件的每一行内容,得到第一文件内容。
在操作S302,按照第一文件的分割字符方式对第一文件内容进行分组,得到多个数组。
在操作S303,遍历多个数组,得到关键词。
在操作S304,将关键词插入数据库的关键词表格中。
在本公开的实施例中,读取的第一文件的每一行内容均可以作为一条记录。数组可以理解为储存多个相同类型第一文件内容的集合,把具有相同类型的若干第一文件内容素按有序的形式组织起来的一种形式,这些有序排列的同类数据第一文件内容的集合称为数组。
根据本公开的实施例,由于BufferedReader能够高效地从字符输入流中读取文本,缓冲各个字符,因此,通过BufferedReader的方式能够高效地读取文件中的每一行内容,形成数组,从而能够快速地遍历数组,获取待匹配的关键词。
图5示意性示出了根据本公开实施例的操作S204中基于线程池,根据检索匹配规则对待匹配的关键词与多个第二文件进行并行匹配的流程图。
图6示意性示出了根据本公开实施例的操作S204中基于线程池,根据所述检索匹配规则对待匹配的关键词与多个第二文件进行并行匹配的原理图。
请参阅图5结合图6,操作S203中基于线程池,根据所述检索匹配规则对待匹配的关键词与多个第二文件进行并行匹配例如可以包括操作S501~操作S503。
在操作S501,根据链路确定多个第二文件的总数量;
在操作S502,基于总数量将多个第二文件等分为多组,每一组包括相等数量的第二文件。
在操作S503,将每一组第二文件分别输入线程池中的一个线程,使得该线程对输入该线程的一组第二文件中的每一行内容与待匹配的关键词进行匹配,一个线程对应一组第二文件。
在本公开的实施例中,本地操作系统的处理器将从数据库关键词表格中读取的待匹配的关键词存储在本地内存中。待匹配的关键词可以是一个,也可以是多个。
例如,待匹配的关键词为一个,获取的第二文件的总数量为A,线程池中当前开启线程的数量为B,则每个线程中输入的文件数量为A/B,在每个线程中将待匹配的关键词和A/B个第二文件进行检索匹配。检索匹配过程中,可以通过BufferedReader读取文件内容,第二文件中的每一行都根据配置的规则进行关键词的匹配,如果命中结果,则将第二文件内容及第二文件内容所在的行数记录在本地内存中,否则进行下一行的内容匹配。一个线程分配的文件全部检索完毕,将本地内存中命中待匹配的关键词的第二文件内容及第二文件内容所在的行数记录插入数据库的检索结果表中。
例如,待匹配的关键词为两个,获取的第二文件的总数量为A,线程池中当前开启线程的数量为B,则可以选择B/2个线程进行一个关键词的匹配,另外B/2个线程进行另一个关键词的匹配。每个线程中输入的文件数量为2A/B,在前B/2个线程中每个线程中将第一个待匹配的关键词和2A/B个第二文件进行检索匹配,在后B/2个线程中每个线程中将第一个待匹配的关键词和2A/B个第二文件进行检索匹配。检索匹配过程中,可以通过BufferedReader读取文件内容,第二文件中的每一行都根据配置的规则进行关键词的匹配,如果命中结果,则将第二文件内容及第二文件内容所在的行数记录在本地内存中,否则进行下一行的内容匹配。一个线程分配的文件全部检索完毕,将本地内存中命中待匹配的关键词的第二文件内容及第二文件内容所在的行数记录插入数据库的检索结果表中。
需要说明的是,但关键词为两个以上时的匹配原理与上述匹配原理类似,此处不再赘述。第二文件的数量A可以根据链路获取。
根据本公开的实施例,由于将文件等量均衡分配至多个线程进行处理,避免由于资源分配不均衡导致不同线程承载的计算压力差异过大,提升线程执行效率且保证了系统的稳定性。
进一步地,在使用线程池进行检索匹配的过程中,还能够根据信号量对线程池中线程的并发数进行限流。
例如,当第二文件的总数量A非常巨大时,由于信号量的限制,线程池中并发的线程的数量不能过大,需要对线程池中线程池的并发数进行限流。
根据本公开的实施例中,由于通过信号量对线程池的并发数进行限流,因此,能够预防文件数量过大,导致并发的线程过多,从而有效地降低线程隔离开销的负荷,提升线程执行效率。
继续参阅图6,在根据检索匹配规则对待匹配的关键词与多个第二文件进行并行匹配之前,检索方法还可以包括:根据关键词的类型对关键词进行处理。
关键词的处理过程可以为:添加数据库用户和/或添加操作类型和/或关键词转小写和/或特殊字符转化。例如,在关键词为表名的情况下,可以添加数据库(Data Base,DB)用户、添加操作类型、将关键词转换为小写。在关键词为存过名的情况下,将关键词转换为小写以及特殊字符转化。
根据本公开的实施例,通过对关键词进行相应的转化及加工,能够更容易第根据匹配的规则在文件中进行检索,从而提高了检索效率。
图7示意性示出了根据本公开实施例的操作S205中分别根据至少一个第二文件内容中相同类型的文件内容生成与每一类型对应的文件结果的流程图。
图8示意性示出了根据本公开实施例的操作S205中分别根据至少一个第二文件内容中相同类型的文件内容生成与每一类型对应的文件结果的原理图。
请参阅图7,结合图8,操作S205中分别根据至少一个第二文件内容中相同类型的文件内容生成与每一类型对应的文件结果例如可以包括操作S701~操作S702。
在操作S701,对至少一个第二文件内容进行分类,将相同类型的第二文件内容存入一个本地内存集合。
在操作S702,通过POI对分别每个本地内存集合中的第二文件内容进行处理,生成对应于该本地内存集合的文件结果,文件结果为可编辑且可移行的xls文件。
例如,第二文件内容的类型可以包括“.sql”、“.java”、“.xml”和“.sh”等。例如,将“.sql”类型的所有第二文件内容存入一个本地内存集合,将“.java”类型的所有第二文件内容存入一个本地内存集合,将“.xml”类型的所有第二文件内容存入一个本地内存集合,将“.sh”类型的所有第二文件内容存入一个本地内存集合,实现对“.sql”、“.java”、“.xml”和“.sh”类型归档分类。
进一步地,通过POI对分别每个本地内存集合中的第二文件内容进行处的过程例如可以依次为:xls创建、sheet页生成、表头创建、数据填充和文件生成。其中,一次检索结果为一个xls文件,一个sheet页为一种文件类型,表头创建可以理解为导出数据包含的内容,数据填充可以理解为将对应文件类型的结果数据填充在对应的sheet页中,文件生成可以理解为在指定的路径下生成对应的文件结果。
根据本公开的实施例,对于匹配检索的结果,采用POI的方式将相同类型的结果生成对应的文件结果,得到一个归档分类、可编辑、可移行的xls文件,从而便于直观的查看检索结果,满足调用链路检索的结果展示诉求。
综上所述,本公开的实施例提供的链路调用检索方法,通过配置检索关键词、检索文件目录,导出文件目录,利用多线程的方式对文件进行检索匹配,摒弃了网络请求,充分的利用本地操作系统的内存及处理器的配置,可以完美的规避网络对检索工具的影响,极大地提升检索速度和效率。并且,整个调用链路的检索操作简捷,所有的执行过程都以黑盒子的形式封装在工具的执行流程中,几乎没有学习成本和操作成本,只需要设置路径和提供相应的文件,执行工具的主程序运行即可,为数据库国产化转型提供强有力的支撑。
基于图2~图8所示的链路调用检索方法,本公开实施例还提供一种链路调用检索装置,以下将基于图1描述的场景,通过图9~图11对本公开实施例的链路调用检索装置进行描述。
图9示意性示出了根据本公开一实施例的链路调用检索装置的框图。
如图9所示,链路调用检索装置900可以包括第一获取模块910、配置模块920、第二获取模块930、匹配模块940以及生成模块940。
第一获取模块910,用于获取第一文件,从第一文件中提取待匹配的关键词。第一获取模块910可以用于执行前文描述的操作S201,在此不再赘述。
配置模块920,用于根据当前业务场景配置检索匹配规则。配置模块920可以用于执行前文描述的操作S202,在此不再赘述。
第二获取模块930,用于根据设置的链路获取多个第二文件。第二获取模块930可以用于执行前文描述的操作S203,在此不再赘述。
匹配模块940,用于基于线程池,根据检索匹配规则对待匹配的关键词与多个第二文件进行并行匹配,确定多个第二文件中与待匹配的关键词匹配的至少一个第二文件内容以及至少一个第二文件内容在第二文件中位置。匹配模块940可以用于执行前文描述的操作S204,在此不再赘述。
生成模块950,用于分别根据至少一个第二文件内容中相同类型的文件内容生成与每一类型对应的文件结果。生成模块950可以用于执行前文描述的操作S205,在此不再赘述。
图10示意性示出了根据本公开另一实施例的链路调用检索装置的框图。
如图10所示,链路调用检索装置900例如还可以包括限流模块960。
限流模块960,用于根据信号量对线程池中线程的并发数进行限流。
图11示意性示出了根据本公开又一实施例的链路调用检索装置的框图。
如图11所示,链路调用检索装置900例如还可以包括处理模块970。
处理模块970用于根据关键词的类型对关键词进行处理。关键词的处理过程可以为:添加数据库用户和/或添加操作类型和/或关键词转小写和/或特殊字符转化。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一获取模块910、配置模块920、第二获取模块930、匹配模块940、生成模块950、限流模块960以及处理模块970中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,第一获取模块910、配置模块920、第二获取模块930、匹配模块940、生成模块950、限流模块960以及处理模块970中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块910、配置模块920、第二获取模块930、匹配模块940、生成模块950、限流模块960以及处理模块970中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中链路调用检索装置部分与本公开的实施例中链路调用检索方法部分是相对应的,其具体实施细节及带来的技术效果也是相同的,在此不再赘述。
图12示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的框图。图12示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图12所示,根据本公开实施例的电子设备1200包括处理器1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储部分1208加载到随机访问存储器(RAM)1203中的程序而执行各种适当的动作和处理。处理器1201例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1201还可以包括用于缓存用途的板载存储器。处理器1201可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1203中,存储有电子设备1200操作所需的各种程序和数据。处理器1201、ROM 1202以及RAM1203通过总线1204彼此相连。处理器1201通过执行ROM 1202和/或RAM1203中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1202和RAM 1203以外的一个或多个存储器中。处理器1201也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1200还可以包括输入/输出(I/O)接口1205,输入/输出(I/O)接口1205也连接至总线1204。电子设备1200还可以包括连接至I/O接口1205的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。在该计算机程序被处理器1201执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM1202和/或RAM 1203和/或ROM 1202和RAM 1203以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
Claims (11)
1.一种链路调用检索方法,应用于本地操作系统,包括:
获取第一文件,从所述第一文件中提取待匹配的关键词;
根据当前业务场景配置检索匹配规则;
根据设置的链路获取多个第二文件;
基于线程池,根据所述检索匹配规则对待匹配的关键词与所述多个第二文件进行并行匹配,确定所述多个第二文件中与所述待匹配的关键词匹配的至少一个第二文件内容以及所述至少一个第二文件内容在所述第二文件中位置;
分别根据所述至少一个第二文件内容中相同类型的文件内容生成与每一类型对应的文件结果。
2.根据权利要求1所述的链路调用检索方法,其中,所述获取第一文件包括:
通过FileReader读取所述第一文件。
3.根据权利要求1所述的链路调用检索方法,其中,所述从所述第一文件中提取待匹配的关键词包括:
通过BufferedReader读取所述第一文件的每一行内容,得到第一文件内容,其中,每一行内容作为一条记录;
按照所述第一文件的分割字符方式对所述第一文件内容进行分组,得到多个数组;
遍历所述多个数组,得到所述关键词;
将所述关键词插入数据库的关键词表格中。
4.根据权利要求1所述的链路调用检索方法,其中,基于线程池,根据所述检索匹配规则对待匹配的关键词与所述多个第二文件进行并行匹配包括:
根据所述链路确定所述多个第二文件的总数量;
基于所述总数量将所述多个第二文件等分为多组,每一组包括相等数量的所述第二文件;
将每一组第二文件分别输入所述线程池中的一个线程,使得该线程对输入该线程的一组第二文件中的每一行内容与待匹配的关键词进行匹配,其中,一个线程对应一组第二文件。
5.根据权利要求4所述的链路调用检索方法,其中,根据信号量对所述线程池中线程的并发数进行限流。
6.根据权利要求1或4所述的链路调用检索方法,其中,在根据所述检索匹配规则对待匹配的关键词与所述多个第二文件进行并行匹配之前,所述方法还包括:
根据所述关键词的类型对所述关键词进行处理,包括:添加数据库用户和/或添加操作类型和/或关键词转小写和/或特殊字符转化。
7.根据权利要求1所述的链路调用检索方法,其中,所述分别根据所述至少一个第二文件内容中相同类型的文件内容生成与每一类型对应的文件结果包括:
对所述至少一个第二文件内容进行分类,将相同类型的所述第二文件内容存入一个本地内存集合;
通过POI对分别每个本地内存集合中的所述第二文件内容进行处理,生成对应于该本地内存集合的所述文件结果,其中所述文件结果为可编辑且可移行的xls文件。
8.一种链路调用检索装置,应用于本地操作系统,包括:
第一获取模块,用于获取第一文件,从所述第一文件中提取待匹配的关键词;
配置模块,用于根据当前业务场景配置检索匹配规则;
第二获取模块,用于根据设置的链路获取多个第二文件;
匹配模块,用于基于线程池,根据所述检索匹配规则对待匹配的关键词与所述多个第二文件进行并行匹配,确定所述多个第二文件中与所述待匹配的关键词匹配的至少一个第二文件内容以及所述至少一个第二文件内容在所述第二文件中位置;
生成模块,用于分别根据所述至少一个第二文件内容中相同类型的文件内容生成与每一类型对应的文件结果。
9.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~7中任一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~7中任一项所述的方法。
11.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310761077.XA CN116795858A (zh) | 2023-06-26 | 2023-06-26 | 链路调用检索方法、装置、设备、介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310761077.XA CN116795858A (zh) | 2023-06-26 | 2023-06-26 | 链路调用检索方法、装置、设备、介质及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116795858A true CN116795858A (zh) | 2023-09-22 |
Family
ID=88043551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310761077.XA Pending CN116795858A (zh) | 2023-06-26 | 2023-06-26 | 链路调用检索方法、装置、设备、介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116795858A (zh) |
-
2023
- 2023-06-26 CN CN202310761077.XA patent/CN116795858A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11544623B2 (en) | Consistent filtering of machine learning data | |
US10713589B1 (en) | Consistent sort-based record-level shuffling of machine learning data | |
US11100420B2 (en) | Input processing for machine learning | |
US10339465B2 (en) | Optimized decision tree based models | |
US11182691B1 (en) | Category-based sampling of machine learning data | |
US10366053B1 (en) | Consistent randomized record-level splitting of machine learning data | |
CN105760419B (zh) | 用于连接处理的方法和系统 | |
US10169437B2 (en) | Triplestore replicator | |
US11036608B2 (en) | Identifying differences in resource usage across different versions of a software application | |
US20110239231A1 (en) | Migrating electronic document version contents and version metadata as a collection with a single operation | |
US9734177B2 (en) | Index merge ordering | |
US20170371711A1 (en) | Eliminating execution of jobs-based operational costs of related reports | |
JP2022031625A (ja) | 情報をプッシュするための方法および装置、電子機器、記憶媒体並びにコンピュータプログラム | |
CN113094434A (zh) | 数据库同步方法、系统、装置、电子设备及介质 | |
WO2021031583A1 (zh) | 执行语句的方法、装置、服务器及存储介质 | |
US20200201867A1 (en) | Inserting annotations for application tracing | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
US11354313B2 (en) | Transforming a user-defined table function to a derived table in a database management system | |
Masouleh et al. | Optimization of ETL process in data warehouse through a combination of parallelization and shared cache memory | |
US9201937B2 (en) | Rapid provisioning of information for business analytics | |
US9286349B2 (en) | Dynamic search system | |
CN116795858A (zh) | 链路调用检索方法、装置、设备、介质及产品 | |
US11675751B2 (en) | Systems and methods for capturing data schema for databases during data insertion | |
US11874830B2 (en) | Efficient job writing for database member | |
KR102186918B1 (ko) | 분산 환경 기반 실시간 고속 스트림 데이터 처리 방법 |
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 |