海量数据

2025-04-16 版权声明 我要投稿

海量数据(精选8篇)

海量数据 篇1

下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题。下面的一些问题基本直接来源于公司的面试笔试题目,方法不一定最优,如果你有更好的处理方法,欢迎与我讨论。1.Bloom filter 适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集

基本原理及要点:

对 于原理来说很简单,位数组+k个独立hash函数。将hash函数对应的值的位数组置1,查找时如果发现所有hash函数对应位都是1说明存在,很明显这 个过程并不保证查找的结果是100%正确的。同时也不支持删除一个已经插入的关键字,因为该关键字对应的位会牵动到其他的关键字。所以一个简单的改进就是 counting Bloom filter,用一个counter数组代替位数组,就可以支持删除了。还有一个比较重要的问题,如 何根据输入元素个数n,确定位数组m的大小及hash函数个数。当hash函数个数k=(ln2)*(m/n)时错误率最小。在错误率不大于E的情况 下,m至少要等于n*lg(1/E)才能表示任意n个元素的集合。但m还应该更大些,因为还要保证bit数组里至少一半为0,则m应 该>=nlg(1/E)*lge 大概就是nlg(1/E)1.44倍(lg表示以2为底的对数)。举个例子我们假设错误率为0.01,则此时m应大概是n的13倍。这样k大概是8个。

注意这里m与n的单位不同,m是bit为单位,而n则是以元素个数为单位(准确的说是不同元素的个数)。通常单个元素的长度都是有很多bit的。所以使用bloom filter内存上通常都是节省的。

扩展:

Bloom filter将集合中的元素映射到位数组中,用k(k为哈希函数个数)个映射位是否全1表示元素在不在这个集合中。Counting bloom filter(CBF)将位数组中的每一位扩展为一个counter,从而支持了元素的删除操作。Spectral Bloom Filter(SBF)将其与集合元素的出现次数关联。SBF采用counter中的最小值来近似表示元素的出现频率。问题实例:给你A,B两个文件,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出A,B文件共同的URL。如果是三个乃至n个文件呢? 根 据这个问题我们来计算下内存的占用,4G=2^32大概是40亿*8大概是340亿,n=50亿,如果

按出错率0.01算需要的大概是650亿个bit。现在可用的是340亿,相差并不多,这样可能会使出错率上升些。另外如果这些urlip是一一对应的,就可以转换成ip,则大大简单了。2.Hashing 适用范围:快速查找,删除的基本数据结构,通常需要总数据量可以放入内存

基本原理及要点:

hash函数选择,针对字符串,整数,排列,具体相应的hash方法。

碰撞处理,一种是open hashing,也称为拉链法;另一种就是closed hashing,也称开地址法,opened addressing。

扩展:

d-left hashing中的d是多个的意思,我们先简化这个问题,看一看2-left hashing。2-left hashing指的是将一个哈希表分成长度相等的两半,分别叫做T1和T2,给T1和T2分别配备一个哈希函数,h1和h2。在存储一个新的key时,同 时用两个哈希函数进行计算,得出两个地址h1[key]和h2[key]。这时需要检查T1中的h1[key]位置和T2中的h2[key]位置,哪一个 位置已经存储的(有碰撞的)key比较多,然后将新key存储在负载少的位置。如果两边一样多,比如两个位置都为空或者都存储了一个key,就把新key 存储在左边的T1子表中,2-left也由此而来。在查找一个key时,必须进行两次hash,同时查找两个位置。问题实例: 1).海量日志数据,提取出某日访问百度次数最多的那个IP。

IP的数目还是有限的,最多2^32个,所以可以考虑使用hash将ip直接存入内存,然后进行统计。3.bit-map 适用范围:可进行数据的快速查找,判重,删除,一般来说数据范围是int的10倍以下 基本原理及要点:使用bit数组来表示某些元素是否存在,比如8位电话号码

扩展:bloom filter可以看做是对bit-map的扩展 问题实例: 1)已知某个文件内包含一些电话号码,每个号码为8位数字,统计不同号码的个数。

8位最多99 999 999,大概需要99m个bit,大概10几m字节的内存即可。

2)2.5亿个整数中找出不重复的整数的个数,内存空间不足以容纳这2.5亿个整数。将bit-map扩展一下,用2bit表示一个数即可,0表示未出现,1表示出现一次,2表示出现2次及以上。或者我们不用2bit来进行表示,我们用两个bit-map即可模拟实现这个2bit-map。

4.堆 适用范围:海量数据前n大,并且n比较小,堆可以放入内存 基 本原理及要点:最大堆求前n小,最小堆求前n大。方法,比如求前n小,我们比较当前元素与最大堆里的最大元素,如果它小于最大元素,则应该替换那个最大元 素。这样最后得到的n个元素就是最小的n个。适合大数据量,求前n小,n的大小比较小的情况,这样可以扫描一遍即可得到所有的前n元素,效率很高。

扩展:双堆,一个最大堆与一个最小堆结合,可以用来维护中位数。问题实例: 1)100w个数中找最大的前100个数。

用一个100个元素大小的最小堆即可。

5.双层桶划分 适用范围:第k大,中位数,不重复或重复的数字

基本原理及要点:因为元素范围很大,不能利用直接寻址表,所以通过多次划分,逐步确定范围,然后最后在一个可以接受的范围内进行。可以通过多次缩小,双层只是一个例子。扩展: 问题实例: 1).2.5亿个整数中找出不重复的整数的个数,内存空间不足以容纳这2.5亿个整数。有点像鸽巢原理,整数个数为2^32,也就是,我们可以将这2^32个数,划分为2^8个区域(比如用单个文件代表一个区域),然后将数据分离到不同的区域,然后不同的区域在利用bitmap就可以直接解决了。也就是说只要有足够的磁盘空间,就可以很方便的解决。

2).5亿个int找它们的中位数。这个例子比上面那个更明显。首先我们将int划分为2^16个区域,然后读取数据统计落到各个区域里的数的个数,之后我们根据统计结果就可以判断中位数落到那个区域,同时知道这个区域中的第几大数刚好是中位数。然后第二次扫描我们只统计落在这个区域中的那些数就可以了。

实 际上,如果不是int是int64,我们可以经过3次这样的划分即可降低到可以接受的程度。即可以先将int64分成2^24个区域,然后确定区域的第几 大数,在将该区域分成2^20个子区域,然后确定是子区域的第几大数,然后子区域里的数的个数只有2^20,就可以直接利用direct addr table进行统计了。6.数据库索引 适用范围:大数据量的增删改查 基本原理及要点:利用数据的设计实现方法,对海量数据的增删改查进行处理。扩展: 问题实例: 7.倒排索引(Inverted index)适用范围:搜索引擎,关键字查询 基本原理及要点:为何叫倒排索引?一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。

以英文为例,下面是要被索引的文本: T0 = “it is what it is” T1 = “what is it” T2 = “it is a banana” 我们就能得到下面的反向文件索引: “a”: {2} “banana”: {2} “is”: {0, 1, 2} “it”: {0, 1, 2} “what”: {0, 1}

检索的条件“what”, “is” 和 “it” 将对应集合的交集。正 向索引开发出来用来存储每个文档的单词的列表。正向索引的查询往往满足每个文档有序频繁的全文查询和每个单词在校验文档中的验证这样的查询。在正向索引 中,文档占据了中心的位置,每个文档指向了一个它所包含的索引项的序列。也就是说文档指向了它包含的那些单词,而反向索引则是单词指向了包含它的文档,很 容易看到这个反向的关系。扩展: 问题实例:文档检索系统,查询那些文件包含了某单词,比如常见的学术论文的关键字搜索。8.外排序 适用范围:大数据的排序,去重 基本原理及要点:外排序的归并方法,置换选择 败者树原理,最优归并树

扩展:

问题实例: 1).有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16个字节,内存限制大小是1M。返回频数最高的100个词。这个数据具有很明显的特点,词的大小为16个字节,但是内存只有1m做hash有些不够,所以可以用来排序。内存可以当输入缓冲区使用。9.trie树 适用范围:数据量大,重复多,但是数据种类小可以放入内存 基本原理及要点:实现方式,节点孩子的表示方式 扩展:压缩实现。问题实例: 1).有10个文件,每个文件1G,每个文件的每一行都存放的是用户的query,每个文件的query都可能重复。要你按照query的频度排序。

2).1000万字符串,其中有些是相同的(重复),需要把重复的全部去掉,保留没有重复的字符串。请问怎么设计和实现?

3).寻找热门查询:查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个,每个不超过255字节。10.分布式处理 mapreduce 适用范围:数据量大,但是数据种类小可以放入内存

基本原理及要点:将数据交给不同的机器去处理,数据划分,结果归约。

扩展:

问题实例: 1).The canonical example application of MapReduce is a process to count the appearances of

each different word in a set of documents:

void map(String name, String document):

// name: document name

// document: document contents

for each word w in document: EmitIntermediate(w, 1);void reduce(String word, Iterator partialCounts): // key: a word // values: a list of aggregated partial counts int result = 0;for each v in partialCounts: result += ParseInt(v);Emit(result);Here, each document is split in words, and each word is counted initially with a “1” value by

the Map function, using the word as the result key.The framework puts together all the pairs

with the same key and feeds them to the same call to Reduce, thus this function just needs to

sum all of its input values to find the total appearances of that word.2).海量数据分布在100台电脑中,想个办法高效统计出这批数据的TOP10。

3).一共有N个机器,每个机器上有N个数。每个机器最多存O(N)个数并对它们操作。如何找到N^2个数的中数(median)? 经典问题分析 上千万or亿数据(有重复),统计其中出现次数最多的前N个数据,分两种情况:可一次读入内存,不可一次读入。

可用思路:trie树+堆,数据库索引,划分子集分别统计,hash,分布式计算,近似统计,外排序

所 谓的是否能一次读入内存,实际上应该指去除重复后的数据量。如果去重后数据可以放入内存,我们可以为数据建立字典,比如通过 map,hashmap,trie,然后直接进行统计即可。当然在更新每条数据的出现次数的时候,我们可以利用一个堆来维护出现次数最多的前N个数据,当 然这样导致维护次数增加,不如完全统计后在求前N大效率高。

如果数据无法放入内存。一方面我们可以考虑上面的字典方法能否被改进以适应这种情形,可以做的改变就是将字典存放到硬盘上,而不是内存,这可以参考数据库的存储方法。

当 然还有更好的方法,就是可以采用分布式计算,基本上就是map-reduce过程,首先可以根据数据值或者把数据hash(md5)后的值,将数据按照范 围划分到不同的机子,最好可以让数据划分后可以一次读入内存,这样不同的机子负责处理各种的数值范围,实际上就是map。得到结果后,各个机子只需拿出各 自的出现次数最多的前N个数据,然后汇总,选出所有的数据中出现次数最多的前N个数据,这实际上就是reduce过程。实际上可能想直 接将数据均分到不同的机子上进行处理,这样是无法得到正确的解的。因为一个数据可能被均分到不同的机子上,而另一个则可能完全聚集到一个机子上,同时还可 能存在具有相同数目的数据。比如我们要找出现次数最多的前100个,我们将1000万的数据分布到10台机器上,找到每台出现次数最多的前 100个,归并之后这样不能保证找到真正的第100个,因为比如出现次数最多的第100个可能有1万个,但是它被分到了10台机子,这样在每台上只有1千 个,假设这些机子排名在

1000个之前的那些都是单独分布在一台机子上的,比如有1001个,这样本来具有1万个的这个就会被淘汰,即使我们让每台机子选 出出现次数最多的1000个再归并,仍然会出错,因为可能存在大量个数为1001个的发生聚集。因此不能将数据随便均分到不同机子上,而是要根据hash 后的值将它们映射到不同的机子上处理,让不同的机器处理一个数值范围。

而外排序的方法会消耗大量的IO,效率不会很高。而上面的分布式方法,也可以用于单机版本,也就是将总的数据根据值的范围,划分成多个不同的子文件,然后逐个处理。处理完毕之后再对这些单词的及其出现频率进行一个归并。实际上就可以利用一个外排序的归并过程。

海量数据 篇2

进入21 世纪,数据以令人惊讶的速度增长,我们的生活被海量数据所包围。根据IDC的预测,在2005 年到2015 年这十年的时间内,全球数据总量将从2000 EB增长到近8000 EB[1]。如此庞大的数据规模为数据的分析和处理提出了更多的挑战。从实时采集、在线处理的角度来说,互联网数据可以视为一种典型的流数据。

在互联网应用中有一种多应用共享流数据的场景,多个应用需要在一定的时效期内访问该数据,对其进行在线分析和计算。这种场景广泛存在于目前比较流行的互联网搜索挖掘系统中,其难点主要体现在流数据处理的时效性和应用的高效性两方面。一方面,流数据源源不断地到来,随着时间的增长,累积的数据规模将会非常巨大,这会对数据存储造成很大的压力; 另一方面,多个应用都需要访问数据。如果不能有效地组织多个应用对流数据的处理关系,提高数据访问的效率,则很难使应用的处理速度匹配上流数据处理的时效要求,因此必然导致部分数据需要先存储然后再重新加载处理,这将造成大量不必要的I / O开销和计算资源浪费。为了提高流数据处理的时效性和应用的高效性,迫切需要一种支持多应用共享的在线流数据处理方法。

针对流数据的处理,金澈清[2]等分析了流数据的产生根源以及流数据速度快、规模宏大等特点,并给出了流数据管理需要面对的主要问题; 针对流数据的存储,刘云生[3]等提出了一种采用本体技术来解决语义互操作性的流数据存储框架; 李子杰[4]等详细阐述了流数据和传统数据存储及管理方法比较研究,虽然上述对流数据的存储方面给出了很多的方法,但是对于流数据的处理,尤其是在多应用共享的在线流数据的处理,没有给出有效的解决方案。

针对多应用共享在线流数据的处理问题,本文首先对多应用流数据共享场景进行分析和抽象,提出一种通用的可应用于多流数据共享场景的在线流数据服务框架,为流数据的统一处理提供了整合数据管理模型,为数据传输与计算提供标准接口。

1 在线流数据处理场景及其主要问题

流数据是一组顺序、大量、快速、连续到达的数据序列,一般情况下,数据流可被视为一个随时间延续而无限增长的动态数据集合[5]。流数据具有实时性、未知性和不可逆性3 个特点[6]。流数据处理[7]是对流数据进行传输、计算和存储的过程。流数据传输提供端到端的流数据传输服务。在多应用共享流数据的场景中,数据源将数据发布到一个消息总线上,多个应用通过消息总线对流数据进行访问。如图1 所示,一个面向互联网的数据分析系统。分析程序会按照业务需求对数据进行访问,共享数据分析系统中的互联网流数据。

这种多个应用共享流数据的场景存在两个突出的特点。首先,互联网流数据随着时间的增长会累积很大的数据量,如果无法及时对这些数据进行在线处理的话,就需要将这些数据进行存储,由此造成存储的压力。其次,流数据很难进行存储或者从存储中获取需要花费巨大的代价。传统流数据如骨干网络中的数据包,无法进行保存,互联网流数据虽然可以存储,但如果完全依赖磁盘存储系统,则在多个应用共享处理数据时必然要涉及到大量的I/O操作,由此造成处理效率的低下。

在典型的互联网搜索挖掘业务场景中,应用数目会在几十个到几百个之间,这些应用需要对数据进行不同的分析和处理。一条数据在这个过程中会被不同的应用访问多次,因此数据访问的开销大小就成为整个流程的瓶颈。所以,多应用共享流数据时应具有高效性,减少不必要的存储浪费和I/O开销。

在多应用共享流数据时,每一个应用在逻辑上都可以访问到一份完整的数据集合。采用流数据的多个副本可以解决共享问题,但是随着应用数目的增加,流数据副本所占用的空间开销会随之呈线性增长,同时维护多个流数据副本需要大量的存储和计算资源。与此同时,流数据会随着时间动态增长,流数据的访问对于实时性有很高的要求。流数据多副本的时空开销和流数据访问的实时性要求之间的矛盾,是解决多应用流数据共享问题的难点所在。亟需找到一种方法构建应用和流数据之间的桥梁,以便能够高效便捷地对应用与流数据进行管理。本文设计的在线流数据服务框架采用内存作为主要存储介质,提高流数据的读写速度,采用索引结构记录应用可以访问的流数据范围,避免了多副本带来的空间开销。

2 设计原则

在线流数据服务框架的设计需要满足高效性和低耦合两个基本原则[9]。第一,高效性的需求来自于流数据的实时性的特点,这就要求所有的流数据处理都要在线进行。为了满足高效性,在线流数据服务框架的设计需要从硬件架构和软件算法两个方面进行考虑和设计。第二,低耦合是检验框架通用性的标准。在线流数据服务框架应该成为多应用共享流数据场景下的通用框架。在线流数据服务框架需要提供流数据的管理和服务两大功能。数据的管理包括数据收集、缓存、应用注册和数据查询等; 数据服务包括流数据交付模式、数据访问规则以及数据访问接口等。

2. 1 数据管理要求

在线流数据服务框架所提供的数据管理包括了索引建立、应用注册、数据查询和内存清理。

1) 索引建立。为了提高数据查询和清理的效率,在对流数据进行管理时需要对流数据建立索引结构。

2) 应用注册。应用需要和流数据进行动态地绑定。在线流数据服务框架需要提供一种应用注册的机制,以有效地管理应用与流数据的动态绑定。

3) 数据查询。在线流数据服务框架需要向应用提供数据查询功能。应用在进行动态绑定之后按需查询流数据。

4) 内存数据清理。在线流数据服务框架采用内存作为主要存储介质。

2. 2 数据服务要求

在线流数据服务框架提供的流数据服务主要包括了流数据交付模式、流数据访问的规则和流数据的接口。

1) 流数据交付模式。为了提供异步的松耦合的在线流数据服务,需要提供一种采用“拉”( Pull) 方式的数据服务。采用了“拉”的数据服务模式就是让应用主动发起数据请求,按照应用自身的行为逻辑进行数据的访问。

2) 流数据访问规则。在线流数据服务框架是针对多应用共享流数据的场景,所以在线流数据服务框架对于每个应用都提供一个逻辑上完整的流数据。每个应用只能对流数据中的数据进行一次访问,而不能反复访问同一个流数据段。如图2 所示,应用1 在t1 时刻完成了流数据的使用注册,那么应用1 从t1时刻起就可以使用流数据,但是在t1 时刻之前的数据对于应用1 来说是不可见的。应用2 在t2 时刻完成了流数据的使用注册,那么应用2 从t2 时刻起就可以开始使用流数据。如果应用1 已经访问了从t1 到t2 时间段内的数据记录集合,那么它不能够再次访问其中的数据。

3) 流数据接口。在线流数据服务框架的流数据接口规定了应用可以以何种条件对流数据进行查询访问。在流数据接口的设计上要保证其简洁性和松耦合。流数据接口应该提供简单的查询条件,让应用进行数据查询。流数据接口的操作不应涉及到流数据的具体内容,以保证接口的松耦合。

3 在线流数据服务框架总体设计

多应用共享数据流的场景可以归纳为一种典型的多对多异步数据访问模型。在解决这类多对多的异步访问问题时采用发布/订阅模型是一种通用的方法。本节按照在线流数据服务的设计原则,将发布/订阅模型作为框架的设计依据,提出在线流数据服务框架。

3. 1 发布/ 订阅模型

发布/订阅模型是一个重要数据访问范式[10],可以用来解决多对多的数据生产和消费问题。该模型通过一个消息队列和数据访问控制机制将应用程序分为发布者和订阅者,发布者负责将产生的消息放在消息队列中,订阅者可以从中获取自己感兴趣的数据。这种发布者和订阅者的松散耦合允许更好的可扩展性和数据的访问控制。

如图3 所示,发布/订阅模型有五个重要的组成部分: 发布者、订阅者、数据容器、注册器和匹配器。发布者产生数据,将数据放入数据容器中。订阅者通过注册器向发布/订阅系统发起注册请求。注册成功后订阅者通过匹配器,访问查询数据容器中的数据。

3. 2 框架组成

如图4 所示,在线流数据服务框架,数据源将流数据写入到内存中; 应用通过注册后使用数据管理引擎提供的服务。在线流数据服务框架包括了数据层、控制层和接口层。数据层负责数据的存储和组织,是框架提供服务的保障。控制层负责处理读写请求,是框架的逻辑处理部分。接口层负责提供网络接口,供应用使用服务。

1) 数据层数据层负责数据的存储和组织,是框架提供服务的保障。数据层分为数据高速通道和备份文件系统两个部分。由于内存读写的系统开销要远远小于对磁盘的操作,所以数据高速通道以内存作为主要存储介质。在线流数据服务框架的数据完全存在于数据高速通道中。在数据高速通道中存在着两种类型的数据,流数据存储和数据索引结构。流数据存储是将流数据按照顺序存放与数据高速通道中; 数据索引结构是使用流数据的字段建立的,以提高流数据的查询效率。由于计算机内存不是一个稳定的存储介质,所以在线流数据服务框架设计了备份文件系统,对于内存中的数据进行备份,保证框架能够提供稳定的服务。

2) 控制层控制层负责处理读写请求,按照读写请求的语义进行数据存储、索引建立、应用注册、数据查询和内存清理等工作。控制层中设计了一个数据管理引擎,引擎中包括了索引建立、注册器、匹配器和内存清理四个部分。索引建立模块负责对流数据索引结构进行写入和更新。注册器负责处理应用的注册请求。应用只有在进行注册之后才可以使用在线流数据服务,注册后的应用由框架统一管理。匹配器处理应用发起的数据查询请求,匹配器对索引进行数据查询,然后将查询到的数据从数据高速通道中提取出来,返回给应用。计算机的内存空间是极度有限的,随着时间的增长,驻留在内存中的数据量会不断增加。内存清理模块对内存中的数据存储和索引结构进行监控和分析,及时对内存数据和索引结构进行更新,将已经过期的数据从存储和索引中清除。数据管理引擎中最重要的部分是数据管理算法,数据管理算法运行在数据引擎的四个组成部分之上,负责应用注册、数据查询和内存清理操作的相关逻辑。

3) 接口层接口层是在线流数据服务框架与客户端进行交互的中介。接口层定义统一的API接口供数据源和应用使用。在线流数据服务框架的接口层采用了远程过程调用的方式对客户端提供服务。接口层定义的接口类型主要包括了读接口、写接口和应用注册接口。

3. 3 流数据管理算法

流数据管理算法[11]运行在框架的数据管理引擎之上,主要解决了框架中的索引建立、应用注册、数据管理和内存数据清理四个问题。下面将给出流数据管理算法的形式化定义。

从流数据的定义可以看出,一条流数据记录同时包含了时间属性和数据属性。首先,一条流数据记录是包含了许多属性字段的数据。其次,在线流数据服务框架对每一条流数据记录提供一个全局唯一的数据记录编号,这样在在线流数据服务框架中一条流数据记录可以采用“数据记录编号—属性集合”形式的“键—值”对来表示。最后,每条流数据还附带着一个时间属性,这样一条流数据记录就可以使用“键—时间—值”这种形式唯一表示。所以,在线流数据服务的数据记录带有三个基本属性: 数据记录id、写入时间t和数据属性集合vset。这三个基本属性中数据记录的时间属性t是由流数据特点决定的; 数据的id属性是为了便于管理而增加的; 数据的属性集合是由数据自带的信息和应用逻辑决定的。为了达到和应用最低的耦合度,在线流服务框架仅仅会对数据记录的时间属性和记录id进行操作,而不会对数据记录的属性集合做任何修改。

定义1 数据记录键值。采用一个整数标示一条数据记录的键值,用符号id来表示。在在线流数据服务中,每条数据记录有唯一的键值,不会与其他数据记录产生重复。

定义2 数据记录时间。在线流数据服务的时间取值范围为( t0,∞ ) ,t0是在线流数据服务的开始运行时间。假设可以将在时间取值范围内的时间进行无限的细分,取出时间点{ t0,t1,…,tn} ,那么每个ti( t = 0,1,…,n) 都可以作为一条数据记录的时间值,用符号t表示。

定义3 属性集合。采用符号vset来表示在线流数据服务中数据记录的属性集合,用v来表示属性。一个属性集合由固定个数的属性组成,即vset = { v1,v2,…,vk} ,每条数据记录的属性集合中的每个属性可以有不同的合法取值。

定义4 流数据记录集合采用数据记录键值、数据记录时间和属性集合来唯一表示在线流数据服务中的流数据记录,记为三元组{ id,t,vs} 。由所有数据记录组成的集合,称之为在线流数据服务中的流数据记录集合。

应用与在线流数据服务进行交互主要有两种行为: 应用注册和数据访问[12]。在应用注册时,应用首先向在线流数据服务发起注册请求,得到同意后,应用获得一个用于标示自己身份的唯一应用编号,用appid标示。在完成注册后,应用可以通过应用编号向在线流数据服务发起数据查询请求。由于希望构建一个松耦合的在线流数据服务框架让应用合理得使用数据,所以,在提供的数据服务中只会将流数据记录的高层属性作为数据服务的查询条件。这些属性包括了流数据记录的唯一编号和流数据的时间信息。在线流数据服务将不会对流数据的属性进行任何的操作,也不会将其作为数据查询的条件。

定义5应用查询。用q表示应用查询用。定义q ={ appid,bid,eid,bt,et} 为一个五元组。其中appid表示发起查询的应用信息,bid表示应用需要查询的数据记录集合的开始id,eid表示应用需要查询的数据记录集合的终止id,bt表示应用需要查询的数据记录集合的开始时间,et表示应用需要查询的数据记录集合的终止时间。

框架中规定了如下三种具有合法语义的应用查询:

1) 已注册的应用按照数据记录的id区间进行数据查询。符合这种查询的应用查询形如q = { appid,bid,eid,null,null} ,其中appid是应用编号,bid是需要查询的数据集合的开始id,eid是需要查询的数据集合的终止id,数据记录的时间属性设置为空,这样在线流数据服务就会为应用编号为appid的应用查询数据记录id从bid到eid的数据记录。

2) 已注册的应用按照数据记录的时间区间进行数据查询。符合这种查询的应用查询形如q = { appid,null,null,bt,et} ,其中appid是应用编号,数据记录的id属性设置为空,bt是需要查询的数据集合的开始时间,et是需要查询的数据集合的终止时间,这样在线流数据服务就会为应用编号为appid的应用查询数据记录时间从bt到et的数据记录。

3) 已注册的应用按照数据记录的id和数据记录的时间两个条件同时进行查询。符合这种查询的应用查询形如q ={ appid,bid,eid,bt,et} ,其中appid是应用编号,bid是需要查询的数据集合的开始id,eid是需要查询的数据集合的终止id,bt是需要查询的数据集合的开始时间,et是需要查询的数据集合的终止时间,在线流数据服务就会为应用编号为appid的应用查询,数据记录id从bid到eid,时间从bt到et的数据记录。

在线流数据服务框架能够提供高效的数据管理和数据服务的关键是流数据管理算法的设计。流数据管理算法需要完成三个主要任务: 应用注册,数据查询和内存清理。

1) 应用注册问题。应用注册是应用能够使用流数据服务的先决条件,这样可以保证应用主动地和流数据进行动态绑定,能够保证流数据服务使用的安全。当一个应用向流数据服务提起注册申请时,流数据管理算法需要对应用进行验证,然后为其分配一个全局唯一的appid,在后续的操作中,应用就可以使用这个appid构造查询请求。

2) 数据查询问题。应用会按照自己的业务需求向在线流数据服务发起三种形式的数据查询。流数据管理算法在验证应用查询的合法性之后,需要按照应用查询的语言,快速高效地进行数据查询。

3) 内存清理问题。在线流数据服务的主要存储介质是计算机内存。但是计算机内存是昂贵的计算资源,不可能无限量使用。所以,内存的使用直接关系到在线流数据服务的质量。每个应用只能对流数据中的数据进行一次访问,而不能反复访问同一个流数据段[13]。而当一条数据记录被所有的应用使用后就无需再停留在在线流数据服务系统中。内存清理问题就是要设计一种合理的内存清理机制,保证在线流数据服务中内存空间的有效利用。

4 系统实现与性能分析

4. 1 系统设计与实现

本节以在线流数据服务框架为设计依据,实现了一个在线流数据服务系统。系统采用内存作为主要存储介质,实现了在线流数据管理框架的索引建立、注册器、匹配器和数据清理四个部分。系统采用C/S结构,通过网络接口对数据源和应用提供数据读写服务。系统分为流数据服务端和客户端两个部分,两者通过网络数据接口进行通信。

根据在线服务框架的规范,系统有索引模块、注册模块、匹配模块和内存清理模块四个基本的功能模块。系统将数据高速通道在计算机内存中实现,四个功能模块会对数据高速通道中的数据进行操作和处理。下面将对服务端的各个模块的功能进行介绍。如图5 所示,系统的服务器端包括: 索引建立、注册、匹配和内存回收四个功能模块。

1) 索引模块索引模块的功能是对写入系统的数据建立索引结构,支持数据的高效管理和使用。索引模块的功能包括三个方面: ( 1) 对于写入到系统中的数据,索引模块要对其进行处理,抽取出建立索引所需要的属性,并增加到索引结构中;( 2) 索引结构提供按照ID和时间两种条件进行数据查询。索引结构可以按照ID和时间对数据进行查询,并且将查询得到的数据区间返回给调用者; ( 3) 索引结构用于查找需要被删除的数据区间。当系统要进行内存数据清理操作时,需要通过索引结构查询出需要删除的数据区间。

2) 注册模块注册模块是系统对应用资格进行管理的模块。应用在访问系统之前需要先向注册模块发起注册请求。注册模块会对应用的注册请求进行处理,若应用已经出现在系统的注册表中,那么注册模块会将注册表项中的应用标识返回。如果应用不在系统的注册表中,那么系统会根据应用的名称为其分配一个唯一的应用标识号,并且返回。应用可以通过注册模块返回的应用标识号和系统进行交互。

3) 匹配模块匹配模块负责对应用查询请求进行解析并且在索引结构上进行数据查询。支持数据记录ID和时间两种条件的组合数据查询。查询请求有三种: 仅根据数据ID查询、仅根据数据时间查询和同时根据数据ID和数据时间查询。匹配模块会根据查询的不同语义,选择不同的查询方式,最后将查询的结果进行返回。

4) 内存清理模块内存清理模块的功能是对数据高速通道中的无用数据记录进行删除。在系统中,当一条数据记录被所有的应用访问过,这条数据就需要从数据高速通道中被删除,来保证内存有充足的空间。

4. 2 系统读写性能分析

在系统写性能实验中,我们采用ORACLE数据库作为本系统的比较对象,在实验环境中测试两者的数据读写性能。实验环境的系统部署方式如图6 所示,整个实验环境由6 架计算机组成,其中有4 架作为客户端分别向本系统和ORACLE数据库写入数据,另外2 架计算机分别部署本系统和ORACLE数据库。各台计算机之间采用千兆以太网进行互联。在实验环境中所采用的计算机都有相同的硬件配置。

对比实验的具体操如下: 1) 实验分别针对本系统和ORACLE数据库系统进行读写操作。2 ) 每次实验中,每个客户端一共读写1GB数据,每个系统在一次实验过程中一共需要接收或者发送4 GB数据。3) 每个客户端的1 GB数据分成16 次读取或者写入。4) 4 个客户端并发地对系统进行读写数据。

表1 中显示的是4 个客户端对本系统和ORACLE进行一次数据写入所花费的平均耗时。从表1 中可以看到,客户端对ORACLE数据库进行写入,平均的耗时是9. 75 s,而对本系统进行数据写入的平均耗时仅为1. 69 s,写本系统的平均时间约占写ORACLE数据库的平均时间的17. 3% ( 1. 69 s/9. 75 s ≈0. 173) 。

单位:s

下面测试4 个客户端分别从ORACLE数据库和本系统写入数据的总体时间对比,对每个系统写入4 GB数据,从表2 中可以看出,4 个客户端从ORACLE数据库中写入4 GB数据,一共使用了158. 56 s。而从本系统中写入4 GB的数据,一共花费了27. 51 s。在写入等量数据时,ORACLE数据库所花费的时间约为本系统的6. 6 倍。本系统的写数据性能要明显优于ORACLE数据库。

对写入本系统和ORACLE系统的时间差异进行分析,主要有两个原因导致这种性能上的差异。首先,本系统通过对数据的高效组织使得所有操作可以完全在内存中完成。ORACLE数据库的数据操作采用的是缓存加磁盘的方式,需要进行磁盘I/O操作。其次,写入到本系统中的数据,系统仅仅对数据的ID和时间字段进行处理,而不会去改变原有数据记录的组织结构。而ORACLE数据库则要求数据按照一定的规则映射到表中的每个属性字段上。因此,数据写入ORACLE数据库的速度相对于本系统就会慢的多。

表3 中显示的是4 个客户端对本系统和ORACLE进行一次数据读取所花费的平均耗时。从表3 中可以看到,客户端对ORACLE数据进行读取,平均的耗时是4. 5 s,而对本系统进行数据读取的耗时仅为1 s,读本系统的平均时间约占读ORACLE数据库的平均时间的22. 2% ( 1 s/4. 5 s≈0. 22) 。

单位: s

下面测试4 个客户端分别从ORACLE数据库和本系统中读取数据,对每个系统读取4 GB数据。从表4 中可以看出,4个客户端从ORACLE数据库中读取4 GB数据,一共使用了68. 75 s。而从本系统中读取4 GB的数据,一共花费了18. 18 s。在读取等量数据时,ORACLE数据库所花费的时间约为本系统的3. 8 倍。本系统的读取性能要明显优于ORACLE数据库。

客户端对于本系统和ORACLE数据库的读取速度的巨大差距主要是由于本的数据完全存储于内存中,对本读取数据实际上是将大块的内存空间中的数据进行整体读取。而从ORACLE数据库中读取数据则需要经过磁盘的I / O。

5 结语

本文分析了多应用流数据共享存在的流数据时空开销与实时性的矛盾,提出在线流数据的三层架构来解决这个问题。在三个层次中,数据层提供了数据的储存保障; 控制层中的数据管理引擎负责流数据的管理; 接口层负责提供网络调用接口。运行在控制层中的数据管理引擎上的数据管理算法是整个框架的核心部分,本文对算法进行了形式化的定义,阐述了完成的应用注册、数据查询和内存清理三个问题。在线流数据服务框架的提出,为多应用共享流数据问题提供了一种通用的解决方案,能够使流数据源,应用和流数据之间以一种低耦合的方式结合起来。在线流数据服务框架以内存作为主要存储,缩短了数据的读写开销; 以数据标识、时间和数据三元组的数据模型来表示数据记录,提供了对数据标识和时间的查询操作,而不对原始数据进行操作,使得框架可以不依赖于具体数据类型而存在。

摘要:针对多应用共享海量流数据的问题,提出一个在线流数据服务框架。通过对多应用共享流数据场景进行分析和抽象,设计具有数据层、管理层和接口层的在线流数据服务框架。框架将流数据管理划分为索引建立、注册器、匹配器和内存清理四个组成部分,并且通过一个专用的数据管理引擎对流数据进行管理。框架的提出为多应用流数据共享场景提供了一种统一管理流数据的方案。实验结果表明,相对与传统数据库,在线流数据服务框架在流数据写入速度能提高近5倍,在流数据的读取速度上提高4倍左右。

博弈海量数据 篇3

我每天都听到身边的人在抱怨硬盘又被无数的数据给塞满了,于是不得不去购买更大的硬盘或者寻求光盘刻录机的帮助,然后再去装载那些不知道为何总是膨胀不休的数据。而企业数据的迅猛增长,同样让每一个企业的CIO都显得有些措手不及。

我在几年前曾与企业的CIO们谈起过企业内容管理。当时,他们所谈到的都是数据分析、知识管理或商业智能等理论性话题,但是现在他们总是打电话问我:为什么我购买了一块又一块的硬盘,一台又一台的存储设备,却怎么也不能装下我的那些数据?而且在我需要它们的时候,它们却总在和我捉迷藏?

我总是对他们说:仅仅依靠海量的存储容量是无法解决他们所遇到的问题的。

之前我听说Google(www.google.cn)曾经希望通过用色彩来帮助用户搜索图片,我感觉到那很有意思,因为图片、视频、音频这些非结构化的数据往往包含着丰富的意义。

很多CIO对我说,他相信自己的系统,尤其是数据库,已经装下了所有的东西,并且可以随时搜索到,但是当我问他们:你对企业内的影音文件、分散的非结构化数据做好准备了么?他们往往哑口无言。

对于如何解决非结构化数据,我的建议是:针对内容管理上的不同阶段,恰如其分地引入应用,制定具有不同针对性的策略,全面涵盖数据的创建、保护、迁移、归档和应用。同时,自文件创建之日起,为它们做好规划。

企业制定良好的存储策略的基本原则是把数据妥善分类,按重要性分为动态数据、静态数据和受控数据,配合适当的管理和保护规律。举例来说,我的建议是将所有的数据都进行标记、索引与分类,并将日常需要的数据放在性能最好的在线存储设备上,虽然他们的价格稍高,但是可以保证随需随用,然后,如果能以近线设备而不是在线设备保存需妥善归档数据,可用性及成本效益就会大大增加,而那些需要应对法规遵从却很少被用到的数据可以放在离线存储设备之中。

在当今这个IT界百家争鸣的时代,企业选用不同品牌不同架构的情况可谓司空见惯,在企业中能看到不同架构、不同品牌的存储设备,由此形成了“集百家之大成”的混合IT架构。

这种“集百家之大成”的混合IT架构给企业造成了极大的兼容性问题,即便有着充足的容量也无法解决问题。

我常常听到,某家企业希望通过采用统一品牌的产品来解决这个兼容性问题,但是往往却失败了。这是因为同一品牌的产品也可能基于不同的平台,由低档、中档到高档,由NAS到SAN再到专门为存储不变数据、以符合法规遵从要求的固定存储系统,各不相同。

每次提起这个问题,我都想到“统一存储”,这种新兴的存储系统把NAS、SAN、IP SAN(iSCSI)及光纤通道SAN整合在一起,通过虚拟化等先进技术将不同硬件平台融合在了一起。通过统一存储,企业可以节省置购多重存储系统的成本,也减少了管理多元结构的人力和物力。最重要的是,彻底解决了兼容问题。

海量总结 篇4

“海量阅读”实验小结

开展海量阅读实验已近一个学期,这一个学期以来,我立足学生的实际,关注课内外延伸,努力在各类活动中开展了此项实验,取得了初步的成效。我主要做了以下几个方面的工作:

一、整合课本资源,拓宽阅读渠道

在文本的处理上,整合教学资源。课文的教学注重学生自主学习能力的培养,依托小组合作的形式,提高了课堂的效率。对于文本的处理改变了以往的教学模式,通过教学方式的变革来实现学习方式的转变,由“要我学”变成“我要学”。课堂上,充分相信孩子们的能力,大胆放手,尝试着让孩子先学。但其中方法的指导尤为重要,过多的分析、讲解不会给孩子留下太多有用的价值。像《牛郎织女》这种比较好读、浅显易懂的课文,我就降低训练的重点,没有一段段文字揪着反复读。学生已经能复述下来故事了,多次的重复孩子也会厌烦。于是,我把省下来的时间放手让学生去读和这篇文章题材一样的民间故事,像《孟姜女》《白蛇传》《梁山伯与祝英台》就是在这样的氛围中,在这样的背景下被学生读完的。像《安塞腰鼓》、《草原》这些文字较长,语言优美的文章,我让学生在作预习的时候就要多用一些时间读通读熟课文,在课堂上采用多种形式练习朗读直至背诵,使学生真正感受到语文课所独有的乐趣,用美的语言去感染孩子。对于课文的处理切忌牵着孩子的思路一段一段地引着讲。对于描写名人事迹的文章,如《钱学森》《詹天佑》《鞋匠的儿子》等课文,在课堂理解的同时,我又让学生当堂阅读了校本教材《一路花香》上的三篇文章《钱学森》《詹天佑小传》《伟大的平民总统——林肯》,既是对课文的一个拓展,又是向课外的一个延伸,让学生在更好地理解课文的同时,对人物、对中心有了更深一步的解读。

二、课内阅读指导、保障阅读质量

整合课本资源后,原来三堂课时间的教学内容,现在一节课就完成任务了,节省出的时间,就可以运用到课外阅读的指导。从五年级下学期开始坚持读《诺亚方舟》到现在的《一路花香》,学生已经读完了两本校本教材。本学期又向孩子们推荐了几本课外书《简爱》《鲁滨逊漂流记》《史记故事》《昆虫记》等。其次班内每人配备不同种类的书,以小组为单位成立了小小图书馆,同学之间互相传阅图书,保障了阅读的数量。在家长的配合指导下,提供的书籍孩子大都能主动阅读。我每周拿出一节课的时间评改学生记录的读书笔记,评选读书小明星,加以鼓励。课内开展的读书推荐活动,读书交流活动,保障了阅读质量。

三、生活化日记,展现阅读成果

对于孩子来说,培养阅读兴趣,激发写作欲望是语文教师应该重点关注的事情。通过自由的表达,真实的语境,才能全方位培养孩子的语文素养,使读书、识字、积累有更广的展示舞台。为此我多次举行生动有趣的活动,为孩子创造写作素材。语文课堂上,举行了:国庆联欢会、观察新同学、观看月全食、小小辩论会等一系列的活动;课外,我又指导学生进行了采访名人、采集落叶、去敬老院做好事、做剪报等一系列活动。因为这些活动,也涌现了一篇篇精彩的佳作,通过黑板报等形式展示孩子的作品,培养了孩子们的兴趣,提高了学生学语文的热情。

四、丰富多彩的语文实践活动,培养语文素养

利用三节课的时间,我组织学生举行了以“感恩祖国”为主题的的演讲比赛,要求脱稿演讲,即训练了记忆力,又锻炼了孩子的心理素质,更激发了孩子参加语文实践活动的兴趣。我还开展了写字比赛,评选写字小巧手,颁发荣誉证书,让孩子从小树立成就感。依托小组合作,我充分发挥每一个孩子的聪明才智,由小组长参与班级管理,制定组内评优制度,评选每周进步最大的孩子,形成了“比、学、赶、帮、超”的学风,现在班内事事有人做,人人有责任,形成了良好的班风。

五、培养了学生良好的读书习惯

书要静下心来读,这是读书最重要的习惯之一。如何把学生带进书本,让他沉浸在书的海洋,陶醉在书香中,创设良好阅读氛围至关重要。读书还要勤于动笔,所谓“好记性不如烂笔头”。课外阅读中,我让学生养成“不动笔墨不读书” 良好习惯,要求学生在阅读的同时还要写好读书笔记,读写结合,以读促写,根据学生的差异,为学生设计《读书笔记本》,让学生学会写摘抄式笔记——即教会学生在读书时,遇到优美的字、词、句、段、篇或名人名言、俗话谚语把它摘抄在读书笔记上;在读过书之后写下对所读书的体会,即读后感;在此基础上,要求学生不仅要求写好读后感觉,还要求能写出书评。在每周一节阅读指导课上,我对学生进行阅读指导,辅导学生作好阅读笔记或阅读报告。一段时间下来,学生养成了较好的读书习惯,促进了学生阅读与写作能力的提高。

海量阅读校本教研 篇5

一.释读“海量阅读”

我校的海量阅读已开展了三个月的研究,“课内海量阅读”就是在课堂40分钟之内进行的“海量阅读”。但“海量阅读”的教学目标不是以一节课、一篇文章设定,而是以一本书、一个年龄段为单位设定目标。小学六年分为三个阶段: 1.一年级在“海量阅读”中识字; 2. 二、三年级主要在“海量阅读”中诵读、积累; 3.四、五、六年级则“海量诵读经典”。“课内海量阅读”紧紧围绕三个关键词:

时间关键词:课内。把课外读物引进课堂,是“课内海量阅读”实验首先尝试解决的问题。我们的方法是,尽快上完教材内容,剩下的教学时间就大量阅读教材外的读物。实践中我发现,在语文课堂上全班同读一本书效果最好,读完一本换一本。

质量关键词:海量。“海量”阅读,势必要求课堂删繁就简,课外取消繁琐的、无效重复的作业,让学生能全力专注于阅读。因此三个月下来,我们同时实现了“增量”和“减负”两个目标,获得了语文学习的高质量。

方法关键词:阅读。实验证明,随着阅读量的成倍增加,识字问题、作文问题、理解问题等都迎刃而解,无需另外花费气力我们引导学生学会阅读,不只是为了教会孩子学习书本上的某些知识,更重要的是培养孩子自主阅读的能力,并会用阅读这把“金钥匙”开启知识宝库的大门。

二.“海量阅读”分年级进行

(一)中年级段在海量阅读中诵读、积累。我们把二、三年级归为中年级段,因为这两年级有两个共同特点。

1、写字依然占用相当一部分课堂教学时间,老师们分头在电脑上准备好大量的“看拼音写词”练习,在课堂上,学生每天都要拼写一部分生词,不会写的字词可以查阅老师提供的“词语表”。这样,学生打牢了写字的基础,作文中很少有错别字。

2、诵读、积累是关键。

一本教材我们尝试海量阅读教学法,一是略读教材中的部分文章,如《小英雄雨来》、《猎人海力布》等,学生自已默读一遍就行了。二是精读的文章也不去条分缕析,一个课时学二至四篇,先运用各种形式读书,例如听录音、自由读、开火车读等,然后教师直奔中心提出问题。很多文章,能够有感情朗读就行了,提不提问题并不重要。学生诵读的文章越多,朗诵、理解能力越高,到三年级时,不经过预习,只要默读一遍,或听一遍录音,学生就能有感情诵读。

不论课本还是课外书,都要在有感情朗读的基础上练习背诵口头填空题。背填空题速度快,而且孩子能带蒙加猜地理解所填词语。《三字经》《千字文》等古代蒙学作品,及诗词歌赋等押韵的经典也是在二、三年级诵读的重点。

(二)高年级段大量诵读经典 四、五、六年级化分为高年级段,因为这段时间,学生已把常用汉字基本写熟练,学生的写作能力也基本过关,语文课上有大量的时间用来持续默读,一星期读十万二十万字轻而易举,实现了真正意义上的海量阅读。这段时间阅读的内容主要有三类:

1、学习《中华上下五千年》《世界五千年》为经典铺路 学习了历史故事,孩子们在解读经典时就不仅能结合现实,也能结合历史,对经典的理解就能上升一个高度。

a、浮光掠影

回头再读

我们读的《中华上下五千年》分为上、中、下篇,共271个故事,每个故事前面附有一段引文,多是选自《史记》《资治通鉴》中的一小段文言文。先重点读白话文故事,文言引文只能粗略地、不求甚解地学习,自然学习的速度较快,精略地读完之后,当时搞不懂的地方竟“无师自通”了——给学生一篇陌生的文言文,全班每个学生都能比较流利地读出来,能解释大体意思。于是我们有了“深钻”文言引文的能力,又学习了第二遍。

b、读史学文

一举两得

我们忘不了自己是语文老师,在阅读历史故事的过程中学习语言。主要办法是通过多媒体设备出示一些练习,丰富学生的语言和历史知识。

汉高祖分封的同姓王到景帝时发展得像皇帝一样富有,他们目中__,狂妄__,特别是吴王刘濞竟然__得从来不到长安朝拜景帝。景帝推行____的政策,任用____的晁错。

上面的投影片选自《中华上下五千年》中《晁错削地招祸患》第一段的几句话。让学生明确汉景帝时发生“七国之乱”的原因,把历史事件记扎实。除此之外我还带领学生结合历史知识学习一些经典古文。如学完战国这一段历史,引领学生学习《过秦论》《六国论》;学完安史之乱,我们师生一起学习杜甫的《茅屋为秋风所破歌》等。

《世界五千年》的学习,基本靠学生自学,每天默读三十多页后进行讨论,并背诵填空题,学生不但熟记历史典故,而且学习了很多地理知识,还能对历史事件、历史人物谈出自己的独立见解。三.海量阅读必读本

1、三四年级通读《论语》

学《论语》的过程尽量轻松愉快一些,除了多联系生活外,还要做好一个准备:反复通读《论语》,理清其中的人物关系,了解人物的性格特点,掌握孔子的生平事迹。通过大量阅读,经典的学习渐入佳境,孔子的高大形象、伟大人格、至理名言逐渐成为我们师生心中的一座丰碑,大量阅读又一次成为包治百病的良药。

我们学习《论语》时,第一遍粗略地、不求甚解读,搞不懂的放过去。用不到三个星期学了十篇,学习的过程很简单:上课开始轮流读一遍,师生共同纠正错误读音,教师告诉学生哪几章是要求背诵的,哪几章是要求熟读的。然后,学生自己熟读、看译文背诵。同伴互查合格后找老师检查。学完1至10篇后进行复习。我们把要求背诵的和要求朗读的以5篇为单位打乱顺序印成文本,学生复习熟练后拿这个打乱顺序的文本自查,老师再抽查。

第二遍学习《论语》,重点是前后联系。按照顺序逐篇逐章让学生交流自己的认识,学生前后联系,边交流边翻书。比如,学习“君子病无能焉,不病人之不已知。”时联系“子曰:不患无位,患所以立。不患莫己知,求为可知也”。“君子求诸已,小人求诸人”。“不患人之不己知,患不知人也”。“不患人之不己知,患其不能了也”。

第三遍学习《论语》,以归类总结为主要内容。比如把孔子“教学”的章节一起显现,引导学生总结孔子如何学习如何教书育人,把有关“颜回、子贡、曾子、子路、子游、子张、子夏„„”众弟子的章节一起显现,把有关“管仲、子产、季康子、晏平仲”等历史和现实人物的章节一起显现,把谈论“仁道、君子、修身、为政、交友”等章节一起显现,引导学生去总结。孩子们把手里几本不同版本的《论语》前前后后地翻阅,把书都翻烂了。

我们把《论语》20篇全学完后进行总复习。我的学生惊奇地发现,当时只要求学生朗读的一些篇章,等学完全书后学生竟然能够轻而易举地背诵。全班学生都能正确熟读《论语》中的所有篇章,80%的学生能看译文背诵。

2、五六年级诵读《道德经》

我们照例先熟读,然后找出部分章节看译文背诵并讨论。在教学过程中我们十分注重与学生“商量”。比如《道德经》中哪些章节应该熟读,哪些章节应该背诵,我们师生都“辩论”一番,如果学生说得有理,老师就听他们的。孩子们为了能说服老师,他们查阅资料,寻找论据,往往还没有等集体学习,他们早就搞懂了。

读经典我们收获的不只是知识和阅读文言的能力,还有思想道德的升华。当学生在课堂上读或说“定能生慧,静能通神。”“重为轻根,静为躁君。”“巧言令色,鲜矣仁。”时,他们不只是在论证书上的观点,同时也在自我教育。于是好学好动的学生慢慢安静下来。撒谎、浮躁等毛病通过自律远离了学生。孩子们一个个充满阳光心态、诚实自律。“己所不欲,勿施于人。己欲立而立人,己欲达而达人”儒家思想中为他人着想的处事原则熏陶着我们。“老者安之,朋友信之,少者怀之”的伟大志向,“知其不可而为之”的顽强意志激励着我们。“人之生也直,罔之生也幸而免。”的人生法则告诫着我们„„老师们又对佛教经典也产生了兴趣。道家的谦下养生,佛家的圣净无主,儒家的精进利生,涤荡着繁杂的教师职业带来的浮躁、茫然,滋养着我们师生的从容优雅。

四、“海量阅读”班级特色------小说阅读

学校每班共读一本小说。

在低、中段讨论小说的重点是小说的内容,除了“片断赏读”,“猜猜这是谁?”的阅读游戏,“故事接龙显本领”等形式之外,学生们“发明“了“贴标签”,就是用一个词或一句话概括任何一本书、一个情节、一个故事、一个人物„„比如爱丽丝掉进兔子洞,那个洞“深不可测”,洞四周墙壁上有很多东西,让人“目不暇接”。再比如彼得潘学海盗贼的声音,学得很像,那叫“惟妙惟肖”。

海量阅读课题实施小结 篇6

一学期教七本书不是神话

浚县第二实验小学

张连锋

教书育人是教师的天职,教书是手段,育人是目的。学校教育就是要为社会培养合格公民和优秀人才。可是这些年来,我们大多情况下熟练地运用教书的手段,明争暗赛的培养着机械考试的高手,造成了严重的两极分化,普遍的厌学现象和道德滑坡。我们迷失在应试考试之中,忘记了育人的目的。怎样回归育人之道?《义务教育语文课程标准》要求:“要重视培养学生广泛的阅读兴趣,扩大阅读面,增加阅读量,提高阅读品位,提倡少做题,多读书,好读书,读好书,读整本的书。”著名教育家苏霍姆林斯基说过:“应该让孩子生活在书籍的世界里”。作家格林说过:“读书是世界上门槛最低的高贵行为”、“只有童年读的书,才会对人生产生深刻的影响”。我国著名学者、书香校园的首倡者朱永新先生在微博中则说:“没有阅读,就没有学生的精神成长”。而北大陈平原教授则认为:一辈子的道路决定于语文。真正的语文教育必须扩大阅读面,增加阅读量,去引导学生“读整本的书”。我们无论在课内还是课外都应该扩大孩子们的阅读量。

在本学期,我们课题组研究“课内外海量阅读”实验,我利用一切课堂时间,总共学习了七本书,具体做法如下:

一、化零为整,每天循序渐进

我们学校每天八点到八点二十有二十分钟的早读课,一般都是让学生熟悉课文的。而这个时间被我“公款私用”了,每天分享一首诗,有时候是现代诗,有时候是外国的优秀诗篇,有时候是与节气或者节日,或者单元主题有关的古诗,每天领着孩子们读诗,赏诗,背诗,也是“别有一番滋味在心头”。后来,发现了徐冬梅,薛瑞萍老师主编的《日有所诵》,如获至宝,从此,它成了我们早读课的主角。每天二十分钟,孩子们收获的不止一点点课外知识。

二、固定时间,养成习惯

阳光体育的时候,我们学校每个班的体育变成了三节。后来由于教师不够,每个班的一节体育课由班主任来上。由于基本的体育技能管体育的老师基本上都交过了,所以这一节课,我跟孩子们商量后又挪作他用了。《俗语儿歌100首》是一首简单易懂,道理简单的书,这节课每次抄五首,孩子们边抄边问,不认识的字查字典,不理解的就商量,商量完就背,背过了就说,说一句话或者一段话,用上今天所学习的俗语,这样学、背、用,一堂课基本上可以完成。有些当堂没有办法完成的,就当做课下作业,并联络家长一起督促。这样在孩子的生活中,遇到合适的情境,孩子们总是能说出一些有关的俗语,给别人出口成章的感觉,得到了别人的认可,孩子们学的尽头更大了。

三、整合资源,为我所用

国学经典走进课堂,给孩子们种植文化底蕴。《弟子规》《百家姓》《论语》《孟子》等纷纷走进各年级的课堂。《中华经典诵读》这套教材编的非常好,原文下面有注释,注释下面有译文,译文下面有故事链接。孩子们完全可以通过自己的用心阅读来理解,内化,吸收。我们这学期学的是《孟子》,孩子们已经不单单满足于每周五的阅读课来阅读这本书,放学后,吃饭余,他们都废寝忘食的读着。后来,他们纷纷找我说希望阅读更多的经典,于是我把课题组里其他班级的《增广贤文》借过来发到班里,孩子们如饥似渴的读起来。这样,我们用了同样的时间读了两本经典诵读,孩子们都满足而骄傲的说:“我们无法决定时间的长度,但我们拓宽了它的宽度。”

四、课本主角,力求详解

很多人劝我说:“课本是最基本的,一定要让孩子牢固掌握了课本,保证了考试成绩,才去干‘杂事’。”为了堵住悠悠之口,也为了向别人证明我做的是对的。我跟孩子们商量该怎么办。孩子们纷纷出谋划策,结合我们原来的学习方法,我们又制定了新的学习模式——“五读掌”。每天学习课文之前,自己在家里预习,解决生字等最基本的学习目标,在书本的空白处批上自己的理解,给不太懂的地方坐上标记。课堂上通过小组合作讨论,分享自己的理解所得,并解决昨天自己预习时所遇到的问题。下一步展示,小组推荐自己的批注里比较重要的地方,分享给全班同学。理解了课文后,演绎课文,选自己喜欢的地方或者感受最深的地方,通过朗读表演出来。孩子们基本上每堂课都在忙,忙于展示,忙于讨论,忙于分享,忙于表演......而且是乐在其中的忙。他们还说:“在别人展示的时候,认真听,一方面表示对别人的尊重,二是把别人的理解据为己有,我们就站在了巨人的肩膀上,自己就会变得更聪明。”

五、快速阅读,事半功倍

课堂变得高效,课文就学的特别快。在大半个学期的时候,我们就学完了课文,孩子们没有意思,就要求把我们的辅助读物《快乐作文》和《语文阅读》,也拿到课堂上用“五毒掌”来学习。由于,这两本书的单元主题是一样的,所以我们就合并学习,一次学习一个单元。通过预习,批注,提问,展示,演绎的方式,我们愉快的度过了一堂又一堂的语文课。我们知道了南京大屠杀使中国人前所未有的团结起来,我们知道了一个孩子一双小眼睛里有无数的情感,我们知道了......看着孩子们因学到了知识而闪光的笑脸,我心里特别欣慰。

研究称钻石可能存储海量数据 篇7

“我们率先发现可以把钻石作为超密存储的平台。”该研究的主要作者、纽约城市学院物理学家希德哈斯·多姆卡尔 (Siddharth Dhomkar) 说道。

有一部分钻石的晶体结构中缺失了一些碳原子, 从而构成了一些空穴。由于空穴周围聚集了一些氮原子, 因此这种缺陷被称作氮空穴色心 (nitrogen vacancy centers) 。研究人员用这样的钻石进行了一系列实验。

这些空穴中通常储存着电子, 因此使钻石带上了负电荷。不过, 研究人员可以通过向钻石发送激光, 将其转化为中性。在吸收了激光之后, 空穴的特性便会发生改变:它们在光线照射下不会再闪烁, 而是会始终保持黯淡的色泽。这一变化是可逆的, 持续时间很长, 并且弱光照射不会对其造成干扰。

这一研究发现说明, 钻石可以以负电荷和中性电荷的形式存储数据, 然后由激光完成读取、写入、抹除和重新写入等任务。

多姆卡尔指出, 每字节数据在钻石上仅需占据几纳米的空间, 比现有的任何数据存储设备都小得多, 因此有助于我们研发超密计算机存储技术。

不过, 研究人员目前还无法从如此微小的结构中读取或写入数据。但他们确实证明了自己可以解码3D形式的数据 (由2D图像堆叠而成) 。

“如果引入第三维度, 数据存储能力将大大提高。”多姆卡尔指出。利用研究人员所研发的3D数据存储技术, 我们或许能创造出一种新型数据存储光盘, 存储空间可达普通DVD光盘的100倍。

海量数据来袭 CIO无须紧张 篇8

围绕数据分析工作,市面上出现了众多相关技术,帮助企业管理和分析多种多样的庞大数据集。在这个高级分析技术的领域,由于IT服务产品的价格持续下降,用户可以用更少的IT预算来获取完善的服务、进行更多的信息分析,解决更复杂的问题。

随着分析技术的飞速发展和商业智能手段的日益高明,CIO现在完全可以做到大规模、低成本地分析业务数据。这也意味着,企业可以充分利用一切可利用的机会,获取更高的商业价值。

勇于接受海量数据

大数据是指庞大的数据集,尤其是那些未经组织、管理以适合传统数据仓库的数据集。虽然不是每一家公司都需要掌握处理庞大非结构化数据集的手段,但Verisk Analytics公司的CIO Perry Rotella认为,所有CIO都应该关注大数据分析工具。Verisk公司帮助金融公司评估风险,也帮助保险公司从理赔数据中识破欺诈,它在2010年的营收超过了10亿美元。Verisk公司的业务是“从你事先未知的数据中找到一定的模式和关联。”Rotella表示,企业的IT负责人应持数据越多越好的态度,并勇于接受海量数据。

HMS公司专门帮助客户实施医疗保险和医疗补助计划,同时也为企业控制医疗保健成本,其业务覆盖美国40多个州的卫生和福利计划以及130多个医疗补助管理型医疗保健计划。在2010年,通过避免错误支付,HMS帮助客户追回了18亿美元的成本,省下了数十亿美元的开销。该公司的CIO Cynthia Nustad认为,大数据呈“爆炸式发展”的趋势,“我们在努力获取、跟踪、分析大量资料,包括结构化数据和非结构化数据,尽管有时你可能都不知道自己在数据中到底要寻找什么。”

Hadoop是被谈论最多的大数据技术之一,作为一个开源的分布式数据处理平台,Hadoop最初被用来处理海量网页搜索之类的任务。最近它与另外几种所谓的“NoSQL”技术(包括CouchDB和mONGOdb)大行其道,正以新颖的方式管理大数据。

Hadoop能够处理PB级数据,具体步骤是把海量数据的子集分配给上千台服务器,然后由主调度器核对和整理每一台服务器返回的处理结果。Hadoop既可以用来准备好数据以便分析,本身也可以作为一款分析工具来使用。如果企业没有成千上万台备用服务器,可以向亚马逊等云服务提供商购买服务,根据具体需要访问Hadoop。

Nustad认为Hadoop有助于企业通过分析数据来识破欺诈和浪费现象,或许还可以用于分析多种格式的病人门诊记录。她表示,HMS确实在探究NoSQL技术的用途,但并非用于其庞大的医疗保险和医疗补助理赔数据库,因为这些数据库含有结构化数据,可以用传统的数据仓库技术来处理,而且为了大数据而弃用传统的关系数据库管理方法也不明智。

作为一家比较购物网站,Shopzilla每天积累的数据多达数TB。其CIO Mulkey说:“我们用Hadoop来处理过去用数据仓库来处理的任务,更重要的是,它能让我们做一些以前无法实现的、真正能满足需求的分析工作。”以前,Shopzilla要为数据取样和分类——处理这么多数据,工作量非常大。现在借助Hadoop,Shopzilla就能分析原始数据,跳过中间步骤。

像Rotella和Mulkey这种有Hadoop实践经验的CIO,他们所在的公司甚至会将数据分析服务当做一项业务来出售。

提速

从IT架构改革开始

“分析速度提升将是一个更大的趋势,而大数据技术只是这个趋势当中的一部分。”肯塔基大学的CIO Vince Kellen认为,“我们需要用更高级的技术来分析海量数据,因为我们希望迅速地获得分析结果。所以数据多少不重要,重要的是分析数据的效率。”

虽然几十年来,数据库一直通过缓存那些频繁访问的数据来提高性能,由于从磁盘获取数据在一定程度上是个机械过程,所以速度要比在内存中处理慢很多。现在看来,把庞杂数据全部装入到一台服务器或者多台服务器的内存中要更切实可行,磁盘只用来作备份。

Rotella表示:“现在我可在几秒钟内执行分析任务,而五年前我们需要花整整一个晚上。”他们对庞大数据集进行预测性分析,通常需要经历启动查询、寻找模式、进行调整等环节,然后再启动下一个查询,查询的执行时间对于分析速度影响很大。“原来,我们运行模型比建立模型费时间,而现在建立模型比运行模型更费时间。”

列式数据库服务器把数据库传统的组织方式颠倒过来。查询只访问相关的列,因而为评估几个关键列的应用程序提升了性能。为了提高分析性能,硬件同样很重要。保险和金融服务巨头John Hancock的CIO Allan Hackney已经开始尝试GPU加速的系统。他说:“可视化方面的运算与统计分析方面的运算非常相似,而GPU执行的运算速度比传统的PC和服务器处理器快几百倍。”

开源技术压低成本

从某种程度上说,计算能力的增加得益于内存和存储设备价格的不断下跌,此外有了付费产品之外的选择以及开源软件也迫使厂商降低价格。

Ternent在加入Island One之前是Pentaho开源商业智能公司的技术副总裁,他积极倡导开源技术,“在我看来,开源为公平竞争创造了条件。”

Ternent表示,开源工具一度只适用于基本的报告,而现在,它们提供了最先进的预测分析功能。“现在几乎所有领域都有开源厂商,这意味着谁有胆量用,谁就可以随意使用开源工具。”

HMS的Nustad发现,不断变化的经济因素也在改变着IT架构方面的一些基本选择。比如说,构建数据仓库的一个传统原因是在拥有计算功能的服务器上把数据整合起来。以前计算功能比较稀缺时,CIO会把分析任务从操作系统卸载下来,以免拖累日常任务的性能,现在就没必要这么做了。由于省略了移动数据、格式化以及把数据装入数据仓库的步骤,CIO直接在操作应用上进行分析能更快地获得结果。

不过Hackney表示,虽然现在的趋势正朝着有利于降低管理成本的方向发展,但节省的成本经常被增加的存储容量需求抵消。“这就像在原地跑步。虽然2011年John Hancock的存储成本下降了2%到3%,但存储使用量却增长了20%。”

为员工设计终端界面

对Nustad而言,移动商务是必须的。因为即使出门在外也要查看各种报告,了解公司是否履行了服务级别协议。她还希望让公司的客户可以通过移动设备访问自己数据,帮助他们监控和管理医疗保健开支。“这是一项客户非常喜欢的功能。五年前,客户不会要求提供这项功能,但现在他们对此非常关注。”

对于CIO来说,应对这个趋势的关键不是提供复杂的分析功能,而在于为智能手机、平板电脑和触摸屏设计用户界面。Kellen觉得这问题很容易解决。

但Rotella并不这么认为。“移动计算影响着每个人。使用iPad和其他移动设备办公的人越来越多,这个趋势会让员工使用企业计算资源的方式加速改变。”Rotella说,例如,Verisk开发了一种产品,可以让理赔员在现场访问分析结果,如此一来他们就能估算重置成本。这种方式可以充分利用分析结果,满足那些有需要的人。

技术在迅速变化,这是让CIO最感头疼的事情。Rotella认为,“两年前,我们没有iPad;现在,大家出去都带着iPad。由于移动设备操作系统有很多种,我们要努力了解如何才能最有效地利用自己的开发资源,避免进行重复的开发工作。”

Island One的Ternent表示,由于手机和平板电脑中浏览器的功能越来越强大,为每个移动平台开发原生应用程序的呼声也随之减弱,“如果我只需针对移动设备为基于Web的应用程序更换皮肤,就不一定非要开发定制的应用程序了”。

分析混合型的

社交媒体

随着Facebook、推特等社交媒体遍地开花,越来越多的公司想要分析这些网站的数据。现在,市场上已经出现了新的分析应用软件,包含语言处理、情感分析和网络分析等统计方法,它们已不再属于典型的智能商务“工具包”。

许多社交媒体的分析工具很新颖,常以服务的形式出售。一个突出例子是Radian6,该软件最近被Salesforce.com收入囊中。Radian6提供了一个仪表板,根据推特消息、Facebook公共帖子以及博客和讨论板会话上的帖子和留言,可以列出了提到品牌的各种评价。营销部门和客户服务部门买来这类工具后,基本上不需要麻烦IT部门。

不过,肯塔基州大学的Kellen表示,对于这类工具,他还在观望。他说:“我的任务是,确定这些技术中哪一种适合自己,然后再对相应的人员进行培训。”

与企业一样,肯塔基州大学也对监控其品牌评价很有兴趣。Kellen表示,他也有兴趣开发特定的应用程序,解决学校关注的具体问题,如学生流失等。例如,监控学生在社交媒体上发布的帖子可以帮助教职员工及早了解学生是否在学习上遇到了麻烦。戴尔公司的支持部门也会经常关注推特,以便及早发现是否有消费者发消息称自己的戴尔笔记本电脑坏掉的情况。Kellen表示,IT开发人员应想方设法,把社交媒体分析工具生成的报警机制融入到企业系统中,以便迅速应对那些事件。

Hackney说:“我们缺少挖掘分析社交媒体上大量帖子的工具。一旦你拥有数据,就需要获得相关事件的足够信息,那样才能把它们关联起来。” Hancock已经在这方面刚开始迈出步伐,把社交分析服务提供的数据与企业数据关联起来。例如,如果数据显示中西部用户对公司的评论以负面为主,他就要看看公司是不是改变了在该地区的价格或政策,从而导致这个状况发生。

上一篇:10兽医工作总结下一篇:国内净水机市场概述