CN110083624A - 流数据处理方法、设备、数据处理设备、计算机介质 - Google Patents
流数据处理方法、设备、数据处理设备、计算机介质 Download PDFInfo
- Publication number
- CN110083624A CN110083624A CN201910205063.3A CN201910205063A CN110083624A CN 110083624 A CN110083624 A CN 110083624A CN 201910205063 A CN201910205063 A CN 201910205063A CN 110083624 A CN110083624 A CN 110083624A
- Authority
- CN
- China
- Prior art keywords
- data
- user
- configuration
- initial treatment
- analysis
- 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
Links
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
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了流数据处理方法、设备、数据处理设备、计算机介质。所述流数据处理方法包括:接收用户输入,其中,所述用户输入包括采用结构化查询语句定义的数据初始处理配置、以及采用结构化查询语句定义的数据分析配置;解析所述数据初始处理配置,并基于解析的所述数据初始处理配置,生成数据初始处理任务,并且执行所述数据初始处理任务以得到经过初始数据处理的数据并存储在存储装置中;以及解析所述数据分析配置,并基于解析的所述数据分析配置以及用户规定的数据呈现配置,分析存储在存储装置中的数据并生成数据呈现结果。
Description
技术领域
本发明涉及数据处理技术,尤其涉及流数据处理方法、设备、数据处理设备、计算机介质。
背景技术
通常,在大数据处理系统中,大数据可分为批式(batch)大数据和流式(streaming)大数据两类。其中,批式大数据又被称为历史大数据,流式大数据又被称为实时大数据。
随着实时计算的兴起,大众希望对实时数据(也即流数据)进行分析和处理的需求越来越多。现有技术中的流数据处理方法对于用户的要求一般很高,比如,不仅需要用户自己编程来开发大数据处理任务,而且需要用户对计算引擎和存储引擎比较熟悉才能够进行流数据的实时分析。
由于上面描述的流数据分析方法对于用户的要求较高,普通用户是很难达到这些要求的。因此,需要一种简单、有效、通用的流数据分析工具。
发明内容
为了解决以上问题之一,本发明提供了一种流数据处理方法、设备、数据处理设备、计算机介质。
本发明提出了一种简单、有效、通用的流数据分析工具,无需用户能够编程并且无需用户对计算引擎和存储引擎比较熟悉,便可进行流数据的分析和处理。进一步地,还能够对流数据的情况进行查询。
根据本发明的一个示例性实施例,提供一种流数据分析方法,包括:接收用户输入,其中,所述用户输入包括采用结构化查询语句定义的数据初始处理配置、以及采用结构化查询语句定义的数据分析配置;解析所述数据初始处理配置,并基于解析的所述数据初始处理配置,生成数据初始处理任务,并且执行所述数据初始处理任务以得到经过初始数据处理的数据并存储在存储装置中;以及解析所述数据分析配置,并基于解析的所述数据分析配置以及用户规定的数据呈现配置,分析存储在存储装置中的数据并生成数据呈现结果。
可选地,用户采用结构化查询语句定义的所述数据初始处理配置包括:基于特定过滤条件,根据时间粒度与聚集维度,生成针对特定指标的初始聚集。
可选地,用户采用结构化查询语句定义的所述数据分析配置包括:基于特定过滤条件,根据时间粒度与聚集维度,生成针对特定指标的二次聚集。
其中,上述流数据分析方法还包括:接收用户输入的查询条件,并将所述查询条件代入到所述数据分析配置的结构化查询语句,以基于所述数据呈现结果而得到数据查询结果。
可选地,可以通过语言识别工具,例如,ANTLR(Another Tool for LanguageRecognition,语言识别的另一工具),来解析用户输入的SQL语句,以得到相应的配置信息。
可选地,生成数据初始处理任务的方式包括采用数据萃取-转置-载入ETL工具。
根据本发明的一个示例性实施例,提供一种流数据分析设备,包括:接收装置,被配置用于接收用户输入,其中,所述用户输入包括采用结构化查询语句定义的数据初始处理配置、以及采用结构化查询语句定义的数据分析配置;数据初始处理装置,被配置用于解析所述数据初始处理配置,并基于解析的所述数据初始处理配置,生成数据初始处理任务,并且执行所述数据初始处理任务以得到经过初始数据处理的数据并存储在存储装置中;以及数据分析装置,被配置用于解析所述数据分析配置,并基于解析的所述数据分析配置以及用户规定的数据呈现配置,分析存储在存储装置中的数据并生成数据呈现结果。
可选地,用户采用结构化查询语句定义的所述数据初始处理配置包括:基于特定过滤条件,根据时间粒度与聚集维度,生成针对特定指标的初始聚集。
可选地,用户采用结构化查询语句定义的所述数据分析配置包括:基于特定过滤条件,根据时间粒度与聚集维度,生成针对特定指标的二次聚集。
可选地,上述的流数据分析设备还包括:数据查询装置,被配置用于接收用户输入的查询条件,并将所述查询条件代入到所述数据分析配置的结构化查询语句,以基于所述数据呈现结果而得到数据查询结果。
可选地,所述数据初始处理装置和所述数据分析装置通过使用ANTLR插件来解析用户输入的结构化查询语句,以得到相应的配置信息。
可选地,所述数据初始处理装置通过使用数据萃取-转置-载入ETL工具来生成数据初始处理任务。
根据本发明的一个示例性实施例,提供一种数据处理设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行上述的方法之一。
根据本发明的一个示例性实施例,提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被处理器执行时,使所述处理器执行上述的方法之一。
在本发明中,提出了一种简单、有效、通用的流数据分析工具,用户通过采用简单的数据库查询语句(例如结构化查询语句),便可以从流数据来生成分析和处理结果,而不需要用户自己使用复杂的编程语言来开发大数据处理任务,并且也不需要用户自己比较熟悉计算引擎和存储引擎,才能生成分析报表。进一步地,本发明还能够对流数据的情况进行查询。
而且,由于本发明采用结构化查询语句来定义和配置数据初始处理、数据存储、数据分析和呈现、以及数据查询等处理,所以本发明能够支持更多实时计算的分析场景,由此使得本发明的流数据分析方案更加通用。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的附图标记通常代表相同部件。
图1给出了根据本发明的一个示例性实施例的流数据处理方法的示意性流程图。
图2给出了根据本发明的一个示例性实施例的用户输入的数据初始处理结构化查询语句(SQL)语句的例子。
图3给出了根据本发明的一个示例性实施例的流数据处理设备的示意性框图。
图4给出了根据本发明的另一个示例性实施例的流数据处理方法的示意性流程图。
图5给出了根据本发明的另一个示例性实施例的流数据处理设备的示意性框图。
图6给出了根据本发明的一个示例性实施例的数据处理设备的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。这里需要说明的是,本申请中的数字、序号以及附图标记仅是为了方便描述而出现的,对于本发明的步骤、顺序等等均不构成任何限制,除非在说明书中明确指出了步骤的执行有特定的先后顺序。
一般而言,通用的流数据分析和处理往往可以抽象成以下几步。
1)数据初始处理:用于对流数据进行数据加工,将加工后的数据存储到存储引擎中。
2)数据分析:可以对存储的数据进行定制化分析,并且优选地,可以对其中存储了上述数据的存储引擎进行数据查询。
但是,如背景技术中所述,现有技术中的流数据分析方法对于用户的要求一般很高,比如,不仅需要用户自己编程来开发大数据处理任务,而且需要用户对计算引擎和存储引擎比较熟悉才能够进行流数据的实时分析和处理。众所周知,普通用户是很难达到这些要求的。
鉴于此,本发明提出了一套通用的并且简单有效的流数据分析方案,可以无需用户进行大数据开发任务的编程并且无需用户对计算引擎和存储引擎比较熟悉,便可进行流数据的分析,并得到分析结果的呈现。
具体地,本发明的主要思想如下。
1)数据初始处理:用户可直接输入数据初始处理SQL语句,并且在执行了相应的数据初始处理之后,数据可以被存储到存储引擎中。
2)数据分析和呈现:由用户来配置用于生成数据呈现结果的数据分析SQL语句,并且优选地,还可以通过存储引擎进行查询。
请注意,这里的SQL为结构化查询语言(Structured Query Language),是一种数据库查询和程序设计语言,可用于存取数据以及查询、更新和管理数据库。本领域技术人员可知,当前几乎所有的数据库都支持SQL语句。
图1给出了根据本发明的一个示例性实施例的流数据处理方法的示意性流程图。
下面将参照图1,来描述根据本发明的一个示例性实施例的流数据处理方法。
如图1所示,在步骤S110,接收用户输入。
这里,用户的输入可以包括由数据初始处理SQL语句构成的数据初始处理配置,用于限定要进行流数据分析和处理之前需要先执行的数据初始处理任务。
为了更容易理解,下面将给出用户输入的数据初始处理SQL语句的例子,如图2所示。
由图2的例子可见,用户输入的数据初始处理SQL语句包含以下两部分:
1)“计算逻辑”的SQL语句,用于定义期望的数据初始处理操作;
2)位于图2所示的“计算逻辑”SQL语句之下的“定义”SQL语句中,用于定义输出字段(通过select_statement语句)、过滤方式(通过where_statement语句)、聚合维度(通过group_statement语句)等。
通过将用户在“定义”SQL语句中定义的那些设置代入到“计算逻辑”的SQL语句,来生成最终的数据初始处理配置。
对于该例子的用户输入,相应地生成的数据初始处理配置的含义为:基于某些过滤条件(where_statement),将流数据根据用户定义的时间粒度(比如5分钟)与用户定义的聚合维度(group_statement),生成不同指标(select_statement)的预聚集。
请注意,用户可以根据需要,来个性化定制各种数据初始处理配置。
另外,用户输入还可以包括与上述的数据初始处理SQL语句中的“计算逻辑”类似的数据分析SQL语句用于作为数据分析配置,后面将举出数据分析SQL语句的详细的例子来使得本发明更容易理解。
另外,用户可以配置希望要呈现数据呈现结果的图形的类型(例如,饼图、曲线图等)。可选地,用户可以通过例如在配置页面上设置数据呈现结果的呈现图形的类型。
请注意,用户的上述这些输入不一定非得在同一个步骤输入,而是也可以视需要,在不同的步骤输入上述的配置。
在步骤S120,解析用户输入的数据初始处理SQL语句,然后生成相应的数据初始处理任务,并且执行这些数据初始处理任务(进行数据的初始聚集),以生成数据初始处理结果。
其中,解析数据初始处理SQL语句的方法包括通过例如ANTLR插件来解析数据初始处理SQL语句以生成数据初始处理配置。
生成相应的数据初始处理任务的方法包括采用数据萃取-转置-载入(即,Extract-Transform-Load,简称ETL)工具等。这种ETL工具可以根据上述解析而成的数据初始处理配置来生成数据初始处理操作的集合,其主要作用是使流数据经过这些数据初始处理操作后,再导入到存储引擎以进行存储、分析、处理等等。
当前已经有很多可用的ETL工具,例如Datastage、Powercenter等等。对于本发明而言,只要能够使用ETL工具来进行上述的处理即可,不关注具体使用哪种ETL工具。并且,如何使用ETL工具也不是本申请关注的内容,因此本文对于这些不再加以描述。
在步骤S130,解析上述的数据分析SQL语句,从其中提取流数据分析所需的指标、维度等,然后基于在步骤S120生成并存储的数据初始处理结果,根据用户的数据呈现配置(用于规定数据分析结果的呈现方式,例如是用饼图还是曲线图来呈现数据分析结果),对数据进行分析(二次聚集)并生成数据呈现结果。
这里,数据呈现结果可以是按照用户规定的数据呈现配置方式的报表,例如是饼图的报表形式。
其中,可以类似地通过例如ANTLR插件来解析数据分析SQL语句来得到其要求的聚集指标(select_statement)与聚集维度(group_statement),得出指标集与维度集,然后基于用户想要生成的呈现结果的类型(比如线图、柱状图、饼图等)等相关配置,对初始聚集的数据(数据初始处理结果)进行二次聚集以进行所需的数据分析并生成数据呈现结果。
进一步举例,用户希望呈现的结果的样式可以是如下这样的。
1)线图:用户配置x轴为维度集中的timestamp(时间戳),y轴为指标集中的count(vip)与count(guanggao)。
2)饼图:用户配置聚集方式是维度集中的服务名(serviceName),聚集维度为指标集中的count指标。
通过使用户采用简单的SQL语句来配置流数据分析和处理所需的数据初始处理、以及数据的分析与呈现,本发明无需用户自己编程来开发大数据处理任务,并且无需用户对计算引擎和存储引擎比较熟悉,便可进行流数据的分析和处理。
而且,本发明还能够实现对流数据进行进一步的查询。下面将进一步介绍。
图3给出了根据本发明的一个示例性实施例的流数据处理设备的示意性框图。
如图3所示的本发明的一个示例性实施例的流数据处理设备100可以包括接收装置110、数据初始处理装置120、数据存储装置130、以及数据分析装置140。
其中,接收装置110可以被配置用于接收用户输入,其中,所述用户输入包括采用SQL语句定义的数据初始处理配置、以及采用SQL语句定义的数据分析配置。
数据初始处理装置120可以被配置用于解析所述数据初始处理配置,并基于解析的所述数据初始处理配置,生成数据初始处理任务,并且执行所述数据初始处理任务以得到经过初始数据处理的数据。
数据存储装置130可以被配置用于存储所述经过初始数据处理的数据.
数据分析装置140可以被配置用于解析所述数据分析配置,并基于解析的所述数据分析配置以及用户规定的数据呈现配置,分析存储在存储装置中的数据并生成数据呈现结果。
其中,流数据处理设备100中的各部件,例如接收装置110、数据初始处理装置120、以及数据分析装置140的操作与上面结合图1描述的流数据处理方法中的步骤S110、S120与S130的操作类似,在此不再赘述。
通过使用户采用简单的SQL语句来配置流数据分析和处理所需的数据初始处理、以及数据的分析与呈现,本发明无需用户自己编程来开发大数据处理任务,并且无需用户对计算引擎和存储引擎比较熟悉,便可进行流数据的分析和处理。
图4给出了根据本发明的另一个示例性实施例的流数据处理方法的示意性流程图。
其中,图4中的步骤S210-S230与图1中的步骤S110-S130类似,在此不再赘述。
另外,如图4所示,在步骤S230之后的步骤S240,用户可以查看在步骤S230生成的数据呈现结果(例如报表页面),并且可以基于该数据呈现结果,输入具体查询条件(例如通过在查询界面上输入具体的查询条件),触发数据查询操作(例如可以通过点击查询界面上的“查询”按钮等)。响应于用户的数据查询操作,可以基于在步骤S230时、用户输入的数据分析SQL语句而进一步生成数据查询SQL语句,例如,通过将用户输入的具体的查询条件代入到上述的数据分析SQL语句而生成数据查询SQL语句,由此得到数据查询结果。
本发明中,用户在步骤S210配置数据分析SQL语句的目的是为了在步骤S230进行数据的二次聚集,主要作用是防止在步骤S220初始聚集(通过数据初始处理任务完成该初始聚集)的聚集时间粒度不够后续查询使用。
这里,需要解释的是,比如数据初始处理任务初始聚集的聚集时间粒度为5分钟,在后续用户查询时,需要30分钟的聚集时间粒度去进行查询,此时就需要把6个初始聚集(5分钟)的聚集结果合并起来,以得到30分钟聚集时间粒度的聚集结果,这就是二次聚集。
例如,在步骤S220,从在步骤S210时、用户输入的数据初始处理SQL语句解析得到的数据初始处理配置(用于初始聚集)是:时间粒度为5分钟的、各个服务的访问量。
而用户在查看了步骤S230生成的数据呈现结果之后,实际可能更需要的数据呈现结果为:时间粒度分别是10分钟和30分钟的实时聚集报表。此时,需要用户通过数据查询SQL语句的数据查询配置来分别以10分钟和30分钟的时间粒度、将之前以5分钟的时间粒度初始聚集的结果进行二次聚集,以呈现用户实际更需要的报表。
在本实施例中,通过使用户配置数据查询条件,可以方便地进行流数据的查询。
图5给出了根据本发明的另一个示例性实施例的流数据处理设备的示意性框图。
如图5所示,根据本发明的另一个示例性实施例的流数据处理设备200可以包括:接收装置210、数据初始处理装置220、数据存储装置230、数据分析装置240、以及数据查询装置250。
其中,上述的接收装置210、数据初始处理装置220、数据存储装置230、数据分析装置240与上面结合图3描述的接收装置110、数据初始处理装置120、数据存储装置130、数据分析装置140类似,在此不再赘述。
另外,数据查询装置250可以被配置用于接收用户输入的查询条件,并将所述查询条件代入到所述数据分析配置的SQL语句,以基于所述数据呈现结果而得到数据查询结果。
其操作与上面结合图4描述的数据查询步骤S150的操作类似,在此不再赘述。
在本实施例中,通过使用户配置数据查询条件,可以方便地进行流数据的查询。
下面,将更进一步来通过举例的方式以更详细描述本发明。
首先,用户对于流数据的分析和呈现以及查询需求概述为:按省份、城市、年龄段、性别、行业计算不同时期的平均走路步数。
具体的呈现需求例如可以为:
1)平均走路步数位于前10的省份的饼图;
2)不同性别人员的走路步数变化曲线。
例如,输入的流数据的格式可以如下。
{id:xxxxxxxxxxx,timestamp:“2019/01/2210:00:03”,province:“shanghai”,city:“shanghai”,age:40,gender:“male”,career:”doctor”}
这里,该数据为一条流数据,其中每条流数据代表走了一步。这条流数据的含义是:例如一个id为身份证号、性别为男性、职业为医生、年龄为40岁的人,在时间戳为2019/01/2210:00:03的时间,在例如上海省的上海市,走了一步。
下面将分别介绍用户输入的各SQL语句。
例如,数据初始处理SQL(也可以称作初始聚集SQL)可以为:
select cast(cast(timestamp as long)/1000/60*60as timestamp)as ts,count(*)from t1group by cast(cast(timestamp as long)div 1000/60*60astimestamp),province,city,age,gender,career。
这里,该数据初始处理SQL语句的含义为:计算任意分钟的province,city,age,gender,career组合情况下的步数总和,一个组合为一条记录。
另外,将给出数据呈现SQL语句(也可称为用于二次聚集的数据呈现SQL语句)以及相关的数据查询语句的一个示例如下。
数据分析和数据呈现需求1:平均走路步数位于前10的省份的饼图。
用于分析数据的数据分析SQL语句例如可以如下所示。
select province,count(*)from t1group by province where ts>${start_time}and ts<${end_time}order by count(1)limit 10
上述的数据分析SQL语句的含义是:获得从开始时间(start_time)到结束时间(end_time)期间平均走路步数位于前10的省份。这里,通过该语句,设置的查询条件(用于数据分析,与后续在步骤S140的“具体查询”不同)为开始时间(start_time)至结束时间(end_time),设置的聚集维度为省份(province)。请注意,在这个例子中,在数据分析和呈现阶段,查询条件里的开始时间(start_time)与结束时间(end_time)为流数据的开始时间与结束时间。
其中,可以在数据呈现接口(例如,在设置界面)上设置具体的呈现方式(例如,报表的类型)为饼图。
然后,根据数据分析和呈现配置(包括例如数据呈现SQL语句以及呈现方式的设置),为用户获得所需的数据呈现结果,即平均走路步数位于前10的省份的饼图。请注意,饼图不用像曲线图那样,需要x轴和y轴的信息。
在用户查看了数据呈现结果之后,可能需要基于该数据呈现结果进一步查询某些数据,此时,用户可以设置数据查询配置以进行数据查询操作,例如,可以通过查询接口(例如查询界面)等。
其中,用户设置的数据查询配置可以包括例如基于用户通过查询接口设置的具体查询条件,例如查询从2019/01/2210:00:00到2019/01/2211:00:00期间的平均走路步数位于前10的省份。
这里,用户设置的具体查询条件可以由系统自动替换到SQL语句中,例如,可以由系统生成数据查询SQL语句如下。
select province,count(*)from t1group by province where ts>“2019/01/2210:00:00”and ts<“2019/01/2211:00:00”order by count(1)limit 10
其中,上述的数据查询SQL语句中的where ts>“2019/01/2210:00:00”and ts<“2019/01/2211:00:00”替换了上述的数据分析SQL语句中的where ts>${start_time}andts<${end_time},以用于查询从2019/01/2210:00:00到2019/01/2211:00:00期间的平均走路步数位于前10的省份。
另外,为了更容易理解,下面将再举一个数据分析SQL语句(也可称为用于二次聚集的数据分析SQL语句)以及相关的数据查询语句的一个示例。
数据分析和呈现需求2:不同性别人员的走路步数变化曲线。
其中,用于分析数据的数据分析SQL语句例如可以如下所示。
select gender,count(*)from t1group by ts,gender where ts>${start_time}and ts<${end_time}
该数据分析SQL语句的含义为:从开始时间(start_time)至结束时间(end_time)期间不同性别(男/女)人员的走路步数曲线图。这里,通过该语句,设置的查询条件为开始时间(start_time)至结束时间(end_time),设置的聚集维度为性别(gender)。请注意,在这个例子中,在数据分析和呈现阶段,查询条件里的开始时间(start_time)与结束时间(end_time)为流数据的开始时间与结束时间。
其中,可以在数据呈现接口(例如,在设置界面)上设置具体的呈现方式(例如,报表的类型)为曲线图。
然后,根据数据分析和呈现配置(包括例如数据呈现SQL语句以及呈现方式的设置),为用户获得所需的数据呈现结果,即根据性别而聚集的走路步数(count),其中x轴为时间(ts),y轴为走路步数值,呈现分别针对男性和女性的走路步数的两条曲线。
在用户查看了数据呈现结果之后,可能需要基于该数据呈现结果(上述的两条曲线图)进一步查询某些数据,此时,用户可以设置数据查询配置以进行数据查询操作,例如,可以通过查询接口(例如查询界面)等。
其中,用户设置的数据查询配置可以包括例如基于用户通过查询接口设置的具体查询条件,例如查询2018年一整年男性与女性分别的走路步数(获得走路步数曲线图)。
这里,用户设置的具体查询条件可以由系统自动替换到SQL语句中,例如,可以由系统生成数据查询SQL语句如下。
select gender,count(*)from t1group by ts,gender where ts>“2018-01-0100:00:00”and ts<“2019-01-0100:00:00”
其中,上述的数据查询SQL语句中的ts>“2018-01-0100:00:00”and ts<“2019-01-0100:00:00”替换了上述的数据分析SQL语句中的where ts>${start_time}and ts<${end_time},以用于查询2018年一整年男性与女性分别的走路步数(获得走路步数曲线图)。
通过上面的两个例子,可以看出,本发明的流数据分析过程包括以下步骤:
1)数据初始处理:通过解析数据初始处理配置的SQL语句,计算出任意分钟的省份(province)、城市(city)、年龄(age)、性别(gender)、职业(career)等组合情况下的步数总和;
2)数据存储:将上述的各组合中的每个组合作为一条记录,存储到存储器(例如存储引擎);
3)分析数据(例如分析报表)和呈现数据分析结果:按照用户定义的结果呈现方式,以及用户的数据分析SQL语句定义的具体逻辑来生成和呈现结果(例如报表);以及
4)数据查询:用户触发了查询操作(例如,点击查询界面上的“查询”按钮)之后,按照用户配置的具体查询条件,生成实际查询SQL语句,然后,按实际查询SQL语句来进行查询,并将查询结果按照用户定义的呈现方式返回给用户。
在本发明中,用户通过采用简单的数据库查询语句(例如SQL语句),便可以从流数据来生成分析结果,而不需要用户自己使用复杂的编程语言来开发大数据处理任务,并且也不需要用户自己比较熟悉计算引擎和存储引擎,才能生成分析报表。
另外,当前的流数据分析和处理方案由于需要个性化地深入在某个计算引擎和存储引擎中进行数据分析,所以通常只能针对这些引擎所适合的、某些实时计算的分析场景,而没有一套统一的流数据分析方案可以兼顾很多实时计算的分析场景,来进行数据分析。相反地,由于本发明采用了比较常用的统一的SQL语句来定义和配置数据初始处理、数据存储、数据分析和呈现、以及数据查询,所以本发明能够支持更多实时计算的分析场景,由此使得本发明的流数据分析方案更加通用。
图6给出了根据本发明的一个示例性实施例的数据处理设备的示意性框图。
参见图6,该数据处理设备1包括存储器10和处理器20。
处理器20可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器20可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器20可以使用定制的电路实现,例如特定用途集成电路(ASIC,Application Specific Integrated Circuit)或者现场可编程逻辑门阵列(FPGA,Field Programmable Gate Arrays)。
存储器10上存储有可执行代码,当所述可执行代码被所述处理器20执行时,使所述处理器20执行上面描述的数据迁移方法之一。其中,存储器10可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器20或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器10可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图等等显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种流数据处理方法,其特征在于,包括:
接收用户输入,其中,所述用户输入包括采用结构化查询语句定义的数据初始处理配置、以及采用结构化查询语句定义的数据分析配置;
解析所述数据初始处理配置,并基于解析的所述数据初始处理配置,生成数据初始处理任务,并且执行所述数据初始处理任务以得到经过初始数据处理的数据并存储在存储装置中;以及
解析所述数据分析配置,并基于解析的所述数据分析配置以及用户规定的数据呈现配置,分析存储在存储装置中的数据并生成数据呈现结果。
2.根据权利要求1所述的流数据分析方法,其特征在于,用户采用结构化查询语句定义所述数据初始处理配置包括:基于特定过滤条件,根据时间粒度与聚集维度,生成针对特定指标的初始聚集。
3.根据权利要求1所述的流数据分析方法,其特征在于,用户采用结构化查询语句定义所述数据分析配置包括:基于特定过滤条件,根据时间粒度与聚集维度,生成针对特定指标的二次聚集。
4.根据权利要求1所述的流数据分析方法,其特征在于,还包括:
接收用户输入的查询条件,并将所述查询条件代入到所述数据分析配置的结构化查询语句,以基于所述数据呈现结果而得到数据查询结果。
5.根据权利要求1所述的流数据分析方法,其特征在于,通过语言识别工具来解析用户输入的结构化查询语句,以得到相应的配置信息。
6.根据权利要求1所述的流数据分析方法,其特征在于,生成数据初始处理任务的方式包括采用数据萃取-转置-载入ETL工具。
7.一种流数据处理设备,其特征在于,包括:
接收装置,被配置用于接收用户输入,其中,所述用户输入包括采用结构化查询语句定义的数据初始处理配置、以及采用结构化查询语句定义的数据分析配置;
数据初始处理装置,被配置用于解析所述数据初始处理配置,并基于解析的所述数据初始处理配置,生成数据初始处理任务,并且执行所述数据初始处理任务以得到经过初始数据处理的数据;
数据存储装置,被配置用于存储所述经过初始数据处理的数据;以及数据分析装置,被配置用于解析所述数据分析配置,并基于解析的所述数据分析配置以及用户规定的数据呈现配置,分析存储在存储装置中的数据并生成数据呈现结果。
8.根据权利要求7所述的流数据分析设备,其特征在于,还包括:
数据查询装置,被配置用于接收用户输入的查询条件,并将所述查询条件代入到所述数据分析配置的结构化查询语句,以基于所述数据呈现结果而得到数据查询结果。
9.一种数据处理设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1~6中任何一项所述的方法。
10.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被处理器执行时,使所述处理器执行如权利要求1~6中任何一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910205063.3A CN110083624B (zh) | 2019-03-18 | 2019-03-18 | 流数据处理方法、设备、数据处理设备、计算机介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910205063.3A CN110083624B (zh) | 2019-03-18 | 2019-03-18 | 流数据处理方法、设备、数据处理设备、计算机介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110083624A true CN110083624A (zh) | 2019-08-02 |
CN110083624B CN110083624B (zh) | 2021-11-12 |
Family
ID=67413171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910205063.3A Active CN110083624B (zh) | 2019-03-18 | 2019-03-18 | 流数据处理方法、设备、数据处理设备、计算机介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110083624B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291053A (zh) * | 2020-02-12 | 2020-06-16 | 广州天辰信息科技有限公司 | 工作流数据处理方法、装置及工作流数据处理平台 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710320A (zh) * | 2009-10-28 | 2010-05-19 | 金蝶软件(中国)有限公司 | 统计指标数据处理方法及装置 |
CN103209094A (zh) * | 2013-03-11 | 2013-07-17 | 中国科学院信息工程研究所 | 一种基于事件的故障定位系统及方法 |
CN105045607A (zh) * | 2015-09-02 | 2015-11-11 | 广东创我科技发展有限公司 | 一种实现多种大数据计算框架统一接口的方法 |
CN106649226A (zh) * | 2015-10-29 | 2017-05-10 | 北京国双科技有限公司 | 一种报表生成方法及装置 |
CN106648674A (zh) * | 2016-12-28 | 2017-05-10 | 北京奇艺世纪科技有限公司 | 一种大数据计算管理方法及系统 |
CN107038218A (zh) * | 2017-03-17 | 2017-08-11 | 腾讯科技(深圳)有限公司 | 报表处理方法和系统 |
CN107145532A (zh) * | 2017-04-18 | 2017-09-08 | 北京思特奇信息技术股份有限公司 | 一种流数据的实时分析处理方法及系统 |
CN107451109A (zh) * | 2017-07-05 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 报表生成方法及系统 |
CN107515875A (zh) * | 2016-06-16 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 数据查询方法及装置 |
CN108920575A (zh) * | 2018-06-22 | 2018-11-30 | 北京优特捷信息技术有限公司 | 基于动态感知的日志数据分析方法、装置及可读存储介质 |
US20190069006A1 (en) * | 2017-08-29 | 2019-02-28 | Western Digital Technologies, Inc. | Seeking in live-transcoded videos |
CN109408347A (zh) * | 2018-09-28 | 2019-03-01 | 北京九章云极科技有限公司 | 一种指标实时分析系统及指标实时计算方法 |
-
2019
- 2019-03-18 CN CN201910205063.3A patent/CN110083624B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710320A (zh) * | 2009-10-28 | 2010-05-19 | 金蝶软件(中国)有限公司 | 统计指标数据处理方法及装置 |
CN103209094A (zh) * | 2013-03-11 | 2013-07-17 | 中国科学院信息工程研究所 | 一种基于事件的故障定位系统及方法 |
CN105045607A (zh) * | 2015-09-02 | 2015-11-11 | 广东创我科技发展有限公司 | 一种实现多种大数据计算框架统一接口的方法 |
CN106649226A (zh) * | 2015-10-29 | 2017-05-10 | 北京国双科技有限公司 | 一种报表生成方法及装置 |
CN107515875A (zh) * | 2016-06-16 | 2017-12-26 | 阿里巴巴集团控股有限公司 | 数据查询方法及装置 |
CN106648674A (zh) * | 2016-12-28 | 2017-05-10 | 北京奇艺世纪科技有限公司 | 一种大数据计算管理方法及系统 |
CN107038218A (zh) * | 2017-03-17 | 2017-08-11 | 腾讯科技(深圳)有限公司 | 报表处理方法和系统 |
CN107145532A (zh) * | 2017-04-18 | 2017-09-08 | 北京思特奇信息技术股份有限公司 | 一种流数据的实时分析处理方法及系统 |
CN107451109A (zh) * | 2017-07-05 | 2017-12-08 | 北京京东尚科信息技术有限公司 | 报表生成方法及系统 |
US20190069006A1 (en) * | 2017-08-29 | 2019-02-28 | Western Digital Technologies, Inc. | Seeking in live-transcoded videos |
CN108920575A (zh) * | 2018-06-22 | 2018-11-30 | 北京优特捷信息技术有限公司 | 基于动态感知的日志数据分析方法、装置及可读存储介质 |
CN109408347A (zh) * | 2018-09-28 | 2019-03-01 | 北京九章云极科技有限公司 | 一种指标实时分析系统及指标实时计算方法 |
Non-Patent Citations (1)
Title |
---|
杨頲 等: "大型商业银行基于Hadoop分布式数据仓库建设初探", 《计算机应用与软件》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111291053A (zh) * | 2020-02-12 | 2020-06-16 | 广州天辰信息科技有限公司 | 工作流数据处理方法、装置及工作流数据处理平台 |
CN111291053B (zh) * | 2020-02-12 | 2020-08-25 | 广州天辰信息科技有限公司 | 工作流数据处理方法、装置及工作流数据处理平台 |
Also Published As
Publication number | Publication date |
---|---|
CN110083624B (zh) | 2021-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ali et al. | From conceptual design to performance optimization of ETL workflows: current state of research and open problems | |
CA2977042C (en) | System and method for generating an effective test data set for testing big data applications | |
EP2831767B1 (en) | Method and system for processing data queries | |
EP3475886A1 (en) | System and method for metadata-driven external interface generation of application programming interfaces | |
US7596550B2 (en) | System and method for query planning and execution | |
CN107003868B (zh) | 处理包含联合类型操作的查询 | |
Verbeek et al. | Decomposed process mining: The ILP case | |
CN107251021B (zh) | 过滤数据沿袭图 | |
US8892545B2 (en) | Generating a compiler infrastructure | |
US11762920B2 (en) | Composite index on hierarchical nodes in the hierarchical data model within a case model | |
CN109669976B (zh) | 基于etl的数据服务方法及设备 | |
JP2010524060A (ja) | 分散コンピューティングにおけるデータマージング | |
CN106293891B (zh) | 多维投资指标监督方法 | |
CN111259040B (zh) | Sql语句审核方法和系统 | |
JP6167187B2 (ja) | クエリ生成方法及びクエリ生成装置 | |
CN104424018A (zh) | 分布式计算事务处理方法及装置 | |
CN110955714A (zh) | 一种将非结构化文本转化为结构化文本的方法及装置 | |
CN110109990A (zh) | 时序数据处理方法、设备、数据处理设备及介质 | |
CN110083624A (zh) | 流数据处理方法、设备、数据处理设备、计算机介质 | |
US9495216B2 (en) | Optimization of job scheduling in a computing environment | |
US8869122B2 (en) | Extensible executable modeling | |
US10848384B2 (en) | Method for determining parallel process paths in process data | |
US20140114728A1 (en) | Method and system for database benchmarking | |
US10169407B2 (en) | Method for the efficient analysis of process data | |
US20170147637A1 (en) | Data-driven union pruning in a database semantic layer |
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 |