CN105930441B - 一种无线电监测数据查询方法 - Google Patents
一种无线电监测数据查询方法 Download PDFInfo
- Publication number
- CN105930441B CN105930441B CN201610246656.0A CN201610246656A CN105930441B CN 105930441 B CN105930441 B CN 105930441B CN 201610246656 A CN201610246656 A CN 201610246656A CN 105930441 B CN105930441 B CN 105930441B
- Authority
- CN
- China
- Prior art keywords
- data
- frame
- field
- module
- record
- 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
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
Abstract
本发明公开了一种无线电监测数据查询方法,包括通用接口模块、数据传输模块、HBase数据库和历史数据编排模块;通用接口模块、数据传输模块和HBase数据库依次连接,历史数据编排模块与HBase数据库连接,本发明通过rowkey索引,将无线电监测数据逐条载入HBase数据库中,本发明具有查询速度快、查询精度高,可对海量半结构化或者非结构化数据进行快速实时回放的特点。
Description
技术领域
本发明涉及无线电历史监测数据回放技术领域,尤其是涉及一种可对海量半结构化或者非结构化数据进行快速实时回放的无线电监测数据查询方法。
背景技术
无线电监测是大型运动会、国际会议等活动的安全保障和实时监督检查的重要手段,无线电监测工作用于掌握频率情况、保障无线电频率,迅速查处有害干扰。
随着监测设备的发展和监测需求的细化,无线电监测数据的数量呈爆炸式增长,通常一台设备在几个月内的监测数据可达到TB数据级,并且为非结构化或者半结构化监控记录,运用传统的存储和处理方法已经无法满足数据查询的需要;其次,为了节省存储空间,无线电监控数据通常采用字节流的形式进行存储,而观测人员需要在第一时间定位并显示监测数据。
目前,无线电监测数据的历史实时回放,通常有以下两种方案:
采用分布式的Sqlite数据库的形式对监测数据进行逐条存储,每个分布式的Sqlite大小为2G。该方法适用于低频采样的数据设备,且存储监测数据的历史跨度很小,往往只有几台设备几天的数据量。
采用文件系统映射的方法,历史监测数据以文件的形式保存,文件的路径保存于关系型数据库并显示给用户,用户通过文件逐条查询记录。观测人员在查找数据时,需要逐条观测数据,从而定位到需要的观测点,需耗费大量的人力精力,观测人员事先无法概览整个观测数据。
可见,目前无线电监测方法不能有效的对海量的半结构化或者非结构化的数据进行快速实时回放。
发明内容
本发明的发明目的是为了克服现有技术中的无线电监测方法对海量半结构化或者非结构化数据进行快速实时回放的不足,提供了一种可对海量半结构化或者非结构化数据进行快速实时回放的无线电监测数据查询方法。
为了实现上述目的,本发明采用以下技术方案:
一种无线电监测数据查询方法,包括通用接口模块、数据传输模块、HBase数据库和历史数据编排模块;通用接口模块、数据传输模块和HBase数据库依次连接,历史数据编排模块与HBase数据库连接;所述查询方法包括如下步骤:
(1-1)历史数据编排模块将原始监测数据的每一条记录解封后,读取记录的每个数据帧,根据每个数据帧的帧内信息生成rowkey索引,历史数据编排模块通过API接口将每个数据帧、与每个数据帧关联的rowkey索引批量导入HBase数据库;HBase数据库中设有若干个设备表;
(1-2)通用接口模块接收用户的查询请求,并将查询请求发送给数据传输模块;
(1-3)数据传输模块收到查询请求后,以queryid+”query”字段查询数据传输模块的消息表,如果查到消息表,则转入步骤 (1-4);
如果消息表不存在,数据传输模块生成消息表(5),消息表包括传输集群kafka的生产者p1、消费者c1、订阅消息 queryid+”query”、生产者p2、消费者c2和订阅消息queryid+ “request”:
(1-4)数据传输模块的kafka集群(6)将查询内容通过p1发送到c1,c1接收到查询内容后,查询HBase的各个设备表中与查询内容的查询设备ID相对应的设备表,如果没找到设备表,则返回一个查询失败的消息格式;
如果找到设备表,以查询内容的记录开始时间T1、记录结束时间T2、服务ID和查询频率查询各个rowkey索引;如果找不到与服务ID或者查询频率匹配的rowkey索引,则返回查询失败的消息;
如果找到与服务ID和查询频率匹配并且T1≤记录时间≤T2的若干个rowkey索引,根据各个rowkey索引提取HBase数据库的各个数据帧,各个数据帧构成查询到的历史记录;
(1-5)查询消息表,通过c1查询与其对应的p2,p2接收历史记录后,将历史记录发给c2,c2将历史记录发送给查询用户。
本发明通过设计的rowkey索引,将无线电监测数据逐条载入HBase数据库中,并有效防止监测设备过快时在时间重复时记录的重复,支持用户逐记录快速查询;通过数据传输模块的查询条件与 rowkey的对应,实现了用户的任意、快速实时的定位并回放数据。
作为优选,所述rowkey索引包括1个字节的散列字段、4个字节的时间戳字段、1个字节的监测服务编码字段、4个字节的监测频率字段和4个字节的负载字段。
本发明通过rowkey索引生成算法控制rowkey索引的长度和内容,在满足区分各条记录的同时,又通过缩短rowkey索引的各个字段,有效降低了存储空间,使历史数据的查询效率有效提升。
作为优选,所述时间戳字段利用如下步骤生成:
历史数据编排模块读取每帧数据的帧头,获取每帧数据的记录时间,并将记录时间转化为毫秒数,将毫秒数存入时间戳字段。
将记录时间的毫秒数保存于rowkey的时间戳字段4个字节中,使精确到毫秒的时间戳保存从17字节下降到4个字节,有效节约了 rowkey的字节空间,提高了查询效率。
作为优选,所述散列字段利用如下步骤生成:
历史数据编排模块将毫秒数以256取余,其结果保存于散列字段中。
作为优选,所述监测服务编码字段利用如下步骤生成:
历史数据编排模块获取每帧数据的监测服务编码,将监测服务编码保存在监测服务编码字段中。根据国家标准规定,无线电监测需要满足26种监测服务,分别从1到26开始编码,存入监测服务编码字段中;27至265可用于后续扩展。
作为优选,所述负载字段 利用如下步骤生成:
历史数据编排模块获取每帧数据的帧负载,读取帧负载每个字段的值L;利用公式S=3L-1计算每个字段值的变换值S,将各个字段的 S相加得到S′,将S′写入rowkey索引的负载字段 中。
根据国家标准规定,无线电监测帧负载中需要实现18个选项。因此只需要占用18位,空余的14位后续扩展用。
作为优选,所述步骤(1-2)中,通用接口模块将查询请求以XML 的形式发送给数据传输模块。
因此,本发明具有如下有益效果:查询速度快、查询精度高,可对海量半结构化或者非结构化数据进行快速实时回放。
附图说明
图1是本发明的一种原理示意图;
图2是本发明的一种流程图。
图中:通用接口模块1、数据传输模块2、HBase数据库3、历史数据编排模块4、消息表5、kafka集群6。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
如图1所示的实施例是一种无线电监测数据查询方法,包括通用接口模块1、数据传输模块2、HBase数据库3和历史数据编排模块4;通用接口模块、数据传输模块和HBase数据库依次连接,历史数据编排模块与HBase数据库连接;
如图2所示,查询方法包括如下步骤:
步骤100,生成rowkey索引并将原始监测数据导入HBase数据库
历史数据编排模块将原始监测数据的每一条记录解封后,读取记录的每个数据帧,根据每个数据帧的帧内信息生成rowkey索引,历史数据编排模块通过API接口将每个数据帧、与每个数据帧关联的 rowkey索引批量导入HBase数据库;HBase数据库中设有若干个设备表;
步骤200,接收查询请求
通用接口模块接收用户的查询请求,通用接口模块将查询请求以 XML的形式发送给数据传输模块;
步骤300,查询消息表
数据传输模块收到请求后,以queryid+”query”字段查询数据传输模块的消息表,如果查到消息表,则转入步骤400;
查到消息表,说明接收到的是再次查询请求,数据传输模块中已经有消息表,
如果消息表不存在,说明是第一次收到查询请求,数据传输模块中还没有建立消息表,如图1所示的数据传输模块生成消息表5,消息表包括传输集群kafka的生产者p1、消费者c1、订阅消息 queryid+”query”、生产者p2、消费者c2和订阅消息queryid+“request”;
步骤400,查询历史记录
数据传输模块的如图1所示的kafka集群6将查询内容通过p1 发送到c1,c1接收到查询内容后,查询HBase的各个设备表中与查询内容的查询设备ID相对应的设备表,如果没找到设备表,则返回一个查询失败的消息格式;
如果找到设备表,以查询内容的记录开始时间T1、记录结束时间T2、服务ID和查询频率查询各个rowkey索引;如果找不到与服务ID或者查询频率匹配的rowkey索引,则返回查询失败的消息;
如果找到与服务ID和查询频率匹配并且T1≤记录时间≤T2的若干个rowkey索引,根据各个rowkey索引提取HBase数据库的各个数据帧,各个数据帧构成查询到的历史记录;
步骤500,给查询用户返回历史记录
查询消息表,通过c1查询与其对应的p2,p2接收历史记录后,将历史记录发给c2,c2将历史记录发送给查询用户。
rowkey索引包括1个字节的散列字段、4个字节的时间戳字段、 1个字节的监测服务编码字段、4个字节的监测频率字段和4个字节的负载字段。
历史数据编排模块读取每帧数据的帧头,获取每帧数据的记录时间,并将记录时间转化为毫秒数,将毫秒数存入时间戳字段。
历史数据编排模块将毫秒数以256取余,其结果保存于散列字段中。
历史数据编排模块获取每帧数据的监测服务编码,将监测服务编码保存在监测服务编码字段中。
历史数据编排模块获取每帧数据的帧负载,读取帧负载所有字段的值并相加得到S,将S写入rowkey索引的负载字段 中。
例如,某帧数据的监测服务编码和监测记录为<监测服务编号:5, (帧头:20160511121415879,帧负载:DT=2DT=6DT=8fre=91.8)>;表示该帧数据由服务编号为5的监测服务产生,且帧头中时间为2016 年05月11日12点14分15秒879毫秒,帧负载中含有的选项值为 2、6、8,监测频率为91.8MHZ;历史数据编排模块将帧头中的20160511121415879时间转化为毫秒数1462896855879,对毫秒数 1462896855879取256的余为71;历史数据编排模块将71放入rowkey的散列字段中,将1462896855879放入rowkey的时间戳字段中,将监测服务编码5放入rowkey的监测服务编码中,将帧负载中的91.8 频率放入rowkey字段的监测频率字段中,利用公式S=2L-1计算每个字段值的变换值S,DT=2DT=6DT=8的变换值S分别为3,63,255; S′=3+63+255=321;最终形成的rowkey索引的字段值为71 1462896855879591.8321,即rowkey索引用14个字节表示了散列字段、时间戳字段、监测服务编码字段、监测频率字段、负载字段 。
经过试验计算,本发明的大数据实时回放方法在PB级的监控数据能以秒级或者毫秒级定位到用户所需要的数据,快速呈现给用户,同时用户能够通过用户查询参数控制获取数据的速度,实现了大数据环境下用户的按需获取数据;得益于rowkey索引带有帧负载内容的设计,在采集过快、帧相同时也不会出现帧重复和丢失的现象;并且通过rowkey索引的生成算法,能够节省HBase的region server的 50%的存储空间,减少了磁盘的存储空间,通过帧负载内容到rowkey 的映射算法,大大提升了大数据的查询效率。
应理解,本实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。
Claims (7)
1.一种无线电监测数据查询方法,其特征是,包括通用接口模块(1)、数据传输模块(2)、HBase数据库(3)和历史数据编排模块(4);通用接口模块、数据传输模块和HBase数据库依次连接,历史数据编排模块与HBase数据库连接;所述查询方法包括如下步骤:
(1-1)历史数据编排模块将原始监测数据的每一条记录解封后,读取记录的每个数据帧,根据每个数据帧的帧内信息生成rowkey索引,历史数据编排模块通过API接口将每个数据帧、与每个数据帧关联的rowkey索引批量导入HBase数据库;HBase数据库中设有若干个设备表;
(1-2)通用接口模块接收用户的查询请求,并将查询请求发送给数据传输模块;
(1-3)数据传输模块收到查询请求后,以queryid+”query”字段查询数据传输模块的消息表,如果查到消息表,则转入步骤(1-4):
如果消息表不存在,数据传输模块生成消息表(5),消息表包括传输集群kafka的生产者p1、消费者c1、订阅消息queryid+”query”、生产者p2、消费者c2和订阅消息queryid+“request”:
(1-4)数据传输模块的kafka集群(6)将查询内容通过p1发送到c1,c1接收到查询内容后,查询HBase的各个设备表中与查询内容的查询设备ID相对应的设备表,如果没找到设备表,则返回一个查询失败的消息格式;
如果找到设备表,以查询内容的记录开始时间T1、记录结束时间T2、服务ID和查询频率查询各个rowkey索引;如果找不到与服务ID或者查询频率匹配的rowkey索引,则返回查询失败的消息;
如果找到与服务ID和查询频率匹配并且T1≤记录时间≤T2的若干个rowkey索引,根据各个rowkey索引提取HBase数据库的各个数据帧,各个数据帧构成查询到的历史记录;
(1-5)查询消息表,通过c1查询与其对应的p2,p2接收历史记录后,将历史记录发给c2,c2将历史记录发送给查询用户。
2.根据权利要求1所述的无线电监测数据查询方法,其特征是,所述rowkey索引包括1个字节的散列字段、4个字节的时间戳字段、1个字节的监测服务编码字段、4个字节的监测频率字段和4个字节的负载字段。
3.根据权利要求2所述的无线电监测数据查询方法,其特征是,所述时间戳字段利用如下步骤生成:
历史数据编排模块读取每帧数据的帧头,获取每帧数据的记录时间,并将记录时间转化为毫秒数,将毫秒数存入时间戳字段。
4.根据权利要求3所述的无线电监测数据查询方法,其特征是,所述散列字段利用如下步骤生成:
历史数据编排模块将毫秒数以256取余,其结果保存于散列字段中。
5.根据权利要求2所述的无线电监测数据查询方法,其特征是,所述监测服务编码字段利用如下步骤生成:
历史数据编排模块获取每帧数据的监测服务编码,将监测服务编码保存在监测服务编码字段中。
6.根据权利要求2所述的无线电监测数据查询方法,其特征是,所述负载字段利用如下步骤生成:
历史数据编排模块获取每帧数据的帧负载,读取帧负载每个字段的值L;利用公式S=3L-1计算每个字段值的变换值S,将各个字段的S相加得到S′,将S′写入rowkey索引的负载字段中。
7.根据权利要求1或2或3或4或5或6所述的无线电监测数据查询方法,其特征是,所述步骤(1-2)中,通用接口模块将查询请求以XML的形式发送给数据传输模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610246656.0A CN105930441B (zh) | 2016-04-18 | 2016-04-18 | 一种无线电监测数据查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610246656.0A CN105930441B (zh) | 2016-04-18 | 2016-04-18 | 一种无线电监测数据查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105930441A CN105930441A (zh) | 2016-09-07 |
CN105930441B true CN105930441B (zh) | 2019-04-26 |
Family
ID=56838489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610246656.0A Active CN105930441B (zh) | 2016-04-18 | 2016-04-18 | 一种无线电监测数据查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105930441B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108614842B (zh) * | 2016-12-13 | 2021-03-30 | 北京国双科技有限公司 | 查询数据的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102685221A (zh) * | 2012-04-29 | 2012-09-19 | 华北电力大学(保定) | 一种状态监测数据的分布式存储与并行挖掘方法 |
CN103064933A (zh) * | 2012-12-24 | 2013-04-24 | 华为技术有限公司 | 数据查询方法及系统 |
CN103500173A (zh) * | 2013-09-03 | 2014-01-08 | 北京泰乐德信息技术有限公司 | 一种轨道交通监测数据的查询方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2948890A4 (en) * | 2013-02-19 | 2016-04-06 | Huawei Tech Co Ltd | SYSTEM AND METHOD FOR SEARCHING DATABASES |
-
2016
- 2016-04-18 CN CN201610246656.0A patent/CN105930441B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102685221A (zh) * | 2012-04-29 | 2012-09-19 | 华北电力大学(保定) | 一种状态监测数据的分布式存储与并行挖掘方法 |
CN103064933A (zh) * | 2012-12-24 | 2013-04-24 | 华为技术有限公司 | 数据查询方法及系统 |
CN103500173A (zh) * | 2013-09-03 | 2014-01-08 | 北京泰乐德信息技术有限公司 | 一种轨道交通监测数据的查询方法 |
Non-Patent Citations (1)
Title |
---|
面向海量无线电监测数据的分布式存储系统研究;冯浩;《成都工业学院学报》;20150708;第18卷(第2期);第25-28页 |
Also Published As
Publication number | Publication date |
---|---|
CN105930441A (zh) | 2016-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103914485B (zh) | 一种远程收集和检索展示应用系统日志的系统及方法 | |
CN108197226A (zh) | Mptc账户状态树以及mptc区块链快速检索方法 | |
CN104765840B (zh) | 一种大数据分布式存储的方法和装置 | |
CN104794190B (zh) | 一种大数据有效存储的方法和装置 | |
CN107451208B (zh) | 一种数据搜索方法与装置 | |
CN104850640A (zh) | 一种基于HBase的电网设备状态监测数据存储和查询方法及系统 | |
CN104424258A (zh) | 多维数据查询的方法、查询服务器、列存储服务器及系统 | |
CN106649828A (zh) | 一种数据查询方法及系统 | |
CN106021357B (zh) | 基于分布式的大数据分页查询方法及系统 | |
CN106326361A (zh) | 一种基于HBase数据库的数据查询方法及装置 | |
CN104850635B (zh) | 一种多数据源环境下数据缺失自动检查及集中监控方法 | |
CN104239377A (zh) | 跨平台的数据检索方法及装置 | |
CN106055621A (zh) | 一种日志检索方法及装置 | |
CN109165222A (zh) | 一种基于协处理器的HBase二级索引创建方法以及系统 | |
Ramesh et al. | Data modelling for discrete time series data using Cassandra and MongoDB | |
CN107203532A (zh) | 索引系统的构建方法、搜索的实现方法及装置 | |
CN105955998B (zh) | 基于缓冲技术的无线电监测数据查询方法 | |
CN111739613A (zh) | 一种基于分布式计算技术的医疗影像云归档平台 | |
CN105930441B (zh) | 一种无线电监测数据查询方法 | |
CN107491463A (zh) | 数据查询的优化方法和系统 | |
CN105069101A (zh) | 分布式索引构建及检索方法 | |
CN109144951A (zh) | 一种基于分布式文件系统的目录更新方法及元数据服务器 | |
CN105893596B (zh) | 一种无线电监测数据回放方法 | |
CN102298609B (zh) | 文档收集系统和方法 | |
US20180124145A1 (en) | Method and System for Delivering Data to a Batch Consumer and a Streaming Consumer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |