数据映射和解映射方法、系统、介质及装置制造方法及图纸

技术编号:32430507 阅读:24 留言:0更新日期:2022-02-24 18:41
本发明专利技术提供一种数据映射和解映射方法、系统、介质及装置,所述方法包括以下步骤:设数据集合{A}和{B},其中a∈{A},且a的取值范围为[0,m]bit位,其中b∈{B},且b的取值范围为[0,n]bit位,且c的取值范围为[0,m+n]bit位,将a左移nbit位得到a1,将a1与b相加得到c,c∈{C},从而得到数据集合{C};将a1与0相加得到a

【技术实现步骤摘要】
数据映射和解映射方法、系统、介质及装置


[0001]本专利技术涉及通信
,特别是涉及一种数据映射和解映射方法、系统、介质及装置。

技术介绍

[0002]在物联网相关IOT(Internet of Things)感知项目中,需要处理数以万计节点的传感器数据,节点和传感器数据之间数值匹配是一种常见的编程场景,假设有两个相关的整数集合{A}和{B},并且{A}和{B}之间有1对1或者1对多的关系,这会定义出一个数据匹配表,如下表所示:
[0003]{A}{B}10001388731000212546100033775310003345341000443256
…………
[0004]一个常见的编程场景,根据{A}中的一个值a,在{B}查找a对就的1个或者多个值b,如下表所示:
[0005]a对应的b10001388731000337753,34534
[0006]这个操作就是数据映射。
[0007]业内对这个操作的主流解决方案是利用MultiMap数据结构在内存中构建数值匹配表,假设有如下的数据结构M:
[0008]M:MultiMap<Key,Value>
[0009]上述结构中key为{A}中的值,value为{B}中的值。然后将数值匹配表中条条目添加进使用的编程语言的相应数据结构中,比如C++语言中的std::multimap。
[0010]数据匹配表全部添加进内存MultiMap数据结构后,可执行相应的匹配操作。
[0011]业内还有利用磁盘的解决方案,即将数值对照表存入磁盘文件,或者存入基于磁盘文件的数据库系统中,例如MySQL数据库系统。
[0012]在MultiMap方案中,当数值匹配表有大量条目时,以C++为例,依照本文假设场景,应选用std::multimap<uint64_t,uint16_t>数据结构,以100,000,000个条目规模的数据匹配表为例,在内存中把数值匹配表构建完成后内存占用为6714MB。可见内存占用较大,对于内存不富裕的计算机工作站来说并不友好。
[0013]在使用磁盘的解决方案中,由于计算机磁盘系统本身的特性使然,磁盘系统和基于磁盘的数据库系统的匹配效率与计算机内存相比存在数个数量级的差距,并不适合频繁
匹配的场景。本文后续不再关注此类方案。本文后续全部基于内存中的方案。
[0014]因此,希望能够解决如何减少数据映射所占用的内存的问题。

技术实现思路

[0015]鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种数据映射和解映射方法、系统、介质及装置,用于解决现有技术中如何减少数据映射所占用的内存的问题。
[0016]为实现上述目的及其他相关目的,本专利技术提供一种数据映射和解映射方法,包括以下步骤:设数据集合{A}和{B},其中a∈{A},且a的取值范围为[0,m]bit位,其中b∈{B},且b的取值范围为[0,n]bit位,且c的取值范围为[0,m+n]bit位,将a左移nbit位得到a1,将a1与b相加得到c,c∈{C},从而得到数据集合{C};将a1与0相加得到a
11
,将a1与取值范围为[0,n]bit位的最大值相加得到a
12
,查找数据集合{C}中在a
11
和a
12
范围的c,就是与a对应的c;取c的后nbit位得到c1;所述c1即为与a对应的b。
[0017]于本专利技术的一实施例中,还包括预先将a、b、c转为二进制数。
[0018]于本专利技术的一实施例中,所述m为48,n为16。
[0019]于本专利技术的一实施例中,所述a为传感器编号,b为传感器数据。
[0020]为实现上述目的,本专利技术还提供一种数据映射和解映射系统,包括:映射模块和解映射模块;所述映射模块用于设数据集合{A}和{B},其中a∈{A},且a的取值范围为[0,m]bit位,其中b∈{B},且b的取值范围为[0,n]bit位,且c的取值范围为[0,m+n]bit位,将a左移nbit位得到a1,将a1与b相加得到c,c∈{C},从而得到数据集合{C};所述解映射模块用于将a1与0相加得到a
11
,将a1与取值范围为[0,n]bit位的最大值相加得到a
12
,查找数据集合{C}中在a
11
和a
12
范围的c,就是与a对应的c;取c的后nbit位得到c1;所述c1即为与a对应的b。
[0021]于本专利技术的一实施例中,还包括预先将a、b、c转为二进制数。
[0022]于本专利技术的一实施例中,所述m为48,n为16。
[0023]于本专利技术的一实施例中,所述a为传感器编号,b为传感器数据。
[0024]为实现上述目的,本专利技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现任一上述数据映射和解映射方法。
[0025]为实现上述目的,本专利技术还提供一种数据映射和解映射装置,包括:处理器和存储器;所述存储器用于存储计算机程序;所述处理器与所述存储器相连,用于执行所述存储器存储的计算机程序,以使所述数据映射和解映射装置执行任一上述的数据映射和解映射方法。
[0026]如上所述,本专利技术的一种数据映射和解映射方法、系统、介质及装置,具有以下有益效果:用于减少数据映射所占用的内存。
附图说明
[0027]图1显示为本专利技术的数据映射和解映射方法于一实施例中的流程图;
[0028]图2显示为本专利技术的数据映射和解映射系统于一实施例中的结构示意图;
[0029]图3显示为本专利技术的数据映射和解映射装置于一实施例中的结构示意图。
[0030]元件标号说明
[0031]21
ꢀꢀꢀꢀ
映射模块
[0032]22
ꢀꢀꢀꢀ
解映射模块
[0033]31
ꢀꢀꢀꢀ
处理器
[0034]32
ꢀꢀꢀꢀ
存储器
具体实施方式
[0035]以下通过特定的具体实例说明本专利技术的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本专利技术的其他优点与功效。本专利技术还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本专利技术的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0036]需要说明的是,以下实施例中所提供的图示仅以示意方式说明本专利技术的基本构想,故图式中仅显示与本专利技术中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0037]本专利技术的数据映射和解映射方法、系统、介质及装置,用于减少数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据映射和解映射方法,其特征在于,包括以下步骤:设数据集合{A}和{B},其中a∈{A},且a的取值范围为[0,m]bit位,其中b∈{B},且b的取值范围为[0,n]bit位,且c的取值范围为[0,m+n]bit位,将a左移nbit位得到a1,将a1与b相加得到c,c∈{C},从而得到数据集合{C};将a1与0相加得到a
11
,将a1与取值范围为[0,n]bit位的最大值相加得到a
12
,查找数据集合{C}中在a
11
和a
12
范围的c,就是与a对应的c;取c的后nbit位得到c1;所述c1即为与a对应的b。2.根据权利要求1所述的数据映射和解映射方法,其特征在于,还包括预先将a、b、c转为二进制数。3.根据权利要求1所述的数据映射和解映射方法,其特征在于,所述m为48,n为16。4.根据权利要求1所述的数据映射和解映射方法,其特征在于,所述a为传感器编号,b为传感器数据。5.一种数据映射和解映射系统,其特征在于,包括:映射模块和解映射模块;所述映射模块用于设数据集合{A}和{B},其中a∈{A},且a的取值范围为[0,m]bit位,其中b∈{B},且b的取值范围为[0,n]bit位,且c的取值...

【专利技术属性】
技术研发人员:宁岩赵大鹏李尤
申请(专利权)人:上海宽带技术及应用工程研究中心
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1