文章分类 -  海量数据

摘要:大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯 这样的一些涉及到海量数据的公司经常会问到。下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题。下面的一些问题基本直接来源于公司的面试笔试题目,方法不一定最优,如果你有更好的处理方法,欢迎与我讨论。1.Bloom filter适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集基本原理及要点:对于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1,查找时如果发现所有hash函数 阅读全文
posted @ 2012-01-15 12:51 nba76ers 阅读(310) 评论(0) 推荐(1)
摘要:一个文件中有40亿个整数(32位) 10MB内存 如何在读取一遍文件后给出不在这40亿个数中的任意一个数(32位)看到很多人回帖讨论的很激烈,我在想,有那么复杂么?是不是给得信息太多了,限制了思路?扫描一遍,还10M内存?扫描一遍就够了,内存还用得着那么大么?转http://www.iteye.com/topic/1050323 阅读全文
posted @ 2011-05-26 12:57 nba76ers 阅读(585) 评论(0) 推荐(0)
摘要:1千万左右的数据量,数据有查询次数的限制,比如每条记录每天只能查询2次,每周只能查询5次,每月只能查询10次,现在要求在查询的时候能够很快的反馈是否到达查询次数上限,如果没有记录,则增加此记录的查询次数,每天的查询量非常大,可能达到千万级。 目前有3个方案去解决这个问题,如下: 方案1. 采用自定义缓存,直接把1千万数据,根据数据标识作为key放到hashmap里面,每次查询的时候就直接根据key去找到相应的记录,并更新对应的查询次数,并定时把记录写到文件里面,防止数据全部丢失,此方案优点是快,缺点是需要太多的内存,如果缓存里面没有这条记录,需要把这条记录也加进去,不知道会不会太慢。 方案2. 阅读全文
posted @ 2011-05-24 12:56 nba76ers 阅读(1595) 评论(0) 推荐(0)
摘要:问题: 假设一个文件中有9 亿条不重复的9 位整数,现在要求对这个文件进行排序。 一般解题思路: 1 、将数据导入到内存中 2 、将数据进行排序 (比如插入排序、快速排序) 3 、将排序好的数据存入文件 难题: 一个整数为4 个字节 即使使用数组也需要900,000,000 * 4byte = 3.4G 内存 对于32 位系统,访问2G 以上的内存非常困难,而且一般设备也没有这么多的物理内存 将数据完全导入到内存中的做法不现实 其他解决办法: 1 、导入数据库运算 2 、分段排序运算 3 、使用bit 位运算 解决方案一: 数据库排序 将文本文件导入到数据库,让数据库进行索引排序操作后提取数据 阅读全文
posted @ 2011-05-18 14:56 nba76ers 阅读(10639) 评论(0) 推荐(1)