CN110046137B - 将数据流分组并存储至云端存储文件中的系统和方法 - Google Patents

将数据流分组并存储至云端存储文件中的系统和方法 Download PDF

Info

Publication number
CN110046137B
CN110046137B CN201811563615.XA CN201811563615A CN110046137B CN 110046137 B CN110046137 B CN 110046137B CN 201811563615 A CN201811563615 A CN 201811563615A CN 110046137 B CN110046137 B CN 110046137B
Authority
CN
China
Prior art keywords
data
batch
queues
data items
items
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
Application number
CN201811563615.XA
Other languages
English (en)
Other versions
CN110046137A (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.)
Acer Cloud Technology Inc
Original Assignee
Acer Cloud Technology Inc
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 Acer Cloud Technology Inc filed Critical Acer Cloud Technology Inc
Publication of CN110046137A publication Critical patent/CN110046137A/zh
Application granted granted Critical
Publication of CN110046137B publication Critical patent/CN110046137B/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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS

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

将数据流分组并存储至云端存储文件中的系统和方法
技术领域
本发明涉及一种支持基于数据类型将数据流分组并存储至云端存储文件中的系统和电脑可执行方法。
背景技术
随着越来越多在云端存储中存储、管理和存取的数据/信息,例如,在云端中各种存储和服务器上,能处理及流动传输/上传大量的数据/信息至云端存储(云端存储可以但不局限于AWS S3存储)中,且能有效且经济地更新和/或修改上传的数据变得越来越重要。于此,数据可为由使用者生成,例如文件和电子信息,或者由装置生成,例如由移动装置产生的数据或由各种物联网(Internet of Things,IoT)感测器/装置产生或收集的感测器数据。出于数据分析的目的,通过其来源或类型将数据流组织成各种群通常是至关重要的,以使数据分析器相应地分析不同分组的数据。
目前,为了更新/修改云端存储中的文件,通常需要从一云端存储服务器下载文件,然后将其上传回云端存储服务器,以在文件修改后替换现有文件。如果在云端存储中文件的容量大小很大,且仅对该文件进行了一些修改,则会浪费大量的网络频宽从云端存储上载和下载此容量很大的文件。在一些实施例中,存储器缓冲区被用于实现一批处理单元以避免该问题,其中一批处理单元可以从存储器缓冲区一数据队列中提取数据并通过不同数据类型将提取的数据分为其自己的特定存储文件。随着数据队列中的数据量随时间增加,数据量和生成时间都可能变得不可预测。为了避免可能的系统发生存储器不足的问题,通常需要限制存储器缓冲区的大小和/或修复缓冲区的处理时间,导致数据被分割为太多的云端存储文件,且不限于每一文件一种数据类型。此外,像是AWS lambda之类的系统经由事件处理流数据,其中每一事件仅可从数据队列中获取一数据,从而导致每一事件具有其本身的云端存储文件。如果所有数据文件都存储在云端存储中而不进行压缩或分组,则数据分析工具在进行数据分析之前需浪费大量输入/输出(I/O)和网络资源来载入来自每一云端存储文件的数据,非常耗费时间和资源。因此,希望能够集中分组相同类型的数据以减轻数据分析工具的负担。
相关技术的前述示例和与其相关的限制预期是示例性的而不是唯一的。在阅读说明书和研究附图后,相关技术的其他限制对本领域技术人员将变得显而易见。
发明内容
以下公开的内容仅为示例性的,且不意指以任何方式加以限制。除所述说明性方面、实施方式和特征之外,通过参照附图和下述具体实施方式,其他方面、实施方式和特征也将显而易见。即,以下公开的内容被提供以介绍概念、重点、益处及本文所描述新颖且非显而易见的技术优势。所选择,非所有的,实施例将进一步详细描述如下。因此,以下公开的内容并不意旨在所要求保护主题的必要特征,也不意旨在决定所要求保护主题的范围中使用。
本公开提出一种支持基于数据类型将数据流分组并存储至云端存储文件中的系统,包括:在一主机上运行的一数据预处理单元,配置用以:接收上传到一云端存储中一数据队列的上述数据流,其中上述数据流包括由不同使用者和/或装置产生并收集不同类型的多个数据项;基于上述数据项的数据类型将在上述数据队列中的上述数据项检索、分组和放置到多个批数据队列中,其中放置在每一批数据队列中的上述数据项具有相同的数据类型;在一主机上运行的一数据批处理单元,配置用以:获取、批处理和存储来自上述批数据队列中其中之一的上述数据项至一或多个云端存储文件中,其中每一云端存储文件在每一轮处理期间在上述云端存储上维持相同类型的上述数据项;以及一次一批数据队列从上述批数据队列中持续获取和批处理上述数据项,直到处理完所有批数据队列且在上述批数据队列中的上述数据项被保存到各自的云端存储文件中为止,以进一步处理和分析。
本公开提出一种支持基于数据类型将一数据流可扩展分组并存储至云端存储文件中的系统,包括:在一主机上运行的一数据预处理单元,配置用以:接收上传到一云端存储中一数据队列的上述数据流,其中上述数据流包括由不同使用者和/或装置产生及收集不同类型的多个数据项;基于上述数据项的数据类型将在上述数据队列中的上述数据项检索、分组和放置到多个批数据队列中,其中放置在每一批数据队列中的上述数据项具有相同的数据类型;将在每一批数据队列中的数据项分为多个分区,其中不同分区被分配至多个数据批处理单元并由上述数据批处理单元处理;运行在一主机上的每一上述多个数据批处理单元配置用以:从每一上述批数据队列的上述分区其中之一获取、批处理和存储数据项至一云端存储文件中,且上述云端存储文件在上述云端存储中维持相同类型的上述数据项以供进一步处理和分析,其中多个数据批处理单元被配置用以并行地对上述批数据队列的上述分区进行操作。
本公开提出一种电脑可执行方法,用于支持基于数据类型将数据流分组并存储至云端存储文件中,包括:接收上传到一云端存储中一数据队列的上述数据流,其中上述数据流包括由不同使用者和/或装置产生并收集不同类型的多个数据项;基于上述数据项的数据类型将在上述数据队列中的上述数据项检索、分组和放置到多个批数据队列中,其中放置在每一批数据队列中的上述数据项具有相同的数据类型;获取、批处理和存储来自上述批数据队列中其中之一的上述数据项至一或多个云端存储文件中,其中每一云端存储文件在每一轮处理期间在上述云端存储上维持相同类型的上述数据项;以及一次一批数据队列从上述批数据队列中持续获取和批处理上述数据项,直到处理完所有批数据队列且在上述批数据队列中的上述数据项被保存到各自的云端存储文件中为止,以进一步处理和分析。
本公开提出一种电脑可执行方法,用于支持基于数据类型将一数据流可扩展分组并存储至云端存储文件中,包括:接收上传到一云端存储中一数据队列的上述数据流,其中上述数据流包括由不同使用者和/或装置产生并收集不同类型的多个数据项;基于上述数据项的数据类型将在上述数据队列中的上述数据项检索、分组和放置到多个批数据队列中,其中放置在每一批数据队列中的上述数据项具有相同的数据类型;获取、批处理和存储来自上述批数据队列中其中之一的上述数据项至一或多个云端存储文件中,其中每一云端存储文件在每一轮处理期间在上述云端存储上维持相同类型的上述数据项;以及一次一批数据队列从上述批数据队列中持续获取和批处理上述数据项,直到处理完所有批数据队列且在上述批数据队列中的上述数据项被保存到各自的云端存储文件中为止,以进一步处理和分析。
附图说明
当结合附图进行阅读时,根据下面详细的描述可以更好地理解本公开。应该强调的是,根据工业中的标准实践,各种部件没有被按比例绘制并且仅仅用于说明的目的。实际上,为了清楚的讨论,各种部件的数量和尺寸可以被任意增加或减少。
图1是描绘根据一些实施例所述的支持基于数据类型将数据流分组并存储到云端存储文件中的系统示意图的示例。
图2是描绘根据一些实施例所述的支持基于数据类型将一数据流分组并存储到云端存储文件过程的一示例的流程图。
图3是描绘根据一些实施例所述的支持基于数据类型可扩展分组并存储将数据流至云端存储文件中的系统图的示例。
图4是描绘根据一些实施例所述的实现用于平均分配在每一批数据队列中数据项的公式的程序码片段的示例。
图5是描绘根据一些实施例所述的支持基于数据类型将一数据流可扩展分组并存储至云端存储文件的一程序示例的流程图。
附图标记说明:
100 系统
102 数据预处理单元
104、104_1、104_2、104_3、104_4 数据批处理单元
106 云端存储单元
108 数据队列
110 批数据队列
112 云端存储文件
200 流程图
202、204、206、208 方块
500 流程图
502、504、506、508 方块
具体实施方式
以下公开提供了许多用于实施本发明不同特征的不同实施例或示例。元件和布置的具体示例被描述如下以简化本公开。当然,这些仅仅是示例,而不是限制性的。此外,本公开可以在多个示例中使用重复的参考标号和/或字母。这种重复仅是为了简化和清晰的目的,不代表所讨论的各个实施例和/或结构之间的关系。
本发明提出一种新方法,其设想了支持基于流(stream)中数据项类型将数据流分组并存储的系统和方法,用于有效率的数据批处理(batch processing)和分析。首先,数据流被上传/流动至一云端存储,其中数据流可包括由不同使用者和/或装置产生并收集的不同类型的多个数据项(Data item)。一旦在云端存储的数据队列中接收到数据项,上述数据项通过一预处理单元检索、分组和存储至多个批数据队列(batch data queues)中,其中每一批数据队列中的数据项具有相同的数据类型。一或多个批处理单元(batch processingunit)接着配置用以从上述批数据队列中其中之一获取并批处理数据项,并将相同数据类型的这些数据项存储至一或多个云端存储文件中,以便在每一轮的处理之后在云端存储中作进一步的处理和分析。批处理单元一次一批处理数据队列从批数据队列中持续获取和处理数据项,直到所有批数据队列中的数据项已被保存至其各自的云端存储文件中。
在所提出的方法下,以实时形式(例如,物联网(Internet of Things,IoT)装置)收集的数据流可实时且更有效地进行批分组及处理。由于已分组数据项根据其数据类型被存储至云数据文件中,因此数据分析工具可以更容易地对已收集的数据项执行后续分析。由于已收集的数据可以在云端存储中被处理和分析,因此所提出的方法避免了使用不必要的输入/输出(I/O)资源、存储器、系统负担和频宽。
图1描绘了支持基于数据类型将数据流分组并存储到云端存储文件中的系统示意图100的示例。尽管示意图将多个元件示出为在功能上分离,但是这种图示仅用于说明用途。显而易见的是,该图中描绘的元件可以任意组合或划分成单独的软件、固件和/或硬件元件。而且,还可以理解,无论如何组合或划分这些元件,这些元件都能够在同一主机或多个主机上执行,并且其中多个主机可通过一或多个网络连接。
在图1的示例中,系统100包括在云端存储或数据中心中的至少一数据预处理引擎/单元102、一数据批处理引擎/单元104和一云端存储单元106。这些引擎和单元在一或多个计算单元/设备/主机(图未示出)上运行,而每一计算单元/设备/主机具有存储在一存储单元中的软件指令,以实现一或更多程序,其中存储单元像是计算单元中的一非易失性存储器(也称为辅助存储器)。当执行软件指令时,至少一子集合的软件指令由主机的计算单元其中之一载入到存储器(也称为主存储器)中,使该主机专门用于此实施此些程序。这些程序还可以至少部分地体现于加载和/或执行电脑程序码的主机中,使主机成为用于实施程序的专用计算单元。当用于通用计算单元上时,电脑程序码区段将配置计算单元以建立特定的逻辑电路。
在图1的示例中,每一主机可以是计算装置、通信装置、存储装置或能运行软件组件的任何计算装置。以非限制性示例来看,计算装置可以但不局限于一服务器机器、笔记本电脑、台式电脑、平板电脑、Google的Android装置、iPhone、iPad和语音控制扬声器或控制器。每一主机具有通信界面(图未示出),其使引擎和单元能够通过遵循某些通信协定(例如TCP/IP、http、https、ftp和sftp协议)的一或多个通信网络与其他引擎和单元、使用者和其他装置彼此通信。在本文中,通信网络可以但不局限于网际网络(Internet)、内联网(Intranet)、广域网络(Wide Area Network,WAN)、局域网络(Local Area Network,LAN)、无线网络、蓝牙、Wi-Fi及移动通信网络。而网络和通信协定的物理连接已为本领域的技术人员所熟知。
在图1的示例中,数据项的一流通过网络上传至基于云端存储的一数据队列108,其中数据项可以是反映其来源的不同类型,例如数据项如何产生以及从何处收集的。对于非限制性示例而言,数据项可以是使用者产生的,例如使用者起草的文档及电子信息,或者是装置产生的,例如由移动装置产生的数据项或由各种物联网装置产生或收集的传感器数据。如图1的示例所示,在数据队列108中的数据项流被描绘为具有代表不同数据类型不同阴影的圆圈。
当数据队列108中数据项的数量随时间增加时,先进先出(First-in First-out,FIFO)的数据队列108可能随着时间的推移而耗尽预先分配的缓冲区大小,尤其是当以比从数据队列108检索更快的速度在数据队列108处收集和接收数据项的时候。为了避免这种存储器匮乏的问题,每当一新的数据项被增加至数据队列108时,数据预处理单元102被配置用以检索来自数据队列中数据项,以使数据队列108不会耗尽已分配的存储器/缓冲区。数据预处理单元102接着被配置用以将已检索的数据项放置到与数据项的数据类型相匹配的多个批数据队列110其中之一。如图1的示例所示,每一批数据队列110包含特定类型的数据项,且在数据队列108中不同类型的数据项被分成不同类型的批数据队列110。
在图1的示例中,数据批处理单元104被配置用以从批处理数据队列110其中之一中检索/获取一组数据项,以便在每一轮处理期间进行批处理,并在云端存储单元106上将已检索的数据项集合存储至此集合本身特定的云端存储文件112中,其中每一云端存储文件112仅包括与已检索的数据项集合相同类型的数据项。在一些实施例中,数据批处理单元104被配置用以一次一批处理数据队列来批处理数据项,直到所有批处理数据队列110处理结束为止。如图1的示例所示,当数据批处理单元104完成第一轮批处理时,数据批处理单元104从批数据队列1中获取并批处理三个绘制为圆圈的数据项,并将数据项存储到一云端存储文件112中。数据批处理单元104接着从不同数据类型的批处理数据队列2中检索两个数据项,并将此两个数据项保存到云端存储单元106上不同的云端存储文件中。在两轮批处理之后,数据批处理单元104批处理并存储不同类型的五个数据项至两个云端存储文件中。
图2描绘了支持基于数据类型将一数据流分组并存储到云端存储文件过程的一示例的流程图200。尽管上述图示为了说明的目的以特定顺序描述了功能步骤,但该过程不限于任何特定步骤顺序或安排。相关领域的技术人员应理解在上述图示中描述的各种步骤可以以各种方式省略、重新排列、组合或调整。
在图2的示例中,流程图200开始于方块202,一数据流被上传到在一云端存储的一数据队列,其中上述数据流包括由不同使用者和/或设备产生并收集不同类型的多个数据项。流程图200接着进行至方块204,在数据队列中的数据项被检索、分组并放置到多个批数据队列中,其中在每一批数据队列中的上述数据项具有相同的数据类型。流程图200继续进行至方块206,来自上述批数据队列中其中之一的数据项被提取、进行批处理并存储到一或多个云端存储文件中,其中每一云端存储文件在云端存储上维持相同类型的数据项以供进一步处理及分析。流程图200在方块208处结束,一次一批数据队列从上述批数据队列中持续地获取和批处理上述数据项,直到所有批处理数据队列中的数据项已保存到其各自的云端存储文件中为止,以进一步作处理和分析。
在一些情况下,用于分组及存储数据项的可扩展性极为重要,尤其是在短时间周期内有大量数据项被产生并被上传至数据流中的时候。图3描绘了支持基于数据类型可扩展分组并存储将数据流至云端存储文件中的系统图200的示例,其中多个数据批处理单元104被部署和使用。在一些实施例中,在由数据预处理单元102基于数据项的类型将数据流分成多个批数据队列110之后,每一批数据队列110可由数据预处理单元102进一步划分为多个分区(Partition)(例如,如图3示例中所示的分区0和分区1),而多个数据批处理单元(例如,104_1和104_2)则被配置用以平行和/或同时获取和处理来自相同批数据队列110不同分区的数据项,以加速相同类型的数据项的批处理。在一些实施例中,在每一分区中的数据项仅能由单一数据批处理单元104处理,以确保在批数据队列110中的每一数据项只被处理一次。每一数据批处理单元104接着被配置用以将其处理的数据项存储至云端存储单元106上的一特定云端存储文件112中。如图3所示,四个数据批处理单元104_1至104_4被配置用以平行多重处理在两批数据队列110中的数据项并且将数据批处理单元104_1至104_4处理的数据项存储到四个单独的云端存储文件112中,其中一些云端存储文件112可包括来自相同批数据队列110不同分区的相同类型的数据项。
在一些实施例中,数据预处理单元102被配置用以基于一分区键(partition key)的哈希(Hash)值及欲建立用于上述批数据队列110的分区数量并通过将上述批数据队列110中的数据项分配至不同分区来区分每一批数据队列110。对于非限制性的示例而言,数据预处理单元102可采用以下公式分配批数据队列110中的每个数据项至其中一分区:
math.abs(partitionKey.hashCode()%numberOfPartitions)
在一些实施例中,当数据项的类型被用作分区键时,数据预处理单元102可以将在一批数据队列110中相同类型的所有数据项分配到相同分区中,导致分配给批数据队列110分区的数据批处理单元104之间的不均匀负载。例如,一个数据批处理单元104过载而另一个则闲置。
在一些实施例中,数据预处理单元102被配置用以通过包含一唯一序号将每一批数据队列110中的数据项平均地分配到一组分区中,上述唯一序号可以是(但不局限于)数据项的一时间戳(timestamp),而数据项的类型(由颜色(color)表示)形成一新分区键,并使用以下公式作为示例:
math.abs((color+timestamp).hashCode%numberOfPartitions)
图4描绘了实现上述公式的程序码片段的示例,用于平均分配在每一批数据队列110中的数据项。如图4的示例所示,新分区键通过公式化以包含一唯一序号。因此,相同类型或颜色的数据项被平均分配至不同的分区,如图3所示的分区0或分区1。
在一些实施例中,用于分组和存储数据项流的系统100可以通过Kafka实现,Kafka是用于实时数据管线(pipelining,流水线)及流(stream)的一实时流处理软件平台。具体而言,数据队列108可以实现为一流队列(streaming queue),其中流队列实时连续地接收并输出来自数据流中不同来源的数据项。当具有关于收集来自物联网装置的数据项且由一Kafka制造商产生的主题的一事件报告在数据队列108中被发布并接收时,数据预处理单元102会订阅该主题,以使其可以使用eventReportData.eventType+timestamp作为一Kafka分区键并使用batchTopic作为Kafka主题,以将每一eventReportData分配至批数据队列110及其各自的分区。当多个数据批处理单元104同时处理在批数据队列110及其各自的分区中的数据项时,每一数据批处理单元104基于batchTopic使用Kafka消费者以从批数据队列及其分区中获取数据项。已获取的数据项接着通过其eventType被分组,并被存储在相应的云端存储文件112中。
图5描绘了支持基于数据类型将一数据流可扩展分组并存储至云端存储文件的一程序示例的流程图500。尽管上述图示为了说明的目的以特定顺序描述了功能步骤,但该过程不限于任何特定步骤顺序或安排。相关领域的技术人员应理解在上述图示中描述的各种步骤可以以各种方式省略、重新排列、组合或调整。
在图5的示例中,流程图500开始于方块502,数据流被上传至在云端存储的数据队列中,其中数据流包括由不同使用者和/或装置所产生及收集不同类型的多个数据项。流程图500接着进行至方块504,在数据队列中的数据项被检索、分组并放置到多个批数据队列中,其中每一批数据队列中的数据项具有相同的数据类型。流程图500继续进行到方块506,在每一批数据队列内的数据项被分成多个分区,其中不同的分区被分配至多个数据批处理单元并由上述数据批处理单元处理。流程图500在方块508处结束,来自每一批数据队列每一分区的数据项由多个批数据处理单元中的每一个提取、批处理并存储至在云端存储文件中,且上述云端存储文件在云端存储中维持相同类型的数据项中以供进一步处理和分析,其中多个数据批处理单元被配置用以并行地对上述批数据队列的分区进行操作。
根据本公开的启示使用传统通用或专用的数字电脑或可程序的微处理器可实现一实施例,这对电脑领域的技术人员是显而易见的。熟练的程序设计者基于本公开的启示可容易地准备合适的软件编码,这对软件领域的技术人员是显而易见的。也可以通过制备集成电路或通过将常规元件电路的适当网络互联来实现本发明,这对本领域技术人员是显而易见的。
本文描述的方法和系统可以至少部分以电脑执行的步骤以及用于实施这些步骤的装置的形式体现。所公开的方法还可以至少部分以编码有电脑程序代码的有形、非暂时性机器可读存储介质的形式体现。所述介质可包括诸如,RAM、ROM、CD-ROM、DVD-ROM、BD-ROM、硬盘驱动器、快闪存储器或者任何其他非暂时性机器可读存储介质,其中当程序码装载到电脑中并被电脑执行时,所述电脑变为实施所述方法的装置。所述方法还可至少部分以电脑程序代码被装载到其上和/或被其执行的电脑的形式体现,使得电脑成为实施所述方法的专用目的装置。当在通用处理器上实施时,电脑程序程序码片段配置处理器以生成特定的逻辑电路。所述方法可以可选地至少部分包括在由用于执行所述方法的专用集成电路形成的数字信号处理器中。

Claims (13)

1.一种支持基于数据类型将一数据流可扩展分组并存储至云端存储文件中的系统,包括:
在一主机上运行的一数据预处理单元,配置用以:
接收上传到一云端存储中一数据队列的上述数据流,其中上述数据流包括由不同使用者和/或装置产生及收集不同类型的多个数据项;
基于上述数据项的数据类型将在上述数据队列中的上述数据项检索、分组和放置到多个批数据队列中,其中每一批数据队列被分成多个分区,其中放置在每一批数据队列每一分区中的上述数据项具有相同的数据类型;
将在每一批数据队列中的数据项分为多个分区,其中同一批数据队列不同分区被分配至多个数据批处理单元并由上述数据批处理单元处理;
运行在一主机上的每一上述多个数据批处理单元配置用以:
从上述同一批数据队列的上述分区其中之一获取、批处理和存储数据项至一云端存储文件中,且上述云端存储文件在上述云端存储中维持相同类型的上述数据项以供进一步处理和分析,其中多个数据批处理单元被配置用以并行地对上述同一批数据队列的上述不同分区进行操作;
其中上述数据预处理单元配置用以基于一分区键的哈希值及欲建立用于上述批数据队列的分区数量并通过将上述批数据队列中的数据项分配至不同分区来区分每一批数据队列。
2.如权利要求1所述的系统,其中:
在每一分区中的上述数据项仅由一数据批处理单元处理,以使在上述批数据队列中的每一数据项只被处理一次。
3.如权利要求1所述的系统,其中:
每一数据项的类型被用以作为上述分区键。
4.如权利要求3所述的系统,其中:
上述数据预处理单元被配置用以通过包括一唯一序号将每一批数据队列中的数据项平均地分配到上述分区组中,而上述数据项的类型形成一新分区键。
5.如权利要求1所述的系统,其中:
上述系统通过用于实时数据管线及流的一软件平台实现,其中上述数据队列是一流队列,而上述流队列实时连续地接收并输出来自上述数据流中不同来源的数据项。
6.如权利要求5所述的系统,其中:
上述数据预处理单元被配置用以当具有针对收集来自一物联网装置的数据项的一主题的一事件报告被产生或发布时,订阅上述主题,使得上述数据预处理单元能将数据项分配至上述批数据队列及其各自的分区。
7.如权利要求6所述的系统,其中:
上述数据批处理单元被配置用以通过基于上述主题从上述批数据队列及其分区中获取上述数据项以处理在上述批数据队列及其各自的分区中的上述数据项。
8.一种电脑可执行方法,用于支持基于数据类型将一数据流可扩展分组并存储至云端存储文件中,包括:
接收上传到一云端存储中一数据队列的上述数据流,其中上述数据流包括由不同使用者和/或装置产生及收集不同类型的多个数据项;
基于上述数据项的数据类型将在上述数据队列中的上述数据项检索、分组和放置到多个批数据队列中,其中每一批数据队列被分成多个分区,其中放置在每一批数据队列每一分区中的上述数据项具有相同的数据类型;
将在每一批数据队列中的数据项分为多个分区,其中同一批数据队列不同分区被分配至多个数据批处理单元并由上述数据批处理单元并行地处理;以及
从上述同一批数据队列的上述分区其中之一获取、批处理和存储数据项至一云端存储文件中,且上述云端存储文件在上述云端存储中维持相同类型的上述数据项以供进一步处理和分析,其中多个数据批处理单元被配置用以并行地对上述同一批数据队列的上述不同分区进行操作;
其中上述电脑可执行方法还包括:
基于一分区键的哈希值及欲建立用于上述批数据队列建立的分区数量并通过将上述批数据队列中的数据项分配至不同分区来区分每一批数据队列。
9.如权利要求8所述的电脑可执行方法,还包括:
仅通过一数据批处理单元处理在每一分区中的上述数据项,以使在上述批数据队列中的每一数据项只被处理一次。
10.如权利要求8所述的电脑可执行方法,还包括:
通过包括一唯一序号将每一批数据队列中的数据项平均地分配到上述分区组中,而上述数据项的类型形成一新分区键。
11.如权利要求8所述的电脑可执行方法,还包括:
使用用于实时数据管线和流的一软件平台,其中上述数据队列是一流队列,而上述流队列实时连续地接收和输出来自上述数据流中不同来源的数据项。
12.如权利要求11所述的电脑可执行方法,还包括:
当具有针对收集来自一物联网装置的数据项的一主题的一事件报告被产生或发布时,订阅上述主题,使得数据预处理单元能将数据项分配至上述批数据队列及其各自的分区。
13.如权利要求12所述的电脑可执行方法,还包括:
通过基于上述主题从上述批数据队列及其分区中获取上述数据项以处理在上述批数据队列及其各自的分区中的上述数据项。
CN201811563615.XA 2017-12-20 2018-12-20 将数据流分组并存储至云端存储文件中的系统和方法 Active CN110046137B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762608471P 2017-12-20 2017-12-20
US62/608,471 2017-12-20
US16/006,796 US11200258B2 (en) 2017-12-20 2018-06-12 Systems and methods for fast and effective grouping of stream of information into cloud storage files
US16/006,796 2018-06-12

Publications (2)

Publication Number Publication Date
CN110046137A CN110046137A (zh) 2019-07-23
CN110046137B true CN110046137B (zh) 2023-08-01

Family

ID=64665541

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811563615.XA Active CN110046137B (zh) 2017-12-20 2018-12-20 将数据流分组并存储至云端存储文件中的系统和方法

Country Status (4)

Country Link
US (1) US11200258B2 (zh)
EP (1) EP3502914A1 (zh)
CN (1) CN110046137B (zh)
TW (1) TWI690189B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11892996B1 (en) 2019-07-16 2024-02-06 Splunk Inc. Identifying an indexing node to process data using a resource catalog
JP7180362B2 (ja) * 2018-12-19 2022-11-30 富士通株式会社 情報処理装置、情報処理プログラムおよび情報処理システム
US11829415B1 (en) 2020-01-31 2023-11-28 Splunk Inc. Mapping buckets and search peers to a bucket map identifier for searching
CN111324653B (zh) * 2020-02-17 2021-03-16 苏州亿歌网络科技有限公司 一种离线数据的采集方法、装置、设备及存储介质
CN111352739B (zh) * 2020-03-03 2024-05-03 河南科技学院 一种计算机大数据的批处理方法
TWI754293B (zh) * 2020-06-03 2022-02-01 鴻海精密工業股份有限公司 文檔處理方法、電腦裝置及可讀儲存介質
US11615082B1 (en) 2020-07-31 2023-03-28 Splunk Inc. Using a data store and message queue to ingest data for a data intake and query system
US11449371B1 (en) 2020-07-31 2022-09-20 Splunk Inc. Indexing data at a data intake and query system based on a node capacity threshold
US11609913B1 (en) 2020-10-16 2023-03-21 Splunk Inc. Reassigning data groups from backup to searching for a processing node
CN112417050A (zh) * 2020-11-25 2021-02-26 青岛海尔科技有限公司 数据同步方法和装置、系统、存储介质及电子装置
CN113204549A (zh) * 2021-04-20 2021-08-03 北京达佳互联信息技术有限公司 数据存储方法、数据读取方法、装置、终端及存储介质
US11809395B1 (en) * 2021-07-15 2023-11-07 Splunk Inc. Load balancing, failover, and reliable delivery of data in a data intake and query system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103368952A (zh) * 2013-06-28 2013-10-23 百度在线网络技术(北京)有限公司 用于待入侵检测处理的数据包进行抽样的方法与设备
JP2014041501A (ja) * 2012-08-23 2014-03-06 Hitachi Solutions Ltd バッチ処理対象データの高速読込み方法及びバッチ管理システム
EP2768200A1 (en) * 2013-02-18 2014-08-20 Stonesoft Corporation Receiving data packets

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101427248B (zh) 2006-04-27 2013-05-22 英特尔公司 用于基于内容的分割与挖掘的基于系统的方法
US20100332401A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
US20130339473A1 (en) * 2012-06-15 2013-12-19 Zynga Inc. Real time analytics via stream processing
US9218405B2 (en) * 2012-10-10 2015-12-22 Apple Inc. Batch processing and data synchronization in cloud-based systems
US9843617B2 (en) 2014-03-26 2017-12-12 Rockwell Automation Technologies, Inc. Cloud manifest configuration management system
US20150293974A1 (en) * 2014-04-10 2015-10-15 David Loo Dynamic Partitioning of Streaming Data
US10319469B2 (en) * 2014-04-22 2019-06-11 Cerner Innovation, Inc. Rule-based low-latency delivery of healthcare data
US9244978B2 (en) 2014-06-11 2016-01-26 Oracle International Corporation Custom partitioning of a data stream
US9658932B2 (en) * 2015-02-25 2017-05-23 Rovio Entertainment Ltd. Lightweight functional testing
US10324773B2 (en) * 2015-09-17 2019-06-18 Salesforce.Com, Inc. Processing events generated by internet of things (IoT)
US10623514B2 (en) 2015-10-13 2020-04-14 Home Box Office, Inc. Resource response expansion
US20180097748A1 (en) * 2016-09-30 2018-04-05 Microsoft Technology Licensing, Llc Partitioned Topic Based Queue with Automatic Processing Scaling
US10409658B2 (en) * 2017-01-27 2019-09-10 International Business Machines Corporation Batch processing of messages
CN107395669B (zh) * 2017-06-01 2020-04-07 华南理工大学 一种基于流式实时分布式大数据的数据采集方法及系统
CN107391719A (zh) 2017-07-31 2017-11-24 南京邮电大学 一种云环境中分布式流数据处理方法及系统
US10887369B2 (en) * 2017-09-25 2021-01-05 Splunk Inc. Customizable load balancing in a user behavior analytics deployment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014041501A (ja) * 2012-08-23 2014-03-06 Hitachi Solutions Ltd バッチ処理対象データの高速読込み方法及びバッチ管理システム
EP2768200A1 (en) * 2013-02-18 2014-08-20 Stonesoft Corporation Receiving data packets
CN103368952A (zh) * 2013-06-28 2013-10-23 百度在线网络技术(北京)有限公司 用于待入侵检测处理的数据包进行抽样的方法与设备

Also Published As

Publication number Publication date
US20190188315A1 (en) 2019-06-20
EP3502914A1 (en) 2019-06-26
TWI690189B (zh) 2020-04-01
CN110046137A (zh) 2019-07-23
US11200258B2 (en) 2021-12-14
TW201929510A (zh) 2019-07-16

Similar Documents

Publication Publication Date Title
CN110046137B (zh) 将数据流分组并存储至云端存储文件中的系统和方法
US10805363B2 (en) Method, device and system for pushing file
RU2736857C2 (ru) Способ, устройство и терминал для загрузки файлов
CN110636340B (zh) 视频文件的上传方法、存储设备、终端设备及存储介质
CN105843819B (zh) 一种数据导出方法及装置
US20200210815A1 (en) Output method and apparatus for multiple neural network, server and computer readable storage medium
US20180248934A1 (en) Method and System for a Scheduled Map Executor
CN105205154B (zh) 数据迁移方法以及装置
CN109298924B (zh) 定时任务的管理方法、计算机可读存储介质和终端设备
CN106874100B (zh) 计算资源分配方法及装置
US9535743B2 (en) Data processing control method, computer-readable recording medium, and data processing control device for performing a Mapreduce process
JP6966432B2 (ja) クラウドファイル処理方法および装置
CN106775470B (zh) 一种数据存储的方法及系统
CN111338787B (zh) 一种数据处理方法及装置、存储介质、电子装置
CN105553684A (zh) 一种通信系统及其应用的路由器升级方法
CN108197204B (zh) 文件处理方法及装置
US20160253219A1 (en) Data stream processing based on a boundary parameter
JPWO2015001596A1 (ja) 系列データ並列分析基盤およびその並列分散処理方法
US20150254102A1 (en) Computer-readable recording medium, task assignment device, task execution device, and task assignment method
CN113485855B (zh) 一种内存共享方法、装置、电子设备及可读存储介质
CN112988039A (zh) 数据上传方法和装置、云存储网关和系统以及存储介质
CN113448739B (zh) 一种数据处理方法及装置
US20170270165A1 (en) Data streaming broadcasts in massively parallel processing databases
KR101135786B1 (ko) 웹기반의 비행시험후 데이터 처리방법
CN106341480B (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