前言
既然你开始阅读本书,那么就应该知道,近几年来,数据管理领域发生了巨大的变化。我们已经看到了从第三方专有解决方案到新的开源分布式数据系统的转变。通常使用“大数据”来指代这些新的解决方案(我们发现这个词的指代作用越来越弱),但其实早期的很多专有系统也采用了可以存储和处理大量数据的分布式架构。尽管这些专有解决方案和新的开源解决方案都可以用来解决很多相同的问题,但它们之间存在一些明显的差异,这些差异促成了新系统的发展。这些差异不仅体现在开源的经济性方面,也与技术的发展有关。技术的发展促进了新系统的实现,而如果使用以前的解决方案来实现这些系统颇具挑战性。
随着这些系统的发展,出现了很多相关的书、文章、培训、会议等。这些资源可以帮助你以及这个领域的其他从业者更好地使用这些系统。那么,为什么还要再写一本与“大数据”相关的书呢?我们想说的是:不要因为一棵树而错过整片森林。这些资源大都侧重于底层的细节,例如使用MapReduce或Spark之类的分布式处理引擎来实现应用程序,或者应用高级算法来分析数据。除此之外,也有一些资源关注更高层次的架构,例如由本书作者和另外两位作者合著的《Hadoop应用架构》。
这些资源缺乏的是一个更广阔的视野,换句话说,需要采取哪些步骤来确保数据项目能够从规划阶段成功地走到执行阶段?要成功地实施数据项目,获取与架构和组件系统相关的专业知识固然重要,但其他的一些考虑因素也同样重要,而这些因素往往在探索新技术的过程中被忽视。
这些考虑因素包括:
• 理解问题;
• 选择适合用例的软件解决方案;
• 应对项目风险;
• 组建团队,以便成功交付项目;
• 在项目进行过程中,实现健壮、可维护的架构和解决方案。
如果你是经验丰富的软件开发人员,可能已经很熟悉这些因素了。成功管理现代数据项目的大部分流程与管理其他软件开发项目是一样的,只是在开发新的软件系统和架构时,需要一些新的知识,还需要考虑到一些额外的事项。例如,评估开源软件与选择专有解决方案有很大的不同。我们的目的不是提供又一本有关软件项目管理的书,而是指导你将行之有效的项目管理和开发实践应用到现代数据解决方案中。