基于缓冲技术的无线电监测数据查询方法

文档序号:10594099阅读:771来源:国知局
基于缓冲技术的无线电监测数据查询方法
【专利摘要】本发明公开了一种基于缓冲技术的无线电监测数据查询方法,包括通用接口模块、数据传输模块、HBase数据库和历史数据编排模块和缓冲模块;通用接口模块、数据传输模块、HBase数据库依次连接,HBase数据库、缓冲模块均与历史数据编排模块连接,本发明具有查询速度快、查询精度高,可对海量半结构化或者非结构化数据进行快速实时回放的特点。
【专利说明】
基于缓冲技术的无线电监测数据查询方法
技术领域
[0001] 本发明设及无线电历史监测数据回放技术领域,尤其是设及一种可对海量半结构 化或者非结构化数据进行快速实时回放的基于缓冲技术的无线电监测数据查询方法。
【背景技术】
[0002] 无线电监测是大型运动会、国际会议等活动的安全保障和实时监督检查的重要手 段,无线电监测工作用于掌握频率情况、保障无线电频率,迅速查处有害干扰。
[0003] 随着监测设备的发展和监测需求的细化,无线电监测数据的数量呈爆炸式增长, 通常一台设备在几个月内的监测数据可达到TB数据级,并且为非结构化或者半结构化监控 记录,运用传统的存储和处理方法已经无法满足数据查询的需要;其次,为了节省存储空 间,无线电监控数据通常采用字节流的形式进行存储,而观测人员需要在第一时间定位并 显示监测数据。
[0004] 目前,无线电监测数据的历史实时回放,通常有W下两种方案:
[0005] 采用分布式的Sqlite数据库的形式对监测数据进行逐条存储,每个分布式的 Sqlite大小为2G。该方法适用于低频采样的数据设备,且存储监测数据的历史跨度很小,往 往只有几台设备几天的数据量。
[0006] 采用文件系统映射的方法,历史监测数据W文件的形式保存,文件的路径保存于 关系型数据库并显示给用户,用户通过文件逐条查询记录。观测人员在查找数据时,需要逐 条观测数据,从而定位到需要的观测点,需耗费大量的人力精力,观测人员事先无法概览整 个观测数据。
[0007] 可见,目前无线电监测方法不能有效的对海量的半结构化或者非结构化的数据进 行快速实时回放。

【发明内容】

[000引本发明的发明目的是为了克服现有技术中的无线电监测方法对海量半结构化或 者非结构化数据进行快速实时回放的不足,提供了一种可对海量半结构化或者非结构化数 据进行快速实时回放的基于缓冲技术的无线电监测数据查询方法。
[0009] 为了实现上述目的,本发明采用W下技术方案:
[0010] -种基于缓冲技术的无线电监测数据查询方法,包括通用接口模块、数据传输模 块、HBase数据库和历史数据编排模块和缓冲模块;通用接口模块、数据传输模块、皿ase数 据库依次连接,皿ase数据库、缓冲模块、数据传输模块均与历史数据编排模块连接,所述查 询方法包括如下步骤:
[0011] (1-1)历史数据编排模块将原始监测数据的每条记录解封后,读取与每条记录对 应的数据帖的帖头,根据帖头信息生成rowkey索引,历史数据编排模块通过API接口将每个 数据帖、与每个数据帖关联的rowkey索引批量导入皿ase数据库;皿ase数据库中设有若干 个设备表;
[0012] (1-2)通用接口模块接收用户的查询请求,并将查询请求发送给数据传输模块;
[0013] (1-3)数据传输模块收到查询请求后,Wque巧id+"query"字段查询数据传输模块 的消息表,如果查到消息表,则转入步骤(1-4);
[0014] 如果消息表不存在,数据传输模块生成消息表,消息表包括传输集群kafka的生产 者口1、消费者。1、订阅消息9116巧1(1+"9116巧"、生产者92、消费者。2和订阅消息9116巧1(1+ "request,' ;
[0015] (1-4)数据传输模块的kafka集群将查询内容通过P1发送到C1,C1接收到查询内容 后,查询皿ase的各个设备表中与查询内容的查询设备ID相对应的设备表,如果没找到设备 表,则返回一个查询失败的消息格式;
[0016] 历史数据编排模块利用公式
十算数据帖的延迟时间m;其中,n为查询内容中 的用户查询参数,B为标准延迟毫秒数;
[0017] (1-4-1)如果找到设备表,W查询内容的查询内容的记录开始时间T1、记录结束时 间T2、服务ID和查询频率查询rowkey索引 ;如果找不到与服务ID或者查询频率匹配的 rowk巧索引,则返回查询失败的消息;
[0018] (1-4-2)如果找到与服务ID和查询频率匹配并且Tl《记录时间《T2的P个rowkey 索引构成的rowk巧索引组;
[0019](1-4-3)选择口个1'〇?4^67索引中的记录时间最接近1'1的1'〇?4^67索引4,提取皿曰36数 据库的与rowkey索引A对应的数据帖,数据编排模块收到数据帖后,将数据帖存入缓冲模块 中;
[0020] (1-5)查询消息表,通过Cl查询与其对应的p2,p2接收历史记录后,达到延迟时间m 后,将所述数据帖发给c2,c2将数据帖发送给查询用户;
[002"1] (1-5-1)当p>0,使P值减少1,将rowkey索引a从rowkey索引组中去除,转入步骤 (1-4-3)。
[0022] 本发明通过独特设计的rowkey索引,将无线电监测数据逐条载入皿ase数据库中, 并有效防止监测设备过快时在时间重复时记录的重复,支持用户逐记录快速查询;通过数 据传输模块的查询条件与rowkey的对应,实现了用户的任意、快速实时的定位并回放数据。
[0023] 作为优选,所述rowkey索引包括1个字节的散列字段、4个字节的时间戳字段、1个 字节的监测服务编码字段、4个字节的监测频率字段和4个字节的负载字段。
[0024] 本发明通过rowkey索引生成算法控制rowkey索引的长度和内容,在满足区分各条 记录的同时,又通过缩短rowkey索引的各个字段,有效降低了存储空间,使历史数据的查询 效率有效提升。
[0025] 作为优选,所述时间戳字段利用如下步骤生成:
[0026] 历史数据编排模块读取每帖数据的帖头,获取每帖数据的记录时间,并将记录时 间转化为毫秒数,将毫秒数存入时间戳字段。
[0027] 将记录时间的毫秒数保存于rowkey的时间戳字段4个字节中,使精确到毫秒的时 间戳保存从17字节下降到4个字节,有效节约了rowkey的字节空间,提高了查询效率。
[0028] 作为优选,所述散列字段利用如下步骤生成:
[0029] 历史数据编排模块将毫秒数W256取余,其结果保存于散列字段中。
[0030] 作为优选,所述监测服务编码字段利用如下步骤生成:
[0031] 历史数据编排模块获取每帖数据的监测服务编码,将监测服务编码保存在监测服 务编码字段中。根据国家标准规定,无线电监测需要满足26种监测服务,分别从巧Ij26开始 编码,存入监测服务编码字段中;27至265可用于后续扩展。
[0032] 作为优选,所述负载编码字段利用如下步骤生成:
[0033] 历史数据编排模块获取每帖数据的帖负载,读取帖负载每个字段的值レ利用公式 S = 2^1计算每个字段值的变换值S,将各个字段的S相加得到,将少写入rowkey索引的负 载编码字段中。
[0034] 根据国家标准规定,无线电监测帖负载中需要实现18个选项。因此只需要占用18 位,空余的14位后续扩展用。
[0035] 作为优选,所述步骤(1-2)中,通用接口模块将查询请求WXML的形式发送给数据 传输模块。
[0036] 因此,本发明具有如下有益效果:查询速度快、查询精度高,可对海量半结构化或 者非结构化数据进行快速实时回放。
【附图说明】
[0037] 图1是本发明的一种原理示意图;
[003引图2是本发明的一种流程图。
[0039] 图中:通用接口模块1、数据传输模块2、皿ase数据库3、历史数据编排模块4、消息 表5、kaf ka集群6、缓冲模块7。
【具体实施方式】
[0040] 下面结合附图和【具体实施方式】对本发明做进一步的描述。
[0041] 如图1所示的实施例是一种基于缓冲技术的无线电监测数据查询方法,包括通用 接口模块1、数据传输模块2、皿ase数据库3和历史数据编排模块4和缓冲模块7;通用接口模 块、数据传输模块、皿ase数据库依次连接,皿ase数据库、缓冲模块、数据传输模块均与历史 数据编排模块连接,
[0042] 如图2所示,查询方法包括如下步骤:
[0043] 步骤100,生成rowk巧索引并将原始监测数据导入皿ase数据库
[0044] 历史数据编排模块将原始监测数据的每条记录解封后,读取与每条记录对应的数 据帖的帖头,根据帖头信息生成rowkey索引,历史数据编排模块通过API接口将每个数据 帖、与每个数据帖关联的rowkey索引批量导入皿ase数据库;皿ase数据库中设有若干个设 备表;
[0045] 步骤200,接收查询请求
[0046] 通用接口模块接收用户的查询请求,通用接口模块将查询请求WXML的形式发送 给数据传输模块;
[0047] 步骤300,查询消息表
[0048] 数据传输模块收到请求后,Wqueryid+"query"字段查询数据传输模块的消息表, 如果查到消息表,则转入步骤400;
[0049] 查到消息表,说明接收到的是再次查询请求,数据传输模块中已经有消息表,
[0050] 如果消息表不存在,说明是第一次收到查询请求,数据传输模块中还没有建立消 息表,如图1所示的数据传输模块生成消息表5,消息表包括传输集群kafka的生产者Pl、消 费者C1、订阅消息query i d+" query"、生产者P 2、消费者C 2和订阅消息query i d+ "reque S t"; [0化1] 步骤400,查询历史记录
[0052] 数据传输模块的如图1所示的kafka集群則尋查询内容通过Pl发送到Cl ,Cl接收到 查询内容后,查询皿ase的各个设备表中与查询内容的查询设备ID相对应的设备表,如果没 找到设备表,则返回一个查询失败的消息格式;
[0053] 历史数据编排模块利用公式
十算数据帖的延迟时间m;其中,n为查询内容中 的用户查询参数,B为标准延迟毫秒数,B = 1000毫秒,n = 2;
[0054] 步骤410,如果找到设备表,W查询内容的记录开始时间T1、记录结束时间T2、服务 ID和查询频率查询rowkey索引;如果找不到与服务ID或者查询频率匹配的rowkey索引,贝U 返回查询失败的消息;
[0化日]步骤420,如果找到与服务ID和查询频率匹配并且Tl《记录时间《T2的P个rowk巧 索引构成的rowk巧索引组;
[0化6] 步骤430,选择P个rowk巧索引中的记录时间最接近Tl的rowk巧索引A,提取皿ase 数据库的与rowkey索引A对应的数据帖,数据编排模块收到数据帖后,将数据帖存入缓冲模 块中;
[0057] 步骤500,给查询用户返回历史记录
[005引查询消息表,通过Cl查询与其对应的p2,p2接收历史记录后,达到延迟时间m后,将 所述数据帖发给c2,c2将数据帖发送给查询用户;
[0059] 步骤510,当p>0,使P值减少1,将rowkey索引A从rowkey索引组中去除,转入步骤 430。
[0060] rowk巧索引包括1个字节的散列字段、4个字节的时间戳字段、1个字节的监测服务 编码字段、4个字节的监测频率字段和4个字节的负载字段。
[0061] 历史数据编排模块读取每帖数据的帖头,获取每帖数据的记录时间,并将记录时 间转化为毫秒数,将毫秒数存入时间戳字段。
[0062] 历史数据编排模块将毫秒数W256取余,其结果保存于散列字段中。
[0063] 历史数据编排模块获取每帖数据的监测服务编码,将监测服务编码保存在监测服 务编码字段中。
[0064] 历史数据编排模块获取每帖数据的帖负载,读取帖负载每个字段的值レ利用公式 8 = 2^1计算每个字段值的变换值S,将各个字段的S相加得到,将少写入rowkey索引的负 载编码字段中。
[0065] 例如,某帖数据的监测服务编码和监测记录为 < 监测服务编号:5,(帖头: 20160511121415879,帖负载:DT = 3 DT = 6 DT = S fre = 91.8)〉;表示该帖数据由服务编号 为5的监测服务产生,且帖头中时间为2016年05月11日12点14分15秒879毫秒,帖负载中含 有的选项值为2、6、8,监测频率为9 1 .8MHZ;历史数据编排模块将帖头中的 20160511121415879 时间转化为毫秒数 1462896855879,对毫秒数 1462896855879 取256 的余 为71;历史数据编排模块将71放入rowkey的散列字段中,将1462896855879放入rowkey的时 间戳字段中,将监测服务编码5放入rowkey的监测服务编码中,将帖负载中的91.8频率放入 rowkey字段的监测频率字段中,利用公式S = 2^1计算每个字段值的变换值S,DT = 3 DT = 6 DT = 8的变换值S分别为7,63,255; = 7+63巧55 = 327;最终形成的rowk巧索引的字段值为 711462896855879 5 91.8 327,即rowk巧索引用14个字节表示了散列字段、时间戳字段、监 测服务编码字段、监测频率字段、负载编码字段。
[0066] 经过试验计算,本发明的大数据实时回放方法在PB级的监控数据能W秒级或者毫 秒级定位到用户所需要的数据,快速呈现给用户,同时用户能够通过用户查询参数控制获 取数据的速度,实现了大数据环境下用户的按需获取数据;得益于rowkey索引带有帖负载 内容的设计,在采集过快、帖相同时也不会出现帖重复和丢失的现象;并且通过rowkey索引 的生成算法,能够节省皿ase的region server的50%的存储空间,减少了磁盘的存储空间, 通过帖负载内容到rowkey的映射算法,大大提升了大数据的查询效率。
[0067] 应理解,本实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在 阅读了本发明讲授的内容之后,本领域技术人员可W对本发明作各种改动或修改,运些等 价形式同样落于本申请所附权利要求书所限定的范围。
【主权项】
1. 一种基于缓冲技术的无线电监测数据查询方法,其特征是,包括通用接口模块(1)、 数据传输模块(2)、HBase数据库(3)和历史数据编排模块(4)和缓冲模块(7);通用接口模 块、数据传输模块、HBase数据库依次连接,HBase数据库、缓冲模块、数据传输模块均与历史 数据编排模块连接,所述查询方法包括如下步骤: (1-1)历史数据编排模块将原始监测数据的每条记录解封后,读取与每条记录对应的 数据帧的帧头,根据帧头信息生成rowkey索引,历史数据编排模块通过API接口将每个数据 帧、与每个数据帧关联的rowkey索引批量导入HBase数据库;HBase数据库中设有若干个设 备表; (1-2)通用接口模块接收用户的查询请求,并将查询请求发送给数据传输模块; (1-3)数据传输模块收到查询请求后,以qUeryid+" query"字段查询数据传输模块的消 息表,如果查到消息表,则转入步骤(1-4); 如果消息表不存在,数据传输模块生成消息表(5 ),消息表包括传输集群k a f ka的生产 者pl、消费者cl、订阅消息queryid+" query"、生产者p2、消费者c2和订阅消息queryid+ ?? , request ; (1-4)数据传输模块的kafka集群(6)将查询内容通过pl发送到cl,cl接收到查询内容 后,查询HBase的各个设备表中与查询内容的查询设备ID相对应的设备表,如果没找到设备 表,则返回一个查询失败的消息格式; 历史数据编排模块利用公式m = l计算数据帧的延迟时间m;其中,η为查询内容中的用 η 户查询参数,Β为标准延迟毫秒数; (1-4-1)如果找到设备表,以查询内容的查询内容的记录开始时间Τ1、记录结束时间 Τ2、服务ID和查询频率查询rowkey索引;如果找不到与服务ID或者查询频率匹配的rowkey 索引,则返回查询失败的消息; (1-4-2)如果找到与服务ID和查询频率匹配并且T1彡记录时间彡T2的p个rowkey索引 构成的rowkey索引组; (1-4-3)选择p个rowkey索引中的记录时间最接近T1的rowkey索引A,提取HBase数据库 的与rowkey索引A对应的数据帧,数据编排模块收到数据帧后,将数据帧存入缓冲模块中; (1-5)查询消息表,通过cl查询与其对应的p2,p2接收历史记录后,达到延迟时间m后, 将所述数据帧发给c2,c2将数据帧发送给查询用户; (1-5-1)当p>0,使p值减少1,将rowkey索弓丨A从rowkey索引组中去除,转入步骤(1-4-3)〇2. 根据权利要求1所述的基于缓冲技术的无线电监测数据查询方法,其特征是,所述 rowkey索引包括1个字节的散列字段、4个字节的时间戳字段、1个字节的监测服务编码字 段、4个字节的监测频率字段和4个字节的负载字段。3. 根据权利要求2所述的基于缓冲技术的无线电监测数据查询方法,其特征是,所述时 间戳字段利用如下步骤生成: 历史数据编排模块读取每帧数据的帧头,获取每帧数据的记录时间,并将记录时间转 化为毫秒数,将毫秒数存入时间戳字段。4. 根据权利要求3所述的基于缓冲技术的无线电监测数据查询方法,其特征是,所述散 列字段利用如下步骤生成: 历史数据编排模块将毫秒数以256取余,其结果保存于散列字段中。5. 根据权利要求2所述的基于缓冲技术的无线电监测数据查询方法,其特征是,所述监 测服务编码字段利用如下步骤生成: 历史数据编排模块获取每帧数据的监测服务编码,将监测服务编码保存在监测服务编 码字段中。6. 根据权利要求2所述的基于缓冲技术的无线电监测数据查询方法,其特征是,所述负 载编码字段利用如下步骤生成: 历史数据编排模块获取每帧数据的帧负载,读取帧负载每个字段的值L;利用公式S = 21-1计算每个字段值的变换值S,将各个字段的S相加得到S',将S'写入rowkey索引的负载 编码字段中。7. 根据权利要求1或2或3或4或5或6所述的基于缓冲技术的无线电监测数据查询方法, 其特征是,所述步骤(1-2)中,通用接口模块将查询请求以XML的形式发送给数据传输模块。
【文档编号】G06F17/30GK105955998SQ201610246424
【公开日】2016年9月21日
【申请日】2016年4月18日
【发明人】马高峰, 黄剑琪, 凌文杰, 吕灵通, 赵智航
【申请人】华信咨询设计研究院有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1