CN115344614B - 数据处理方法、装置、存储介质及电子设备 - Google Patents
数据处理方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN115344614B CN115344614B CN202210991741.5A CN202210991741A CN115344614B CN 115344614 B CN115344614 B CN 115344614B CN 202210991741 A CN202210991741 A CN 202210991741A CN 115344614 B CN115344614 B CN 115344614B
- Authority
- CN
- China
- Prior art keywords
- data
- query
- message
- target
- message data
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/24564—Applying rules; Deductive queries
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种数据处理方法、装置、存储介质及电子设备;涉及计算机技术领域。所述方法包括:通过预设服务接口配置规则脚本和查询模板;当通过预设服务接口接收到消息订阅请求时,获取消息订阅请求对应的原始消息数据;确定原始消息数据对应的规则脚本,并根据规则脚本提取原始消息数据中的目标字段;结合查询模板和目标字段,生成目标查询语句;利用目标查询语句进行数据库查询,得到原始消息数据的关联数据。本公开中通过配置规则脚本和查询模板,简化了消息数据的关联查询,提高了数据查询效率。
Description
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种数据处理方法、数据处理装置、计算机可读存储介质以及电子设备。
背景技术
随着计算机技术的快速发展,用户对数据同步的要求越来越高。在消息订阅推送场景中,可以将消息数据从数据源推送到订阅系统,以实现消息数据的同步。而在某种特定场景下,需要该消息数据中还包含一些关联数据。例如,对于一条用户数据,除了该用户的数据信息,还可以包含如用户关联的角色、项目、组织等关联数据,以便于后续进行不同维度的数据搜索和数据过滤等处理。
目前,由于关联数据的类型不同可能导致各个关联数据存在于不同类型的数据库中,在进行关联数据的查询时,需要以不同的方式调用不同的接口进行数据查询,使得整个数据查询过程较复杂,从而降低了数据查询效率。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开提供一种数据处理方法、数据处理装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服相关技术中消息数据的关联查询的过程较复杂,使得数据查询效率较低的问题。
根据本公开的第一方面,提供一种数据处理方法,包括:
通过预设服务接口配置规则脚本和查询模板;
当通过所述预设服务接口接收到消息订阅请求时,获取所述消息订阅请求对应的原始消息数据;
确定所述原始消息数据对应的规则脚本,并根据所述规则脚本提取所述原始消息数据中的目标字段;
结合所述查询模板和所述目标字段,生成目标查询语句;
利用所述目标查询语句进行数据库查询,得到所述原始消息数据的关联数据。
在本公开的一种示例性实施例中,获取所述消息订阅请求对应的原始消息数据之前,所述方法还包括:
通过所述预设服务接口配置数据源,所述数据源包括消息队列和数据库日志中的至少一种。
在本公开的一种示例性实施例中,所述当通过所述预设服务接口接收到消息订阅请求时,获取所述消息订阅请求对应的原始消息数据,包括:
当通过所述预设服务接口接收到消息订阅请求时,根据所述消息订阅请求中的消息类型确定目标数据源;
从所述目标数据源中获取与所述消息订阅请求对应的原始消息数据。
在本公开的一种示例性实施例中,所述确定所述原始消息数据对应的规则脚本,并根据所述规则脚本提取所述原始消息数据中的目标字段,包括:
根据所述原始消息数据的消息类型确定所述原始消息数据对应的规则脚本;
利用脚本引擎执行所述规则脚本,以从所述原始消息数据中提取所述目标字段。
在本公开的一种示例性实施例中,所述数据库包括关系型数据库和非关系型数据库中的至少一种;所述利用所述目标查询语句进行数据库查询,得到所述原始消息数据的关联数据,包括:
利用查询引擎将所述目标查询语句转换为所述数据库的查询计划;
基于所述查询计划对所述数据库进行查询,得到所述原始消息数据的关联数据。
在本公开的一种示例性实施例中,得到所述原始消息数据的关联数据之后,所述方法还包括:
缓存所述原始消息数据的关联数据,并配置所述关联数据与所述目标字段之间的映射关系。
在本公开的一种示例性实施例中,得到所述原始消息数据的关联数据之后,所述方法还包括:
组合所述原始消息数据和所述原始消息数据的关联数据,得到目标消息数据;
将所述目标消息数据推送至对应的消息订阅系统。
在本公开的一种示例性实施例中,所述查询模板为SQL模板。
根据本公开的第二方面,提供一种数据处理装置,包括:
关联查询配置模块,用于通过预设服务接口配置规则脚本和查询模板;
消息数据获取模块,用于当通过所述预设服务接口接收到消息订阅请求时,获取所述消息订阅请求对应的原始消息数据;
查询条件提取模块,用于确定所述原始消息数据对应的规则脚本,并根据所述规则脚本提取所述原始消息数据中的目标字段;
查询语句生成模块,用于结合所述查询模板和所述目标字段,生成目标查询语句;
关联数据查询模块,用于利用所述目标查询语句进行数据库查询,得到所述原始消息数据的关联数据。
根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的方法。
根据本公开的第四方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的方法。
本公开示例性实施例可以具有以下部分或全部有益效果:
在本公开示例实施方式所提供的数据处理方法中,通过预设服务接口配置规则脚本和查询模板;当通过所述预设服务接口接收到消息订阅请求时,获取所述消息订阅请求对应的原始消息数据;确定所述原始消息数据对应的规则脚本,并根据所述规则脚本提取所述原始消息数据中的目标字段;结合所述查询模板和所述目标字段,生成目标查询语句;利用所述目标查询语句进行数据库查询,得到所述原始消息数据的关联数据。本公开中通过配置规则脚本和查询模板,简化了消息数据的关联查询,提高了数据查询效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出了可以应用本公开实施例的数据处理方法及装置的示例性系统架构的示意图;
图2示意性示出了本公开实施例中一种数据处理方法的流程图;
图3示意性示出了本公开实施例中一种提取查询条件的流程图;
图4示意性示出了本公开实施例中一种数据库查询的流程图;
图5示意性示出了本公开实施例中另一种数据处理方法的流程图;
图6示意性示出了本公开实施例中一种数据处理装置的框图;
图7示出了适于用来实现本公开实施例的电子设备的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
图1示出了可以应用本公开实施例的一种数据处理方法及装置的示例性应用环境的系统架构的示意图。
如图1所示,系统架构100可以包括终端设备101、102、103中的一个或多个,网络104和服务器105。终端设备101、102、103可以是各种电子设备,包括但不限于台式计算机、便携式计算机、智能手机和平板电脑等。服务器105可以是一台服务器,也可以是多个服务器组成的服务器集群,还可以是一个虚拟化平台或者是一个云计算服务中心。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
本公开的示例性实施方式所提供的数据处理方法可以由服务器105执行,相应地,数据处理装置可以设置于服务器105中。例如,服务器105接收到终端设备101输入的消息订阅请求后,通过执行该数据处理方法,可以查询得到的关联数据发送至终端设备101,以展示给用户。但本领域技术人员容易理解的是,本公开的示例性实施方式所提供的数据处理方法也可以由终端设备101、102、103中的一个或多个执行,相应的,数据处理装置也可以设置于终端设备101、102、103中。例如,由终端设备101执行数据处理方法,可以将查询得到的关联数据直接显示在终端设备101的显示屏上以向用户进行展示,本公开对此不做特殊限定。
以下对本公开实施例的技术方案进行详细阐述:
随着计算机技术的快速发展,用户对数据同步的要求越来越高。示例性的,不同的业务场景需要不同的数据库能力,其中异构数据库之间是基于变更事件的消息进行数据同步。例如,对于一条MySQL(关系型数据库)用户数据变更事件中的用户数据,若该用户数据中只包含该用户的数据信息,而不包含如用户关联的角色、项目、组织等关联数据,将该用户数据同步至搜索引擎中时,无法对该用户数据进行不同维度的数据搜索,以及将该用户数据同步至外部系统时,无法对该用户数据进行其他维度的数据过滤等处理。
目前,由于关联数据的类型不同可能导致各个关联数据存在于不同类型的数据库中,在进行关联数据的查询时,需要以不同的方式调用不同的接口进行数据查询,使得整个数据查询过程较复杂,从而降低了数据查询效率。
基于该问题,本示例实施方式提供了一种数据处理方法,通过配置规则脚本和SQL(Structured Query Language,结构化查询语言)模板简化了消息数据的关联查询,可以提高数据查询效率。参考图2所示,该数据处理方法可以包括以下步骤S210至步骤S250:
步骤S210.通过预设服务接口配置规则脚本和查询模板;
步骤S220.当通过所述预设服务接口接收到消息订阅请求时,获取所述消息订阅请求对应的原始消息数据;
步骤S230.确定所述原始消息数据对应的规则脚本,并根据所述规则脚本提取所述原始消息数据中的目标字段;
步骤S240.结合所述查询模板和所述目标字段,生成目标查询语句;
步骤S250.利用所述目标查询语句进行数据库查询,得到所述原始消息数据的关联数据。
在本公开示例实施方式所提供的数据处理方法中,通过预设服务接口配置规则脚本和查询模板;当通过所述预设服务接口接收到消息订阅请求时,获取所述消息订阅请求对应的原始消息数据;确定所述原始消息数据对应的规则脚本,并根据所述规则脚本提取所述原始消息数据中的目标字段;结合所述查询模板和所述目标字段,生成目标查询语句;利用所述目标查询语句进行数据库查询,得到所述原始消息数据的关联数据。本公开中通过配置规则脚本和查询模板,简化了消息数据的关联查询,提高了数据查询效率。
下面,对于本示例实施方式的上述步骤进行更加详细的说明。
在步骤S210中,通过预设服务接口配置规则脚本和查询模板。
在消息订阅推送场景中,预设服务接口可以是消息订阅关联处理服务接口,对应的,用户可以通过消息订阅关联处理服务接口配置规则脚本和查询模板。其中,规则脚本为用于从消息数据中提取数据的脚本代码,对于不同的订阅事件可以配置不同的规则脚本,本公开示例实施方式中可以支持多种脚本语言,如javascript脚本、groovy脚本等。查询模板为SQL模板,SQL模板中可以包括SQL查询语句,后续可以对SQL模板中的SQL查询语句进行修改,动态生成新的SQL查询语句,以利用新的SQL查询语句进行数据库查询,可以提高数据查询的灵活性。
举例而言,某订阅事件配置的规则脚本可以是:
“extractshell”:“if(json.data.projectcode!=null)\n[json.data.projectcode]\nelse\n[]\n”
利用该规则脚本可以从原始消息数据中提取projectcode(项目信息)。
配置的SQL模板可以是:
“sqlTemplate”:“select*from project where name=?”
通过SQL模板中的SQL查询语句可以对数据库进行相应数据的查询。
本公开示例实施方式中,还可以通过消息订阅关联处理服务接口配置数据源,其中,数据源可以包括消息队列和数据库日志中的至少一种。例如,数据源可以是kafka消息队列等,还可以是MySQL binlog(二进制)日志事件等。举例而言,配置的一种数据源格式可以至少包括消息数据标识、事件类型、消息数据描述、消息主题和其它数据,其它数据可以是kafka集群、数据格式等,本公开对此不做具体限定。需要说明的是,还可以通过消息订阅关联处理服务接口配置消息订阅系统的服务地址、消息过滤条件与缓存信息等。另外,创建订阅后,可以调用消息订阅关联处理服务接口将订阅与消息类型绑定,当有新的消息事件时,会向订阅推送该消息事件。
该示例中,通过配置规则脚本和SQL模板,便于后续实现消息数据的关联查询,而无需学习与编写复杂的消息处理代码,简化了消息数据的关联查询。
在步骤S220中,当通过所述预设服务接口接收到消息订阅请求时,获取所述消息订阅请求对应的原始消息数据。
本公开示例实施方式中,用户可以通过消息订阅关联处理服务接口发送消息订阅请求,该发送消息订阅请求中包含数据标识、消息类型等数据。当接收到消息订阅请求时,可以根据消息订阅请求中的消息类型确定目标数据源,以从目标数据源中获取与消息订阅请求对应的原始消息数据。
举例而言,一种发送消息订阅请求的具体数据格式可以是:
POST{{baseUrl}}/admin/event/type
Content-Type:application/json
userid:{{uesrID}}
projected:0
当接收到该发送消息订阅请求时,可以根据消息类型和数据标识等从目标数据源中拉取原始消息数据。该示例中,支持kafka消息队列、数据库日志变更数据的读取等。
在步骤S230中,确定所述原始消息数据对应的规则脚本,并根据所述规则脚本提取所述原始消息数据中的目标字段。
获取原始消息数据后,可以通过脚本引擎根据配置运行对应的规则脚本,以提取原始消息数据中的目标字段作为SQL查询条件,进而生成完整的SQL查询语句。
一种示例实施方式中,参考图3所示,可以根据步骤S301和步骤S302从原始消息数据中提取查询条件,以便于后续生成SQL查询语句。
在步骤S301中,根据所述原始消息数据的消息类型确定所述原始消息数据对应的规则脚本。
可以理解的是,不同的订阅事件配置了不同的规则脚本,而且订阅与消息类型绑定,因此,可以根据原始消息数据的消息类型确定该原始消息数据对应的规则脚本。
在步骤S302中,利用脚本引擎执行所述规则脚本,以从所述原始消息数据中提取所述目标字段。
消息订阅关联处理服务可以利用脚本引擎执行该规则脚本,以从原始消息数据中提取目标字段,如目标字段可以为用户标识(id)等。举例而言,对于一条从MySQL binlog读取的用户表更新数据,当需要补充用户关联的组织信息和项目信息时,可以通过执行规则脚本提取该更新数据中的用户id值:1498和组织id值:a23c4,并将用户id值和组织id值作为SQL查询条件。
该示例中,消息订阅关联处理服务与脚本引擎结合,通过配置规则脚本和SQL模板可以将消息事件的关联数据进行补全,简化了消息数据的关联查询。
在步骤S240中,结合所述查询模板和所述目标字段,生成目标查询语句。
本公开示例实施方式中,目标查询语句可以为SQL查询语句。示例性的,从原始消息数据中提取到目标字段后,可以将提取到的目标字段作为查询条件,并结合SQL模板和该目标字段生成完整的SQL查询语句。举例而言,提取到的目标字段为用户id值:1498和组织id值:a23c4时,可以将用户id值和组织id值作为SQL查询条件,并根据该SQL查询条件对SQL模板进行修改,生成两条完整的SQL查询语句,如:
1)select name,displayName from USERCENTERDB.project as t1 joinUSERCENTERDB.projectUser as t2 on t1.id=t2.projectId where t2.userId=1498;
2)select id,name,parent_ids from USERCENTERDB.company where id=“a23c”。
其中,SQL查询语句1)用于从数据库中查询项目信息,SQL查询语句2)用于从数据库中查询组织信息。
该示例中,根据预先配置的SQL模板,可以灵活、高效地生成SQL查询语句,便于消息数据的关联查询,进而提高数据查询效率。
在步骤S250中,利用所述目标查询语句进行数据库查询,得到所述原始消息数据的关联数据。
生成完整的SQL查询语句后,可以利用该SQL查询语句进行数据库查询,其中,数据库可以是关系型数据库和非关系型数据库(又称Nosql数据库)中的至少一种。关系型数据库支持SQL查询,而Nosql数据库不支持SQL查询,NoSql数据库可以是ElasticSearch数据库、Mongodb数据库、redis数据库等,本公开对此不做限定。
一种示例实施方式中,参考图4所示,可以根据步骤S401和步骤S402进行关联数据查询。其中,可以统一使用SQL语法支持各种数据库(关系型数据库和NoSql数据库)的数据查询。
在步骤S401中,利用查询引擎将所述目标查询语句转换为所述数据库的查询计划。
可以理解的是,原始消息数据的关联数据可能存在于不同架构的数据库中,如存在于支持SQL查询的关系型数据库和不支持SQL查询的NoSql类型数据库中。示例性的,可以将完整的SQL查询语句输入消息订阅关联处理服务的查询模块中,该查询模块可以采用Apache Calcite引擎将SQL查询语句转换成各种数据库的查询计划,以通过各查询计划对相应的数据库进行查询。其中,Apache Calcite引擎是一个完整的查询处理系统,可以提供除数据存储和管理外的许多常用功能,如查询执行、优化和查询语言等。
在步骤S402中,基于所述查询计划对所述数据库进行查询,得到所述原始消息数据的关联数据。
然后,可以通过执行各种数据库的查询计划来请求数据库查询数据,以得到原始消息数据的关联数据。其中,查询计划也称为执行计划或者解释计划,是数据库执行SQL查询语句的具体步骤,例如,查询计划是指通过索引或是全表扫描访问表中的数据、连接查询的实现方式和连接的顺序等。
举例而言,将SQL查询语句1)和SQL查询语句2)分别转化为相应数据库的查询计划并进行数据库查询后,对应的,查询得到原始消息数据的关联数据可以为用户的项目信息和组织信息,项目信息中可以包括项目id值、项目名称等,组织信息中可以包括组织id值、组织名称等信息。
该示例中,对于关系型数据库和Nosql数据库统一使用SQL语法查询关联数据,无需调用多个接口对不同数据库进行查询,提高了数据查询效率。
获取原始消息数据的关联数据后,可以组合原始消息数据和原始消息数据的关联数据,得到目标消息数据,并将目标消息数据推送至对应的消息订阅系统。例如,可以通过HTTP(HyperText Transfer Protocol,超文本传输协议)协议、websocket(基于TCP的网络协议)协议等实现消息数据的推送。其中,消息订阅系统可以是订阅服务,也可以是数据库,即将目标消息数据同步至该数据库,该数据库可以是mongodb数据库、elasticSearch数据库等。示例性的,将关联数据补充至原始消息数据后,可以根据订阅条件进行过滤和推送,以确定是将完整的消息数据分发至目标订阅服务,还是将完整的消息数据同步至目标数据库。
可以理解的是,由于利用关联数据对原始消息数据进行了补全,对应的,后续可以实现更广泛的过滤处理。例如,补全后的原始消息数据除包括用户数据外,还包括组织信息、项目信息等,如可以根据组织信息将属于某一组织的用户信息推送到目标消息订阅系统。若目标消息订阅系统是需要同步的数据库,如ElasticSearch数据库,将补全后的原始消息数据同步至ElasticSearch数据库后,可以根据补全后的原始消息数据创建一个文档对象,该文档对象中可以包括不同维度的索引,如项目维度、组织维度等,不再仅限于用户信息维度。
获取原始消息数据的关联数据后,还可以将原始消息数据的关联数据进行缓存,并配置关联数据与目标字段之间的映射关系。从原始消息数据中提取到目标字段后,可以将目标字段作为查询条件,对于包含相同查询条件的消息数据,可以直接从缓存中获取对应的关联数据。例如,基于关联数据与目标字段之间的映射关系,使用目标字段进行查询,可以得到该目标字段对应的关联数据,而不需要再进行SQL查询,进而可以提升消息数据分发的速度。
该示例中,通过配置规则脚本和SQL模板进行消息事件关联数据查询和补全,简化了消息数据的关联查询,提高了数据查询效率。而且,对于关系型数据库和Nosql数据库统一使用SQL语法查询关联数据,无需调用多个接口对不同数据库进行查询,进一步提高了数据查询效率。另外,相比于Spark和flink等大数据框架,本公开提出了一种轻量级的数据处理方法,无需学习与编写复杂的数据处理代码,只需提交相关配置与SQL模板即可实现数据关联查询、过滤等处理。
一种示例实施方式中,参考图5所示,可以根据步骤S501至步骤S505实现消息数据的关联查询。
步骤S501.用户提交订阅和关联查询配置:用户通过调用消息订阅关联处理服务接口配置数据源、消息订阅推送系统服务地址、消息过滤条件、关联规则脚本及SQL模板与缓存信息等;
步骤S502.获取原始消息数据:当有新的消息事件时,从目标数据源提取原始消息数据,其中,目标数据源可以是消息队列系统,也可以是数据库日志事件等;
步骤S503.利用脚本引擎生成SQL查询语句:消息订阅关联处理服务会路由消息事件到相应的订阅,并根据订阅的配置确定关联规则脚本,进一步的,利用脚本引擎执行该关联规则脚本从原始消息数据中提取数据值作为查询条件,结合SQL模板和该查询条件生成完整的SQL查询语句;
步骤S504.利用Calcite引擎生成查询计划,并进行数据库查询:将生成的完整SQL查询语句输入消息订阅关联处理服务的查询模块,该查询模块采用Apache Calcite引擎可以将SQL查询语句转换成各种数据库的查询计划,通过查询计划来请求数据库数据,以获取原始消息数据的关联数据,其中,数据库可以是关系型数据库,也可以是NoSql数据库,如ElasticSearch数据库、Mongodb数据库、redis数据库等;
步骤S505.将关联处理后的消息数据进行分发:获取原始消息数据的关联数据后,可以将该关联数据补充至原始消息数据中。经过补全的消息数据,后续可通过订阅的配置进行消息过滤和分发,例如推送至订阅服务系统,或者同步至目标数据库。
该示例中,进行数据关联查询时无需数据库支持触发器,并且获取的关联数据可以来自不同数据库,从而实现异构数据库的数据同步。另外,SQL语法可以支持多种数据库(关系型数据库和NoSql数据库)的关联数据查询,以及通过关联查询配置即可实现关联数据查询,无需使用大数据框架来编码关联查询,极大地简化了消息数据的关联查询,提高了数据查询效率
在本公开示例实施方式所提供的数据处理方法中,通过预设服务接口配置规则脚本和查询模板;当通过所述预设服务接口接收到消息订阅请求时,获取所述消息订阅请求对应的原始消息数据;确定所述原始消息数据对应的规则脚本,并根据所述规则脚本提取所述原始消息数据中的目标字段;结合所述查询模板和所述目标字段,生成目标查询语句;利用所述目标查询语句进行数据库查询,得到所述原始消息数据的关联数据。本公开中通过配置规则脚本和查询模板,简化了消息数据的关联查询,提高了数据查询效率。
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
进一步的,本示例实施方式中,还提供了一种数据处理装置。该装置可以应用于终端设备。参考图6所示,该数据处理装置600可以包括关联查询配置模块610、消息数据获取模块620、查询条件提取模块630、查询语句生成模块640和关联数据查询模块660,其中:
关联查询配置模块610,用于通过预设服务接口配置规则脚本和查询模板;
消息数据获取模块620,用于当通过所述预设服务接口接收到消息订阅请求时,获取所述消息订阅请求对应的原始消息数据;
查询条件提取模块630,用于确定所述原始消息数据对应的规则脚本,并根据所述规则脚本提取所述原始消息数据中的目标字段;
查询语句生成模块640,用于结合所述查询模板和所述目标字段,生成目标查询语句;
关联数据查询模块660,用于利用所述目标查询语句进行数据库查询,得到所述原始消息数据的关联数据。
在一种可选的实施方式中,数据处理装置600还包括:
数据源配置模块,用于通过所述预设服务接口配置数据源,所述数据源包括消息队列和数据库日志中的至少一种。
在一种可选的实施方式中,消息数据获取模块620包括:
数据源确定子模块,用于当通过所述预设服务接口接收到消息订阅请求时,根据所述消息订阅请求中的消息类型确定目标数据源;
消息数据获取子模块,用于从所述目标数据源中获取与所述消息订阅请求对应的原始消息数据。
在一种可选的实施方式中,查询条件提取模块630包括:
规则脚本确定子模块,用于根据所述原始消息数据的消息类型确定所述原始消息数据对应的规则脚本;
查询条件提取子模块,用于利用脚本引擎执行所述规则脚本,以从所述原始消息数据中提取所述目标字段。
在一种可选的实施方式中,所述数据库包括关系型数据库和非关系型数据库中的至少一种;关联数据查询模块660包括:
执行计划生成子模块,用于利用查询引擎将所述目标查询语句转换为所述数据库的查询计划;
关联数据查询子模块,用于基于所述查询计划对所述数据库进行查询,得到所述原始消息数据的关联数据。
在一种可选的实施方式中,数据处理装置600还包括:
关联数据缓存模块,用于缓存所述原始消息数据的关联数据,并配置所述关联数据与所述目标字段之间的映射关系。
在一种可选的实施方式中,数据处理装置600还包括:
消息数据组合模块,用于组合所述原始消息数据和所述原始消息数据的关联数据,得到目标消息数据;
消息数据推送模块,用于将所述目标消息数据推送至对应的消息订阅系统。
在一种可选的实施方式中,数据处理装置600中的查询模板为SQL模板。
上述数据处理装置中各模块的具体细节已经在对应的数据处理方法中进行了详细的描述,因此此处不再赘述。
本公开的示例性实施方式还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使电子设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。该程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本公开的示例性实施方式还提供了一种能够实现上述方法的电子设备。下面参照图7来描述根据本公开的这种示例性实施方式的电子设备700。图7显示的电子设备700仅仅是一个示例,不应对本公开实施方式的功能和使用范围带来任何限制。
如图7所示,电子设备700可以以通用计算设备的形式表现。电子设备700的组件可以包括但不限于:至少一个处理单元710、至少一个存储单元720、连接不同系统组件(包括存储单元720和处理单元710)的总线730和显示单元740。
存储单元720存储有程序代码,程序代码可以被处理单元710执行,使得处理单元710执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。例如,处理单元710可以执行图2至图5中的方法步骤。
存储单元720可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)721和/或高速缓存存储单元722,还可以进一步包括只读存储单元(ROM)723。
存储单元720还可以包括具有一组(至少一个)程序模块725的程序/实用工具724,这样的程序模块725包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线730可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备700也可以与一个或多个外部设备800(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备700交互的设备通信,和/或与使得该电子设备700能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口750进行。并且,电子设备700还可以通过网络适配器7100与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器7100通过总线730与电子设备700的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备700使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开示例性实施方式的方法。
此外,上述附图仅是根据本公开示例性实施方式的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种数据处理方法,其特征在于,包括:
通过预设服务接口配置规则脚本和查询模板;
当通过所述预设服务接口接收到消息订阅请求时,获取所述消息订阅请求对应的原始消息数据;
确定所述原始消息数据对应的规则脚本,并根据所述规则脚本提取所述原始消息数据中的目标字段;
结合所述查询模板和所述目标字段,生成目标查询语句;
利用所述目标查询语句进行数据库查询,得到所述原始消息数据的关联数据,组合所述原始消息数据和所述原始消息数据的关联数据,得到目标消息数据;对所述目标消息数据进行过滤,将所述目标消息数据推送至对应的消息订阅系统,以便所述消息订阅系统基于所述目标消息数据进行不同数据维度下的数据处理;不同类型的关联数据存储至不同类型的数据库中。
2.根据权利要求1所述的数据处理方法,其特征在于,获取所述消息订阅请求对应的原始消息数据之前,所述方法还包括:
通过所述预设服务接口配置数据源,所述数据源包括消息队列和数据库日志中的至少一种。
3.根据权利要求2所述的数据处理方法,其特征在于,所述当通过所述预设服务接口接收到消息订阅请求时,获取所述消息订阅请求对应的原始消息数据,包括:
当通过所述预设服务接口接收到消息订阅请求时,根据所述消息订阅请求中的消息类型确定目标数据源;
从所述目标数据源中获取与所述消息订阅请求对应的原始消息数据。
4.根据权利要求1所述的数据处理方法,其特征在于,所述确定所述原始消息数据对应的规则脚本,并根据所述规则脚本提取所述原始消息数据中的目标字段,包括:
根据所述原始消息数据的消息类型确定所述原始消息数据对应的规则脚本;
利用脚本引擎执行所述规则脚本,以从所述原始消息数据中提取所述目标字段。
5.根据权利要求1所述的数据处理方法,其特征在于,所述数据库包括关系型数据库和非关系型数据库中的至少一种;所述利用所述目标查询语句进行数据库查询,得到所述原始消息数据的关联数据,包括:
利用查询引擎将所述目标查询语句转换为所述数据库的查询计划;
基于所述查询计划对所述数据库进行查询,得到所述原始消息数据的关联数据。
6.根据权利要求1所述的数据处理方法,其特征在于,得到所述原始消息数据的关联数据之后,所述方法还包括:
缓存所述原始消息数据的关联数据,并配置所述关联数据与所述目标字段之间的映射关系。
7.根据权利要求1-6任一项所述的数据处理方法,其特征在于,所述查询模板为SQL模板。
8.一种数据处理装置,其特征在于,包括:
关联查询配置模块,用于通过预设服务接口配置规则脚本和查询模板;
消息数据获取模块,用于当通过所述预设服务接口接收到消息订阅请求时,获取所述消息订阅请求对应的原始消息数据;
查询条件提取模块,用于确定所述原始消息数据对应的规则脚本,并根据所述规则脚本提取所述原始消息数据中的目标字段;
查询语句生成模块,用于结合所述查询模板和所述目标字段,生成目标查询语句;
关联数据查询模块,用于利用所述目标查询语句进行数据库查询,得到所述原始消息数据的关联数据,组合所述原始消息数据和所述原始消息数据的关联数据,得到目标消息数据;对所述目标消息数据进行过滤,将所述目标消息数据推送至对应的消息订阅系统,以便所述消息订阅系统基于所述目标消息数据进行不同数据维度下的数据处理;不同类型的关联数据存储至不同类型的数据库中。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法。
10.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1-7任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210991741.5A CN115344614B (zh) | 2022-08-15 | 2022-08-15 | 数据处理方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210991741.5A CN115344614B (zh) | 2022-08-15 | 2022-08-15 | 数据处理方法、装置、存储介质及电子设备 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN115344614A CN115344614A (zh) | 2022-11-15 |
| CN115344614B true CN115344614B (zh) | 2025-01-03 |
Family
ID=83952522
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210991741.5A Active CN115344614B (zh) | 2022-08-15 | 2022-08-15 | 数据处理方法、装置、存储介质及电子设备 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN115344614B (zh) |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116127945B (zh) * | 2022-12-26 | 2025-11-21 | 深圳中泓在线股份有限公司 | 网络链接处理方法和装置、电子设备、存储介质 |
| CN116069809A (zh) * | 2022-12-30 | 2023-05-05 | 中国电信股份有限公司 | 数据交换方法及装置、非易失性存储介质 |
| CN116361394A (zh) * | 2023-03-29 | 2023-06-30 | 浙江大华技术股份有限公司 | 消息的提示方法、装置、存储介质及电子装置 |
| CN116760782A (zh) * | 2023-06-05 | 2023-09-15 | 平安银行股份有限公司 | 一种数据交互方法及装置 |
| CN118035253A (zh) * | 2024-01-18 | 2024-05-14 | 北京锐融天下科技股份有限公司 | 一种数据库同步更新的方法和系统 |
| CN119622032B (zh) * | 2024-11-26 | 2025-07-04 | 中国民航信息网络股份有限公司 | 订阅数据的处理方法、装置及电子设备 |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110019350A (zh) * | 2017-07-28 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 基于配置信息的数据查询方法和装置 |
| CN111400408A (zh) * | 2020-04-13 | 2020-07-10 | 上海东普信息科技有限公司 | 数据同步方法、装置、设备及存储介质 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2015036817A1 (en) * | 2013-09-15 | 2015-03-19 | Yogesh Chunilal Rathod | Structured updated status, requests, user data & programming based presenting & accessing of connections |
| CN110597844B (zh) * | 2019-08-14 | 2023-07-21 | 中国平安财产保险股份有限公司 | 异构数据库数据统一访问方法及相关设备 |
| CN112650766B (zh) * | 2019-10-10 | 2023-10-13 | 腾讯科技(深圳)有限公司 | 数据库数据操作的方法、系统及服务器 |
| CN112818015B (zh) * | 2021-01-21 | 2022-07-15 | 广州汇通国信科技有限公司 | 基于数据血缘分析的数据追踪方法、系统及存储介质 |
| US12118006B2 (en) * | 2021-01-29 | 2024-10-15 | Microsoft Technology Licensing, Llc | Automated code generation for computer software |
-
2022
- 2022-08-15 CN CN202210991741.5A patent/CN115344614B/zh active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN110019350A (zh) * | 2017-07-28 | 2019-07-16 | 北京京东尚科信息技术有限公司 | 基于配置信息的数据查询方法和装置 |
| CN111400408A (zh) * | 2020-04-13 | 2020-07-10 | 上海东普信息科技有限公司 | 数据同步方法、装置、设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN115344614A (zh) | 2022-11-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN115344614B (zh) | 数据处理方法、装置、存储介质及电子设备 | |
| US20210248143A1 (en) | Automatically executing graphql queries on databases | |
| CN113760948A (zh) | 一种数据查询的方法及装置 | |
| CN112948486B (zh) | 批量数据同步方法、系统及电子设备 | |
| CN110032575A (zh) | 数据查询方法、装置、设备和存储介质 | |
| CN113761016B (zh) | 数据查询方法、装置、设备及存储介质 | |
| CN109522341B (zh) | 实现基于sql的流式数据处理引擎的方法、装置、设备 | |
| CN113536748B (zh) | 一种生成图表数据的方法和装置 | |
| CN106649630A (zh) | 数据查询方法及装置 | |
| US11222016B2 (en) | Dynamic combination of processes for sub-queries | |
| CN109495392B (zh) | 报文转换处理方法及装置、电子设备、存储介质 | |
| CN109726217B (zh) | 一种数据库操作方法、装置、设备及存储介质 | |
| US20250173163A1 (en) | Page display method and apparatus, storage medium and electronic device | |
| CN112905620B (zh) | 数据查询方法及装置、电子设备、存储介质 | |
| CN112307061B (zh) | 用于查询数据的方法和装置 | |
| CN108959294B (zh) | 一种访问搜索引擎的方法和装置 | |
| US20220300503A1 (en) | Querying distributed databases | |
| CN113760240A (zh) | 一种生成数据模型的方法和装置 | |
| CN115292313A (zh) | 一种伪列实现方法、装置、电子设备及存储介质 | |
| CN113760961B (zh) | 数据查询方法和装置 | |
| CN114003583A (zh) | 一种目标格式数据请求体的构建方法、装置、介质及设备 | |
| CN113448995B (zh) | 数据库操作方法及装置、系统、电子设备和存储介质 | |
| WO2023164294A1 (en) | Query splitter for an inverted index datastore | |
| CN110704534A (zh) | 基于elasticsearch的复杂业务数据优化检索方法以及装置 | |
| CN114676163A (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 |