大数据一般人听着比较复杂,觉得可能需要很大成本来部署和实施。幸运地是市面上已经有一些云服务来帮助我们让大数据变得更简单。另外,如果你选择合适的开源工具,也往往会使你的大数据之路起到事半功倍的效果。下面会列出实用并且较低成本的大数据实施系统,供参考。
请注意本文不讨论实时或者流数据处理,如果你在寻找那些方面的解决方案,为了节省你的时间,我们建议你忽略本文。
在选择据具体大数据工具之前,你好回答两个问题:
1.你的数据有多大?
2.你希望你的数据查询要多快?
第一个问题决定你需要什么样的大数据存储系统,第二个问题决定你需要什么样的查询或者执行引擎。下面是基于对这两个问题的不同回答,推荐采用的一些工具。
1.超大数据(几百TB),查询时间容忍度很高(几小时)
这个是批处理(batch processing)适用的场景。一个可行的方案是:AWS S3 + Apache Spark.你可以执行Spark 任务,读取S3中的数据,然后将计算结果存成CSV 文件,最后用Excel 分析或者可视化结果。
2.中等规模数据(几十TB),希望查询快速响应(几秒钟)
这个通常是交互式查询适用的场景。一个可行的方案是:AWS Redshift + Tableau. Redshift提供低延迟查询处理,Tableau 提供很好的数据可视化功能,二者结合起来可以轻松的分析大量数据,只是需要一定的成本。需要提醒的是,你好提前规划好Redshift集群的规模和容量,减少随机动态调整,因为在Redshift中,扩展集群(scale up or scale out )是个比较痛苦的过程。
3.中等规模数据(几十TB),一定的查询响应容忍度(几分钟),低成本
这个场景适用于预算有限的情况,或者你不想在AWS Redshift和Tableau 上投入太多。你将需要对大数据比较了解的开发人员,从而可以自己搭建企业内部的大数据集群。一个可行的解决方案是:Apache Cassandra + Presto Query Engine + H2 Console(from H2 Database Engine )。
Cassandra 提供高可靠性大数据存储系统,并且比较容易部署。Presto提供分布式SQL 执行引擎,可以运行在Cassandra 之上,并提供JDBC支持。H2 Console是一个简单但是有效的Web 界面,用来查询JDBC数据源。利用这些工具组合,你不需要任何编程工作,就可以在企业内部搭建起一个端到端大数据解决方案。
综上,你可以看到,根据不同的大数据需求,可以选择不同的工具组合。希望本文可以帮助你快速进入大数据领域。