无论从硬件还是软件角度出发,您面向大数据构建的基础设施都会对所支持大数据系统的分析与操作带来巨大影响。在今天的文章中,我们将了解七项重要的大数据架构设计原则。
大数据不仅是Hadoop
在大多数人的理解当中,大数据与Hadoop几乎可以等而论之。事实上,大数据远不止Hadoop这么简单。Hadoop是一套文件系统(而非数据库),其负责将数据传播至成百上千个处理节点当中。其之所以在大数据应用中广泛出现,是因为作为文件系统,它能够很好地处理非结构化数据——甚至包括一些看起来根本不算是数据的素材。
Hive与Impala将数据库引入Hadoop
下面聊聊大数据世界中结构化数据部分的对应数据库选项。如果大家希望以明确次序管理Hadoop数据平台,那么Hive应是最佳选项。这是一款基础性结构工具,允许大家在非SQL Hadoop当中执行SQL类操作。
如果大家的一部分数据能够轻松旋转在结构化数据库当中,那么Impala则更为合适——除了自身功能外,它还能够直接利用您已经开发出的Hive命令。Hadoop、Hive与Impala皆属于Apache项目,因此其全部为开源成果——请随意使用。
Spark用于处理大数据
截至目前,我们已经探讨了数据的存储与整理。然而,我们该如何对数据进行实际操作?这代表着我们需要一套分析与处理引擎,例如Spark。Spark亦属于Apache项目,能够将您的大批量数据整理为湖、仓储乃至数据库并进行实用性处理。
Spark亦可用于处理存储在任意位置的各类数据,因为丰富的库选项使其拥有了极为广泛的访问能力。另外,由于其属于开源项目,因此大家能够随意修改其核心内容。
可以立足大数据执行SQL操作
很多朋友可能非常熟悉SQL数据库构建与SQL查询编写工作。这方面专业知识在大数据领域同样拥有用武之地。Presto是一套开源SQL查询引擎,允许数据科学家利用SQL查询以检索从Hive到专有商用数据库等各类数据库系统。Facebook等巨头级企业都在利用其进行交互查询,因此我们基本可以将Presto视为一套理想的大规模数据集交互式查询工具。
在线存储同样需要接地平台
大数据领域中的相当一部分任务要求对数据进行快速变更——例如定期添加数据或者对变更数据进行分析等。无论如何,如果大家的数据拥有几乎对等的读取与写入频度,那么应当同时在本地与在线端保留数据副本。如果预算允许,使用固态存储无疑效果更好,因为这能够显著提升数据处理速度。
云存储的必要性
在对大规模聚合数据库进行分析时,云存储将成为最为理想的存储平台。大家可以将数据聚合后传输至云端,运行分析而后移除对应实例。数据处理不会受到互联网性能的影响。另外,如果大家将内部实时分析系统与云端深度分析方案加以结合,则能够大程度发挥大数据基础设施的全部潜力。
别忘了可视化机制
除了大数据分析,将结果以易于理解的方式加以呈现同样非常重要,而数据可视化正是实现这一效果的关键性工具。
幸运的是,目前市面上提供多种可视化处理选项。大家可以选择一部分并加以尝试,同时了解用户的反馈意见以判断其效果。总而言之,可视化是实现大数据分析价值的最佳方式。