随着社会的信息化发展,企业IT化的不断完善,业务的不断扩展,服务质量的不断提高,企业数据越来越庞大:如何从海量数据中快速获取自己需要的数据?如何能够完成越来越复杂的数据计算?在数据仓库和数据库中的数据以TB\GB级增长的时候,如何能够保证数据查询和计算的高效率和响应度?这些问题都给CIO带来了严峻的挑战。
针对上述的问题,包括Teradata、IBM、ORACLE、EMC、Apache基金会等众多的公司和机构,都提出了自己的解决方案。笔者在多年的BI实施过程中,对上述公司的解决方案,或多或少都有所涉及,在这里,仅按自己的理解,对这些方案进行归纳和总结,因为笔者的水平有限,观点难免有错误和片面之处,也希望读者给予指正。
笔者认为:当前数据计算所面临的问题,主要集中在三个方面:第一是数据存取和数据交换时的I/O瓶颈问题,第二是复杂计算模型的完备性问题,第三是数据计算本身的性能问题。
I/O瓶颈问题,主要表现在和硬盘的交互以及通过网络输入输出,一般来说使用高转速的硬盘以及增加网络带宽可以获得一定程度的缓解,大部分情况下不会成为瓶颈。数据量大到一定程度时可以使用数据库集群,不过数据库扩容成本很高,该方案不是一个很优的选择。
复杂计算模型的完备性问题,影响的主要是开发效率。程序员一般采取两种方式实现数据计算:第一是使用SQL/存储过程,众所周知,SQL是结构化查询语言的最小完备集。但是最小完备集并不是最好用的完备集,SQL的问题有很多:无序集合、集合化不彻底、没有对象引用等等。虽然在SQL 2003标准中增加了一些窗口函数,但是扩展的程度有限,易用性也有限。所以SQL虽然提供了完备的计算体系,可是开发效率太低。第二是编程实现或者使用第三方工具。目前市面上很少有第三方工具具备完备的计算体系,编程则遇到同样的问题:开发效率太低。
数据计算本身的性能问题则是一个最严重的问题。理论上,以存储过程或复杂SQL来实现计算逻辑是保证性能最好的做法,数据库有很多优化措施,且本身是c语言开发,可以让计算更快。但是优化总是有限的,数据量大到一定程度,性能终究是个瓶颈。
能有效解决性能问题的唯一办法就是并行计算。目前提供并行计算的产品有两大类,一类是以TD、GreenPlum为代表的MPP数据库产品,其优点是计算快,并行算法透明,缺点是数据库扩容成本太高,每增加一个并行节点则要增加不菲的费用,一般用户承受不起。
另一类以Hadoop为代表的分布式数据处理的软件框架,该方案把数据存储在分布式文件系统HDFS里。HDFS分布式文件系统很好地解决了IO问题,并具有很强的容错能力,是个很优秀的数据存储方案。但是Hadoop提供的并行框架MapReduce则不敢苟同了,该框架是为非结构化数据的搜索统计而设计的, 由于本身不提供算法,又没有现成的类库,导致程序员编写算法难度很高,工作量很大。同时由于MapReduce框架把任务拆分得过细,使得很简单的一个计算任务,需要编写数个Map 和Reduce方法来实现,开发和运行效率都很低。
因此笔者认为,理想的大数据计算模式,应该具备以下特征:
1、计算层独立于数据库和应用程序之外,既不受数据库难扩容的影响,也不受应用程序的限制。
2、计算层能够访问分布式文件系统(如HDFS等),便于在海量数据时避开IO瓶颈。
3、具有足够完备的计算体系,在编写算法时,有丰富的类库和方法支持,减轻开发工作量。
4、计算层提供并行框架,并行节点扩充容易,成本低廉。且数据块的拆分比较灵活,允许程序员根据实际情况随意指定。
5、计算层对外提供标准的数据访问接口, 如JDBC等
作者介绍:张淳,从2008年起一直从事BI领域数据计算和分析方面的咨询和项目实施工作。在电信、移动、金融、能源等领域处理海量结构化数据业务方面,具有丰富的咨询和项目实施经验。现在北京微视角软件技术有限公司担任资深产品支持顾问。
分享到:
相关推荐
Spark的内存计算机制极大地提高了数据处理速度,使其成为大数据实时分析的理想选择。 在架构设计上,项目可能采用微服务架构,将系统分解为可独立部署的服务,每个服务专注于特定的功能,如数据采集、数据处理和...
它具有高容量、高速度和多样性的特性,通常涉及结构化、半结构化和非结构化数据。大数据组件包括多个开源工具,它们协同工作,提供数据处理、分析和可视化等功能。 1. **Hadoop**:Hadoop是大数据处理的核心框架,...
随着智慧水务项目的推进,数据多维化、实时化、精细化导致数据量急剧增加,水务数据展现出了典型的大数据特征,包括数据源多、结构异构、种类复杂、分布不均、数据量大等特点。传统的集中式存储管理模式已无法满足日...
多样性则是指数据种类繁多,包括结构化数据和非结构化数据;高速性则体现在数据的出现、处理和分析速度都在持续加快。互联网技术的持续发展,使得数据规模和种类还在不断增加,不同的组织基于各自的需求对大数据的...
可以使用Spark SQL进行结构化数据处理,MLlib进行机器学习,GraphX处理图数据,以及Spark Streaming处理实时流数据。对于`small_user.csv`,甚至可以直接在内存中完成整个处理流程,提高效率。 对于深度学习,用户...
例如,在材料科学中,通过大数据驱动的自动化试验,可以快速筛选出具有理想性能的材料配方,显著提升了新材料的研发速度。 最后,大数据在数据可视化方面也有显著作用。通过数据可视化工具,研究人员可以直观地理解...
传统数据库专注于处理结构化数据,而大数据平台则需要处理结构化、半结构化和非结构化数据。巨杉数据库支持灵活的数据类型,能更好地适应多样化的数据需求。 1.1.3.2 巨杉的产品框架 巨杉数据库采用文档类型数据...
云计算则涵盖了通过互联网提供计算资源和服务的模式,包括基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS),在业务运营中发挥着关键作用。 【部分内容】:模板中的“CONTRACTED WIND POWERPOINT ...
计算机软件技术在抽样数据管理环节的应用,可以将具有代表性研究意义的信息和数据作为基础样本,建立完整的分析体系,维护管理模式的综合价值,通过搜集突出的信息数据,完成对应的信息分析工作。 计算机软件技术在...
2. 种类繁多:数据来源广泛,包括结构化、半结构化和非结构化数据。 3. 高速获取:数据生成速度快,需要实时或近实时处理。 4. 数据质量:数据准确、可靠,是决策的重要依据。 5. 来源复杂:数据来自多个渠道,需要...
它涵盖了各种类型的数据源,如结构化数据(数据库)、半结构化数据(XML文档)和非结构化数据(社交媒体内容、图片、音频、视频等)。大数据的处理需要专门的技术,例如分布式计算框架Hadoop和Spark,以及数据存储...
大数据可视化平台是现代数据分析领域的重要组成部分,它利用高级的图形化技术将复杂的数据集转换成易于理解的图像,使得用户可以快速洞察数据背后的模式、趋势和异常情况。在这个数字化时代,随着数据量的爆炸性增长...
综上所述,Iceberg 作为一款开源的数据湖技术,不仅解决了传统数据处理中存在的诸多问题,还提供了丰富的功能支持,包括但不限于数据存储与计算引擎插件化、实时流批一体化处理、灵活的表结构演变、模式演化以及分区...
3. **多模态支持**:SuperSQL可以处理结构化、半结构化和非结构化数据,适应数据湖中的多样性。 4. **实时分析**:利用列式存储和内存计算技术,SuperSQL能够在大数据集上实现亚秒级的查询响应时间,支持实时业务...
它使得企业能够便捷地将结构化数据导入到Hadoop集群,或者从Hadoop导出数据到关系型数据库,支持大规模数据的离线分析。 PaaS(Platform as a Service)在合集中也被提及,它是云计算的一种服务模式,提供了开发、...
其次,数据挖掘技术,如机器学习和人工智能算法,用于从非结构化和半结构化数据中提取有价值的信息。此外,实时分析和流式计算技术也至关重要,以应对数据的高速生成。最后,数据安全和隐私保护是不可忽视的一环,...
3. **Variety**:数据来源广泛,包括结构化、半结构化和非结构化数据。 4. **Value**:通过分析大数据,可以挖掘出有价值的信息,支持决策、洞察市场趋势和优化业务流程。 **云计算与大数据的结合** 云计算为...
这些数据可能来自各种来源,如社交媒体、物联网设备、网页浏览记录等,包含结构化、半结构化和非结构化数据。 【大数据与云计算的关系】 大数据与云计算相互依存。云计算为大数据提供了存储和处理的能力,大数据则...
大数据的产生源自于数据产生方式的变革,如社交媒体、物联网设备、在线交易等,这些都产生了海量的非结构化和半结构化数据。例如,谷歌通过分析用户的搜索行为成功预测了流感的爆发,展示了大数据在公共卫生领域的...