大数据核心技术---Map技术

大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用(大数据检索、大数据可视化、大数据应用、大数据安全等)。而以上这些关键技术都离不开底层的应用技术,键值对map的性能。

对于c++程序来说 map的使用无处不在。影响程序性能的瓶颈也往往是map的性能。尤其在大数据情况下,以及业务关联紧密而无法实现数据分发和并行处理的情况。map的性能就成了最关键的技术。

一、大数据采集技术

   在电信行业和信息安全行业的工作经历,我是和底层大数据采集打交道,尤其信息安全行业数据最复杂,都离不开map。

比如:ip表、mac表,电话号码表、域名解析表、身份证号码表的查询、病毒木马的特征码的云查杀等等。

stl库的map采用二分查找,性能最差。Google的哈希map性能和内存目前是最优的,但是有重复碰撞的机率。现在大数据 基本上不用有碰撞几率的map。

当然,这些情况可以使用并发的形式来解决,但是对于网络数据包每秒高达2万以上的情况,以及业务关联紧密无法分发的情况,大数据就只能本地化处理。

比如电信信令的sccp层的组包流程,网络协议的tcp和ip层的组包流程。这些必须靠map本地化来完成。

(大家可以加入爱好集结,一同交流:342836117) 欢迎交流: (老师q:858288017)

二、大数据预处理技术

数据库的关联功能是性能超慢的,因此想要实现大数据分析的实时性,预处理是很关键的步骤,我在电信时,处理的是将一个通话流程完整的关联起来,实现电话通话过程的实时性关联,如果将上亿条数据放到数据库中做关联,客户的体验效果可想而知。

要保证每秒几万个信令数据包能全部处理完成,就必须使用高效的map技术,对相同业务id的信令数据进行插入,查询以及完成关联后从map表中删除。

三、大数据存储及管理技术

  针对web2.0的频繁应用,key-value的数据库具有非常高效的读写性能,尤其在大数据情况下。Map型的数据库没有关系型数据库那么复杂的结构,性能优越。

介绍:

pwwMap是一种全新算法概念的map技术。它包含三种map。

memmap,hashmap适合用于大数据采集和预处理分析,diskmap适合做nosql数据库。

1、memmap  支持插入,修改,删除,查询等日常操作。适合任何场合下使用。采用独特的索引技术,性能和内存比stl库的map高百倍以上。性能和google的哈希map相差无几,且无碰撞机率。

2、hashmap  仅仅支持查询。适合高速查询的场合。性能比目前的google哈希算法快100倍。而且无碰撞机率。

3、diskmap 支持插入,修改,删除,查询等日常操作,类似nosql数据库的功能。其数据量高达百亿,查询性能依旧强劲。对比google的leveldb技术,优势明显。而且其采用模板形式支持各种数据类型,不仅仅是string类型的数据。


程序使用pwwMap 最直接的效益就是 原来需要十个服务器解决的方案 现在只需要一个服务器。

你可能感兴趣的:(大数据核心技术---Map技术)