CN107409152A - 用于压缩通过网络接收的数据的方法和装置 - Google Patents
用于压缩通过网络接收的数据的方法和装置 Download PDFInfo
- Publication number
- CN107409152A CN107409152A CN201580075938.2A CN201580075938A CN107409152A CN 107409152 A CN107409152 A CN 107409152A CN 201580075938 A CN201580075938 A CN 201580075938A CN 107409152 A CN107409152 A CN 107409152A
- Authority
- CN
- China
- Prior art keywords
- data
- computing system
- compression
- value
- module
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/6076—Selection between compressors of the same type
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6064—Selection of Compressor
- H03M7/6082—Selection strategies
- H03M7/6088—Selection strategies according to the data type
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/30—Services specially adapted for particular environments, situations or purposes
- H04W4/38—Services specially adapted for particular environments, situations or purposes for collecting sensor information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/70—Services for machine-to-machine communication [M2M] or machine type communication [MTC]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
公开了与对来自一个或多个计算设备的数据进行压缩相关联的方法、装置、和存储介质。在各种实施例中,一个或多个物联网(IoT)设备可以向计算***发送信息。计算***可以基于共享属性将接受自这些一个或多个IoT设备的原始数据分组在一起。计算***可以选择压缩方案来表示由原始数据的组传达的信息。计算***可以将该压缩方案应用于原始数据的组,以生成表示原始数据的组的数据。可以公开或要求保护其它实施例。
Description
背景技术
本文提供的背景描述是出于总体上呈现本公开的上下文的目的。除非本文另有说明,否则本节中描述的材料不是本申请中的权利要求书的现有技术,并且不因包括在本节中而被认为是现有技术。
来自各种计算设备的数据可以以前所未有的速率流送。由于数以百万计的设备可以多次发送数据(例如,以每秒、每分钟若干次的速率等),所以必须被处理、被索引、和被存储的数据的量在供应存储容量和带宽方面会引起严重的经济和技术障碍。
压缩可以是一种管理这种庞大数据的方法。在压缩中,可以使用缩减数量的位来存储初始数据。压缩可以是有损或无损的。在有损压缩中,可以通过丢弃“不重要的”数据来减少存储初始数据所需要的位的数量。在无损压缩中,可以通过统计地消除冗余数据来压缩初始数据,以使得数据可以被精确地解压缩到其原始值。然而,压缩仍然需要可观的存储容量,并且因此可以检查用于数据存储缩减的替代方法。
附图说明
本发明的实施例将通过示例性实施例而非限制的方式来描述,其在附图中示出,在附图中相似的附图标记表示类似的元素,并且在附图中:
图1是示出根据各种实施例的包括用于压缩从多个设备接收的数据的***的示例环境的框图。
图2是示出根据各种实施例的包括用于数据压缩、数据解压缩、和查询处理的模块的数据压缩***的框图。
图3是示出根据各种实施例的用于存储代表数据的示例压缩表的框图。
图4是示出根据各种实施例的与对来自多个设备的数据进行压缩相关联的示例操作的框图。
图5是示出根据各种实施例的生成代表数据的示例的框图。
图6是示出根据各种实施例的生成代表数据的另一示例的框图。
图7是示出根据各种实施例的来自至少一个物联网设备的一组读数的曲线图。
图8是示出根据各种实施例的线性函数拟合到来自至少一个物联网设备的一组读数的曲线图。
图9是示出根据各种实施例的二次函数拟合到来自至少一个物联网设备的一组读数的曲线图。
图10是示出根据各种实施例的分段拟合到来自至少一个物联网设备的一组读数的曲线图。
图11是示出根据各种实施例的基于与主值的相应关系的值的示例表示的曲线图。
图12是示出根据各种实施例的用于压缩来自一个或多个物联网设备的数据的方法的流程图。
具体实施方式
将使用本领域技术人员常见地采用的术语来描述说明性实施例的各种方面,以将其工作的实质传达给本领域的其他技术人员。然而,对于本领域技术人员显而易见的是,可以仅利用所描述的方面中的一些来实践替代实施例。出于解释的目的,阐述了具体的数字、材料、和配置,以便提供对说明性实施例的透彻理解。然而,对于本领域技术人员显而易见的是,可以在没有具体细节的情况下实践替代实施例。在其它情况下,省略或简化公知的特征,以便不模糊说明性实施例。
以最有助于理解说明性实施例的方式依次将各种操作描述为多个离散的操作;然而,描述的顺序不应被解释为暗示这些操作必须是依赖于顺序的。特别地,这些操作不一定按照呈现的顺序来执行。此外,将操作描述为分离的操作不应被解释为要求操作必须被独立地执行和/或由分离的实体来执行。将实体和/或模块描述为分离的模块同样不应被解释为要求模块是分离的和/或执行分离的操作。在各种实施例中,所示出的和/或所描述的操作、实体、数据、和/或模块可以被合并、被分解成另外的子部分、和/或被省略。
短语“在一个实施例中”或“在实施例中”被重复使用。该短语一般并不指代相同的实施例;然而,该短语可以指代相同的实施例。术语“包含”、“具有”、和“包括”是同义词,除非上下文另有规定。短语“A/B”表示“A或B”。短语“A和/或B”表示“(A)、(B)、或(A和B)”。短语“A、B、和C中的至少一个”表示“(A)、(B)、(C)、(A和B)、(A和C)、(B和C)、或(A、B、和C)”。
图1示出了根据本公开的教导的包括用于压缩从多个设备102a-b接收的数据的***110的示例环境100。环境100可以包括但不限于一个或多个设备102a-b、外部计算***150、和数据压缩***110,其可以并入本公开的教导。设备102a-b和外部计算***150可以至少如所示出的与数据压缩***110通信地耦合,例如,通过包括互联网的一个或多个有线和/或无线网络。
在各种实施例中,设备102a-b中的每一个均可以是物联网(IoT)设备。IoT设备的示例包括电话、智能电话、医疗器具、测量仪或计量仪(例如,能量、温度、湿度、脉搏速率、压力、电压、电流计量仪等)、电器、车辆(例如,车联网(IoV)设备)、或者基本上配置有可操作以通过网络(例如,互联网)传输数据的嵌入式计算设备的任何其它设备。在一些实施例中,IoT设备可以包括协作移动设备,例如,被配置为共享数据、资源、和/或处理功能的设备。
在实施例中,设备102a-b可以被配置为捕获包括多个值的原始数据。设备102a-b可以缺少磁盘存储,并且可以仅包括可以被预留用于存储器的相对小容量的相应NAND或NOR闪存。因此,数据压缩可以高效地表示由设备102a-b捕获的原始数据。可以期望由设备102a-b提供的原始数据104a-b,以展现可以用于高效数据表示的各种特性:(1)有界偏差、(2)阈值灵敏度、和(3)偏斜(skew)。
关于有界偏差,包括来自设备102a-b的原始数据104a-b的值的变化在很小的时间段内经常在幅度上受到限制。也就是说,由设备102a-b中的一个设备读取的值的相对大的变化偶尔可以发生,但是预期的是在相对小的时间段内值的变化相对小。设备102a-b可以被配置为在相对短的时间段内调整和/或补偿各种读数。例如,可以由设备102a-b中的一个设备读取甲烷(CH4)和/或二氧化碳(CO2)排放速率,并且可以例如在昼夜循环中检测值的振荡。类似地,设备102a-b中的一个设备可以被配置为检测温度,并且检测到的温度可以一秒接一秒地逐渐变化。
关于阈值灵敏度,由设备102a-b中的一个设备检测到的信号可以相对于中心值在任一方向上超过阈值,以便于传达信息。在实施例中,设备102a-b可以包括相应的灵敏度阈值。例如,设备102a-b中的一个设备可以是被配置为检测交通的摄像机。设备102a-b中一个设备捕获车牌、驾驶员面部等的能力(例如,分辨率)可以与交通分析没有密切关系;相反,交通拥挤的相对变化对于交通分析可以是有用的(例如,原始数据104a-b可以传达在特定持续时间内交通是否增加了阈值百分比)。
关于偏斜,设备102a-b可以传达指示接近中心值的一个或多个带(band)周围的数据块(mass)的原始数据104a-b,而由距离中心值较远的带中的原始数据104a-b传达的其它值可能相对少见。例如,通常出现的正态分布在±σ带中可以具有68.2%的数据块,并且在平均值附近的±2σ中可以具有95.4%的数据块。偏斜在偏差中的普遍性指示少量的量化可以足够捕获数据中的关键分级。
有界偏差、阈值灵敏度、和/或偏斜的概念可以用于高效的数据表示。在实施例中,一个或多个压缩方案可以是基于有界偏差、阈值灵敏度、和/或偏斜中的一个或多个的。例如,偏斜与阈值灵敏度相结合可以有益于包含足够检测阈值相交的粗粒度位图的压缩方案。
在实施例中,设备102a-b中的每一个可以将原始数据104a-b发送到数据压缩***110。例如,设备102a-b可以以相对高的速率(例如,每秒或每分钟多次)将原始数据104a-b流送到数据压缩***110。
除了本公开的教导之外,数据压缩***110可以是边缘设备。边缘设备的示例包括路由器、路由交换机、集成接入设备(IAD)、多路复用器等。在另一实施例中,数据压缩***110可以与一个或多个边缘设备通信地耦合以接收来自设备102a-b的原始数据104a-b。在这样的实施例中,数据压缩***110可以包括在服务器、台式计算机、膝上型计算机、或者基本上适用于通过网络传输信号的任何其它计算机设备中。
根据实施例,数据压缩***110可以被配置为将至少一个压缩方案应用于原始数据104a-b来表示该原始数据104a-b。原始数据104a-b的压缩可以允许边缘设备在不与块设备(例如,诸如硬盘驱动器、CD-ROM驱动器、和/或闪存驱动器的存储设备)进行通信的情况下保留更多数据。
在各种实施例中,数据压缩***110可以包括用于基于与设备102a-b中的至少一个设备相关联的至少一个属性来对包括在原始数据104a-b中的值进行分组的电路和/或逻辑。数据压缩***110可以基于组的值来选择至少一个压缩方案,并且基于将选定的至少一个压缩方案应用于组的值来生成代表数据。因此,数据压缩***110可以选择并应用域适当的压缩方案。此外,数据压缩***110可以适用于域和/或原始数据104a-b,例如,通过动态地选择压缩方案。数据压缩***110可以被配置为存储代表数据,例如,将其存储在包括在数据压缩***110中或与数据压缩***110通信地耦合的数据库的表中。
环境100还可以包括外部计算***150。根据实施例,外部计算***150可以是服务器、台式计算机、膝上型计算机、或基本上适用于通过网络传输信号的任何其它计算机设备。外部计算***150可以被配置为将一个或多个查询140发送到数据压缩***110。在各种实施例中,一个或多个查询140可以是例如数据库查询。
响应于一个或多个查询140,数据压缩***110可以被配置为识别要作为结果142发送到外部计算***150的响应性数据。在一些实施例中,数据压缩***110可以从原始数据104a-b中识别作为响应性数据的原始数据,并将其作为结果142发送到外部计算***150。
在一些实施例中,数据压缩***110可以被配置为基于代表数据来生成响应性数据。根据各种实施例,代表数据可以包括如何生成响应性数据的指示,例如,函数和/或位图索引。基于查询,数据压缩***110可以识别代表数据并且基于代表数据生成要作为结果142发送到外部计算***150的响应性数据。例如,数据压缩***110可以基于代表数据和/或应用由代表数据指示的函数通过用于内插的随机化算法来生成响应性数据。
现在转到图2,框图示出了根据各种实施例的包括用于数据压缩、数据解压缩、和查询处理的模块206、208、210的数据压缩***200。数据压缩***200可以是如图1所示的数据压缩***110的实施例。
如图所示,对于所示出的实施例,数据压缩***200可以包括至少如图所示地彼此耦合的一个或多个处理器202、存储器204、和网络接口230。处理器202可以被配置为执行从存储器204加载的压缩模块206、解压缩模块208、和查询处理模块210的指令。压缩模块206、解压缩模块208、和查询处理模块210可以以软件、硬件、固件、或其组合来实现。
处理器202旨在表示宽范围的处理器,例如,各种执行速度和功耗的单核或多核处理器。类似地,存储器204旨在表示具有一个或多个级别的高速缓存的各种架构的、以及各种类型(例如,动态随机存取、闪存等)的存储器。在一些实施例中,可以将处理器202和存储器204(以及附加的组件)集成在例如片上***(SoC)中。
网络接口230可以由发送电路和/或接收电路组成。网络接口230可以被配置为通过任何数量的不同的有线和/或无线网络来发送和/或接收数据。因此,一个或多个网络234旨在表示本领域已知的宽范围的网络。(多个)网络234的示例可以包括有线或无线网络、局域或广域网络、私有或公共网络,包括互联网。
数据压缩***200可以包括存储设备240或者可以与存储设备240(例如,通过(多个)网络234)通信地耦合。存储设备240旨在表示适于存储经压缩数据的任何存储介质。存储设备240的示例包括闪存(例如,NAND闪存)、电可擦除可编程只读存储器(EEPROM)、硬盘驱动器(HDD)等。在一些实施例中,存储设备240可以包括数据库。存储设备240可以包括多个压缩表242,例如,作为数据库中的表。存储设备240可以被配置为存储原始数据和经压缩数据二者。
在各种实施例中,网络接口230可以被配置为通过(多个)网络234接收并处理来自一个或多个IoT设备的原始数据。可以由网络接口230向压缩模块206提供该原始数据。压缩模块206可以被配置为识别多个值公用的至少一个属性,该多个值包括原始数据并且与从其接收原始数据的IoT设备中的一个或多个IoT设备相关联。例如,压缩模块206可以被配置为检测与IoT设备(例如,设备ID)相关联的标识符,以使得压缩模块206可以将来自相同IoT设备的值分组在一起。
根据实施例,压缩模块206可以被配置为确定包括要被分组在一起的原始数据的值的量。第一多个聚合值可以在离散范围内,并且因此可以有益于使用第一压缩方案来进行压缩,而另一多个值可以是不相干的,并且因此将更适合于另一压缩方案。
在实施例中,压缩模块206可以被配置为确定用于表示第一多个值的压缩方案。压缩方案可以是尝试通过减少实际信息理论内容来减少原始数据所消耗的存储而不影响数据的有意义的使用的任何方法。
压缩方案的示例包括函数拟合、分段拟合、与主值的关系、以及位图索引压缩。在函数拟合压缩方案中,压缩模块206可以被配置为构建用于聚合值的函数,例如,线性函数或二次函数。类似地,对于分段压缩方案而言,压缩模块206可以被配置为将分段线性函数拟合到聚合值或聚合值的多个组。
关于基于与主值的关系的压缩方案,压缩模块206可以基于值与主值的相应关系来表示值。例如,压缩模块206可以选择作为一组聚合值的平均值的主值,并且每个聚合值可以由其与主值的百分比偏差来表示。在另一实施例中,压缩模块206可以观测到聚合值聚集在主值(例如,平均μ)周围。基于聚合值,压缩模块206可以识别标准偏差σ。因此,聚合值可以由在离平均值μ标准偏差σ(或其倍数)内的多个值来表示。
关于基于位图索引的压缩方案,压缩模块206可以被配置为基于聚合值来填充一个或多个位图列或行。例如,可以存在八个可能的带,与组相关联的属性可以分布在该带上。在一个实施例中,可以基于用于指示组的聚合值的值来填充八列位图索引。在另一实施例中,例如,如果偏斜为高,则一列位图索引可以用于表示聚合值以指示每个值是否出现在高密度的带中(附加的列可以被填充以指示属性到底是否出现)。
压缩模块206可以被配置为响应于接收到的原始数据而动态地选择压缩方案。在各种实施例中,压缩模块206可以被配置为聚合包括原始数据的值,并且可以被配置为针对值的不同聚合来选择各种压缩方案。例如,压缩模块206可以被配置为针对来自IoT设备的原始数据的长的、稳定的部分选择第一压缩方案,但是针对来自相同IoT设备的原始数据的抖动部分切换到第二压缩方案,并最终针对原始数据的第三部分返回到第一压缩方案。在另一示例中,压缩模块206可以将函数拟合压缩方案应用于组的值的一个或多个部分,但是可以在偏差编码中自适应地融合到数据拟合中的模块精度。
压缩模块206可以被配置为将至少一个选定的压缩方案应用于多个值,例如,组的聚合值。将选定的压缩方案应用于多个值可以使得压缩模块206生成代表数据。由压缩模块206生成的代表数据可以根据选定的压缩方案而变化。例如,代表数据可以是函数、位图索引、主值等。代表数据还可以包括对包含由代表数据表示的原始数据的多个值的指示。在实施例中,压缩模块206还可以生成包括其它值(例如,最小值、最大值等)的代表数据。
压缩模块206可以被配置为将代表数据存储在存储设备240中,例如在至少一个压缩表242中。由于压缩模块206可以被配置为将变化的压缩方案应用于组的不同的值,所以压缩模块206可以被配置为将不同的代表数据存储在一个或多个压缩表242中的不同列中或甚至将不同的代表数据存储在压缩表242中的一个压缩表的同一列中。
在一些实施例中,压缩模块206可以被配置为将原始数据存储在存储设备240中。例如,如果压缩模块206不能选择压缩方案和/或确定某些原始数据不适于进行压缩,则压缩模块206可以被配置为将原始数据存储在存储设备240中。然而,在一个实施例中,压缩模块206可以被配置为丢弃原始数据,例如,在生成指示该原始数据的代表数据之后。
压缩模块206还可以被配置为将数据压缩应用于原始数据和/或代表数据中的一个或二者。例如,压缩模块206可以被配置为将位图压缩(例如,字对齐的混合)应用于代表数据的位图索引。
在各种实施例中,网络接口230可以被配置为通过(多个)网络234接收并处理来自外部计算***的一个或多个查询。在各种实施例中,查询可以包括针对与一个或多个IoT设备相关联的数据的请求。例如,查询可以指示原始数据可以根据其而被分组的属性(例如,与代表数据相关联的属性)。在各种实施例中,查询可以包括数据库查询。
查询处理模块210可以被配置为接收来自网络接口230的一个或多个查询。在各种实施例中,查询处理模块210可以包括数据库管理***(DBMS)。DBMS的示例包括总部在Santa Clara、CA的Oracle公司的Oracle,PostgreSQL全球发展集团的Postgres,以及总部在Forest Hill、Maryland的Apache软件基金会的Hbase。然而,查询处理模块210可以被配置为基于处理器202、存储器204、和/或存储设备240的相对严格的需求来使用,例如,其中数据压缩***200包括在具有有限的处理器和/或存储器带宽的边缘设备中。
在一些实施例中,查询处理模块210可以被配置为基于查询来对存储设备240进行存取。例如,查询处理模块210可以被配置为利用原始数据来响应查询。因此,查询处理模块210可以被配置为响应“取回所有”查询,以使得由存储设备240返回所有数据。
在各种实施例中,查询处理模块210可以被配置为与解压缩模块208进行交互,例如,以取回利用其来响应查询的数据。解压缩模块208可以被配置为基于存储在压缩表242中的一个压缩表中的代表数据来生成数据(例如,响应性数据)。例如,解压缩模块208可以被配置为基于存储在压缩表242中的一个压缩表中的代表数据来生成一组值,并且代表数据可以指示要生成的值的数量。在实施例中,解压缩模块208可以不完全复制原始数据的值;然而,解压缩模块208可以对代表数据进行解压缩,以使得生成突出信息,例如,以用于分析。
在一个实施例中,解压缩模块208可以被配置为基于函数来生成值。例如,代表数据可以包括函数以及对其而言该函数有效的多个值。因此,解压缩模块208可以被配置为使用该函数来生成该多个值,并将这些值提供给查询处理模块210作为响应查询的数据。类似地,对于分段压缩方案,解压缩模块208可以被配置为使用分段线性函数来生成多个值。
关于基于与主值的关系的压缩方案,解压缩模块208可以基于其与主值的相应关系来生成值。例如,代表数据可以包括主值、由代表数据表示的多个值的指示、以及值中的每个值与主值的相应偏差。因此,解压缩模块208可以基于与主值的每个偏差来计算该多个值中的每个值。
在另一实施例中,解压缩模块208可以被配置为基于代表数据对值进行内插。例如,解压缩模块208可以被配置为基于随机化函数来生成值,该随机化函数将每个所生成的随机值限于离主值在偏差(或其倍数)内。
关于包括位图索引的代表数据,解压缩模块208可以被配置为基于列或行来生成值,该列或行是基于聚合值的。例如,解压缩模块208可以被配置为基于指示在原始数据中的一个或多个带中是否出现这样的值的一个或多个位图来生成一个或多个带中的值。
解压缩模块208可以被配置为基于代表数据(例如,所生成的数据)的解压缩来将数据提供给查询处理模块210。因此,查询处理模块210可以被配置为利用由解压缩模块208提供的该数据来响应一个或多个查询。
现在参考图3,框图示出了根据本公开的各种实施例的用于存储代表数据的示例压缩表。与图2所描述的实施例有关,压缩表300可以是压缩表242中的一个压缩表的实施例,并且压缩模块206可以被配置为填充压缩表300中的数据。
在实施例中,压缩表300可以由多个结构组成:元数据304、索引数据306、和记录数据308。元数据304可以描述压缩表300是如何被存储和/或组织的。元数据304可以包括元数据结构(或映射),其包括描述规则、属性、和/或所列出的属性的性质的信息。
在一些实施例中,元数据304可以描述键生成规则、聚合规则、数据排序规则、组属性及其性质、以及经压缩属性及其性质。键生成规则可以描述如何自动地生成新记录的新的唯一键,该新记录是对来自原始数据的数据(例如,代表数据)的压缩。键生成规则可以指定命名空间以及原始数据与代表数据之间的键的映射。
元数据304的聚合规则可以描述这样的标准:通过该标准原始数据被压缩和/或被存储为原始数据。例如,简单的标准可以包括以下规则:针对第一属性压缩原始数据的十六个连续的记录,或者针对另一属性对跨越一分钟的原始数据的所有记录进行压缩。更复杂的标准可以包括对精度损失、与经压缩表示的偏差的幅度等进行管控的条件。数据排序规则可以描述在压缩之前如何对同一组中的原始数据的记录进行排序——例如,通过时间戳、初始键值等。
元数据304还可以标识组属性和性质。组属性可以标识在其上执行压缩的原始数据中的属性。组属性的性质可以包括其是何种数据类型以及如何可以通过压缩将其转换成新的属性——例如,可以将原始数据的单独的绝对幅度值转换成与主值的偏差。在实施例中,值的压缩可以跨不同的属性而独立,并且因此可以存在多个组属性。
对于每个组属性,元数据304可以标识与承载经转换值的经压缩数据(例如,代表数据)相关联的聚合属性。聚合属性的性质可以包括在压缩之前和之后属性的类型、压缩方案和解压缩方案、以及用于相应方案的参数。压缩方案可以被明确地指示(例如,“线性函数拟合”),或者可以由一组参数化的准则来指定(例如,压缩模块如何选择压缩方案的指示,例如,仅当原始数据的准确度保持在大于或等于0.975时压缩方案才被选择的指示)。在参数化准则的实施例中,压缩模块可以基于原始数据来决定哪个压缩方案产生可接受的结果,并且将该方案应用于压缩。
在实施例中,索引数据306可以维持适用于经压缩数据的各种索引***,以使得合适的数据例如响应于一个或多个查询而被解压缩。因为压缩在位大小和所存储的值的数量两方面减少了数据的量,所以索引的宽度能够缩减但是承载更多的深度。聚合属性(被存储为记录数据308的一部分)可以高效地是一种类型的索引,因为它们汇总时间跨度内的数据,并且因此如果汇总示出与查询的参数没有交叉,则允许跳过整个时间跨度。索引数据306可以包括诸如树、前缀树(trie)、散列、表索引的索引,以及位图索引。
记录数据308可以存储经压缩数据(例如,代表数据)。记录数据308还可以包括原始数据,例如,由于与现有的压缩方案不合适地匹配而未被压缩的原始数据。记录数据308还可以包括其它汇总数据,例如,在可以用于解压缩和/或查询处理的原始数据上收集的统计(例如,最小值、最大值、基数、方差等)。例如,当通过聚合属性来进行范围过滤(例如,包括范围内的最小值与最大值之间的值)是可能的时,统计信息可以有助于在不进行解压缩的情况下进行过滤。
转到图4,框图示出了根据各种实施例的与对来自多个IoT设备420的数据进行压缩相关联的操作。关于图2,压缩模块400可以是压缩模块206的实施例,并且表数据416可以是压缩表242的实施例。
在实施例中,当从多个IoT设备420接收到原始数据时,数据分组模块402可以被配置为根据如表元数据412中所指示的组属性424对原始数据的记录(例如,值)进行分组。数据分组模块402可以将原始数据的这些经分组的初始记录422存储在用于瞬态组记录414的存储设备中。
之后,聚合监测器模块404可以接收来自表元数据412的聚合规则428,并且使用该聚合规则428来从瞬态组记录414中选择并取回合格组434。然后,聚合监测器模块404可以将合格组434提供给记录聚合器406作为经分组的记录436。记录聚合器406可以将来自表元数据412的聚合属性426应用于构建聚合记录,例如,通过将压缩方案应用于生成代表数据。此外,记录聚合器406可以使用来自表元数据412的键生成规则来关联聚合记录与新的键。最后,记录聚合器406可以将聚合记录与键关联结合地存储在表数据416中作为代表数据432。
关于图5,框图示出了根据各种实施例的生成代表数据的示例。在实施例中,包括原始数据的初始记录502可以包括三个字段:键字段(M_ID)、组属性字段(G)、和属性值(A)。类似地,包括代表数据的聚合记录504可以包括三个字段:包括聚合记录的新的键(A_ID)、组属性(G)、和经压缩的属性值(A')。
在包括原始数据的初始记录502中,具有相同组属性g1的所有初始记录502被分组在一起。在所示出的实施例中,包括原始数据的六十四个记录502包括十个唯一属性值a1-a10。压缩方案506可以应用于经分组的初始记录502以表示六十四个初始记录502的唯一值a1-a10。应用压缩方案可以使得生成聚合值aggr(a1-a10)。可以将该聚合值与新的键901210和组属性g1结合地存储在包括代表数据的聚合记录504中。
类似地,图6描述了示出根据各种实施例的基于原始数据来生成代表数据的另一示例的框图。如图所示,包括来自浮标传感器的原始数据的初始记录602可以包括三个字段:设备标识字段(Device_id)、时间字段(时间且以yyyymmddhhmmss为格式)、和值(Wave_height)。在所示出的实施例中,可以根据单个设备ID 1对初始记录602进行分组,并且可以在一分钟间隔内处理二十五个记录602。
在实施例中,压缩方案610可以应用于初始记录602。压缩方案610的应用可以是基于元数据604的,该元数据604可以描述压缩方案610要如何被应用和/或如何从其中生成和/或储存代表数据。在所示出的实施例中,元数据604可以包括:描述如何基于设备ID和初始记录602的时间来生成与代表数据相关联的键的键生成规则,描述压缩方案610要被应用于的多个记录的聚合规则,描述将如何对记录进行排序(例如,按时间顺序)的排序规则,描述初始记录通过其被分组的属性和在应用压缩方案610期间该属性是否被影响的组属性,以及描述要被应用的压缩方案的类型(例如,分段拟合)和压缩方案将应用于什么字段(例如,波形高度)的其它聚合属性。
基于压缩方案610的应用,生成包括代表数据的聚合记录608。该聚合记录608可以包括:指示在聚合记录608中所表示的浮标感测的标识的设备ID字段,指示在聚合记录608中所表示的时间和在聚合记录608中所表示的包括原始数据的初始记录602的数量的时间字段,以及用于经压缩数据的字段。由于压缩方案应用于初始记录602的波形高度字段,所以用于经压缩数据的字段也是波形高度。在该字段中,通过压缩方案610的分段拟合生成了两个函数:一个函数表示初始记录602中的十个,而另一函数表示初始记录602中的十五个。其它统计数据可以在该字段中表示,例如,最小值、最大值、和/或可以基于代表数据生成的值的数量。
参考图7-图10,多个曲线图示出了根据各种实施例的将压缩方案不同地应用于初始记录的结果。在图7中,曲线图示出了纵轴上的来自功率测量仪的三秒间隔内的读数702。来自功率测量仪的读数702作为三十二个点示出。读数702指示在三秒的间隔内稍微上升的趋势,在该趋势周围具有一定量的振荡。
在图8中,示出了与图7相同的数据,但是具有叠加的线性趋势线804。在所示出的实施例中,线性趋势线804可以是函数y=0.041x+24.97。因此,仅捕获两个参数就可以提供表示三十二个读数702的压缩方法。通过利用由线性趋势线804表示的函数来表示读数702的精度损失可以足够传达由读数702指示的信息。
类似地,在图9中,示出了与图7相同的数据,但是具有更贴合的二次拟合。在所示出的实施例中,二次线906可以是函数y=-0.0029x2+0.136x+24.437。因此,捕获三个参数可以提供表示三十二个读数702的压缩方法。通过利用由二次线906表示的函数来表示读数702的精度损失可以足够传达由读数702指示的信息。随着数据的维数增加,通过压缩提供的存储节省可以显著地提升。
类似地,在图10中,示出了与图7相同的数据,但是具有分段线性拟合。在所示出的实施例中,第一线性函数线1008可以是函数y=0.0632x+24.437,第二线性函数线1010可以是函数y=0.0803x+25.47,以及第三线性函数线1012可以是函数0.0018x+25.91。因此,跨三个线性函数捕获六个参数可以提供表示三十二个读数702的压缩方法。通过利用由分段线性函数表示的函数来表示读数702的精度损失可以足够传达由读数702指示的信息。在其它实施例中,在要实现与数据更紧密的拟合的某些情况下,分段拟合可能是不利的。此外,分段拟合的间隔可以具有可变长度,以便于实现紧密拟合和数据缩减二者。
参考图11,曲线图示出了根据各种实施例的基于使包括原始数据的值关联到主值来应用压缩方案。在一些实施例中,函数可以不贴合地拟合数据,例如,当读数围绕平均值振荡时。在图11的实施例中,将值表示为其与主值(例如,平均值)的关系的压缩方案可以明显地降低存储开销。这里,将每个值1120表示为与平均值的百分比偏差是表示实际值所需要的存储的一部分(例如,八位可以足够使用按比例的整数来捕获DEV[x])。可以采用图7-图11的曲线图中未示出的其它压缩方案,例如,位图索引。
现在参考图12,流程图示出了根据本公开的各种实施例的用于压缩接收自一个或多个IoT设备的数据的另一方法1200。方法1200可以在本公开中描述的一个或多个计算***(例如,图1-图2的数据压缩***110和200)中实践。虽然方法1200示出了多个顺序操作,但是普通技术人员将认识到可以省略和/或调换方法1200的一个或多个操作。
方法1200可以以操作1205开始,以用于由计算***通过网络接收来自一个或多个IoT设备的第一数据。在操作1210处,方法1200可以包括识别与一个或多个IoT设备相关联的属性,该属性对于包括在第一数据中的第一多个值是共同的。基于第一多个值,操作1215可以包括确定用于指示第一多个值的压缩方案。因此,操作1220可以包括将压缩方案应用于第一多个值以创建压缩数据。之后,操作1225可以包括将压缩数据存储在数据库的至少一个表中。
在各种实施例中,示例1可以是用于处理来自物联网(IoT)设备的原始数据的计算***,该***包括:网络接口电路,其用于通过网络接收来自IoT设备的原始数据;一个或多个处理器;物理存储器,其与一个或多个处理器耦合,用于存储将要被加载到物理存储器中以由一个或多个处理器执行的压缩模块;以及压缩模块,其与网络接口电路耦合,用于:基于与IoT设备中的至少一个IoT设备相关联的至少一个属性对包括在原始数据中的值进行分组;基于组的值来选择至少一个压缩方案;基于将选定的至少一个压缩方案应用于组的值来生成代表数据。示例2可以是示例1的计算***,还包括:数据库,其中,压缩模块将代表数据存储在数据库的表中。示例3可以是示例1的计算***,其中,压缩模块丢弃原始数据的值。示例4可以是示例1的计算***,其中,IoT设备中的至少一个IoT设备包括在车辆、电话、医疗设备、或测量仪中。示例5可以是示例1的计算***,其中,计算***包括在边缘设备中或者与边缘设备通信地耦合。示例6可以是示例1的计算***,其中,压缩模块丢弃组的值。示例7可以是示例1-6中的任何示例的计算***,其中,压缩方案包括函数拟合,并且压缩模块将函数拟合到组的值。示例8可以是示例1-6中的任何示例的计算***,其中,压缩方案包括与代表值的偏差。示例9可以是示例8的计算***,其中,压缩模块将代表数据生成为组的值与代表值的相应偏差。示例10可以是示例8的计算***,其中,压缩模块将代表数据生成为在标准偏差内聚集在代表值周围的多个值的指示。示例11可以是示例1-6中的任何示例的计算***,其中,压缩方案是基于位图索引的,并且压缩模块基于组的值来填充与位图索引相关联的至少一个位图。示例12可以是示例1-6中的任何示例的计算***,其中,压缩模块存储原始数据的至少一部分。示例13可以是示例1-6中的任何示例的计算***,还包括:查询处理模块,其与网络接口和压缩模块耦合,并且被加载到物理存储器中以由一个或多个处理器执行,用于:处理由网络接口电路接收到的查询;基于查询来识别响应性数据,其中,响应性数据包括原始数据或未压缩数据中的至少一个;以及使得网络接口电路发送响性应数据。示例14可以是示例13的计算***,还包括:解压缩模块,其与压缩模块和查询处理模块耦合,并且被加载到物理存储器中以由一个或多个处理器执行,以基于代表数据来生成响应性数据。示例15可以是示例14的计算***,其中,解压缩模块基于代表数据或者应用由代表数据指示的函数通过用于内插的随机化算法来生成响应性数据。
在各种实施例中,示例16可以是一种用于对数据进行压缩的计算机实现的方法,该方法包括:由计算***通过网络接收来自一个或多个物联网(IoT)设备的第一数据;识别与IoT设备中的一个或多个IoT设备相关联的属性,该属性对于包括在第一数据中的第一多个值是共同的;确定指示第一多个值的压缩方案;将压缩方案应用于第一多个值以创建压缩数据;以及将压缩数据存储在数据库的至少一个表中。示例17可以是示例16的计算机实现的方法,其中,应用压缩方案包括:基于属性和第一多个值来生成位图索引。示例18可以是示例16的计算机实现的方法,其中,应用压缩方案包括:将函数拟合到第一多个值。示例19可以是示例16-18中的任何示例的计算机实现的方法,还包括:通过网络接收针对与一个或多个IoT设备相关联的数据的请求;基于请求和压缩数据来确定响应数据;以及响应于请求,通过网络发送响应数据。示例20可以是示例19的计算机实现的方法,其中,基于请求来确定响应数据包括:基于压缩数据来生成响应数据。示例21可以是示例16-18中的任何示例的计算机实现的方法,还包括:确定指示包括在第一数据中的第二多个值的另一压缩方案,其中,第二多个值具有与第一多个值共同的属性;以及将另一压缩方案应用于第二多个值以创建其它压缩数据。
在各种实施例中,示例22可以是一种或多种非暂时性计算机***可读介质,包括计算设备可执行的指令,其中,指令响应于由计算***执行而使得计算***进行以下操作:对通过网络接收的来自一个或多个物联网(IoT)设备的原始数据进行处理;基于与IoT设备中的至少一个IoT设备相关联的共享属性对来自原始数据的第一数据进行分组;基于第一数据来选择压缩方案;基于将压缩方案应用于第一数据来生成第二数据;以及将第二数据存储在数据库中以指示第一数据。示例23可以是示例22的一种或多种非暂时性计算机***可读介质,其中,指令还使得计算***进行以下操作:处理接收自另一计算***的请求;基于第二数据和请求来生成与一个或多个IoT设备相关联的第三数据;以及响应于请求而将第三数据发送到另一计算***。示例24可以包括示例22-23中的任何示例的一种或多种非暂时性计算机***可读介质,其中,用于生成第二数据的指令包括用于进行以下操作的指令:基于第一数据来填充至少一个位图,其中,位图的至少一列与共享属性相关联。示例25可以是示例22-23中的任何示例的一种或多种非暂时性计算机***可读介质,其中,用于生成第二数据的指令包括用于进行以下操作的指令:基于第一数据来选择平均值;以及基于第一数据的与平均值相关的值来生成第二数据的值。
在各种实施例中,示例26可以是一种装置,该装置包括:用于由计算***通过网络接收来自一个或多个物联网(IoT)设备的第一数据的模块;用于识别与IoT设备中的一个或多个IoT设备相关联的属性的模块,该属性对于包括在第一数据中的第一多个值是共同的;用于确定指示第一多个值的压缩方案的模块;用于将压缩方案应用于第一多个值以创建压缩数据的模块;以及用于将压缩数据存储在数据库的至少一个表中的模块。示例27可以是示例26的装置,其中,用于应用压缩方案的模块包括:用于基于属性和第一多个值来生成位图索引的模块。示例28可以是示例26的装置,其中,用于应用压缩方案的模块包括:用于将函数拟合到第一多个值的模块。示例29可以是示例26-28中的任何示例的装置,还包括:用于通过网络接收针对与一个或多个IoT设备相关联的数据的请求的模块;用于基于请求和压缩数据来确定响应数据的模块;以及用于响应于请求而通过网络发送响应数据的模块。示例30可以是示例29的装置,其中,用于基于请求来确定响应数据的模块包括:用于基于压缩数据来生成响应数据的模块。示例31可以是示例26-28中的任何示例的装置,还包括:用于确定指示包括在第一数据中的第二多个值的另一压缩方案的模块,其中,第二多个值具有与第一多个值共同的属性;以及用于将另一压缩方案应用于第二多个值以创建其它压缩数据的模块。
已经在关于计算机存储器内的数据位的操作的算法和符号表示方面呈现了前述具体实施方式的某些部分。这些算法描述和表示是数据处理领域的技术人员用于最高效地将其工作的实质传达给本领域的其他技术人员的方式。算法在这里并且一般地被认为是产生期望结果的操作的自一致的序列。这些操作是需要对物理量进行物理操纵的操作。
然而,应该记住,这些术语和类似的术语中的全部都与适当的物理量相关联,并且仅是应用于这些量的便利标签。除非另有明确说明,否则从上面的讨论中显而易见,可以理解在整个说明书中,利用术语(例如,在所附权利要求中阐述的术语)的讨论指代计算机***或以下类似的电子计算设备的动作和过程:操纵表示为计算机***的寄存器和存储器内的物理(电子)量的数据并将其转换为类似地表示为计算机***存储器或寄存器内的物理量的其它数据,或者其它这样的信息存储、传输、或显示设备的动作和过程。
本发明的实施例还涉及用于执行本文的操作的装置。这样的计算机程序存储在非暂时性计算机可读介质中。机器可读介质包括用于以机器(例如,计算机)可读的形式存储信息的任何机制。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光存储介质、闪速存储器设备)。
前述附图中描述的过程或方法能够由包括硬件(例如,电路、专用逻辑等)、软件(例如,体现在非暂时性计算机可读介质上的)、或二者的组合的处理逻辑来执行。虽然上面在一些顺序操作方面描述了过程或方法,但是应当理解,所描述的操作中的一些操作能够以不同的顺序来执行。此外,一些操作能够并行地执行而非顺序执行。
未参考任何特定的编程语言来描述本发明的实施例。可以理解,能够使用各种编程语言来实现如本文所描述的本发明的实施例的教导。在前面的说明书中,已经参考其中的具体示例性实施例描述了本发明的实施例。显而易见,在不脱离如所附权利要求中阐述的本发明的较宽精神和范围的情况下,能够对其进行各种修改。因此,说明书和附图被认为是示例说明意义的而非限制意义的。
Claims (25)
1.一种用于处理来自物联网(IoT)设备的原始数据的计算***,所述***包括:
网络接口电路,其用于通过网络接收来自所述IoT设备的所述原始数据;
一个或多个处理器;
物理存储器,其与所述一个或多个处理器耦合,用于存储要被加载到所述物理存储器中以由所述一个或多个处理器执行的压缩模块;以及
所述压缩模块,其与所述网络接口电路耦合,用于:
基于与所述IoT设备中的至少一个IoT设备相关联的至少一个属性对包括在所述原始数据中的值进行分组;
基于组的值来选择至少一个压缩方案;
基于将选定的至少一个压缩方案应用于所述组的所述值来生成代表数据。
2.根据权利要求1所述的计算***,还包括:
数据库,其中,所述压缩模块将所述代表数据存储在所述数据库的表中。
3.根据权利要求1所述的计算***,其中,所述压缩模块丢弃所述原始数据的值。
4.根据权利要求1所述的计算***,其中,所述IoT设备中的至少一个IoT设备包括在车辆、电话、医疗设备、或测量仪中。
5.根据权利要求1所述的计算***,其中,所述计算***包括在边缘设备中或者与所述边缘设备通信地耦合。
6.根据权利要求1所述的计算***,其中,所述压缩模块丢弃所述组的所述值。
7.根据权利要求1-6中的任何一项所述的计算***,其中,所述压缩方案包括函数拟合,并且所述压缩模块将函数拟合到所述组的所述值。
8.根据权利要求1-6中的任何一项所述的计算***,其中,所述压缩方案包括与代表值的偏差。
9.根据权利要求8所述的计算***,其中,所述压缩模块将所述代表数据生成为所述组的所述值与所述代表值的相应偏差。
10.根据权利要求8所述的计算***,其中,所述压缩模块将所述代表数据生成为在标准偏差内聚集在所述代表值周围的多个值的指示。
11.根据权利要求1-6中的任何一项所述的计算***,其中,所述压缩方案是基于位图索引的,并且所述压缩模块基于所述组的所述值来填充与所述位图索引相关联的至少一个位图。
12.根据权利要求1-6中的任何一项所述的计算***,其中,所述压缩模块存储所述原始数据的至少一部分。
13.根据权利要求1-6中的任何一项所述的计算***,还包括:
查询处理模块,其与所述网络接口和所述压缩模块耦合,并且被加载到所述物理存储器中以由所述一个或多个处理器执行,用于:
处理由所述网络接口电路接收到的查询;
基于所述查询来识别响应性数据,其中,所述响应性数据包括原始数据或未压缩数据中的至少一个;以及
使得所述网络接口电路发送所述响应性数据。
14.根据权利要求13所述的计算***,还包括:
解压缩模块,其与所述压缩模块和所述查询处理模块耦合,并且被加载到所述物理存储器中以由所述一个或多个处理器执行,以便基于所述代表数据来生成所述响应性数据。
15.根据权利要求14所述的计算***,其中,所述解压缩模块基于所述代表数据或者应用由所述代表数据指示的函数,通过用于内插的随机化算法来生成所述响应性数据。
16.一种用于对数据进行压缩的计算机实现的方法,所述方法包括:
由计算***通过网络接收来自一个或多个物联网(IoT)设备的第一数据;
识别与所述IoT设备中的一个或多个IoT设备相关联的属性,所述属性对于包括在所述第一数据中的第一多个值是共同的;
确定指示所述第一多个值的压缩方案;
将所述压缩方案应用于所述第一多个值以创建压缩数据;以及
将所述压缩数据存储在数据库的至少一个表中。
17.根据权利要求16所述的计算机实现的方法,其中,应用所述压缩方案包括:
基于所述属性和所述第一多个值来生成位图索引。
18.根据权利要求16所述的计算机实现的方法,其中,应用所述压缩方案包括:
将函数拟合到所述第一多个值。
19.根据权利要求16-18中的任何一项所述的计算机实现的方法,还包括:
通过所述网络接收针对与所述一个或多个IoT设备相关联的数据的请求;
基于所述请求和所述压缩数据来确定响应数据;以及
响应于所述请求,通过所述网络发送所述响应数据。
20.根据权利要求19所述的计算机实现的方法,其中,基于所述请求来确定所述响应数据包括:
基于所述压缩数据来生成所述响应数据。
21.根据权利要求16-18中的任何一项所述的计算机实现的方法,还包括:
确定指示包括在所述第一数据中的第二多个值的另一压缩方案,其中,所述第二多个值具有与所述第一多个值共同的所述属性;以及
将所述另一压缩方案应用于所述第二多个值以创建其它压缩数据。
22.一种或多种非暂时性计算机***可读介质,包括计算设备能够执行的指令,其中,所述指令响应于由计算***执行而使得所述计算***进行以下操作:
对通过网络接收的来自一个或多个物联网(IoT)设备的原始数据进行处理;
基于与所述IoT设备中的至少一个IoT设备相关联的共享属性对来自所述原始数据的第一数据进行分组;
基于所述第一数据来选择压缩方案;
基于将所述压缩方案应用于所述第一数据来生成第二数据;以及
将所述第二数据存储在数据库中以指示所述第一数据。
23.根据权利要求22所述的一种或多种非暂时性计算机***可读介质,其中,所述指令还使得所述计算***进行以下操作:
处理接收自另一计算***的请求;
基于所述第二数据和所述请求来生成与所述一个或多个IoT设备相关联的第三数据;以及
响应于所述请求而将所述第三数据发送到所述另一计算***。
24.根据权利要求22-23中的任何一项所述的一种或多种非暂时性计算机***可读介质,其中,用于生成所述第二数据的指令包括用于进行以下操作的指令:
基于所述第一数据来填充至少一个位图,其中,所述位图的至少一列与所述共享属性相关联。
25.根据权利要求22-23中的任何一项所述的一种或多种非暂时性计算机***可读介质,其中,用于生成所述第二数据的指令包括用于进行以下操作的指令:
基于所述第一数据来选择平均值;以及
基于所述第一数据的与所述平均值相关的值来生成所述第二数据的值。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2015/074093 WO2016141584A1 (en) | 2015-03-12 | 2015-03-12 | Method and apparatus for compaction of data received over a network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107409152A true CN107409152A (zh) | 2017-11-28 |
CN107409152B CN107409152B (zh) | 2021-10-15 |
Family
ID=56878704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580075938.2A Active CN107409152B (zh) | 2015-03-12 | 2015-03-12 | 用于压缩通过网络接收的数据的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10015272B2 (zh) |
EP (1) | EP3269126A4 (zh) |
CN (1) | CN107409152B (zh) |
TW (1) | TWI600305B (zh) |
WO (1) | WO2016141584A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110391873A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 用于确定数据传送方式的方法、装置以及计算机程序产品 |
CN112398750A (zh) * | 2019-08-19 | 2021-02-23 | 无锡江南计算技术研究所 | 并行计算中作业启动数据压缩传递方法 |
CN112534427A (zh) * | 2018-08-07 | 2021-03-19 | 昕诺飞控股有限公司 | 在分布式计算网络的边缘节点中使用聚类和形状匹配来压缩传感器数据的***和方法 |
CN112534842A (zh) * | 2018-08-07 | 2021-03-19 | 昕诺飞控股有限公司 | 使用分布式计算网络的边缘节点的压缩感测***和方法 |
CN113452471A (zh) * | 2020-03-26 | 2021-09-28 | 伊姆西Ip控股有限责任公司 | 用于数据处理的方法、电子设备以及计算机程序产品 |
CN113973090A (zh) * | 2021-10-18 | 2022-01-25 | 北谷电子有限公司 | 在通信网络中处理大数据的装置及方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018002724A1 (en) * | 2016-06-28 | 2018-01-04 | Alcatel Lucent | Method and apparatus for query selection and admission (qsa) optimization for iot and other applications |
US10997504B2 (en) * | 2016-11-03 | 2021-05-04 | Business Objects Software Limited | Knowledge-driven generation of semantic layer |
EP3618696A4 (en) | 2017-05-04 | 2021-01-06 | Modjoul, Inc. | BODY WEAR ELECTRONIC BELT DEVICE |
CN108984574B (zh) | 2017-06-05 | 2021-01-05 | 北京嘀嘀无限科技发展有限公司 | 数据处理方法及装置 |
CN109194746B (zh) * | 2018-09-06 | 2021-03-26 | 贵州我联你联网络技术有限公司 | 基于物联网的异构信息处理方法 |
US11143545B2 (en) | 2019-02-12 | 2021-10-12 | Computational Systems, Inc. | Thinning of scalar vibration data |
US11474518B2 (en) | 2019-05-13 | 2022-10-18 | International Business Machines Corporation | Event validation using multiple sources |
US11669071B2 (en) | 2020-01-08 | 2023-06-06 | International Business Machines Corporation | Organizing a temporary device group for collaborative computing |
CN111220876B (zh) * | 2020-03-30 | 2022-12-06 | 厦门四信智慧电力科技有限公司 | 一种暂态录波数据压缩方法、装置、设备及存储介质 |
TWI770870B (zh) * | 2021-03-11 | 2022-07-11 | 台灣優化水務股份有限公司 | 流體量時間變化模式數據編碼方法 |
KR20220154596A (ko) * | 2021-05-13 | 2022-11-22 | 현대자동차주식회사 | M2m 시스템에서 대량의 데이터를 전달하기 위한 방법 및 장치 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001061543A1 (en) * | 2000-02-15 | 2001-08-23 | Orbcomm Global, L.P. | Method for compression of small computer data files |
CN101326502A (zh) * | 2005-12-08 | 2008-12-17 | 英特尔公司 | 报头压缩/解压缩构架 |
CN101854361A (zh) * | 2010-05-21 | 2010-10-06 | 南京邮电大学 | 一种基于物联网的下一代互联网协议报头压缩方法 |
CN102375853A (zh) * | 2010-08-24 | 2012-03-14 | ***通信集团公司 | 分布式数据库***、在其中建立索引的方法和查询方法 |
CN103580871A (zh) * | 2013-11-07 | 2014-02-12 | 江南大学 | 一种物联网数据传输方法及安全网关设备 |
CN103838802A (zh) * | 2012-11-26 | 2014-06-04 | 财团法人资讯工业策进会 | 数据处理装置及数据处理方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7796570B1 (en) * | 2002-07-12 | 2010-09-14 | Meshnetworks, Inc. | Method for sparse table accounting and dissemination from a mobile subscriber device in a wireless mobile ad-hoc network |
US8370586B2 (en) | 2007-10-17 | 2013-02-05 | Oracle America, Inc. | Multivalue statistical compression of telemetric time series data in a bounded storage footprint |
US9774668B2 (en) | 2011-11-10 | 2017-09-26 | Throughtek Co., Ltd. | Communication system for establishing P2P connections and the corresponding devices using the same |
TWI415034B (zh) | 2011-06-22 | 2013-11-11 | Nat Univ Chin Yi Technology | Environmental monitoring methods and devices designed for the use of data fusion algorithms for cloud computing |
US8892815B2 (en) * | 2012-09-13 | 2014-11-18 | Sandisk Technologies Inc. | Optimized fragmented block compaction with a bitmap |
CN105308589A (zh) * | 2013-04-17 | 2016-02-03 | 朗桑有限公司 | 基于数据内容来压缩数据 |
-
2015
- 2015-03-12 US US14/911,223 patent/US10015272B2/en active Active
- 2015-03-12 EP EP15884267.4A patent/EP3269126A4/en not_active Withdrawn
- 2015-03-12 WO PCT/CN2015/074093 patent/WO2016141584A1/en active Application Filing
- 2015-03-12 CN CN201580075938.2A patent/CN107409152B/zh active Active
-
2016
- 2016-01-22 TW TW105102082A patent/TWI600305B/zh not_active IP Right Cessation
-
2018
- 2018-07-03 US US16/026,817 patent/US10701168B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001061543A1 (en) * | 2000-02-15 | 2001-08-23 | Orbcomm Global, L.P. | Method for compression of small computer data files |
CN101326502A (zh) * | 2005-12-08 | 2008-12-17 | 英特尔公司 | 报头压缩/解压缩构架 |
CN101854361A (zh) * | 2010-05-21 | 2010-10-06 | 南京邮电大学 | 一种基于物联网的下一代互联网协议报头压缩方法 |
CN102375853A (zh) * | 2010-08-24 | 2012-03-14 | ***通信集团公司 | 分布式数据库***、在其中建立索引的方法和查询方法 |
CN103838802A (zh) * | 2012-11-26 | 2014-06-04 | 财团法人资讯工业策进会 | 数据处理装置及数据处理方法 |
CN103580871A (zh) * | 2013-11-07 | 2014-02-12 | 江南大学 | 一种物联网数据传输方法及安全网关设备 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110391873A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 用于确定数据传送方式的方法、装置以及计算机程序产品 |
US11196845B2 (en) | 2018-04-20 | 2021-12-07 | EMC IP Holding Company LLC | Method, apparatus, and computer program product for determining data transfer manner |
CN110391873B (zh) * | 2018-04-20 | 2022-02-11 | 伊姆西Ip控股有限责任公司 | 用于确定数据传送方式的方法、装置以及计算机程序产品 |
CN112534427A (zh) * | 2018-08-07 | 2021-03-19 | 昕诺飞控股有限公司 | 在分布式计算网络的边缘节点中使用聚类和形状匹配来压缩传感器数据的***和方法 |
CN112534842A (zh) * | 2018-08-07 | 2021-03-19 | 昕诺飞控股有限公司 | 使用分布式计算网络的边缘节点的压缩感测***和方法 |
CN112534842B (zh) * | 2018-08-07 | 2024-05-28 | 昕诺飞控股有限公司 | 使用分布式计算网络的边缘节点的压缩感测***和方法 |
CN112398750A (zh) * | 2019-08-19 | 2021-02-23 | 无锡江南计算技术研究所 | 并行计算中作业启动数据压缩传递方法 |
CN112398750B (zh) * | 2019-08-19 | 2024-02-06 | 无锡江南计算技术研究所 | 并行计算中作业启动数据压缩传递方法 |
CN113452471A (zh) * | 2020-03-26 | 2021-09-28 | 伊姆西Ip控股有限责任公司 | 用于数据处理的方法、电子设备以及计算机程序产品 |
CN113973090A (zh) * | 2021-10-18 | 2022-01-25 | 北谷电子有限公司 | 在通信网络中处理大数据的装置及方法 |
CN113973090B (zh) * | 2021-10-18 | 2023-12-08 | 北谷电子股份有限公司 | 在通信网络中处理大数据的装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
US10701168B2 (en) | 2020-06-30 |
US10015272B2 (en) | 2018-07-03 |
EP3269126A1 (en) | 2018-01-17 |
US20170041419A1 (en) | 2017-02-09 |
TW201644255A (zh) | 2016-12-16 |
CN107409152B (zh) | 2021-10-15 |
TWI600305B (zh) | 2017-09-21 |
WO2016141584A1 (en) | 2016-09-15 |
EP3269126A4 (en) | 2018-09-05 |
US20190173970A1 (en) | 2019-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107409152A (zh) | 用于压缩通过网络接收的数据的方法和装置 | |
US20230188736A1 (en) | Methods and apparatuses for hierarchically encoding and decoding a bytestream | |
US10176208B2 (en) | Processing time series data from multiple sensors | |
CN108197168A (zh) | 一种数据压缩方法、设备和计算机可读存储介质 | |
JP5781867B2 (ja) | 相対および絶対デルタ値を使用するデータ圧縮および復元 | |
CN113312313B (zh) | 数据查询方法、非易失性存储介质及电子设备 | |
CN115208414B (zh) | 数据压缩方法、数据压缩装置、计算机设备及存储介质 | |
CN101478684A (zh) | 检测存储视频数据完整性的方法和*** | |
CN102291256A (zh) | 一种监控数据的查询方法和设备 | |
WO2021226922A1 (zh) | 数据压缩方法及装置、数据压缩设备和可读存储介质 | |
WO2014126967A1 (en) | Software development kit for lidar data | |
CN117492403B (zh) | 一种大型仪器设备运行监控***及方法 | |
CN114915634A (zh) | 一种基于数据湖的工业数据采集存储***和采集存储方法 | |
CN110611715A (zh) | 一种服务链路集合云监控信息的***和方法 | |
CN110019347B (zh) | 一种区块链的数据处理方法、装置及终端设备 | |
WO2021147319A1 (zh) | 一种数据处理方法、装置、设备及介质 | |
CN113724059A (zh) | 联邦学习模型的训练方法、装置和电子设备 | |
CN116939164A (zh) | 一种安防监控方法及*** | |
US20140229672A1 (en) | Software Development Kit for LIDAR Data | |
JP6606436B2 (ja) | 情報可視化システム | |
DE102018122879B4 (de) | Nutzfahrzeugüberwachungssystem | |
CN116028446A (zh) | 时序数据文件化管理方法、装置、设备及其存储介质 | |
CN103020264B (zh) | 多子集实体数据的存储显示方法及装置 | |
CN107066421B (zh) | 一种示波器及其采集数据上报方法 | |
CN110443590B (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 |