CN107562943B - 一种数据计算的方法及系统 - Google Patents
一种数据计算的方法及系统 Download PDFInfo
- Publication number
- CN107562943B CN107562943B CN201710867828.0A CN201710867828A CN107562943B CN 107562943 B CN107562943 B CN 107562943B CN 201710867828 A CN201710867828 A CN 201710867828A CN 107562943 B CN107562943 B CN 107562943B
- Authority
- CN
- China
- Prior art keywords
- data
- calculated
- calculation
- engine
- calculating
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据计算的方法,所述方法包括:对外部数据进行预处理,得到待计算数据;将所述待计算数据并行发送至预设数量个计算单元;将所述待计算数据存储至所述计算单元的内存中,并通过分布式SQL计算引擎进行计算得到计算结果;其中,所述分布式SQL计算引擎由通过对开源SQL引擎与分布式计算中间件基层进行改造得到;该方法能够对数据的毫秒级密集计算,有利于降低维护成本,简化测试方式;本申请还公开了一种数据计算的系统,具有以上有益效果。
Description
技术领域
本发明涉及数据分析领域,特别涉及一种数据计算的方法及系统。
背景技术
随着科学技术的迅速发展,大数据技术已经成为一种应用极其广泛的技术,即通过掌握庞大的数据信息进行专业化处理提高对数据的“加工能力”,通过“加工”实现数据的“增值”。
大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。现有技术中,实时计算大部分都基于JStorm/storm或Spark,JStorm本身做聚合计算是对一定的时间窗内的数据可以进行聚合计算。但是,在进行单次密集型数据计算请求时,现有技术无法提供毫秒级密集型聚合计算提供支持。
因此,如何实现对数据的毫秒级密集计算是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种数据计算的方法及系统,能够实现对数据的毫秒级密集计算。
为解决上述技术问题,本申请提供一种数据计算的方法,该方法包括:
对外部数据进行预处理,得到待计算数据;
将所述待计算数据并行发送至预设数量个计算单元;
将所述待计算数据存储至所述计算单元的内存中,并通过分布式SQL计算引擎进行计算得到计算结果;其中,所述分布式SQL计算引擎由通过对开源SQL引擎与分布式计算中间件基层进行改造得到。
可选的,还包括:
将所述计算结果存储至结果数据库。
可选的,将所述待计算数据存储至所述计算单元的内存中包括:
将所述待计算数据整理为二维表的形式并存储至所述计算单元的所述内存中。
可选的,所述对外部数据进行预处理,得到待计算数据包括:
对所述外部数据进行格式化转化成标准格式,并进行预编译操作得到所述待计算数据。
本申请还提供了一种数据计算的系统,该系统包括:
数据接入模块,用于对外部数据进行预处理,得到待计算数据;
配置模块,用于将所述待计算数据并行发送至预设数量个计算单元;
计算执行模块,用于将所述待计算数据存储至所述计算单元的内存中,并通过分布式SQL计算引擎进行计算得到计算结果;其中,所述分布式SQL计算引擎由通过对开源SQL引擎与分布式计算中间件基层进行改造得到。
可选的,还包括:
计算结果存储模块,用于将所述计算结果存储至结果数据库。
可选的,所述计算执行模块包括:
数据存储单元,用于将所述待计算数据整理为二维表的形式并存储至所述计算单元的所述内存中。
可选的,所述数据接入模块具体为对所述外部数据进行格式化转化成标准格式,并进行预编译操作得到所述待计算数据的模块。
本发明提供了一种数据计算的方法,对外部数据进行预处理,得到待计算数据;将所述待计算数据并行发送至预设数量个计算单元;将所述待计算数据存储至所述计算单元的内存中,并通过分布式SQL计算引擎进行计算得到计算结果;其中,所述分布式SQL计算引擎由通过对开源SQL引擎与分布式计算中间件基层进行改造得到。
本方法中通过将待计算数据并行发送到预设数量个计算单元,实现了多个计算单元一起执行同一数据不同类型的计算任务,在进行计算之前将待计算数据存储至内存中能够加快执行计算任务的速度,通过SQL计算引擎进行计算是通过相对简单的语言实现了复杂数据的计算。该方法能够实现对数据的毫秒级密集计算,有利于降低维护成本,简化测试方式。本申请同时还提供了一种数据计算的系统,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种数据计算的方法的流程图;
图2为本申请实施例所提供的另一种数据计算的方法的流程图;
图3为本申请实施例所提供的一种数据计算的系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种数据计算的方法的流程图;
具体步骤可以包括:
步骤S101:对外部数据进行预处理,得到待计算数据;
其中,本方案默认在进行数据计算之前已经接收了外部数据,由于外部数据的来源并不唯一,可以来自多个数据生成的模块,又因为各个数据生成模块生成的数据的格式往往是不同的,所以本步骤中提到的外部数据的格式并不统一。外部数据格式的不统一将会带来相当大的计算工作量,如果不进行相关的转化操作可能会导致无法实现毫秒级密集计算。因此在执行数据计算的流程的开始阶段便需要对外部数据进行预处理操作,获得预定格式的待计算数据。
可以理解的是,预处理涉及到对外部数据的整理和加工,得到的待计算数据是一种可以在后续流程步骤中直接使用的数据。由于外部数据原本的数据格式是多种多样的,因此对于各种外部数据的整理和加工的方式也是不尽相同的,此处并不对预处理过程中对外部数据进行具体哪一种或哪几种操作进行限定,只要能够得到可以在后续步骤中能够使用的待计算数据即可。
当然,在本步骤中是默认所有外部数据都是正确的、可以信任的数据。但是,事实上外部数据中可能存在一些错误的数据,在本步骤进行预处理时可以先对外部数据的可信度(外部数据为正确数据的程度)进行判断,筛选掉一部分存在问题的数据。当然对于外部数据的筛选是一种更为优选的实施方式,本领域的技术人员可以根据实际应用的具体情况进行选择,此处并不对是否需要先对外部数据进行筛选进行限定。
步骤S102:将所述待计算数据并行发送至预设数量个计算单元;
其中,本步骤的目的是将步骤S101中得到的标准格式的待计算数据发送到各个计算单元中,发送的具体方式为并行发送,即将待计算数据在同一时间发送到个计算单元中。
可以理解的是,各个计算单元的功能是不尽相同的,也就是说虽然每个计算单元接收到的待计算数据是相同的,但是由于各计算单元的功能不相同每个计算单元对数据的处理内容也是不同的,这也是能够加快数据计算的原因之一。在发送待计算数据时,可以先对待计算数据进行分析在计算过程中用到需要哪些类型的计算单元。也就是说可以根据待计算数据类型选择适当的计算单元,即选择预设数量的计算单元。
步骤S103:将所述待计算数据存储至所述计算单元的内存中,并通过分布式SQL计算引擎进行计算得到计算结果;
其中,本步骤中将待计算数据存储至计算单元的内存中的目的是加快数据计算的速度。内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。将待计算数据存储至计算单元的内存中,能够在进行数据计算时实现快速的数据调用,以达到快速进行数据计算的目的。
采用分布式SQL(Structured Query Language,结构化查询语言)计算引擎是大部分研发人员都希望有这样的功能,但是由于SQL引擎复杂性以及计算特性,从理论上讲需要更为复杂的分布式SQL引擎,但现有的分布式SQL引擎大都不开源并且这些引擎解决的问题域是大数据量查询,并不适合做我们的计算场景;本步骤是是通过不断对比试验和论证得到现有的方法,利用简单的开源SQL引擎和分布式计算中间件(Jstorm)基层上进行改造成适合大量不同逻辑的聚合计算的分布式SQL计算引擎,满足的目标计算量大,分布式执行,数据基于内存的特点。也就是说,本步骤中使用的分布式SQL引擎是通过将JStorm(一种实时数据处理系统)和calcite(一种实时数据处理系统)两种技术组件重新结合,JStorm作为分布式基础引擎,calcite作为线程级的SQL引擎,每组计算封装成一个JStorm的一个bolt(一种处理数据的模块),每个bolt内嵌calcite及内存DB(Database,数据库),将接受进入的待计算数据通过JStorm并行的分发给不同的计算bolt使其对相同数据进行并行计算。
下面请参见图2,图2为本申请实施例所提供的另一种数据计算的方法的流程图;
具体步骤可以包括:
步骤S201:对所述外部数据进行格式化转化成标准格式,并进行预编译操作得到所述待计算数据;
其中,作为优选实施例,在进行预处理时对外部数据进行预编译可以进一步加快计算数据的速度。
步骤S202:将所述待计算数据并行发送至预设数量个计算单元。
步骤S203:将所述待计算数据整理为二维表的形式并存储至所述计算单元的所述内存中;
其中,将待计算数据整理为二维表的形式是用一种固定的关系模型来规范待计算数据的存在形式,二维表形式的待计算数据是可以不断增加的。二维表就是由行列组成的,知道行号列号就可以确定一个表中的数据,这是二维表的特点。在关系数据库中,存放在数据库中的数据的逻辑结构以二维表为主。
步骤S204:将所述待计算数据存储至所述计算单元的内存中,并通过分布式SQL计算引擎进行计算得到计算结果。
步骤S205:将所述计算结果存储至结果数据库;
其中,为了方便管理可以将计算结果存储至结果数据库中。可以理解的是,对于不同的计算结果可以有对应的不同的结果数据库,本领域的技术人员可以自行对计算结果进行分类,按照类别不同存储数据结果。
请参见图3,图3为本申请实施例所提供的一种数据计算的系统的结构示意图;
该系统可以包括:
数据接入模块100,用于对外部数据进行预处理,得到待计算数据;
配置模块200,用于将所述待计算数据并行发送至预设数量个计算单元;
计算执行模块300,用于将所述待计算数据存储至所述计算单元的内存中,并通过分布式SQL计算引擎进行计算得到计算结果;其中,所述分布式SQL计算引擎由通过对开源SQL引擎与分布式计算中间件基层进行改造得到。
在本申请提供的另一种数据计算的系统的实施例中,还包括:
计算结果存储模块,用于将所述计算结果存储至结果数据库。
进一步的,所述计算执行模块300包括:
数据存储单元,用于将所述待计算数据整理为二维表的形式并存储至所述计算单元的所述内存中。
进一步的,所述数据接入模块100具体为对所述外部数据进行格式化转化成标准格式,并进行预编译操作得到所述待计算数据的模块。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (8)
1.一种数据计算的方法,其特征在于,包括:
对外部数据进行预处理,得到待计算数据;
将所述待计算数据并行发送至预设数量个计算单元;
将所述待计算数据存储至所述计算单元的内存中,并通过分布式SQL计算引擎进行计算得到计算结果;其中,所述分布式SQL计算引擎包括分布式计算中间件、线程级SQL引擎和内存数据库,所述线程级SQL引擎和内存数据库内嵌于分布式计算中间件。
2.根据权利要求1所述方法,其特征在于,在通过分布式SQL计算引擎进行计算得到计算结果后,还包括:
将所述计算结果存储至结果数据库。
3.根据权利要求1所述方法,其特征在于,将所述待计算数据存储至所述计算单元的内存中包括:
将所述待计算数据整理为二维表的形式并存储至所述计算单元的所述内存中。
4.根据权利要求1至3任一项所述方法,其特征在于,所述对外部数据进行预处理,得到待计算数据包括:
对所述外部数据进行格式化转化成标准格式,并进行预编译操作得到所述待计算数据。
5.一种数据计算的系统,其特征在于,包括:
数据接入模块,用于对外部数据进行预处理,得到待计算数据;
配置模块,用于将所述待计算数据并行发送至预设数量个计算单元;
计算执行模块,用于将所述待计算数据存储至所述计算单元的内存中,并通过分布式SQL计算引擎进行计算得到计算结果;其中,所述分布式SQL计算引擎包括分布式计算中间件、线程级SQL引擎和内存数据库;
所述分布式计算中间件对预设数量个计算单元分组,并将每组计算单元封装成所述分布式计算中间件的一个处理数据的模块,所述线程级SQL引擎和内存数据库内嵌于所述处理数据的模块。
6.根据权利要求5所述系统,其特征在于,还包括:
计算结果存储模块,用于将所述计算结果存储至结果数据库。
7.根据权利要求5所述系统,其特征在于,所述计算执行模块包括:
数据存储单元,用于将所述待计算数据整理为二维表的形式并存储至所述计算单元的所述内存中。
8.根据权利要求5至7任一项所述系统,其特征在于,所述数据接入模块具体为对所述外部数据进行格式化转化成标准格式,并进行预编译操作得到所述待计算数据的模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710867828.0A CN107562943B (zh) | 2017-09-22 | 2017-09-22 | 一种数据计算的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710867828.0A CN107562943B (zh) | 2017-09-22 | 2017-09-22 | 一种数据计算的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107562943A CN107562943A (zh) | 2018-01-09 |
CN107562943B true CN107562943B (zh) | 2020-04-10 |
Family
ID=60982226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710867828.0A Active CN107562943B (zh) | 2017-09-22 | 2017-09-22 | 一种数据计算的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107562943B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270625A (zh) * | 2018-01-30 | 2018-07-10 | 河南质量工程职业学院 | 一种基于云服务平台的数据计算控制系统 |
CN112883049A (zh) * | 2019-11-29 | 2021-06-01 | 北京中关村科金技术有限公司 | 一种数据实时计算方法、装置和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8713038B2 (en) * | 2009-04-02 | 2014-04-29 | Pivotal Software, Inc. | Integrating map-reduce into a distributed relational database |
CN104898573B (zh) * | 2015-04-06 | 2016-08-17 | 华中科技大学 | 一种基于云计算的数控系统数据采集及处理方法 |
CN104915247B (zh) * | 2015-04-29 | 2019-01-22 | 上海瀚银信息技术有限公司 | 一种实时数据计算方法及系统 |
-
2017
- 2017-09-22 CN CN201710867828.0A patent/CN107562943B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107562943A (zh) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xie et al. | Simba: Efficient in-memory spatial analytics | |
Lee et al. | Parallel data processing with MapReduce: a survey | |
Borkar et al. | Hyracks: A flexible and extensible foundation for data-intensive computing | |
CN112905595A (zh) | 一种数据查询方法、装置及计算机可读存储介质 | |
CN108595664B (zh) | 一种hadoop环境下的农业数据监控方法 | |
JP2016509294A (ja) | 分散型データベースクエリ・エンジン用のシステムおよび方法 | |
CN105550268A (zh) | 大数据流程建模分析引擎 | |
US20150363467A1 (en) | Performing an index operation in a mapreduce environment | |
Elsayed et al. | Mapreduce: State-of-the-art and research directions | |
CN103699656A (zh) | 一种基于GPU的面向海量多媒体数据的MapReduce平台 | |
US20230418824A1 (en) | Workload-aware column inprints | |
CN107562943B (zh) | 一种数据计算的方法及系统 | |
Al-Khasawneh et al. | MapReduce a comprehensive review | |
CN107798111B (zh) | 一种分布式环境中大批量导出数据的方法 | |
CN111125248A (zh) | 一种大数据存储解析查询系统 | |
CN108334532B (zh) | 一种基于Spark的Eclat并行化方法、系统及装置 | |
CN108319604B (zh) | 一种hive中大小表关联的优化方法 | |
Zhao et al. | MapReduce model-based optimization of range queries | |
CN106844024A (zh) | 一种自学习运行时间预测模型的gpu/cpu调度方法及系统 | |
Rekachinsky et al. | Modeling parallel processing of databases on the central processor Intel Xeon Phi KNL | |
WO2023000561A1 (zh) | 一种对数据库操作进行加速的方法和装置 | |
CN113535781B (zh) | 一种时序库的数据查询方法、装置、设备及存储介质 | |
Lu et al. | A survey of mapreduce based parallel processing technologies | |
CN113608724A (zh) | 一种基于模型缓存实现的离线仓库实时交互方法与系统 | |
WO2020192225A1 (zh) | 一种面向Spark的遥感数据索引方法、系统及电子设备 |
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 |