大数据是当今许多企业IT运营的一个重要组成部分。据知名调研公司IDC预测,到2019年,大数据市场产值将达到1870亿美元。大数据是数据分析的一个关键部分,而分析又是机器和人类商业智能及决策的基础。因为很明显,要是没有某种基础设施,你无法获得各种数据:大数据、小数据或完全正确的数据,所以有必要看一看有助于构建成功大数据架构的几个因素。
其中,一些因素可能看起来很明显,另一些则比较微妙。实际上,所有因素共同对你的大数据系统将支持的分析和行动带来巨大的影响。
当然,不是说只有这七个因素才会对大数据基础设施的工作方式带来影响。大数据系统牵涉好多部分,但这七个因素值得你考虑,因为它们是许多其他部分和流程的基础。
眼下,你可能在使用大数据,即便你是在一家小公司工作。这要拜现有的基础设施部分所赐――其中许多部分连最小的IT部门也能访问。
伴随这种可访问性而来的是,那些本身并不拥有数据科学专长的小公司员工可能感到困惑和沮丧。如果你处于这种情形,本文不会消除你的所有困惑,但是让你可以开始向潜在的服务提供商和供应商提一些针对性的问题。
大数据远不止Hadoop
在平常的谈话中,大数据和Hadoop常常被人换着使用。这样的结果让人遗憾,因为大数据远不止Hadoop。 Hadoop是一种文件系统(而不是数据库),旨在跨数百或数千个处理节点传送数据。它用于许多大数据应用,原因是作为一种文件系统,它擅长处理非结构化数据,这类数据甚至不像其周围的数据。当然,一些大数据是结构化的,为此你需要一个数据库。但数据库是本文介绍的一个不同因素。
Hive和Impala将数据库引入到Hadoop
这里说的是面向大数据世界中结构化数据的数据库。如果你想让Hadoop数据平台井然有序,那么Hive可能正是你需要的。这种基础设施工具让你可以针对非常不像SQL的Hadoop处理类似SQL的操作。
如果你有一部分数据很容易放在结构化数据库中,那么Impala是旨在驻留在Hadoop里面的数据库,它还可以使用你从Hadoop转换到SQL过程中开发的Hive命令。所有这三个(Hadoop、Hive和Impala)都是Apache项目,所以它们都是开源的。
Spark用于处理大数据
到目前为止,我们一直在谈论存储和组织数据。但是,如果你想实际处理数据又怎么样?这时候,你就需要一种像Spark这样的分析和处理引擎。Spark是另一个Apache项目,它包括一批开源和商业产品,拿来你添加到数据湖、仓库和数据库的数据后,对数据做一些有用的操作。
由于它可以访问你能想象的任何数据的库,Spark可用于处理存储在各种地方的各种数据。它同样是开源的,所以你可以随意修改它。
你可以对大数据执行SQL操作
许多人知道如何构建SQL数据库和编写SQL查询。面对大数据时,这种专长没有必要浪费。Presto是一种开源SQL查询引擎,它让数据科学家可以使用SQL查询,查询驻留在从Hive到专有商业数据库管理系统的任何环境的数据库。它被Facebook之类的大公司用于交互式查询,而交互式查询这个短语是关键。Presto就好比是一种对庞大数据集执行即席交互式查询的工具。
在线存储有一席之地
一些大数据任务需要用到不断变化的数据。有时候,这是定期添加的数据,有时是通过分析而更改的数据。不管在什么情况下,如果你的数据写入与读取一样频繁,那么你就需要该数据存储在本地、联机。如果你支付得起成本,还希望数据存储在固态存储介质上,因为这会大大加快速度――如果你在零售或交易场地的人员焦急地等待结果返回,这是个重要的考虑因素。
云存储也有一席之地
如果在更庞大的聚合数据库上进行分析,那么云是完美的平台。聚合数据并传输到云,运行分析,然后拆掉实例。这正是云最擅长的那种弹性需求响应。操作不会受到互联网可能带来的任何延迟问题的显著影响。如果你把在专用本地系统上进行的实时分析与云端运行的深度分析结合起来,那么离充分发挥大数据基础设施的潜力近在咫尺。
别忘了可视化
分析大数据是一回事,以一种对大多数人有意义的方式来显示分析结果又是另一回事。图形对于整个“解读”工作大有帮助,所以应该将数据可视化视作是大数据基础设施的一个关键部分。
幸好,有许多方法可以实现可视化,从JavaScript库、商业可视化软件包到在线服务,不一而足。最重要的是什么?从中选择一小部分,试一试,并且让你的用户尝试一下。你会发现,可靠的可视化是让你的大数据分析尽可能出成果的最佳方式。
以上就是你在企业处理大数据时应知道并牢记的七个关键。