CN109033109B - 数据处理方法及系统 - Google Patents
数据处理方法及系统 Download PDFInfo
- Publication number
- CN109033109B CN109033109B CN201710434019.0A CN201710434019A CN109033109B CN 109033109 B CN109033109 B CN 109033109B CN 201710434019 A CN201710434019 A CN 201710434019A CN 109033109 B CN109033109 B CN 109033109B
- Authority
- CN
- China
- Prior art keywords
- node
- sql
- acyclic graph
- operation instruction
- directed acyclic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本申请公开了一种数据处理方法及系统,属于大数据领域,以动态生成有向无环图。所述方法包括:接收第一SQL操作指令;根据所述第一SQL操作指令生成第一有向无环图,所述第一有向无环图用于定义所述流式处理应用的逻辑处理计划,所述第一有向无环图包括输入节点、中间节点、输出节点和用于连接节点的有向边,所述输入节点对应所述事件源,每个所述中间节点对应一个数据集,所述输出节点用于输出结果数据,每个所述有向边对应一个运算逻辑;接收与所述第一有向无环图中指定节点对应的第二SQL操作指令;根据所述第二SQL操作指令对所述第一有向无环图进行修改。本申请用于大数据分析处理。
Description
技术领域
本申请实施例涉及大数据的数据处理领域,特别涉及一种数据处理方法及系统。
背景技术
大数据(Big Data)指的是数据量大小规格超越传统数据库工具抓取、存储、管理和分析能力的大型数据集。大数据分为静态数据集和流式数据两种。在对静态数据集进行数据处理时,通常采用结构化查询语言(Structure Query Language,SQL)语句定义对静态数据集的处理逻辑,然后根据该处理逻辑以批处理的形式对静态数据集中的数据进行增加、删除、修改和查询之类的数据操作并反馈计算结果。
但在诸如视频网络监控、金融服务和传感监测之类的应用领域中,数据集不是静态数据集,而是实时生成的流式数据。此时需要采用流式处理应用对流式数据进行处理,该流式处理应用也可以通过SQL语句来定义。在相关技术中,对流式数据进行数据处理的方法包括:一、对于一个流式处理应用,首先用户采用数据定义语言(Data DefinitionLanguage,DDL)语言在流式处理系统中定义事件源,事件源是用于从外部数据源引入该流式处理应用需要处理的流式数据;二、用户采用DDL语言定义对该事件源的逻辑处理计划,该逻辑处理计划用于表示流式处理应用的计算逻辑;三、由流式处理系统根据逻辑处理计划生成多个计算任务并分配至多个计算节点来分布式执行。
在上述技术方案中,逻辑处理计划是一个有向无环图,该有向无环图包括输入节点、中间节点和输出节点,每个输入节点是一个事件源,每个中间节点是一个数据集,每个输出节点用于输出结果数据。在用户预先使用SQL语句对流式处理应用的逻辑处理计划进行定义后,该有向无环图在流式处理系统中一经构建就无法修改,不能满足不断变化的计算需求。
发明内容
为了解决现有技术的问题,本申请实施例提供了一种数据处理方法及系统,能够动态生成和/或修改有向无环图。所述技术方案如下:
一方面,提供了一种数据处理方法,所述方法包括:
接收第一SQL操作指令;
根据所述第一SQL操作指令生成第一有向无环图,所述第一有向无环图用于定义所述流式处理应用的逻辑处理计划,所述第一有向无环图包括输入节点、中间节点、输出节点和用于连接节点的有向边,所述输入节点对应事件源,所述事件源每个所述中间节点对应一个数据集,所述输出节点用于输出结果数据,每个所述有向边对应一个运算逻辑;
接收与所述第一有向无环图中的指定节点对应的第二SQL操作指令;
根据所述第二SQL操作指令对所述第一有向无环图进行修改;
通过所述至少一个计算节点根据所述第一有向无环图对所述流式数据进行处理。
另一方面,提供一种数据处理系统,所述系统包括管理节点和计算节点,其中:
所述管理节点,用于接收与事件源对应的第一SQL操作指令,所述事件源用于向流式处理应用输入数据集;并根据所述第一SQL操作指令生成第一有向无环图,所述第一有向无环图用于定义所述流式处理应用的逻辑处理计划,所述第一有向无环图包括输入节点、中间节点、输出节点和用于连接节点的有向边,所述输入节点对应所述事件源,每个所述中间节点对应一个数据集,所述输出节点用于输出结果数据,每个所述有向边对应一个运算逻辑;
所述管理节点,还用于接收与所述第一有向无环图中指定节点对应的第二SQL操作指令;并根据所述第二SQL操作指令对所述第一有向无环图进行修改;
所述管理节点,还用于通过所述至少一个计算节点根据所述第一有向无环图对所述流式数据进行处理。
在本申请实施例中,根据第一SQL操纵指令生成第一有向无环图,并在接收到与第一有向无环图中的指定节点对应的第二SQL操作指令时,对第一有向无环图进行修改,如此,可以根据SQL操作指令的变化实现动态生成有向无环图或者修改有向无环图,满足流式计算应用可能会随时间不断变化的计算需求。
附图说明
图1A是本申请一个示例性实施例提供的流式计算系统的示意图;
图1B是本申请一个示例性实施例提供的有向无环图的示意图;
图2是本申请一个示例性实施例提供的DDL处理流程的示意图;
图3是本申请一个示例性实施例提供的DML处理流程的示意图;
图4是本申请一个示例性实施例提供的一种数据处理方法的流程图;
图5是本申请一个示例性实施例提供的一种有向无环图的示意图;
图6是在图5所示有向无环图基础上通过增加节点和有向边形成的另一有向无环图的示意图;
图7是图5所示有向无环图基础上通过删除节点和有向边形成的另一有向无环图的示意图;
图8是本申请实施例提供的流式计算系统的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先对本申请所涉及的若干个名词进行介绍:
流式数据:是随着时间变化而实时产生的数据流。比如,通过监控摄像头对道路路口所经过的各个汽车进行拍摄,得到的视频数据即为一种流式数据。
流式处理系统:用于对流式数据进行数据处理的计算系统,又称流式计算框架。
流式处理应用:用于对流式数据进行数据处理的应用程序。流式处理应用通常为分布式的计算应用程序。流式处理应用通常运行在流式处理系统中。典型的流式处理系统包括:Spark streaming(火花流式)计算系统、Storm streaming(风暴流式)计算系统。
数据源:用于产生流式数据或静态数据集的数据来源。可选地,数据源是Kafka(卡夫卡)、Flume(水流)、HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)、Kinesis(运动)和Twitter(推特)中的任意一种。比如,通过监控摄像头对道路路口所经过的各个汽车进行拍摄,得到的视频数据可以采用Kafka存储方式,作为流式处理应用的外部数据源。
图1A是本申请一个示例性实施例提供的流式计算系统的框图。该流式计算系统可以是一个分布式计算系统。该流式计算系统120用于将来自外部的数据源110的流式数据进行数据处理,得到结果数据;然后将结果数据输出给数据利用方的设备130进行持久化存储或利用。其中:
数据源110用于产生流式数据或静态数据集。数据源110可以采用Kafka、Flume、HDFS、Kinesis和Twitter中的任意一种。
流式计算系统120包括:管理节点122和至少一个计算节点124。可选地,可选地,管理节点122用于对各个计算节点124进行资源管理、主备管理、应用管理和任务管理中的至少一种。资源管理是指对各个计算节点124中的计算资源进行管理;主备管理是指对各个计算节点124在发生故障时,实现主备切换管理;应用管理是指对运行在流式计算系统上的至少一个流式计算应用进行管理;任务管理是指对于一个流式计算应用对应的若干个任务进行管理。在不同的流式计算系统中,管理节点122可能具有不同的名称,比如,主控节点(英文:master node)。
管理节点122通过有线网络、无线网络或专用硬件接口与计算节点124相连。
计算节点124负责处理对流式数据或数据集的计算任务。当存在多个计算节点124时,多个计算节点124之间通过有线网络、无线网络或专用硬件接口相连。
可以理解的是,在虚拟化场景下,流计算系统的管理节点122和计算节点124也可以由运行在通用硬件上的虚拟机来实现。本申请实施例不限定管理节点122是物理实体还是逻辑实体,也不限定计算节点124是物理实体还是逻辑实体。
数据利用方的设备130是用于对结果数据进行持久化存储或实时利用的设备,也称数据消费设备。数据利用方的设备130可以采用HDFS、数据库或数据虚拟化工具之类的存储形式。
可选地,上述系统还包括终端140,终端140是诸如手机、平板电脑、膝上型便携计算机和台式计算机之类的电子设备,本实施例对终端140的硬件形式不加以限定。终端140中运行有客户端,客户端用于提供用户与分布式计算系统之间的人机交互入口。客户端具有根据用户的输入,获取SQL操作指令的能力。
用户在使用流式处理系统120对流式数据进行处理时,可以采用结构化查询语言(Structured Query Language,SQL)操作指令在管理节点122中定义流式处理应用的逻辑处理计划。
逻辑处理计划是流式处理应用对流式数据进行数据处理时的计算逻辑。可选地,逻辑处理计划采用有向无环图(英文:DirectedAcyclic Graph,简称:DAG)来表征,该DAG也称为流图。
图1B是本申请一个示例性实施例提供的有向无环图的示意图。有向无环图20包括:输入节点21、中间节点22、输出节点23和至少一个有向边。其中:
每个输入节点21可视为一个事件源,事件源用于从外部的数据源引入流式处理应用需要处理的流式数据。对于一个有向无环图来讲,输入节点21可以是一个或多个。示意性的,数据源包括所有抓拍的过车记录,当流式处理应用需要计算最近一个小时内经过的绿色车牌的车辆数时,输入节点21用于从数据源中获取最近一个小时内的过车记录。
每个中间节点22对应一个数据集。通常,中间节点22对应中间计算过程所产生的数据。当流式计算系统采用Spark streaming系统时,中间节点22对应的数据集是RDD(ResilientDistributed Datasets,弹性分布式数据集)。
输出节点23用于输出结果数据,结果数据可以是RDD,也可以是静态数据集,或者其它可持久化存储的数据。
有向边24用于连接两个节点。每个有向边代表一组计算逻辑。有向边24包括起始顶点和结束顶点,与有向边24的起始顶点相连的节点,可称为父节点;与有向边24的结束顶点相连的节点,可称为子节点。
用户可通过终端140向管理节点122发送SQL指令,SQL操作指令还可以称为SQL规则或SQL语句;管理节点122可根据接收到的SQL指令生成流式计算应用。本申请中的SQL指令包括:DDL语句和DML语句。其中,DDL可以实现对流式计算应用的事件源进行定义,DDL可用来创建流式处理应用的逻辑处理计划。DDL语句可包括:CREATE DATABASE-创建新数据库;ALTER DATABASE-修改数据库;CREATE TABLE-创建新表;ALTERTABLE-变更(改变)数据库表;DROP TABLE-删除表;CREATE INDEX-创建索引(搜索键);DROP INDEX-删除索引等。DML语句可实现对数据的基本操作,例如"增删改查"操作。DML语句可包括:SELECT-从数据库表中获取数据;UPDATE-更新数据库表中的数据;DELETE-从数据库表中删除数据;INSERTINTO-向数据库表中插入数据。
当然,由于本申请中采用DDL语句来定义流式处理应用的事件源,同时采用DDL语句来定义流式处理应用的逻辑处理计划,所以上述语句的实际含义不限于对数据库的操作,还可扩展为对流式数据进行的各种操作。
本申请实施例中的处理流程可分为DDL处理流程和DML处理流程两类。举例而言,定义事件源的流程为DDL处理流程,比如定义schema(数据表样式)与创建映射表;select查询为DML处理流程。其中,Schema为数据库对象的集合,Schema中包含了各种对象,如表(table)、索引(index)、视图(view)等。
如图2所示,DDL处理流程可包括:1、接收用户输入的SQL操作指令,该SQL操作指令包括至少一个DDL语句;2、对用户输入的SQL操作指令进行解析,匹配SQL语句中的命令关键字;3、将SQL语句映射为命令;4、根据映射得到的命令创建外部的数据源和事件源之间的映射关系。
如图3所示,DML处理流程可包括:1、接收用户输入的SQL操作指令,该SQL操作指令包括至少一个DML语句;2、对用户输入的SQL操作指令进行解析;3、使用预定义的抽象语法书对用户输入的SQL操作指令进行分析,得到逻辑处理计划;4、对逻辑处理计划的运算复杂度进行优化,比如将逻辑处理计划划分为多个阶段(stage);5、将逻辑处理计划映射为一个可以物理执行的任务集合;6、将任务集合中的各个任务分配至计算节点中进行执行,并将计算得到的结果数据输出后,进行持久化存储或利用。
在本申请实施例中,在DDL的创建关系流程中,当数据源为一个静态数据集时,只需提供一个可以访问该静态数据集的接口即可;而当数据源为一个流式数据时,除了定义与流式数据对应的数据访问接口,可选地,还可以按照窗口将流式数据划分为一个个离散的数据流对象(DStream)作为事件源,该离散的数据流对象可以视为一个窗口数据集。该窗口数据集对应的窗口类型包括:滑动窗口(slide)类型或跳动窗口(skip)类。其中:
与滑动窗口类型对应的窗口数据集,是可沿着时间轴连续移动并将位于窗口外的流式数据清除,让窗口内时刻保持着最新的数据集。比如,截至当前时刻的最近一个小时的过车记录。
与跳动窗口类型对应的窗口数据集,是可按指定的时间间隔(例如,5秒)移动,一次清除窗口内的全部数据,并插入新的数据的数据集。比如,1:00-2:00的过车记录、2:00-3:00的过车记录。
本申请实施例中引入窗口的概念使得来自外部数据源的流式数据,被处理为有边界的多个离散的窗口数据集,使得能够以窗口数据集为单位,对流式数据执行查询、分析等操作。
下面结合具体的SQL语言对定义Schema、创建映射表、以及对窗口数据集进行查询和分析分别进行说明。
一、定义Schema示例:如下方SQL操作指令定义了一个表名为vehiclePass(过车记录)的Schema信息。
alter schema on vehiclePass//修改表名vehiclePass的Schema信息
OPTIONS(schemaInfo'plateNo String,passeid Long,plateType Int',//属性(样式信息“车牌号码字符串,过车编号长整型,车牌类型数字常量”)
operateType'CREATE')//操作类型“创建”
也即,上述DDL语句定义了一个有关过车记录的数据源,该数据源包括:车牌号码、过车编号和车牌类型等信息。
二、创建映射表示例:映射表使用上面创建的Schema信息,并且可以指定数据源为任一静态数据集或者流式数据,下面以流式数据进行示例。
如下方SQL操作指令创建了一个以分布式消息队列Kafka为实时流数据源的映射表,该映射表可以认为是一个窗口数据集,可以作为流式计算应用的事件源进行使用。
create mapping table vehiclePass//从vehicle Pass创建映射表
using com.KafkaStreamSource//使用Kafka流式数据源
options(kafkaZkConnector'node1,node2,node3',//属性:kafkaZk连接器'节点1,节点2,节点',
kafkaBrokerList'node1:9092,node2:9092,node3:9092',//kafkaBroker列表,节点1:9092,节点2:9092,节点3:9092;
topicName'vehiclePassHBase',//主键名称:过车记录基础数据
range'5s',//时间范围‘5秒’
window'slide'),//窗口类型:滑动窗口类型
也即,上述DDL定义了一个窗口数据集作为事件源,该窗口数据集从外部的分布式消息队列Kafka获取流式数据,并通过时长为5秒的滑动窗口类型,生成窗口数据集,以便供流式计算应用进行处理。
三、对窗口数据集进行查询和分析的示例:对映射表执行查询分析操作。
select*from vehiclePass where plateNo LIKE'abc%'//从窗口数据集vehiclePass中查询出符合格式'abc%'的车牌号码。
上述仅示例性的列出了一些DDL语句,并不构成对本申请的限定。
下面结合图4至图7所示出的方法流程,对本申请实施例提供的数据处理方法进行说明。
图4是本申请实施例提供的一种数据处理方法的流程图。本申请实施例提供的数据处理方法可以由图1A所示出的管理节点来执行。参照图4,本申请实施例提供的数据处理方法可包括:
步骤41,接收第一SQL操作指令。
在通过DDL语句定义事件源之后,用户可以输入与事件源对应的第一SQL操作指令,来定义与流式处理应用的逻辑处理计划。
可选地,第一SQL操作指令包括至少一句SQL语句。SQL语句包括DDL语句和/或DML语句,通常DDL语句定义了事件源和流式处理应用的逻辑处理计划,DML用于触发逻辑处理计划的物理执行以及查询和统计等处理操作。第一SQL操作指令中的SQL语句的数目可以为一条或多条。
在图4所示的数据处理方法应用于图1A所示的流式计算系统时,管理节点接收到的第一SQL操作指令可来自于图1A所示的终端140。
步骤42,根据第一SQL操作指令生成第一有向无环图。其中,第一有向无环图用于定义流式处理应用的逻辑处理计划,第一有向无环图包括输入节点、中间节点、输出节点和用于连接节点的有向边,每个输入节点对应一个事件源,每个中间节点对应一个数据集(例如RDD),输出节点用于输出结果数据,每个有向边对应一个运算逻辑。
管理节点在接收到第一SQL操作指令后,可解析第一SQL操作指令,并根据第一SQL操作指令中的DML操作语句生成第一有向无环图。
可参照图5,管理节点根据第一SQL操作指令后生成第一有向无环图500。其中,DStream表示输入节点(即,对应数据源),D1、D2、D4、D5、D7表示中间节点(对应于中间计算过程所产生的数据集),D3、D6和D8对应于输出节点。图5中的有向边可以是select语句所定义的处理逻辑,用于从一个数据集生成另一个数据集;也可以是窗口动作(WindowsAction)所定义的计算逻辑,用于对窗口数据集进行某一种计算处理。
然后,管理节点存储第一有向无环图。也可以将第一有向无环图生成为多个任务,并交给分布式计算节点进行计算。
步骤43,接收与第一有向无环图中的指定节点对应的第二SQL操作指令。
在第一有向无环图已经构建后,用户还可以对第一有向无环图进行修改。修改包括:增加节点和/或有向边,和/或,删除节点和/或有向边。
与第一有向无环图中的第一指定节点对应的第二SQL操作指令是指,第二SQL操作指令中的某些SQL语句涉及到了第一有向无环图中的指定节点,该指定节点可以是第一有向无环图中的输入节点(也即事件源),也可以是第一有向无环图中的中间节点,甚至还可以是第一有向无环图中的输出节点。也就是说,如果第二SQL操作指令涉及到了对第一有向无环图的已经存在的指定节点有关的操作,则可认为第二SQL操作指令与第一有向无环图中的第一指定节点对应。指定节点可以为一个或多个。
可选地,第二SQL操作指令中包括SQL语句的数目可以为一条或多条。第二SQL操作指令中的SQL语句可包括DDL语句和DML语句。
步骤44,根据第二SQL操作指令对第一有向无环图进行修改。
在本申请实施例中,根据第一SQL操纵指令生成第一有向无环图,并在接收到与第一有向无环图对应的第二SQL操作指令时,对第一有向无环图进行修改,如此,可以根据SQL操作指令的变化实现动态生成或修改有向无环图,从而可降低时延,提高对SQL操作的处理速度。
在本申请实施例中,修改操作可包括增加操作和删除操作。具体地,对第一有向无环图进行修改可包括:
在第一有向无环图中增加有向边和与有向边相连的指定节点(中间节点或输出节点)。可选地,增加的有向边的数目和指定节点的数目是相同的,而且取决于第二SQL操作指令,增加的有向边和指定节点的数目可以为一或多个;在第一有向无环图中删除有向边和与有向边相连的指定节点(中间节点或输出节点),其中,删除的有向边的数目和指定节点的数目是相同的,而且取决于第二SQL操作指令,删除的有向边和指定节点的数目可以为一或多个。
本申请实施例中的第二SQL操作指令包括至少一条SQL语句。管理节点通过对这至少一条SQL语句执行解析等处理操作可以确定第一有向无环图中已存在的指定节点和与此已存在的指定节点相连的有向边。进而,管理节点可进一步根据第二SQL操作指令中的SQL语句在此指定节点和与此指定节点相连的有向边的基础上增加节点,抑或是删除此指定节点和与此指定节点相连的有向边。下面对第一有向无环图进行修改的几种方式分别进行说明。
在一个实施例中,步骤44中根据第二SQL操作指令对第一有向无环图进行修改可包括:根据第二SQL操作指令中的至少一条SQL语句,确定出第一有向无环图中的第一指定节点,第一指定节点可以为第一有向无环图中的中间节点和/或输入节点;根据第二SQL操作指令中的至少一条SQL语句,在第一有向无环图中增加与第一指定节点相连的第一有向边;根据第二SQL操作指令中的至少一条SQL语句,在第一有向无环图中增加与第一有向边相连的新增节点,新增节点是中间节点或输出节点。
举例而言,可参照图6,图6中实线连接部分表示根据第一SQL操作指令生成的有向无环图(即,图5所示的有向无环图),图6中虚线连接部分为根据第二SQL操作指令进行增加的新增节点(即,D7)和有向边(即,D7和D4之间的有向边)。在本申请实施例中,视第二SQL操作指令中的SQL语句(DDL语句或DML语句)而定,管理节点可在图5所示有向无环图的基础上只增加一个新增节点D7以及D7和D4之间的有向边,也可以在增加新增节点D7以及D7和D4之间的有向边的基础上,还增加新的输出节点D8以及D7和D8之间的有向边。图6中虽然同时示出了中间节点D7、D7和D4之间的有向边、输出节点D8以及D8与中间节点D7之间的有向边,但这只是示例。本申请实施例中,增加的新增节点和有向边的数目是基于第二SQL操作指令中的SQL语句来确定的。
可选地,管理节点在对第二SQL操作指令的执行解析等处理操作的过程中,在根据至少一条SQL语句确定第一指定节点之后,可检测第二SQL操作指令中这至少一条SQL语句对应的输入数据集是否对应于第一有向无环图中已经存在的第一指定节点;若输入数据集对应于第一指定节点,则将第一有向无环图中的第一指定节点复用为与SQL语句对应的输入节点。本申请实施例通过复用事件源,可以减小管理节点(例如服务器)和客户端设备之间的交互次数,提高管理节点的处理效率。以图6为例,管理节点在增加节点D7以及新增节点D7和中间节点D4之间的有向边的过程中,会先确定出第一指定节点D4。在本申请实施例中,管理节点在确定第一指定节点D4的过程中,可通过检测第二SQL操作指令的SQL语句的输入数据集是否对应于节点D4所代表的数据集,如果SQL语句的输入数据集对应于节点D4所代表的数据集,则可将图5所示有向无环图中的节点D4复用为SQL语句对应的输入节点。在此基础上,管理节点可进一步根据第二SQL操作指令中的其他SQL语句实现在D4节点的基础上增加有向边和增加节点D7。
下面以举例方式说明复用事件源的一种情形。
假定创建事件源的语句如下:
create stream event vehiclePassSE//创建数据流事件过车记录SE
using KafkaStreamSource//使用Kafka流式数据源
options(kafkaZkConnector'node1,node2,node3',//属性:kafkaZk连接器'节点1,节点2,节点',
kafkaBrokerList'node1:9092,node2:9092,node3:9092',//kafkaBroker列表,节点1:9092,节点2:9092,节点3:9092;
topicName'vehiclePassHBase')//主键名称‘过车记录基础数据’
由于该事件源已经在第一有向无环图中生成,则本次不需要再次生成该事件源,仅需要复用该事件源即可。
下面以举例方式说明在复用事件源的增加有向边和中间节点的一种情形。
比如下面的一条DML语句,则基于事件源vehiclePassSE创建了一个5秒滑动窗口的操作表vehiclePass。
insert into table vehiclePass select*from vehiclePassSE(range'5s',window'slide')//从事件源过车记录SE中,使用时长为5秒的滑动窗口采集数据,插入到数据表vehiclePass中,形成一个窗口数据集。
该窗口数据集对应一个新增的中间节点;
又比如下方语句基于事件源vehiclePassSE对流记录进行过滤并将结果写到本地文件。
insert into localFile(dir'/home/test/',file'streamsql.out')select*from vehiclePassSE where plateType=1//从事件源vehiclePassSE查询出车牌类型=1的数据,并且插入到本地文件中写入,本地文件的路径为'/home/test/',文件名为'streamsql.out'。
该输出过程对应一个新增的输出节点。
在另一个实施例中,步骤44中根据第二SQL操作指令对第一有向无环图进行修改可包括:根据第二SQL操作指令中的至少一条SQL语句,确定出第一有向无环图中的第二指定节点和与第二指定节点相连的第二有向边;根据第二SQL操作指令中的至少一条SQL语句,在第一有向无环图中删除第二指定节点和第二有向边,其中,第二指定节点可以为第一有向无环图中的中间节点或输出节点。举例而言,可参照图7,图7表示在图5所示的有向无环图的基础上根据第二SQL操作指令中的SQL语句进行删除操作后的有向无环图,图7中根据第二SQL操作指令删除的部分为第二指定节点D3以及D3和D2之间的有向边。在本申请实施例中,视第二SQL操作指令中的SQL语句而定,管理节点可在图5所示有向无环图的基础上只删除一个第二指定节点D3以及D3和D4之间的有向边(即图7所示的有向无环图),也可以在图7删除第二指定节点D3以及D3和D2之间的有向边的基础上,还删除中间节点D2以及D2和D1之间的有向边(图7未示出)。图7中虽然只示出了删除节点D3以及D3和D2之间的有向边,但这只是示例。本申请实施例中,删除的节点和有向边的数目是基于第二SQL操作指令中的SQL语句来确定的。
在本申请实施例中,管理节点在处理流式处理应用时无需每次操作都按照固定的处理拓扑来进行操作,可以动态生成或修改第一有向无环图并按照动态生成的有向无环图来处理流式处理应用,从而可降低时延,提高对SQL操作的处理速度。
步骤45,通过至少一个计算节点根据第一有向无环图对流式数据进行处理。
管理节点在步骤42之后或步骤44之后,可根据第一有向无环图中的有向边生成至少一个任务,每个任务用于对有向边的父节点的数据集进行处理,父节点是与有向边的起始顶点相连的节点。然后,管理节点将至少一个任务分配至计算节点进行执行。在流式数据的处理过程中,管理节点可根据第一SQL操作指令生成的第一有向无环图中的有向边生成至少一个任务,并管理一或多个计算节点执行任务;同时,在根据第二SQL操作指令对有向无环图进行修改后,管理节点又可根据修改后的第一有向无环图中的有向边生成至少一个任务,并管理一或多个计算节点执行任务。
可选地,由于用户输入的第一SQL操作指令和/或第二SQL操作指令可可以具有n条SQL语句,其中,存在至少一条SQL语句中携带有并发度m。此时,相应地,在管理节点根据一条有向边生成任务时,可对携带有并发度m的SQL语句所对应的有向边,生成并发的m个任务。管理节点在生成并发的这m个任务之后,可将这m个任务分发给多个计算节点并行执行。
举例而言,在创建滑动窗口的操作表vehiclePass时,可指定并发度例如为4来执行过滤操作,具体的SQL语句可如下所示:
insert into table vehiclePass select*from vehiclePassSE(parallel'4',range'5s',window'slide')where plateType=1//采用并发度4的任务,从事件源过车记录SE中,使用时长为5秒的滑动窗口采集数据,插入到数据表vehiclePass中,形成一个窗口数据集。
这样一来,可实现多个计算节点并行执行同一任务,提高计算效率。
本申请实施例提供的数据处理方法可应用于分布式文件系统中,可支持在执行相关操作分析时指定并发度,如此,可以保证多个计算节点来并发执行管理节点生成的多个任务,从而提高任务执行的效率。
在本申请实施例中,可选地,计算节点可包括第一计算节点和第二计算节点,当存在一个任务在第一计算节点中执行失败时,管理节点检测任务对应的有向边的父节点是否处于正常状态,父节点是与有向边的起始顶点相连的节点;若父节点处于正常状态,则管理节点重新生成任务,将任务调度至第二计算节点中执行,第二计算节点用于从父节点中获取数据集并重新计算。
当然,在父节点也处于非正常状态时,则管理节点会进一步检测父节点的上一级父节点是否处于正常状态,若父节点的上一级父节点处于正常状态,则管理节点根据上一级父节点重新生成任务,将任务调度至第二计算节点中执行,第二计算节点用于从父节点的上一级父节点中获取数据集并重新计算。在父节点的上一级父节点也处于非正常状态时,则管理节点会进一步检测父节点的上一级父节点的更上一级父节点是否处于正常状态,依此类推按照上面提到的方式进行处理。
在本申请中,对于分布式计算框架容错也是一个重要的特性。本方案所封装的事件、表等处理对象,在计算框架底层都是对应的Spark的弹性分布式数据集(ResilientDistributed Database,RDD)。而对于RDD可使用节点之间的关系机制来保证故障时的容错处理。因此,本申请实施例中可根据各个计算节点之间的关系来进行容错处理。即,当一个计算节点出现计算故障时可将原来分配给此计算节点的任务调度至此计算节点的父节点执行。如此,可实现容错功能。
可选地,在另一个实施例中,管理节点在生成第一有向无环图之后,管理节点还可接收第三SQL操作指令;根据第三SQL操作指令生成第二有向无环图,第二有向无环图包括第一输入节点和第二输入节点,第一输入节点是第一有向无环图的输出节点,第二输入节点是用于输入静态数据集;并根据第三有向无环图对第一输入节点输入的结果数据集和第二输入节点输入的静态数据集进行关联数据分析。
可见,本申请中的适用于处理流式数据的方法不仅可适用于处理流式数据,而且还可以用于处理静态数据。也就是说,本申请提出了一种可以同时适用于处理静态数据和动态数据的方法,支持静态数据处理和流式数据处理之间的关联分析。在实现静态数据和动态数据二者的计算分析统一时,底层可使用同一套分布式计算框架(例如,Spark)。
下面以具体的SQL语句来举例说明。如下方SQL语句创建了一个以分布式数据库HBase为数据源的映射表,当中把静态大数据集当作静态表。
下方SQL语句是从前文中描述的流式事件源vehiclePassSE中过滤出车牌类型为1的过车记录后存储到静态表vehiclePassHBase中。
insert into static table vehiclePassHBase select*from vehiclePassSEwhere plateType=1
下方SQL将前文中描述的流式窗口映射表vehiclePass与静态表vehiclePassHBase进行级联查询操作。
select*from vehiclePass v1 inner join vehiclePassHBase v2 onv1.plateType=v2.plateType where plateNo LIKE'abc%'
需要了解的是,上面所描述innerjoin、where字句等关键字仅为示例,其它在本申请中未涉及到的SQL关键字不表示本申请方案未有相关实现。相反,由于实现过程均大同小异,本申请实施例支持所有的SQL关键字,诸如left、right、full、cross等其它连接方式本方案同样支持。
本申请提供的数据处理方法,可同时适用于对静态数据集和流式数据的处理。在具体实现时,通过提供统一接口,使用同一计算框架,可支持流式数据和静态数据集的关联分析操作。
图8是本申请实施例提供的一种数据处理系统的结构框图。参照图8,本申请实施例提供的数据处理系统可包括:管理节点801和多个计算节点802。需了解的是,虽然图8中只示出了一个计算节点802,但这只是示例,实际上数据处理系统中存在多个计算节点802。
所述管理节点801,用于接收第一SQL操作指令;根据所述第一SQL操作指令生成第一有向无环图,所述第一有向无环图用于定义所述流式处理应用的逻辑处理计划,所述第一有向无环图包括输入节点、中间节点、输出节点和用于连接节点的有向边,所述输入节点对应所述事件源,每个所述中间节点对应一个数据集,所述输出节点用于输出结果数据,每个所述有向边对应一个运算逻辑;
所述管理节点801,还接收与所述第一有向无环图中的第一指定节点对应的第二SQL操作指令;并根据所述第二SQL操作指令对所述第一有向无环图进行修改。
在本申请实施例中,根据第一SQL操作指令生成第一有向无环图,并在接收到与第一有向无环图对应的第二SQL操作指令时,对第一有向无环图进行修改,如此,可以根据SQL操作指令的变化实现动态生成有向无环图,从而可降低时延,提高对SQL操作的处理速度。
可选地,在一个实施例中,所述第二SQL操作指令包括:n条SQL语句,n为正整数。在根据所述第二SQL操作指令对所述第一有向无环图进行修改时,所述管理节点801具体用于:
根据所述第二SQL操作指令中的至少一条SQL语句,确定出所述第一有向无环图中的第一指定节点;
根据所述第二SQL操作指令中的至少一条SQL语句,在所述第一有向无环图中增加与所述第一指定节点相连的第一有向边;
根据所述第二SQL操作指令中的至少一条SQL语句,在所述第一有向无环图中增加与所述第一有向边相连的新增节点,所述新增节点是中间节点或输出节点。
可选地,在根据所述第二SQL操作指令中的至少一条SQL语句,确定出所述第一有向无环图中的第一指定节点时,所述管理节点801具体用于:
检测所述第二SQL操作指令中的所述至少一条SQL语句的输入数据集是否对应于所述第一有向无环图中已经存在的所述第一指定节点;
若所述输入数据集对应于所述第一指定节点,则将所述第一有向无环图中的所述第一指定节点复用为与所述SQL语句对应的输入节点。
可选地,在另一个实施例中,所述第二SQL操作指令包括:n条SQL语句,n为正整数。在根据所述第二SQL操作指令对所述第一有向无环图进行修改时,所述管理节点801具体用于:
根据所述第二SQL操作指令中的至少一条SQL语句,确定出所述第一有向无环图中的第二指定节点和与所述第二指定节点相连的第二有向边;
根据所述第二SQL操作指令中的至少一条SQL语句,在所述第一有向无环图中删除所述第二指定节点和所述第二有向边。
可选地,所述管理节点801还可用于:根据所述第一有向无环图中的有向边生成至少一个任务;将所述至少一个任务分配至所述计算节点中进行执行。
可选地,所述第一SQL操作指令和/或所述第二SQL操作指令携带有至少一条SQL语句,存在至少一条SQL语句中携带有并发度n。在根据所述第一有向无环图中的有向边生成至少一个任务,所述管理节点801具体用于:
对携带有所述并发度n的所述SQL语句所对应的所述有向边,生成并发的n个任务。
可选地,所述计算节点802包括第一计算节点和第二计算节点,所述管理节点801还用于:
当存在一个任务在所述第一计算节点中执行失败时,检测所述任务对应的有向边的父节点是否处于正常状态,所述父节点是与所述有向边的起始顶点相连的节点;
若所述父节点处于所述正常状态,则重新生成所述任务,将所述任务调度至所述第二计算节点中执行,所述第二计算节点用于从所述父节点中获取数据集并重新计算。
可选地,所述管理节点801还用于:接收第三SQL操作指令;根据所述第三SQL操作指令生成第二有向无环图,所述第二有向无环图包括第一输入节点和第二输入节点,所述第一输入节点是所述第一有向无环图的输出节点,所述第二输入节点是用于输入静态数据集;根据所述第三有向无环图对所述第一输入节点输入的结果数据集和所述第二输入节点输入的所述静态数据集进行关联数据分析。
另外,上述实施例提供的数据处理系统和数据处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
另外,本申请还可提供一种管理节点,所述管理节点包括存储器和处理器,所述存储器上存储有程序,当程序被处理器执行时,执行本申请任一实施例提供的数据处理方法。
另外,本申请还可提供一种计算机存储介质,存储介质中可存储有程序,当程序被处理器执行时,执行本申请任一实施例提供的数据处理方法。
除非另作定义,此处使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本申请的示例实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (14)
1.一种数据处理方法,其特征在于,所述方法包括:
接收第一结构化查询语言SQL操作指令;
根据所述第一SQL操作指令生成第一有向无环图,所述第一有向无环图用于定义流式处理应用的逻辑处理计划,所述第一有向无环图包括输入节点、中间节点、输出节点和用于连接节点的有向边,所述输入节点对应事件源,所述事件源用于向所述流式处理应用输入流式数据,每个所述中间节点对应一个数据集,所述输出节点用于输出结果数据,每个所述有向边对应一个运算逻辑;
接收与所述第一有向无环图中指定节点对应的第二SQL操作指令;
根据所述第二SQL操作指令对所述第一有向无环图进行修改;
根据所述第一有向无环图中的所述有向边生成至少一个任务,所述任务用于对所述有向边的父节点的数据集进行处理,所述父节点是与所述有向边的起始顶点相连的节点,所述任务包括查询任务或者分析任务;
将所述至少一个任务分配至计算节点中进行执行,以对所述有向边的父节点的数据集进行查询操作或者分析操作。
2.根据权利要求1所述的方法,其特征在于,所述第二SQL操作指令包括:n条SQL语句,n为正整数;
所述根据所述第二SQL操作指令对所述第一有向无环图进行修改,包括:
根据所述第二SQL操作指令中的至少一条SQL语句,确定出所述第一有向无环图中的第一指定节点;
根据所述第二SQL操作指令中的至少一条SQL语句,在所述第一有向无环图中增加与所述第一指定节点相连的第一有向边;
根据所述第二SQL操作指令中的至少一条SQL语句,在所述第一有向无环图中增加与所述第一有向边相连的新增节点,所述新增节点是中间节点或输出节点。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第二SQL操作指令中的至少一条SQL语句,确定出所述第一有向无环图中的第一指定节点,包括:
检测所述第二SQL操作指令中的所述至少一条SQL语句的输入数据集是否对应于所述第一有向无环图中已经存在的所述第一指定节点;
若所述输入数据集对应于所述第一指定节点,则将所述第一有向无环图中的所述第一指定节点复用为与所述SQL语句对应的输入节点。
4.根据权利要求1所述的方法,其特征在于,所述第二SQL操作指令包括:n条SQL语句,n为正整数;
所述根据所述第二SQL操作指令对所述第一有向无环图进行修改,包括:
根据所述第二SQL操作指令中的至少一条SQL语句,确定出所述第一有向无环图中的第二指定节点和与所述第二指定节点相连的第二有向边;
根据所述第二SQL操作指令中的至少一条SQL语句,在所述第一有向无环图中删除所述第二指定节点和所述第二有向边。
5.根据权利要求1所述的方法,其特征在于,所述第一SQL操作指令和/或所述第二SQL操作指令携带有至少一条SQL语句,存在至少一条SQL语句中携带有并发度m,m为正整数且大于1;
所述根据所述第一有向无环图中的有向边,生成至少一个任务,包括:
对携带有所述并发度m的所述SQL语句所对应的所述有向边,生成并发的m个任务。
6.根据权利要求1所述的方法,其特征在于,所述计算节点包括第一计算节点和第二计算节点,所述方法还包括:
当存在一个任务在所述第一计算节点中执行失败时,检测所述任务对应的有向边的所述父节点是否处于正常状态;
若所述父节点处于所述正常状态,则重新生成所述任务,将所述任务调度至所述第二计算节点中执行,所述第二计算节点用于从所述父节点中获取数据集并重新计算。
7.根据权利要求1至6任一所述的方法,其特征在于,所述方法还包括:
接收第三SQL操作指令;
根据所述第三SQL操作指令生成第二有向无环图,所述第二有向无环图包括第一输入节点和第二输入节点,所述第一输入节点是所述第一有向无环图的输出节点,所述第二输入节点是用于输入静态数据集;
通过所述至少一个计算节点,根据所述第二有向无环图对所述第一输入节点输入的结果数据集和所述第二输入节点输入的所述静态数据集进行关联数据分析。
8.一种数据处理系统,其特征在于,所述系统包括:管理节点和至少一个计算节点;
所述管理节点,用于接收第一结构化查询语言SQL操作指令;并根据所述第一SQL操作指令生成第一有向无环图,所述第一有向无环图用于定义流式处理应用的逻辑处理计划,所述第一有向无环图包括输入节点、中间节点、输出节点和用于连接节点的有向边,所述输入节点对应事件源,所述事件源用于向所述流式处理应用输入流式数据,每个所述中间节点对应一个数据集,所述输出节点用于输出结果数据,每个所述有向边对应一个运算逻辑;
所述管理节点,还用于接收与所述第一有向无环图中的指定节点对应的第二SQL操作指令;并根据所述第二SQL操作指令对所述第一有向无环图进行修改;
所述管理节点,还用于根据所述第一有向无环图中的所述有向边生成至少一个任务,所述任务用于对所述有向边的父节点的数据集进行处理,所述父节点是与所述有向边的起始顶点相连的节点,所述任务包括查询任务或者分析任务;并将所述至少一个任务分配至所述计算节点中进行执行,以对所述有向边的父节点的数据集进行查询操作或者分析操作。
9.根据权利要求8所述的数据处理系统,其特征在于,所述第二SQL操作指令包括:n条SQL语句,n为正整数;
在根据所述第二SQL操作指令对所述第一有向无环图进行修改的方面,所述管理节点具体用于:
根据所述第二SQL操作指令中的至少一条SQL语句,确定出所述第一有向无环图中的第一指定节点;
根据所述第二SQL操作指令中的至少一条SQL语句,在所述第一有向无环图中增加与所述第一指定节点相连的第一有向边;
根据所述第二SQL操作指令中的至少一条SQL语句,在所述第一有向无环图中增加与所述第一有向边相连的新增节点,所述新增节点是中间节点或输出节点。
10.根据权利要求9所述的数据处理系统,其特征在于,在根据所述第二SQL操作指令中的至少一条SQL语句,确定出所述第一有向无环图中的第一指定节点的方面,所述管理节点具体用于:
检测所述第二SQL操作指令中的所述至少一条SQL语句的输入数据集是否对应于所述第一有向无环图中已经存在的所述第一指定节点;
若所述输入数据集对应于所述第一指定节点,则将所述第一有向无环图中的所述第一指定节点复用为与所述SQL语句对应的输入节点。
11.根据权利要求10所述的数据处理系统,其特征在于,所述第二SQL操作指令包括:n条SQL语句,n为正整数;
在根据所述第二SQL操作指令对所述第一有向无环图进行修改的方面,所述管理节点具体用于:
根据所述第二SQL操作指令中的至少一条SQL语句,确定出所述第一有向无环图中的第二指定节点和与所述第二指定节点相连的第二有向边;
根据所述第二SQL操作指令中的至少一条SQL语句,在所述第一有向无环图中删除所述第二指定节点和所述第二有向边。
12.根据权利要求8所述的数据处理系统,其特征在于,所述第一SQL操作指令和/或所述第二SQL操作指令携带有至少一条SQL语句,存在至少一条SQL语句中携带有并发度m ,m为正整数且大于1;
在根据所述第一有向无环图中的有向边生成至少一个任务的方面,所述管理节点具体用于:
对携带有所述并发度m的所述SQL语句所对应的所述有向边,生成并发的m个任务。
13.根据权利要求8所述的数据处理系统,其特征在于,所述计算节点包括第一计算节点和第二计算节点,所述管理节点还用于:
当存在一个任务在所述第一计算节点中执行失败时,检测所述任务对应的有向边的所述父节点是否处于正常状态;
若所述父节点处于所述正常状态,则重新生成所述任务,将所述任务调度至所述第二计算节点中执行,所述第二计算节点用于从所述父节点中获取数据集并重新计算。
14.根据权利要求8至13任一所述的数据处理系统,其特征在于,所述管理节点还用于:
接收第三SQL操作指令;
根据所述第三SQL操作指令生成第二有向无环图,所述第二有向无环图包括第一输入节点和第二输入节点,所述第一输入节点是所述第一有向无环图的输出节点,所述第二输入节点是用于输入静态数据集;
通过所述至少一个计算节点,根据所述第二有向无环图对所述第一输入节点输入的结果数据集和所述第二输入节点输入的所述静态数据集进行关联数据分析。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710434019.0A CN109033109B (zh) | 2017-06-09 | 2017-06-09 | 数据处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710434019.0A CN109033109B (zh) | 2017-06-09 | 2017-06-09 | 数据处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109033109A CN109033109A (zh) | 2018-12-18 |
CN109033109B true CN109033109B (zh) | 2020-11-27 |
Family
ID=64629851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710434019.0A Active CN109033109B (zh) | 2017-06-09 | 2017-06-09 | 数据处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109033109B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109726216A (zh) * | 2018-12-29 | 2019-05-07 | 北京九章云极科技有限公司 | 一种基于有向无环图的数据处理方法和处理系统 |
CN111435352A (zh) * | 2019-01-11 | 2020-07-21 | 北京京东尚科信息技术有限公司 | 一种分布式实时计算方法、装置、系统及其存储介质 |
CN111290948B (zh) * | 2020-01-19 | 2022-02-22 | 腾讯科技(深圳)有限公司 | 测试数据获取方法、装置、计算机设备及可读存储介质 |
CN111400411B (zh) * | 2020-03-04 | 2024-04-19 | 河南安冉云网络科技有限公司 | 一种Excel数据的处理方法、系统及设备 |
CN112256721B (zh) * | 2020-10-21 | 2021-08-17 | 平安科技(深圳)有限公司 | Sql语句解析方法、系统、计算机设备和存储介质 |
CN112765963A (zh) * | 2020-12-31 | 2021-05-07 | 北京锐安科技有限公司 | 语句分词方法、装置、计算机设备及存储介质 |
CN114168198B (zh) * | 2022-02-10 | 2022-04-26 | 北京创新乐知网络技术有限公司 | 线上处理流程调整方法、系统及配置中心、服务端 |
CN114610959B (zh) * | 2022-05-12 | 2022-08-16 | 恒生电子股份有限公司 | 数据处理方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541875A (zh) * | 2010-12-16 | 2012-07-04 | 北京大学 | 有向无环图的关系型节点数据的存取方法、装置及系统 |
CN105164667A (zh) * | 2013-06-26 | 2015-12-16 | 惠普发展公司,有限责任合伙企业 | 修改分析流 |
CN105279286A (zh) * | 2015-11-27 | 2016-01-27 | 陕西艾特信息化工程咨询有限责任公司 | 一种交互式大数据分析查询处理方法 |
CN105426504A (zh) * | 2015-11-27 | 2016-03-23 | 陕西艾特信息化工程咨询有限责任公司 | 一种基于内存计算的分布式数据分析处理方法 |
CN106293892A (zh) * | 2015-06-26 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 分布式流计算系统、方法和装置 |
-
2017
- 2017-06-09 CN CN201710434019.0A patent/CN109033109B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541875A (zh) * | 2010-12-16 | 2012-07-04 | 北京大学 | 有向无环图的关系型节点数据的存取方法、装置及系统 |
CN105164667A (zh) * | 2013-06-26 | 2015-12-16 | 惠普发展公司,有限责任合伙企业 | 修改分析流 |
CN106293892A (zh) * | 2015-06-26 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 分布式流计算系统、方法和装置 |
CN105279286A (zh) * | 2015-11-27 | 2016-01-27 | 陕西艾特信息化工程咨询有限责任公司 | 一种交互式大数据分析查询处理方法 |
CN105426504A (zh) * | 2015-11-27 | 2016-03-23 | 陕西艾特信息化工程咨询有限责任公司 | 一种基于内存计算的分布式数据分析处理方法 |
Non-Patent Citations (1)
Title |
---|
Shark: SQL and rich analytics at scale;Reynold S. Xin等;《Proceedings of the 2013 ACM SIGMOD International Conference on Management of Data》;20130627;第13-24页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109033109A (zh) | 2018-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109033109B (zh) | 数据处理方法及系统 | |
US11341131B2 (en) | Query scheduling based on a query-resource allocation and resource availability | |
US11442935B2 (en) | Determining a record generation estimate of a processing task | |
US11586627B2 (en) | Partitioning and reducing records at ingest of a worker node | |
US11921672B2 (en) | Query execution at a remote heterogeneous data store of a data fabric service | |
US11599541B2 (en) | Determining records generated by a processing task of a query | |
US11321321B2 (en) | Record expansion and reduction based on a processing task in a data intake and query system | |
US20190310977A1 (en) | Bucket data distribution for exporting data to worker nodes | |
US20200050612A1 (en) | Supporting additional query languages through distributed execution of query engines | |
US20200065303A1 (en) | Addressing memory limits for partition tracking among worker nodes | |
US20200050607A1 (en) | Reassigning processing tasks to an external storage system | |
US20190272271A1 (en) | Assigning processing tasks in a data intake and query system | |
US11003666B2 (en) | Filter optimizer for data streams | |
US9122726B2 (en) | Tuple routing in a streaming application | |
KR20150092586A (ko) | 데이터 플로 기반 대규모 데이터 스트림 처리 방법 및 장치 | |
US9910821B2 (en) | Data processing method, distributed processing system, and program | |
CN104598550B (zh) | 一种网络视频索引的更新方法和装置 | |
WO2014117295A1 (en) | Performing an index operation in a mapreduce environment | |
CN109101575A (zh) | 计算方法及装置 | |
CN111382155B (zh) | 一种数据仓库的数据处理方法、电子设备及介质 | |
US10031946B2 (en) | Limiting tuple creation at the tuple level | |
CN113590651A (zh) | 一种基于hql的跨集群数据处理系统及方法 | |
Killeen et al. | An ahp-based evaluation of real-time stream processing technologies in iot | |
Choudhary et al. | Cloud computing and big data analytics | |
CN111597200A (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 |