CN110532251A - 基于布隆过滤器算法的地震台网大数据去重的方法 - Google Patents
基于布隆过滤器算法的地震台网大数据去重的方法 Download PDFInfo
- Publication number
- CN110532251A CN110532251A CN201910800615.5A CN201910800615A CN110532251A CN 110532251 A CN110532251 A CN 110532251A CN 201910800615 A CN201910800615 A CN 201910800615A CN 110532251 A CN110532251 A CN 110532251A
- Authority
- CN
- China
- Prior art keywords
- data
- duplicate removal
- bloom filter
- filter
- packet
- 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
-
- 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/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
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)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种基于布隆过滤器算法的地震台网大数据去重的方法。其特征是:步骤1通过TCP/IP协议接收多路数据流数据,并按字节进行拆包操作,并对拆包后的每个包进行解析;步骤2将经过拆包处理后的所有数据包进行一次去重过滤判断,并存储到布隆过滤器中;步骤3对解析出的包含特定含义字段的数据包进行判断是否需要二次去重过滤,并存储到HBase数据库中;步骤4将存储到HBase数据库中的数据包解析为地震数据MSEED格式,并存储到磁盘中永久保存,需要输出时以台网名、台站名、通道、采样率和时间组合的方式进行自动命名;步骤5利用obspy.merge方法对存储到HBase数据库中的数据包进行三次去重判断;步骤6通过TCP/IP协议建立连接,实现服务器端,将处理后的数据包以数据流的方式转发出去,并持续监听发送端口是否有请求。本发明从功能上将多路数据流汇总成单路数据流,通过布隆过滤器的一次去重、HBase数据库的二次去重以及obspy.merge方法的三次去重实现实时大数据的去重。
Description
技术领域
本技术涉及大数据去重技术领域,具体涉及一种基于布隆过滤器算法的地震台网大数据去重的方法。
背景技术
近年来,随着信息技术的迅速发展以及应用系统规模的快速增长,由此产生的数据也呈现井喷式增长,寻求有效的大数据处理技术已成为当研究的热点问题,许多公司也在关注相关技术,以满足自身的业务需求。在此背景下,地震台网中心为汇总多路数据流,希望接收各省台站的数据并汇总,来解决数据分布不一致的问题,但随之而来的问题是,多路数据必然存在交集,需要进一步的对接收到的海量数据进行去重处理。
目前常用的数据去重处理技术有分布式缓存数据库Redis和Bloom Filter,其中分布式缓存数据库Redis是通过特有的数据结构sorted set可以自动进行数据去重,此办法的解决优势是基于内存处理数据,处理速度极快,但是所占内存极大,容易出现数据启动加载困难或堆内存溢出的问题;Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合,它是一个判断元素是否存在集合的快速的概率算法,虽然Bloom Filter不会漏掉判断,但有可能会出现错误判断,所以Bloom Filter不适合那些“零错误”的应用场合。
和传统的海量数据去重不同的是,实时数据的存在形式不同。历史数据的去重可以使用现有组件进行去重,但是实时数据流的去重并不适用。数据每时每刻都在发生变化,并且大小是不可预估的也不存在一种可以一直存放实时数据流的数据库,所以必然会不定期将数据库进行清空或者将历史数据进行清理才能不间断地进行实时去重。
发明内容
针对现有技术的不足,本发明提供了一种基于布隆过滤器算法的地震台网大数据去重的方法。本发明从功能上将多路数据流汇总成单路数据流,实现大数据去重。使用的编程技术主要是Java和Python开发技术,并运用大数据、Socket通信和地震学的知识使数据处理后可以直接使用。
为实现上述技术目的,本发明的技术方案为:
一种基于布隆过滤器算法的地震台网大数据去重的方法,包括以下步骤:
步骤1:通过TCP/IP协议议接收多路数据流数据,并按字节进行拆包操作,并对拆包后的每个包进行解析,所述的解析过程主要是将每个数据包按照特定含义字段进行解析,所述特定含义字段包括台网名、台站名、通道、采样率和时间;
步骤2:将经过拆包处理后的所有数据包进行一次去重过滤判断,并存储到布隆过滤器中;
步骤3:对解析出的包含特定含义字段的数据包进行判断是否需要二次去重过滤,并存储到HBase数据库中;
步骤4:将存储到HBase数据库中的数据包解析为地震数据MSEED格式,并存储到磁盘中永久保存,需要输出时以台网名、台站名、通道、采样率和时间组合的方式进行自动命名;
步骤5:利用obspy.merge方法对存储到HBase数据库中的数据包进行三次去重判断;
步骤6:通过TCP/IP协议建立连接,实现服务器端,将处理后的数据包以数据流的方式转发出去,并持续监听发送端口是否有请求。
所述的步骤2中的将经过拆包处理后的所有数据包存储到布隆过滤器中,具体表述为:布隆过滤器包括主过滤器和从过滤器,通过地震台网通信协议接收到的多路数据流数据先存储到主过滤器中,当主过滤器的容量超过一半时,启动从过滤器,并同时将数据存放到从过滤器中,当主过滤器存满容量时,将其中一个从过滤器替换主过滤器进行一次去重过滤,实现主从切换,反复判断执行一次去重操作直至数据流接收完毕。
所述一次去重过滤具体表述为:将步骤1解析出的台网名、台站名、通道、采样率和时间拼接成字符串作为去重字段存储到主过滤器中,主过滤器存储时,先判断所述去重字段是否存在,如果不存在则接收并存储数据包,如果存在则不接收数据包。
所述的步骤3中的二次去重判断具体表述为:根据所述去重字段设计HBase数据库中的row key值,根据row key值的唯一性特性进行二次去重判断,如果HBase中row key值存在,则数据库存储操作失败,返回失败结果,通过返回结果实现去重判断。
本发明有益效果:
单一过滤器的存储容量有限,无法处理连续实时数据流,主从过滤器的思路可以有效处理实时数据流,同时根据布隆过滤器的原理,可知布隆过滤器存在不可避免的误判率,本发明加入HBase进行二次去重,可以有效解决布隆过滤器一次去重后存在的误判。
附图说明
图1为本实施例中的基于布隆过滤器算法的地震台网大数据去重的方法流程图。
图2为本实施例中的布隆过滤器原理状态图。
具体实施方式
以下结合附图和具体实施例对本发明的技术方案进行详细的描述,本实施方式的软件环境为Linux系统,开发工具为IntelliJ IDEA和PyCharm,数据库为HBase,开发语言是Java和Python。
一种基于布隆过滤器算法的地震台网大数据去重的方法,如图1本实施例中的基于布隆过滤器算法的地震台网大数据去重的方法流程图所示,包括以下步骤:
步骤1:通过TCP/IP协议接收多路数据流数据,并按字节进行拆包操作,并对拆包后的每个包进行解析,所述的解析过程主要是将每个数据包按照特定含义字段进行解析,所述特定含义字段包括台网名、台站名、通道、采样率和时间;
通过根据指定端口号和TCP/IP协议建立通信连接,接收多个数据流,具体步骤为:
1)将配置文件中的用户名,密码,IP地址,端口号和台站列表进行确认,确认好后保存;
2)根据配置文件中的IP地址和端口号开启Socket客户端线程,按照TCP/IP协议进行通信,依次发送用户名,密码和台站列表正确建立TCP/IP协议通信连接;
3)接收服务器端发送的用于传输数据流的端口,因为是多路转发所以真正传输数据的端口是动态分配给各个客户端的;
4)建立Socket长连接,保证线程不会中断,同时监控Socket数据流中是否有数据包到达,若在一分钟内无数据流则发送心跳检测包;
步骤2:将经过拆包处理后的所有数据包进行一次去重过滤判断,并存储到布隆过滤器中,如图2本实施例中的布隆过滤器原理状态图所示,可以从图2中可以看到:假设某个元素通过映射对应下标为4,5,6这3个点,虽然这3个点都为1,但是很明显这3个点是不同元素经过哈希得到的位置,因此这种情况说明元素虽然不在集合中,也可能对应的都是1,这是误判率存在的原因。
数据存储到布隆过滤器中的过程具体表述为:布隆过滤器包括主过滤器和从过滤器,通过地震台网通信协议接收到的多路数据流数据先存储到主过滤器中,当主过滤器的容量超过一半时,启动从过滤器,并同时将数据存放到从过滤器中,当主过滤器存满容量时,将其中一个从过滤器替换主过滤器进行一次去重过滤,实现主从切换,反复判断执行一次去重操作直至数据流接收完毕。
所述一次去重过滤具体表述为:将步骤1解析出的台网名、台站名、通道、采样率和时间拼接成字符串作为去重字段存储到主过滤器中,主过滤器存储时,先判断所述去重字段是否存在,如果不存在则接收并存储数据包,如果存在则不接收数据包。
步骤3:对解析出的包含特定含义字段的数据包进行判断是否需要二次去重过滤,并存储到HBase数据库中,所述二次去重判断具体表述为:根据所述去重字段设计HBase数据库中的row key值,根据row key值的唯一性特性进行二次去重判断,如果HBase中rowkey值存在,则数据库存储操作失败,返回失败结果,通过返回结果实现去重判断,此步骤不仅解决了布隆过滤器的误识别率,同时解决了数据持久化的问题。
步骤4:将存储到HBase数据库中的数据包解析为地震数据MSEED格式,并存储到磁盘中永久保存,需要输出时以台网名、台站名、通道、采样率和时间组合的方式进行自动命名;
步骤5:利用obspy.merge方法对存储到HBase数据库中的数据包进行三次去重判断;
步骤6:通过TCP/IP协议建立连接,创建服务器端,将处理后的数据包以数据流的方式转发出去,并持续监听发送端口是否有请求。
Claims (4)
1.一种基于布隆过滤器算法的地震台网大数据去重的方法,其特征在于,包括以下步骤:
步骤1:通过TCP/IP协议接收多路数据流数据,并按字节进行拆包操作,并对拆包后的每个包进行解析,所述的解析过程主要是将每个数据包按照特定含义字段进行解析,所述特定含义字段包括台网名、台站名、通道、采样率和时间;
步骤2:将经过拆包处理后的所有数据包进行一次去重过滤判断,并存储到布隆过滤器中;
步骤3:对解析出的包含特定含义字段的数据包进行判断是否需要二次去重过滤,并存储到HBase数据库中;
步骤4:将存储到HBase数据库中的数据包解析为地震数据MSEED格式,并存储到磁盘中永久保存,需要输出时以台网名、台站名、通道、采样率和时间组合的方式进行自动命名;
步骤5:利用obspy.merge方法对存储到HBase数据库中的数据包进行三次去重判断;
步骤6:通过TCP/IP协议建立连接,实现服务器端,将处理后的数据包以数据流的方式转发出去,并持续监听发送端口是否有请求。
2.根据权利要求1所述的一种基于布隆过滤器算法的地震台网大数据去重的方法,其特征在于,所述的步骤2中的将经过拆包处理后的所有数据包存储到布隆过滤器中,具体表述为:布隆过滤器包括主过滤器和从过滤器,通过地震台网通信协议接收到的多路数据流数据先存储到主过滤器中,当主过滤器的容量超过一半时,启动从过滤器,并同时将数据存放到从过滤器中,当主过滤器存满容量时,将其中一个从过滤器替换主过滤器进行一次去重过滤,实现主从切换,反复判断执行一次去重操作直至数据流接收完毕。
3.根据权利要求1或3任意一项所述的一种基于布隆过滤器算法的地震台网大数据去重的方法,其特征在于,所述一次去重过滤具体表述为:将步骤1解析出的台网名、台站名、通道、采样率和时间拼接成字符串作为去重字段存储到主过滤器中,主过滤器存储时,先判断所述去重字段是否存在,如果不存在则接收并存储数据包,如果存在则不接收数据包。
4.根据权利要求1所述的一种基于布隆过滤器算法的地震台网大数据去重的方法,其特征在于,所述的步骤3中的二次去重判断具体表述为:根据所述去重字段设计HBase数据库中的row key值,根据row key值的唯一性特性进行二次去重判断,如果HBase中row key值存在,则数据库存储操作失败,返回失败结果,通过返回结果实现去重判断。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910800615.5A CN110532251B (zh) | 2019-08-28 | 2019-08-28 | 基于布隆过滤器算法的地震台网大数据去重的方法 |
PCT/CN2019/106832 WO2021035843A1 (zh) | 2019-08-28 | 2019-09-20 | 基于布隆过滤器算法的地震台网大数据去重的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910800615.5A CN110532251B (zh) | 2019-08-28 | 2019-08-28 | 基于布隆过滤器算法的地震台网大数据去重的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110532251A true CN110532251A (zh) | 2019-12-03 |
CN110532251B CN110532251B (zh) | 2021-11-05 |
Family
ID=68664618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910800615.5A Active CN110532251B (zh) | 2019-08-28 | 2019-08-28 | 基于布隆过滤器算法的地震台网大数据去重的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110532251B (zh) |
WO (1) | WO2021035843A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111429724A (zh) * | 2020-04-23 | 2020-07-17 | 安徽大学 | 一种交通数据去重获取方法 |
CN113377812A (zh) * | 2021-01-08 | 2021-09-10 | 北京数衍科技有限公司 | 大数据的订单去重方法和装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113868525A (zh) * | 2021-09-27 | 2021-12-31 | 支付宝(杭州)信息技术有限公司 | 基于流批配合的累计独立访问量确定方法、装置及设备 |
CN117250670B (zh) * | 2023-11-15 | 2024-02-02 | 山东科岳科技有限公司 | 矿震一体化监测台网的检测能力评估方法、系统及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080120640A1 (en) * | 2006-11-22 | 2008-05-22 | Lg. Electronics, Inc. | Method of transmitting broadcast signal, method of processing broadcast signal and apparatus for the same |
CN105975516A (zh) * | 2016-04-27 | 2016-09-28 | 湖南蚁坊软件有限公司 | 一种流式大数据去重的方法 |
CN106649346A (zh) * | 2015-10-30 | 2017-05-10 | 北京国双科技有限公司 | 数据重复性校验方法及装置 |
CN107145556A (zh) * | 2017-04-28 | 2017-09-08 | 安徽博约信息科技股份有限公司 | 通用的分布式采集系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103116599A (zh) * | 2012-11-30 | 2013-05-22 | 浙江工商大学 | 一种基于改进Bloom Filter结构的城市海量数据流快速冗余消除方法 |
CN107506394B (zh) * | 2017-07-31 | 2020-05-29 | 武汉工程大学 | 一种消除大数据规范关系连接冗余的优化方法 |
-
2019
- 2019-08-28 CN CN201910800615.5A patent/CN110532251B/zh active Active
- 2019-09-20 WO PCT/CN2019/106832 patent/WO2021035843A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080120640A1 (en) * | 2006-11-22 | 2008-05-22 | Lg. Electronics, Inc. | Method of transmitting broadcast signal, method of processing broadcast signal and apparatus for the same |
CN106649346A (zh) * | 2015-10-30 | 2017-05-10 | 北京国双科技有限公司 | 数据重复性校验方法及装置 |
CN105975516A (zh) * | 2016-04-27 | 2016-09-28 | 湖南蚁坊软件有限公司 | 一种流式大数据去重的方法 |
CN107145556A (zh) * | 2017-04-28 | 2017-09-08 | 安徽博约信息科技股份有限公司 | 通用的分布式采集系统 |
Non-Patent Citations (1)
Title |
---|
高见: "互联网舆情监测分析系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111429724A (zh) * | 2020-04-23 | 2020-07-17 | 安徽大学 | 一种交通数据去重获取方法 |
CN111429724B (zh) * | 2020-04-23 | 2022-02-15 | 安徽大学 | 一种交通数据去重获取方法 |
CN113377812A (zh) * | 2021-01-08 | 2021-09-10 | 北京数衍科技有限公司 | 大数据的订单去重方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110532251B (zh) | 2021-11-05 |
WO2021035843A1 (zh) | 2021-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110532251A (zh) | 基于布隆过滤器算法的地震台网大数据去重的方法 | |
JP5517821B2 (ja) | ネットワークにおけるトラフィックを監視する方法および装置 | |
US6771646B1 (en) | Associative cache structure for lookups and updates of flow records in a network monitor | |
CN107465690B (zh) | 一种基于流量分析的被动式异常端口实时检测方法及系统 | |
CN108400909A (zh) | 一种流量统计方法、装置、终端设备和存储介质 | |
CN107534690A (zh) | 采集域名系统流量 | |
JPH09500774A (ja) | 通信装置及び通信方法 | |
CN104156400B (zh) | 一种海量网络流数据的存储方法及装置 | |
TW200836080A (en) | Storing log data efficiently while supporting querying to assist in computer network security | |
CN107181821A (zh) | 一种基于sse规范的消息推送方法及装置 | |
CN101179581A (zh) | 一种采用ice中继候选地址进行媒体传输的方法 | |
CN105993148B (zh) | 网络接口 | |
CN109344138A (zh) | 一种日志解析方法及系统 | |
US20080267193A1 (en) | Technique for enabling network statistics on software partitions | |
CN107248939A (zh) | 基于hash存储器的网络流高速关联方法 | |
CN106059927B (zh) | 一种星型结构的有限级联自动重构网络路由设备及其网络 | |
CN107819697A (zh) | 数据传输方法、交换机及数据中心 | |
CN116319057A (zh) | 一种http流量还原方法 | |
JP2015095785A (ja) | パケット保存方法、パケット保存プログラム及びパケット保存装置 | |
CN114205218B (zh) | 一种容器网络故障的诊断方法和系统 | |
CN109634757A (zh) | 一种地震行业大数据处理的数据采集方法 | |
CN109587063A (zh) | 一种数据的引流方法及装置 | |
JP2001134544A (ja) | 共通ログ生成方法及び共通ログ分析方法 | |
JP3837670B2 (ja) | データ中継装置、連想メモリデバイス、および連想メモリデバイス利用情報検索方法 | |
CN104572572B (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 |