CN110609852A - 流式数据处理方法、装置、计算机设备和存储介质 - Google Patents

流式数据处理方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN110609852A
CN110609852A CN201910640164.3A CN201910640164A CN110609852A CN 110609852 A CN110609852 A CN 110609852A CN 201910640164 A CN201910640164 A CN 201910640164A CN 110609852 A CN110609852 A CN 110609852A
Authority
CN
China
Prior art keywords
streaming data
event
processing
data
event identifier
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.)
Granted
Application number
CN201910640164.3A
Other languages
English (en)
Other versions
CN110609852B (zh
Inventor
江希
屈飞鹏
廖平
黄信朝
张鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhaolian Consumer Finance Co ltd
Original Assignee
Merchants Union Consumer Finance Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Merchants Union Consumer Finance Co Ltd filed Critical Merchants Union Consumer Finance Co Ltd
Priority to CN201910640164.3A priority Critical patent/CN110609852B/zh
Publication of CN110609852A publication Critical patent/CN110609852A/zh
Application granted granted Critical
Publication of CN110609852B publication Critical patent/CN110609852B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries

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

本申请涉及一种流式数据处理方法、装置、计算机设备和存储介质。所述方法包括:当接收到流式数据时,根据所述流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句,对所述目标SQL语句进行解析,得到所述流式数据对应的事件标识,当所述事件标识与预先存储的事件标识相匹配时,对所述流式数据进行处理。能够优化数据处理过程,提高了数据处理效率。

Description

流式数据处理方法、装置、计算机设备和存储介质
技术领域
本申请涉及数据处理技术领域,特别是涉及一种流式数据处理方法、装置、计算机设备和存储介质。
背景技术
随着互联网和物联网技术的发展,数字化的广泛应用,大数据技术得到快速发展和应用。例如网站与移动应用场景对各类业务实时分析统计、网络安全实时监测需要对其产生的大量数据进行分析,涉及到流式数据处理。
然而,基于MapReduce的流式数据处理通过时间窗口定时触发流式数据处理,分段处理数据,系统维护和扩展不方便,导致数据处理过程繁琐,数据处理效率低。
发明内容
基于此,有必要针对上述数据处理效率低问题,提供一种能够提高数据处理效率的流式数据处理方法、装置、计算机设备和存储介质。
一种流式数据处理方法,所述方法包括:
当接收到流式数据时,根据所述流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句;
对所述目标SQL语句进行解析,得到所述流式数据对应的事件标识;
当所述事件标识与预先存储的事件标识相匹配时,对所述流式数据进行处理。
在其中一个实施例中,所述对所述目标SQL语句进行解析,得到所述流式数据对应的事件标识之后,所述方法还包括:
获取所述事件标识对应的多个第一数据表;
将所述多个第一数据表合并成一个第二数据表。
在其中一个实施例中,所述对所述目标SQL语句进行解析,得到所述流式数据对应的事件标识包括:
通过解析器中语法分析器和词法分析器对所述目标SQL语句进行解析,得到所述流式数据对应的事件标识及对应的事件处理策略。
在其中一个实施例中,所述在所述对所述目标SQL语句进行解析,得到所述流式数据对应的事件标识之后,所述方法还包括:通过所述解析器将所述事件标识及对应的事件处理策略传输给计算引擎的路由层;
通过所述计算引擎的路由层将所述事件标识及对应的事件处理策略分发到所述计算引擎的存储与计算层;
所述当所述事件标识与预先存储的事件标识相匹配时,对所述流式数据进行处理,包括:
通过所述计算引擎的存储与计算层将所述事件标识与预先存储的事件标识进行比较,若相匹配,则按照所述事件处理策略对所述流式数据进行处理,得到处理结果。
在其中一个实施例中,所述方法还包括:
通过所述计算引擎的存储与计算层将所述处理结果传输给所述计算引擎的输出层。
在其中一个实施例中,所述方法还包括:
将所述流式数据的处理结果写入到第一数据库和第二数据库中,所述第一数据库用于实时查询,所述第二数据库用于离线查询。
在其中一个实施例中,所述方法还包括:
将所述流式数据的处理结果写入到第三数据库;
当所述第三数据库中的数据量达到数量阈值或到达预设时长,则将所述第三数据库中的处理结果存储到所述第二数据库中。
一种流式数据处理装置,所述装置包括:
获取模块,用于所述获取流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句;
处理模块,用于解析器解析所述目标SQL语句,获取所述流式数据对应的事件标识;
触发模块,用于当所述事件标识与预先存储的事件标识相匹配时,对所述流式数据进行处理。
在其中一个实施例中,所述装置还包括:
合并模块,用于将事件标识对应的多个第一数据表合并成一个第二数据表。
在其中一个实施例中,所述装置还包括:
写入模块,用于把流式数据的处理结果写入到第一数据库和第二数据库。
在其中一个实施例中,写入模块,还用于:
将所述流式数据的处理结果写入到第三数据库;
当所述第三数据库中的数据量达到数量阈值或到达预设时长,则将所述第三数据库中的处理结果存储到所述第二数据库中。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
当接收到流式数据时,根据所述流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句;
对所述目标SQL语句进行解析,得到所述流式数据对应的事件标识;
当所述事件标识与预先存储的事件标识相匹配时,对所述流式数据进行处理。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当接收到流式数据时,根据所述流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句;
对所述目标SQL语句进行解析,得到所述流式数据对应的事件标识;
当所述事件标识与预先存储的事件标识相匹配时,对所述流式数据进行处理。
上述流式数据处理方法、装置、计算机设备和存储介质,当接收到流式数据时,根据流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句,对目标SQL语句进行解析,得到流式数据对应的事件标识,不需要对流式数据进行分段管理;当事件标识与预先存储的事件标识相匹配时,对流式数据进行处理,因此不需要通过消息窗口或者定时器触发执行数据处理,通过事件触发流式数据,优化数据处理过程,提高了数据处理效率,也提高了程序运行性能和系统的稳定性。
附图说明
图1为一个实施例中流式数据处理方法的应用环境图;
图2为一个实施例中流式数据处理方法的流程示意图;
图3为一个实施例中流式数据处理平台架构图;
图4为另一个实施例中流式数据处理方法的流程示意图;
图5为一个实施例中流式数据处理步骤的流程示意图;
图6为一个实施例中流式数据处理装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的流式数据处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。终端102接收当接收到服务器104发送的流式数据时,根据流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句,对目标SQL语句进行解析,得到流式数据对应的事件标识,当事件标识与预先存储的事件标识相匹配时,对流式数据进行处理。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种流式数据处理方法,以该方法应用于图1中的终端102为例进行说明,包括以下步骤:
步骤202,当接收到流式数据时,根据流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句。
其中,流式数据可以是一组顺序、大量、快速、连续到达的数据序列(value list)。流式数据包含很多种数据,例如,流式数据可以是设备性能参数或设备采集的数据、网购数据、社交网站信息数据、客户端移动或Web应用程序生成的日志文件、金融行业的业务数据以及数据中心连接的设备或仪器的遥控数据等。流式数据可以是从分布式消息系统Kafka中获取的,也可以是其他数据库,这里不做限定。
流式数据处理逻辑指令可以是对流式数据进行处理的方法。流式数据处理逻辑指令可以通过自定义结构化查询语言(SQL语句)体现。不同的应用场景下的流式数据的用途和价值不同,流式数据的处理逻辑也不同。例如,调查线上商品销售市场,要筛选出网购数据中消费者成交商品的数目数据、商品的点击率数据或消费者在该商品停留的时间数据,对获取的这些数据进行流式数据处理。分析影响产品产能原因,要筛选出固定时间段内的温度和/或电导率等参数数据以及固定时间段内的产能数据,对获取的这些数据进行流式处理。
SQL语句有数据的增、删、改、查等基本功能,不同的SQL语句中可以有不同的计算表达式、条件表达式、函数等,例如,SQL查询语句:Select COUNT(*) FROM Persons WHEREAge>20,其中COUNT(*)是一个计算函数,返回表中Persons 的Age>20的行数,WHERE后面部分是查询语句的条件部分。流式数据可以有不同的数据源,可以是注册数据、登录数据,目标SQL语句可以是流式计算逻辑处理指令中计算一天注册成功的次数或一天登录的总时间的SQL语句。具体地,终端接收到流式数据时,调用解析包对流式数据进行解析。其中,解析可以是把流式数据解析为终端102可识别的对象,解析包可以是Json解析包,也可以是自定义的解析包。例如,把字符串类型的流式数据转换为终端可识别的对象,可识别的对象可以是value list的名称(name)、事件id、数据类型等,可识别对象通过映射可获取对应的流式数据处理逻辑指令中的目标SQL语句。
步骤204,对该目标SQL语句进行解析,得到该流式数据对应的事件标识。
其中,目标SQL语句是用于表达数据处理请求的SQL语句。计算引擎仅根据接收的数据处理请求执行不了数据处理,需要根据目标SQL语句的执行规则执行数据处理,即通过对目标SQL语句进行解析,可以是获取SQL查询语句的语句顺序,根据语句顺序确定语句的执行顺序。例如,目标SQL语句可以是:
SELECT DISTINCT<select_list>
FROM<left_table><join_type>
JOIN<right_table>ON<join_condition>
WHERE<where_condition>
GROUP BY<group_by_list>
HAVING<having_condition>
ORDER BY<order_by_condition>
LIMIT<limit_number>
对目标SQL语句进行解析得到执行顺序如下:
FROM<left_table>→ON<join_condition>→<join_type>JOIN <right_table>→WHERE<where_condition>→GROUP BY<group_by_list>→ HAVING<having_condition>→SELECT→DISTINCT<select_list>→ORDER BY <order_by_condition>→LIMIT<limit_number>每个步骤对应一个逻辑算子,例如,SELECT就是一个逻辑算子,每个逻辑算子描述SQL表达式不同操作,逻辑算子组成一个逻辑查询计划。
流式数据可以是数据序列,当接收的流式数据可以是多组不同数据序列,且每个数据序列会有对应事件id、name、属性等,事件标识可以是流式数据中的事件id、name等。
步骤206,当事件标识与预先存储的事件标识相匹配时,对流式数据进行处理。
其中,事件标识可通过解析目标SQL语句得到,事件标识可以是流式数据中的事件id、name、状态等,这里不做限定。预先存储的事件标识可以是事件id、name、状态等。预先存储的事件标识是指根据需要预先配置的事件对应的事件标识。该预先存储的事件标识可采用数据库方式存储或列表方式存储等。将事件标识与预先存储的事件标识进行比较,当事件标识与预先存储的事件标识相同时,则表示事件标识与预先存储的事件标识相匹配。当事件标识与预先存储的事件标识相匹配时,对流式数据进行查询计算,例如,获取的事件标识是“5”、预先存储的事件标识中也有“5”,即事件标识与预先存储的事件标识相同,对事件标识是“5”的流式数据进行处理。
上述流式数据处理方法中,当接收到流式数据时,根据流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句,对目标SQL语句进行解析,得到流式数据对应的事件标识,不需要对流式数据进行分段管理;当事件标识与预先存储的事件标识相匹配时,对流式数据进行处理,因此不需要通过消息窗口或者定时器触发执行数据处理,通过事件触发流式数据,优化数据处理过程,提高了数据处理效率,也提高了程序运行性能和系统的稳定性。SQL表达式支持可配置化、灵活性高,提高程序的伸缩性,扩展了流式数据处理的应用场景。
在一个实施例中,对该目标SQL语句进行解析,得到流式数据对应的事件标识包括:
通过解析器中语法分析器和词法分析器对所述目标SQL语句进行解析,得到所述流式数据对应的事件标识及对应的事件处理策略。
其中,解析器可以是数据库连接池Druid中的Druid SQL解析器、计算引擎自带的SQL解析器。例如,Druid SQL解析器对SQL语句解析包括词法分析、语法分析、输出抽象语法树(AST)。词法解析可以是按照定义的词法将输入中的字符集转换为‘单词’,例如,词法解析select name from user的SQL语句,解析出单独的单词是select,name,from,user;语法分析可以是把词法分析结果作为输入,在词法分析的基础上判断单词组合是否符合语法规则,语法分析器根据语法规则进行解析输出SQL语句的语义,语义可以用AST来表示,AST的结构内容和输入一一对应。
事件处理策略可以是抽象语法树通过编译工具编译输出查询计划,通过查询计划指导物理算子,读取流式数据中表的内容,根据SQL语义执行查询计划,物理算子是查询计划中逻辑算子的实现方式,例如,查询计划中的逻辑算子是 Join,Join的物理算子实现可以用嵌套循环(NestLoop Join)、哈希连接 (HashJoin)等。其中,事件处理策略是指对事件进行处理的规则。事件处理策略可为统计预设时间段内的登录次数和,例如,统计2009年10月1日至2 日登录的次数和。事件处理策略也可为统计在线时长。通过解析目标SQL,获取流式数据的事件标识和事件处理策略,优化了数据处理过程,提高数据处理效率,也提高了程序运行的稳定性。
在一个实施例中,在对目标SQL语句进行解析,得到流式数据对应的事件标识之后,该方法还包括:
通过解析器将事件标识及对应的事件处理策略传输给计算引擎的路由层;
通过计算引擎的路由层将事件标识及对应的事件处理策略分发到计算引擎的存储与计算层;
当所述事件标识与预先存储的事件标识相匹配时,对流式数据进行处理,包括:
通过计算引擎的存储与计算层将事件标识与预先存储的事件标识进行比较,若相匹配,则按照所述事件处理策略对所述流式数据进行处理,得到处理结果。
其中,计算引擎可以是根据一定的策略,负责计算中数据的数据来源、数据操作、数据管理并根据实际需求返回数据计算结果。计算引擎可以是Jstorm,计算引擎包括输入层、路由层、存储与计算层、输出层,计算引擎可以在系统协调(ZooKeeper)的协调下解决计算引擎在流式数据处理中遇到的问题。其中输入层是数据源(Spout),输入层中Spout的数目在这里不做限定;路由层可以是分发处理器(DispatchBolt),DispatchBolt数目在这里不做限定;存储与计算层可以是计算处理器(ComputeBolt),ComputeBolt数目在这里不做限定;输出层可以是结果处理器(ResultBolt),可以有两个ResultBolt,数目在这里不做限定。路由层把事件标识和对应的事件处理策略分发给存储与计算层可以是根据计算引擎的数据流分发策略分发的,数据流分发策略可以是随机分组(Shuffle Grouping)、按字段分组(Fields Grouping)、广播分组(All Grouping)、全局分组(Global Grouping)、不分组(None Grouping)、指向分组(Direct Grouping)、自定义分组(Local or Shufflegrouping)。例如, Shuffle Grouping是可以根据数据序列中的“user-id”这个字段来分组,把相同的user-id的数据序列分到同一个处理器的Task上,进行数据处理。通过事件标识触发流式数据处理,优化数据处理过程,提高了数据处理的效率。
在一个实施例中,该方法还包括:
通过所述计算引擎的存储与计算层将所述处理结果传输给所述计算引擎的输出层。
其中,计算引擎的存储与计算层把处理结果传输给计算引擎的输出层可以根据计算引擎的数据流分发策略传输的,可以优化数据处理,提高数据处理准确性。
下面结合一个具体的实施例来描述流式数据处理平台的结构。如图3所示,在一个实施例中,流式数据处理平台,包括:输入层302、路由层304、存储与计算层306、输出层308、协调层310、外部存储312,其中:
输入层302,用于从Kafka获取流式数据,作为流式数据输入。
其中,输入层数据可以是风控事件(RiskEvent-Spout)、资信数据 (zx-Spout)、导数导入(Dataimport-Spout)数据来源很多,可以是从实时风控、审批系统、Spark批量导数程序中获取,其中,Spark批量导数程序导入的可以是历史数据,RiskEvent-Spout、zx-Spout、Dataimport-Spout可以是计算引擎的数据源,也可以是消息中间件并能不断发送消息。
路由层304,用于对输入层302输入的流式数据与协调层310获取的表达式进行匹配,在进行处理后,分发给存储与计算层。
其中,路由层304中可以是规则匹配与请求分发处理器(DispatchBolt), 数目不限定。在路由层304中还可以对同一事件id不同数据源的数据进行事件合并,减少数据处理的次数,优化处理过程。路由层304根据计算引擎分发策略把处理结果发送给存储与计算层306。
存储与计算层306,可以存储预设事件id和执行表达式计算。
其中,存储与计算层306可以有三个存储与计算处理器(ComputeBolt), 数目不做限定。在存储与计算层306执行表达式计算之前把从输入层302接收的输入数据存储在外部存储312中。
输出层308,用于接收存储与计算层306中ComputeBolt的计算结果,把计算结果进行合并,输出到外部存储312。
其中,输出层308可以有两个输出结果处理器(ResultBolt),这里数目不做限定。
协调层310,用于解决流式数据处理中遇到的数据管理问题。
其中,协调层310可以是一个ZooKeeper集群,(ZK集群),ZK集群里面可以有3台服务器,例如,可以用于规则管理、模型管理等,在这里数目不做限定。
外部存储312,用于存储流式数据处理结果。
其中,外部存储312包括使用不同应用的数据库,比如,可以把流式处理结果缓存到缓存数据库中,缓存数据可以实现实时数据查询,优化数据的获取,提高查询效率,其中,Redis可用来缓存数据。
上述流式数据处理平台架构图,将识别后表达式发送到计算引擎的路由层,根据分发策略把表达式从路由层发送至存储与计算层,在表达式从路由层发送至存储与计算层时,把输入的数据存储到一个开源数据库中,确保数据不被丢失。在存储与计算层,满足表达式计算的触发条件时,可以是识别的事件id与存储的事件id匹配,则执行表达式计算,得到数据计算结果。通过计算引擎的输出层可以把数据输出到不同数据库,实现不同场景的应用。
在一个实施例中,该方法还包括:
将所述流式数据的处理结果写入到第一数据库和第二数据库中,所述第一数据库用于实时查询,所述第二数据库用于离线查询。
其中,第一数据库的数据类型可以是字符串、列表、集合等,第一数据库可以应用于会话缓存、实时消息推送、订阅消息等,第一数据库可以通过设定时间或数据量达到数量阈值对数据库中数据进行删除,提高查询效率。第二数据库数据的数据类型可以是纯文本、Hbase中的文件等,第二数据库可以用于日志分析、海量结构化数据离线分析等会话缓存第二数据库。通过把流式数据写入第一数据库和第二数据库可以满足不同应用场景应用。
在一个实施例中,该方法还包括:
将所述流式数据的处理结果写入到第三数据库;
当所述第三数据库中的数据量达到数量阈值或到达预设时长,则将所述第三数据库中的处理结果存储到所述第二数据库中。
其中,第三数据库可以用于负载分流,例如第三数据库可为HBASE数据库。当第三数据库中的数据量达到数量阈值或到达预设时长时,把处理结果存储到第二数据库中,确保数据的完整性,可实现离线数据处理。
在一个实施例中,如图4所示,提供了一种流式数据处理方法,以该方法应用于图1中的终端102为例进行说明,对所述目标SQL语句进行解析,得到所述流式数据对应的事件标识之后,包括以下步骤:
步骤402,获取所述事件标识对应的多个第一数据表;将所述多个第一数据表合并成一个第二数据表。
具体地,接收的流式数据中多个数据表种度含有相同的事件标识,把包含相同事件标识中数据表进行合并,得到一个新的数据表,减少同一事件标识的数据处理次数,优化数据处理流程,提高数据处理准确率。
步骤404,当所述事件标识与预先存储的事件标识相匹配时,对所述流式数据进行处理。
其中,预先存储的事件标识是指根据需要预先配置的事件对应的事件标识。该预先存储的事件标识可采用数据库方式存储或列表方式存储等。
将事件标识与预先存储的事件标识进行比较,当事件标识与预先存储的事件标识相同时,则表示事件标识与预先存储的事件标识相匹配。
上述流式数据处理方法中,当接收到流式数据时,根据流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句,对目标SQL语句进行解析,得到流式数据对应的事件标识之后获取事件标识对应的多个第一数据表,将多个第一数据表合并成一个第二数据表,减少同一事件标识的数据处理次数;当事件标识与预先存储的事件标识相匹配时,对流式数据进行处理,因此不需要通过消息窗口或者定时器触发执行数据处理,通过事件触发流式数据,优化数据处理过程,提高了数据处理效率,也提高了程序运行性能和系统的稳定性。SQL表达式支持可配置化、灵活性高,提高程序的伸缩性,扩展了流式数据处理的应用场景。
在一个实施例中,如图5所示,提供了一种流式数据处理步骤图,包括:
步骤502,数据输入。
具体地,计算引擎输入层接受从数据库获取的流式数据,其中数据库可以 Kafka,在这里不做限定。
步骤504,通过索引获取表达式。
具体地,计算引擎输入层接受从数据库获取的流式数据时,对流式数据进行分析,可以获取流式数据的信息,信息可以是流式数据的name,流式数据的信息与表达式的索引可以是映射关系,其中,表达式可以是SQL表达式。通过映射获取信息对应的索引,进而获取数据计算规则。索引是用来快速地寻找那些具有特定值的记录,可以快速查找,索引可以是唯一索引、主键、单列索引、多列索引、全局索引等。例如,如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作过程时间越长,准确率越低。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。
步骤506,识别表达式。
其中,表达式不是一般简单可立即计算的表达式,例如,1+2*3对获取的表达式进行识别与计算,可以是具有特殊的内定的语法,通过对表达式特殊内定的语法进行识别,表达式才能进行计算。
具体地,可以以SQL表达式为例,通过Durid中词法分析器和语法分析器对SQL表达式中特殊内定的语法进行解析,可以得到SQL表达式中数据源、字段、约束条件等。通过识别SQL表达式后,才能进行计算。
步骤608,求解表达式。
具体地,将识别后表达式发送到计算引擎的路由层,根据分发策略把表达式从路由层发送至存储与计算层,在表达式从路由层发送至存储与计算层时,把输入的数据存储到一个开源数据库中,确保数据不被丢失。在存储与计算层,满足表达式计算的触发条件时,可以是识别的事件id与与存储的事件id匹配,则执行表达式计算,得到数据计算结果。通过计算引擎的输出层可以把数据输出到不同数据库,实现不同场景的应用。
上述流式数据处理步骤,通过对计算引擎输入层的输入数据识别,在存储与计算层判断是否满足表达式计算的触发条件,当满足表达式计算的触发条件时,执行表达式计算。优化数据处理过程,提高了数据处理效率。
虽然图2、图4、图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图图2、图4、图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种流式数据处理装置,包括:获取模块602、处理模块604、触发模块606,其中:
获取模块602,用于获取流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句。
处理模块604,用于解析器解析所述目标SQL语句,获取流式数据对应的事件标识。
触发模块606,用于当事件标识与预先存储的事件标识相匹配时,对流式数据进行处理。
上述流式数据处理装置,当接收到流式数据时,根据流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句,对目标SQL语句进行解析,得到流式数据对应的事件标识,不需要对流式数据进行分段管理;当事件标识与预先存储的事件标识相匹配时,对流式数据进行处理,因此不需要通过消息窗口或者定时器触发执行数据处理,通过事件触发流式数据,优化数据处理过程,提高了数据处理效率,也提高了程序运行性能和系统的稳定性。SQL表达式支持可配置化、灵活性高,提高程序的伸缩性,扩展了流式数据处理的应用场景。
在一个实施例中,如图6所示,流式数据处理装置600还包括合并模块608、写入模块610,其中:
合并模块608,用于将事件标识对应的多个第一数据表合并成一个第二数据表。
写入模块610,用于把流式数据的处理结果写入到第一数据库和第二数据库。
在一个实施例中,写入模块610,用于将流式数据的处理结果写入到第三数据库;当第三数据库中的数据量达到数量阈值或到达预设时长,则将第三数据库中的处理结果存储到第二数据库中。
在一个实施例中,如图6所示,流式数据处理装置600还包括传送模块612,其中:
传送模块612,用于把事件标识及对应的事件处理策略传输给计算引擎的路由层,通过计算引擎的路由层将事件标识及对应的事件处理策略分发到计算引擎的存储与计算层。
在一个实施例中,传送模块612用于把计算引擎的存储与计算层的处理结果传输给该引擎的输出层。上述装置中各个模块的划分仅用于举例说明,在其他实施例中,可将推荐信息生成装置按照需要划分为不同的模块,以完成上述推荐信息生成装置的全部或部分功能。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种流式数据处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
当接收到流式数据时,根据流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句;
对目标SQL语句进行解析,得到流式数据对应的事件标识;
当事件标识与预先存储的事件标识相匹配时,对流式数据进行处理。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述对目标SQL语句进行解析,得到流式数据对应的事件标识之后,所述方法还包括:
获取事件标识对应的多个第一数据表;
将多个第一数据表合并成一个第二数据表。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述对目标SQL语句进行解析,得到流式数据对应的事件标识包括:
通过解析器中语法分析器和词法分析器对目标SQL语句进行解析,得到流式数据对应的事件标识及对应的事件处理策略。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在对所述目标SQL语句进行解析,得到流式数据对应的事件标识之后,该方法还包括:通过解析器将事件标识及对应的事件处理策略传输给计算引擎的路由层;
通过计算引擎的路由层将事件标识及对应的事件处理策略分发到所述计算引擎的存储与计算层;
当所述事件标识与预先存储的事件标识相匹配时,对流式数据进行处理,包括:
通过计算引擎的存储与计算层将所述事件标识与预先存储的事件标识进行比较,若相匹配,则按照事件处理策略对流式数据进行处理,得到处理结果。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
通过计算引擎的存储与计算层将处理结果传输给计算引擎的输出层。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将流式数据的处理结果写入到第一数据库和第二数据库中,第一数据库用于实时查询,第二数据库用于离线查询。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将流式数据的处理结果写入到第三数据库;
当所述第三数据库中的数据量达到数量阈值或到达预设时长,则将第三数据库中的处理结果存储到第二数据库中。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
当接收到流式数据时,根据流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句;
对目标SQL语句进行解析,得到流式数据对应的事件标识;
当事件标识与预先存储的事件标识相匹配时,对流式数据进行处理。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对目标SQL语句进行解析,得到流式数据对应的事件标识之后,该方法还包括:
获取事件标识对应的多个第一数据表;
将多个第一数据表合并成一个第二数据表。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
对目标SQL语句进行解析,得到流式数据对应的事件标识包括:
通过解析器中语法分析器和词法分析器对目标SQL语句进行解析,得到流式数据对应的事件标识及对应的事件处理策略。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在对目标SQL语句进行解析,得到流式数据对应的事件标识之后,该方法还包括:
通过解析器将所述事件标识及对应的事件处理策略传输给计算引擎的路由层;
通过计算引擎的路由层将所述事件标识及对应的事件处理策略分发到计算引擎的存储与计算层;
当事件标识与预先存储的事件标识相匹配时,对流式数据进行处理,包括:
通过计算引擎的存储与计算层将事件标识与预先存储的事件标识进行比较,若相匹配,则按照事件处理策略对所述流式数据进行处理,得到处理结果。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
通过计算引擎的存储与计算层将处理结果传输给计算引擎的输出层。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将流式数据的处理结果写入到第一数据库和第二数据库中,第一数据库用于实时查询,第二数据库用于离线查询。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将流式数据的处理结果写入到第三数据库;
当所述第三数据库中的数据量达到数量阈值或到达预设时长,则将第三数据库中的处理结果存储到所述第二数据库中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM (EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM (SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM (DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种流式数据处理方法,所述方法包括:
当接收到流式数据时,根据所述流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句;
对所述目标SQL语句进行解析,得到所述流式数据对应的事件标识;
当所述事件标识与预先存储的事件标识相匹配时,对所述流式数据进行处理。
2.根据权利要求1所述的方法,其特征在于,在所述对所述目标SQL语句进行解析,得到所述流式数据对应的事件标识之后,所述方法还包括:
获取所述事件标识对应的多个第一数据表;
将所述多个第一数据表合并成一个第二数据表。
3.根据权利要求1所述的方法,其特征在于,所述对所述目标SQL语句进行解析,得到所述流式数据对应的事件标识包括:
通过解析器中语法分析器和词法分析器对所述目标SQL语句进行解析,得到所述流式数据对应的事件标识及对应的事件处理策略。
4.根据权利要求3所述的方法,其特征在于,在所述对所述目标SQL语句进行解析,得到所述流式数据对应的事件标识之后,所述方法还包括:
通过所述解析器将所述事件标识及对应的事件处理策略传输给计算引擎的路由层;
通过所述计算引擎的路由层将所述事件标识及对应的事件处理策略分发到所述计算引擎的存储与计算层;
所述当所述事件标识与预先存储的事件标识相匹配时,对所述流式数据进行处理,包括:
通过所述计算引擎的存储与计算层将所述事件标识与预先存储的事件标识进行比较,若相匹配,则按照所述事件处理策略对所述流式数据进行处理,得到处理结果。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
通过所述计算引擎的存储与计算层将所述处理结果传输给所述计算引擎的输出层。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述流式数据的处理结果写入到第一数据库和第二数据库中,所述第一数据库用于实时查询,所述第二数据库用于离线查询。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将所述流式数据的处理结果写入到第三数据库;
当所述第三数据库中的数据量达到数量阈值或到达预设时长,则将所述第三数据库中的处理结果存储到所述第二数据库中。
8.一种流式数据处理装置,其特征在于,所述装置包括:
获取模块,用于获取所述流式数据获取对应的流式数据处理逻辑指令中的目标SQL语句;
处理模块,用于解析器解析所述目标SQL语句,获取所述流式数据对应的事件标识;
触发模块,用于当所述事件标识与预先存储的事件标识相匹配时,对所述流式数据进行处理。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN201910640164.3A 2019-07-16 2019-07-16 流式数据处理方法、装置、计算机设备和存储介质 Active CN110609852B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910640164.3A CN110609852B (zh) 2019-07-16 2019-07-16 流式数据处理方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910640164.3A CN110609852B (zh) 2019-07-16 2019-07-16 流式数据处理方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN110609852A true CN110609852A (zh) 2019-12-24
CN110609852B CN110609852B (zh) 2022-09-02

Family

ID=68890019

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910640164.3A Active CN110609852B (zh) 2019-07-16 2019-07-16 流式数据处理方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN110609852B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177199A (zh) * 2019-12-31 2020-05-19 中国银行股份有限公司 基于结构化流的流式计算指标生成系统
CN111291052A (zh) * 2020-02-04 2020-06-16 支付宝(杭州)信息技术有限公司 用于对计算任务的源数据进行结构化存储的方法及装置
CN111509849A (zh) * 2020-04-22 2020-08-07 广东电网有限责任公司 一种基于流式计算的数字电网系统
CN112583722A (zh) * 2021-02-26 2021-03-30 紫光恒越技术有限公司 一种数据处理的方法、装置、云设备和存储设备
CN112612621A (zh) * 2020-12-16 2021-04-06 京东数字科技控股股份有限公司 数据处理方法及相关设备
CN112949172A (zh) * 2021-02-24 2021-06-11 重庆中科云从科技有限公司 一种数据处理方法、装置、机器可读介质及设备
CN114722014A (zh) * 2022-06-09 2022-07-08 杭银消费金融股份有限公司 基于数据库日志文件的批量数据时间序列传输方法及系统
CN114780584A (zh) * 2022-06-22 2022-07-22 云账户技术(天津)有限公司 多场景流式数据处理方法、系统、网络设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609451A (zh) * 2012-01-11 2012-07-25 华中科技大学 面向流式数据处理的sql查询计划生成方法
CN105808585A (zh) * 2014-12-29 2016-07-27 大唐软件技术股份有限公司 一种流式数据的处理方法和装置
US20180332366A1 (en) * 2017-05-09 2018-11-15 EMC IP Holding Company LLC Organizing present and future reads from a tiered streaming data storage layer
CN109522341A (zh) * 2018-11-27 2019-03-26 北京京东金融科技控股有限公司 实现基于sql的流式数据处理引擎的方法、装置、设备
CN109857524A (zh) * 2019-01-25 2019-06-07 深圳前海微众银行股份有限公司 流式计算方法、装置、设备及计算机可读存储介质
CN109918391A (zh) * 2019-03-12 2019-06-21 威讯柏睿数据科技(北京)有限公司 一种流式事务处理方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609451A (zh) * 2012-01-11 2012-07-25 华中科技大学 面向流式数据处理的sql查询计划生成方法
CN105808585A (zh) * 2014-12-29 2016-07-27 大唐软件技术股份有限公司 一种流式数据的处理方法和装置
US20180332366A1 (en) * 2017-05-09 2018-11-15 EMC IP Holding Company LLC Organizing present and future reads from a tiered streaming data storage layer
CN109522341A (zh) * 2018-11-27 2019-03-26 北京京东金融科技控股有限公司 实现基于sql的流式数据处理引擎的方法、装置、设备
CN109857524A (zh) * 2019-01-25 2019-06-07 深圳前海微众银行股份有限公司 流式计算方法、装置、设备及计算机可读存储介质
CN109918391A (zh) * 2019-03-12 2019-06-21 威讯柏睿数据科技(北京)有限公司 一种流式事务处理方法及系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111177199A (zh) * 2019-12-31 2020-05-19 中国银行股份有限公司 基于结构化流的流式计算指标生成系统
CN111177199B (zh) * 2019-12-31 2023-05-02 中国银行股份有限公司 基于结构化流的流式计算指标生成系统
CN111291052A (zh) * 2020-02-04 2020-06-16 支付宝(杭州)信息技术有限公司 用于对计算任务的源数据进行结构化存储的方法及装置
CN111509849A (zh) * 2020-04-22 2020-08-07 广东电网有限责任公司 一种基于流式计算的数字电网系统
CN112612621A (zh) * 2020-12-16 2021-04-06 京东数字科技控股股份有限公司 数据处理方法及相关设备
CN112949172A (zh) * 2021-02-24 2021-06-11 重庆中科云从科技有限公司 一种数据处理方法、装置、机器可读介质及设备
CN112949172B (zh) * 2021-02-24 2023-07-04 重庆中科云从科技有限公司 一种数据处理方法、装置、机器可读介质及设备
CN112583722A (zh) * 2021-02-26 2021-03-30 紫光恒越技术有限公司 一种数据处理的方法、装置、云设备和存储设备
CN114722014A (zh) * 2022-06-09 2022-07-08 杭银消费金融股份有限公司 基于数据库日志文件的批量数据时间序列传输方法及系统
CN114722014B (zh) * 2022-06-09 2022-09-02 杭银消费金融股份有限公司 基于数据库日志文件的批量数据时间序列传输方法及系统
CN114780584A (zh) * 2022-06-22 2022-07-22 云账户技术(天津)有限公司 多场景流式数据处理方法、系统、网络设备和存储介质

Also Published As

Publication number Publication date
CN110609852B (zh) 2022-09-02

Similar Documents

Publication Publication Date Title
CN110609852B (zh) 流式数据处理方法、装置、计算机设备和存储介质
CN108874992B (zh) 舆情分析方法、系统、计算机设备和存储介质
US20230333919A1 (en) Flexible and scalable artificial intelligence and analytics platform with advanced content analytics and data ingestion
CN111310427A (zh) 业务数据配置处理方法、装置、计算机设备和存储介质
Doyle et al. Forecasting significant societal events using the embers streaming predictive analytics system
CN104951539A (zh) 互联网数据中心有害信息监测系统
Kannan et al. Predictive big data analytic on demonetization data using support vector machine
CN112131295A (zh) 基于Elasticsearch的数据处理方法及设备
CN111753527A (zh) 基于自然语言处理的数据分析方法、装置和计算机设备
Banane et al. A new system for massive RDF data management using Big Data query languages Pig, Hive, and Spark
Wang et al. A novel complex event processing engine for intelligent data analysis in integrated information systems
Jisha et al. Mobile applications recommendation based on user ratings and permissions
CN115544007A (zh) 标签预处理方法、装置、计算机设备和存储介质
CN114153995B (zh) 医学术语的处理方法、装置、计算机设备和存储介质
CN112069384A (zh) 一种埋点数据处理方法、服务器及可读存储介质
CN110362607B (zh) 异常号码识别方法、装置、计算机设备及存储介质
Ahsaan et al. Big data analytics: challenges and technologies
CN114356968A (zh) 查询语句生成方法、装置、计算机设备及存储介质
CN112287111B (zh) 一种文本处理方法和相关装置
CN107527289B (zh) 一种投资组合行业配置方法、装置、服务器和存储介质
CN114090769A (zh) 实体挖掘方法、装置、计算机设备和存储介质
CN114896543A (zh) 舆情分析方法、装置及存储介质
CN113961811A (zh) 基于事件图谱的话术推荐方法、装置、设备及介质
Motohashi et al. Technological competitiveness of China's internet platformers: comparison of Google and Baidu by using patent text information
Cho et al. Storm-based distributed sampling system for multi-source stream environment

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Patentee after: Zhaolian Consumer Finance Co.,Ltd.

Country or region after: China

Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Patentee before: MERCHANTS UNION CONSUMER FINANCE Co.,Ltd.

Country or region before: China