㈠ 如何处理海量数据
在实际的工作环境下,许多人会遇到海量数据这个复杂而艰巨的问题,它的主要难点有以下几个方面:
一、数据量过大,数据中什么情况都可能存在。
如果说有10条数据,那么大不了每条去逐一检查,人为处理,如果有上百条数据,也可以考虑,如果数据上到千万级别,甚至 过亿,那不是手工能解决的了,必须通过工具或者程序进行处理,尤其海量的数据中,什么情况都可能存在,例如,数据中某处格式出了问题,尤其在程序处理时, 前面还能正常处理,突然到了某个地方问题出现了,程序终止了。
二、软硬件要求高,系统资源占用率高。
对海量的数据进行处理,除了好的方法,最重要的就是合理使用工具,合理分配系统资源。一般情况,如果处理的数据过TB级,小型机是要考虑的,普通的机子如果有好的方法可以考虑,不过也必须加大CPU和内存,就象面对着千军万马,光有勇气没有一兵一卒是很难取胜的。
三、要求很高的处理方法和技巧。
这也是本文的写作目的所在,好的处理方法是一位工程师长期工作经验的积累,也是个人的经验的总结。没有通用的处理方法,但有通用的原理和规则。
下面我们来详细介绍一下处理海量数据的经验和技巧:
一、选用优秀的数据库工具
现在的数据库工具厂家比较多,对海量数据的处理对所使用的数据库工具要求比较高,一般使用Oracle或者DB2,微软 公司最近发布的SQL Server 2005性能也不错。另外在BI领域:数据库,数据仓库,多维数据库,数据挖掘等相关工具也要进行选择,象好的ETL工具和好的OLAP工具都十分必要, 例如Informatic,Eassbase等。笔者在实际数据分析项目中,对每天6000万条的日志数据进行处理,使用SQL Server 2000需要花费6小时,而使用SQL Server 2005则只需要花费3小时。
二、编写优良的程序代码
处理数据离不开优秀的程序代码,尤其在进行复杂数据处理时,必须使用程序。好的程序代码对数据的处理至关重要,这不仅仅是数据处理准确度的问题,更是数据处理效率的问题。良好的程序代码应该包含好的算法,包含好的处理流程,包含好的效率,包含好的异常处理机制等。
三、对海量数据进行分区操作
对海量数据进行分区操作十分必要,例如针对按年份存取的数据,我们可以按年进行分区,不同的数据库有不同的分区方式,不 过处理机制大体相同。例如SQL Server的数据库分区是将不同的数据存于不同的文件组下,而不同的文件组存于不同的磁盘分区下,这样将数据分散开,减小磁盘I/O,减小了系统负荷, 而且还可以将日志,索引等放于不同的分区下。
四、建立广泛的索引
对海量的数据处理,对大表建立索引是必行的,建立索引要考虑到具体情况,例如针对大表的分组、排序等字段,都要建立相应 索引,一般还可以建立复合索引,对经常插入的表则建立索引时要小心,笔者在处理数据时,曾经在一个ETL流程中,当插入表时,首先删除索引,然后插入完 毕,建立索引,并实施聚合操作,聚合完成后,再次插入前还是删除索引,所以索引要用到好的时机,索引的填充因子和聚集、非聚集索引都要考虑。
五、建立缓存机制
当数据量增加时,一般的处理工具都要考虑到缓存问题。缓存大小设置的好差也关系到数据处理的成败,例如,笔者在处理2亿条数据聚合操作时,缓存设置为100000条/Buffer,这对于这个级别的数据量是可行的。
六、加大虚拟内存
如果系统资源有限,内存提示不足,则可以靠增加虚拟内存来解决。笔者在实际项目中曾经遇到针对18亿条的数据进行处理, 内存为1GB,1个P42.4G的CPU,对这么大的数据量进行聚合操作是有问题的,提示内存不足,那么采用了加大虚拟内存的方法来解决,在6块磁盘分区 上分别建立了6个4096M的磁盘分区,用于虚拟内存,这样虚拟的内存则增加为 4096*6 + 1024 =25600 M,解决了数据处理中的内存不足问题。
七、分批处理
海量数据处理难因为数据量大,那么解决海量数据处理难的问题其中一个技巧是减少数据量。可以对海量数据分批处理,然后处 理后的数据再进行合并操作,这样逐个击破,有利于小数据量的处理,不至于面对大数据量带来的问题,不过这种方法也要因时因势进行,如果不允许拆分数据,还 需要另想办法。不过一般的数据按天、按月、按年等存储的,都可以采用先分后合的方法,对数据进行分开处理。
八、使用临时表和中间表
数据量增加时,处理中要考虑提前汇总。这样做的目的是化整为零,大表变小表,分块处理完成后,再利用一定的规则进行合 并,处理过程中的临时表的使用和中间结果的保存都非常重要,如果对于超海量的数据,大表处理不了,只能拆分为多个小表。如果处理过程中需要多步汇总操作, 可按汇总步骤一步步来,不要一条语句完成,一口气吃掉一个胖子。
九、优化查询SQL语句
在对海量数据进行查询处理过程中,查询的SQL语句的性能对查询效率的影响是非常大的,编写高效优良的SQL脚本和存储 过程是数据库工作人员的职责,也是检验数据库工作人员水平的一个标准,在对SQL语句的编写过程中,例如减少关联,少用或不用游标,设计好高效的数据库表 结构等都十分必要。笔者在工作中试着对1亿行的数据使用游标,运行3个小时没有出结果,这是一定要改用程序处理了。
十、使用文本格式进行处理
对一般的数据处理可以使用数据库,如果对复杂的数据处理,必须借助程序,那么在程序操作数据库和程序操作文本之间选择, 是一定要选择程序操作文本的,原因为:程序操作文本速度快;对文本进行处理不容易出错;文本的存储不受限制等。例如一般的海量的网络日志都是文本格式或者 csv格式(文本格式),对它进行处理牵扯到数据清洗,是要利用程序进行处理的,而不建议导入数据库再做清洗。
十一、定制强大的清洗规则和出错处理机制
海量数据中存在着不一致性,极有可能出现某处的瑕疵。例如,同样的数据中的时间字段,有的可能为非标准的时间,出现的原因可能为应用程序的错误,系统的错误等,这是在进行数据处理时,必须制定强大的数据清洗规则和出错处理机制。
十二、建立视图或者物化视图
视图中的数据来源于基表,对海量数据的处理,可以将数据按一定的规则分散到各个基表中,查询或处理过程中可以基于视图进行,这样分散了磁盘I/O,正如10根绳子吊着一根柱子和一根吊着一根柱子的区别。
十三、避免使用32位机子(极端情况)
目前的计算机很多都是32位的,那么编写的程序对内存的需要便受限制,而很多的海量数据处理是必须大量消耗内存的,这便要求更好性能的机子,其中对位数的限制也十分重要。
十四、考虑操作系统问题
海量数据处理过程中,除了对数据库,处理程序等要求比较高以外,对操作系统的要求也放到了重要的位置,一般是必须使用服务器的,而且对系统的安全性和稳定性等要求也比较高。尤其对操作系统自身的缓存机制,临时空间的处理等问题都需要综合考虑。
十五、使用数据仓库和多维数据库存储
数据量加大是一定要考虑OLAP的,传统的报表可能5、6个小时出来结果,而基于Cube的查询可能只需要几分钟,因此处理海量数据的利器是OLAP多维分析,即建立数据仓库,建立多维数据集,基于多维数据集进行报表展现和数据挖掘等。
十六、使用采样数据,进行数据挖掘
基于海量数据的数据挖掘正在逐步兴起,面对着超海量的数据,一般的挖掘软件或算法往往采用数据抽样的方式进行处理,这样 的误差不会很高,大大提高了处理效率和处理的成功率。一般采样时要注意数据的完整性和,防止过大的偏差。笔者曾经对1亿2千万行的表数据进行采样,抽取出 400万行,经测试软件测试处理的误差为千分之五,客户可以接受。
还有一些方法,需要在不同的情况和场合下运用,例如使用代理键等操作,这样的好处是加快了聚合时间,因为对数值型的聚合比对字符型的聚合快得多。类似的情况需要针对不同的需求进行处理。
海量数据是发展趋势,对数据分析和挖掘也越来越重要,从海量数据中提取有用信息重要而紧迫,这便要求处理要准确,精度要高,而且处理时间要短,得到有价值信息要快,所以,对海量数据的研究很有前途,也很值得进行广泛深入的研究。
㈡ “大数据”与“海量数据”有哪些区别
最根本的区别就是:
海量数据是一家公司,成立于2007年,是中国数据技术领航企业。
专注于数据库产品研发、销售和服务,拥有两大数据库产品:基于开源的“云图数据库(AtlasDB)”和自主可控的“海量数据库(Vastbase)”。
大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
(2)海量数据扩展阅读
大数据的影响:
以大数据、物联网驱动的新经济的含义,除了包括阿里、腾讯这些天生具有数字基因的企业崛起,更重要的是整个商业社会在数字化进程中,企业组织架构、商业模式、业务流程、管理方式的变革,大数据影响的绝不仅仅是技术。
数字经济不仅仅影响了人与人、人与物之间的连接,也改变了社会,改变了组织。
㈢ 海量数据的介绍
海量数据是北京海量数据技术股份有限公司的简称,创立于2007年,是中国领先的数据技术服务提供商,业务涵盖数据技术的系统集成、技术服务和产品研发,旗下控股2家子公司:北京海量云信息技术有限公司、海量云图(北京)数据技术有限公司。公司总部设在北京,在沈阳、济南、上海、南京、武汉、广州、深圳、成都、西安等多个城市设有办事机构,海量数据自成立以来一直保持强劲发展势头,年均复合增长率超过35%。
㈣ 大数据与海量数据的特点
大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
魔方(大数据模型平台)
大数据模型平台是一款基于服务总线与分布式云计算两大技术架构的一款数据分析、挖掘的工具平台,其采用分布式文件系统对数据进行存储,支持海量数据的处理。采用多种的数据采集技术,支持结构化数据及非结构化数据的采集。通过图形化的模型搭建工具,支持流程化的模型配置。通过第三方插件技术,很容易将其他工具及服务集成到平台中去。数据分析研判平台就是海量信息的采集,数据模型的搭建,数据的挖掘、分析最后形成知识服务于实战、服务于决策的过程,平台主要包括数据采集部分,模型配置部分,模型执行部分及成果展示部分等。
大数据平台数据抽取工具
大数据平台数据抽取工具实现db到hdfs数据导入功能,借助Hadoop提供高效的集群分布式并行处理能力,可以采用数据库分区、按字段分区、分页方式并行批处理抽取db数据到hdfs文件系统中,能有效解决大数据传统抽取导致的作业负载过大抽取时间过长的问题,为大数据仓库提供传输管道。数据处理服务器为每个作业分配独立的作业任务处理工作线程和任务执行队列,作业之间互不干扰灵活的作业任务处理模式:可以增量方式执行作业任务,可配置的任务处理时间策略,根据不同需求定制。采用异步事件驱动模式来管理和分发作业指令、采集作业状态数据。通过管理监控端,可以实时监控作业在各个数据处理节点作业任务的实时运行状态,查看作业的历史执行状态,方便地实现提交新的作业、重新执行作业、停止正在执行的作业等操作。
互联网数据采集工具
网络信息雷达是一款网络信息定向采集产品,它能够对用户设置的网站进行数据采集和更新,实现灵活的网络数据采集目标,为互联网数据分析提供基础。
未至·云(互联网推送服务平台)
云计算数据中心以先进的中文数据处理和海量数据支撑为技术基础,并在各个环节辅以人工服务,使得数据中心能够安全、高效运行。根据云计算数据中心的不同环节,我们专门配备了系统管理和维护人员、数据加工和编撰人员、数据采集维护人员、平台系统管理员、机构管理员、舆情监测和分析人员等,满足各个环节的需要。面向用户我们提供面向政府和面向企业的解决方案。
显微镜(大数据文本挖掘工具)
文本挖掘是指从文本数据中抽取有价值的信息和知识的计算机处理技术, 包括文本分类、文本聚类、信息抽取、实体识别、关键词标引、摘要等。基于Hadoop MapRece的文本挖掘软件能够实现海量文本的挖掘分析。CKM的一个重要应用领域为智能比对, 在专利新颖性评价、科技查新、文档查重、版权保护、稿件溯源等领域都有着广泛的应用。
数据立方(可视化关系挖掘)
大数据可视化关系挖掘的展现方式包括关系图、时间轴、分析图表、列表等多种表达方式,为使用者提供全方位的信息展现方式。
㈤ 海量数据存储一般用在什么地方
分布式存储是一种数据存储技术,它通过网络使用企业中每台机器上的磁盘空间,这些分散的存储资源构成了虚拟存储设备,数据分布存储在企业的各个角落。你可以咨询下瑞驰,专业做数据存储的。
㈥ 大数据的一定是海量数据吗实时的源源不断的产生的数据是不是大数据
就一定是海量数据吗?实时的源源不断地产生数据他。是大数据的。
㈦ 海量数据存储
存储技术经历了单个磁盘、磁带、RAID到网络存储系统的发展历程。网络存储技术就是将网络技术和I/O技术集成起来,利用网络的寻址能力、即插即用的连接性、灵活性,存储的高性能和高效率,提供基于网络的数据存储和共享服务。在超大数据量的存储管理、扩展性方面具有明显的优势。
典型的网络存储技术有网络附加存储NAS(Network Attached Storage)和存储区域网SAN(Storage Area Networks)两种。
1)NAS技术是网络技术在存储领域的延伸和发展。它直接将存储设备挂在网上,有良好的共享性、开放性。缺点是与LAN共同用物理网络,易形成拥塞,而影响性能。特别是在数据备份时,性能较低,影响在企业存储应用中的地位。
2)SAN技术是以数据存储为中心,使用光纤通道连接高速网络存储的体系结构。即将数据存储作为网络上的一个区域独立出来。在高度的设备和数据共享基础上,减轻网络和服务器的负担。因光纤通道的存储网和LAN分开,使性能得到很大的提高,而且还提供了很高的可靠性和强大的连续业务处理能力。在SAN中系统的扩展、数据迁移、数据本地备份、远程数据容灾数据备份和数据管理等都比较方便,整个SAN成为一个统一管理的存储池(Storage Pool)。SAN存储设备之间通过专用通道进行通信,不占用服务器的资源。因此非常适合超大量数据的存储,成为网络存储的主流。
3)存储虚拟化技术是将系统中各种异构的存储设备映射为一个单一的存储资源,对用户完全透明,达到互操作性的目的和利用已有的硬件资源,把SAN内部的各种异构的存储资源统一成一个单一视图的存储池,可根据用户的需要方便地切割、分配。从而保持已有的投资,减少总体成本,提高存储效率。
存储虚拟化包括3个层次结构:基于服务器的虚拟化存储、基于存储设备的虚拟化存储和基于网络的虚拟化存储。
1)基于服务器的虚拟化存储由逻辑管理软件在主机/服务器上完成。经过虚拟化的存储空间可跨越多个异构的磁盘阵列,具有高度的稳定性和开放性,实现容易、简便。但对异构环境和分散管理不太适应。
2)基于存储设备的虚拟化存储,因一些高端磁盘阵列本身具有智能化管理,可以实现同一阵列,供不同主机分享。其结构性能可达到最优。但实现起来价格昂贵,可操作性差。
3)基于网络的虚拟化存储,通过使用专用的存储管理服务器和相应的虚拟化软件,实现多个主机/服务器对多个异构存储设备之间进行访问,达到不同主机和存储之间真正的互连和共享,成为虚拟存储的主要形式。根据不同结构可分为基于专用服务器和基于存储路由器两种方式。①基于专用服务器的虚拟化,是用一台服务器专用于提供系统的虚拟化功能。根据网络拓扑结构和专用服务器的具体功能,其虚拟化结构有对称和非对称两种方式。在对称结构中数据的传输与元数据访问使用同一通路。实现简单,对服务器和存储设备的影响小,对异构环境的适应性强。缺点是专用服务器可能成为系统性能的瓶颈,影响SAN的扩展。在非对称结构中,数据的传输与元数据访问使用不同通路。应用服务器的I/O命令先通过命令通路传送到专用服务器,获取元数据和传输数据视图后,再通过数据通路得到所需的数据。与对称结构相比,提高了存储系统的性能,增加了扩展能力。②基于存储路由器的SAN虚拟化,存储路由器是一种智能化设备,既具有路由器的功能,又针对I/O进行专门优化。它部署在存储路由器上,多个存储路由器保存着整个存储系统中的元数据多个副本,并通过一定的更新策略保持一致性。这种结构中,因存储路由器具有强大的协议功能,所以具有更多的优势。能充分利用存储资源,保护投资。能实现软硬件隔离,并辅有大量的自动化工具,提高了虚拟服务器的安全性,降低对技术人员的需求和成本。
㈧ 怎么在海量数据中找出重复次数最多的一个
以IP为例:
1、以IP % 10000 (ip 是个32位整数) 为文件名 将IP存入文件
2、用HASH统计每个文件中出现最多的IP 记录下来
3、比较每个文件中出现最多的IP 来得到总出现最多的IP