新闻 大数据系统设计

大数据系统设计

2019.06.25
大数据系统设计

大数据一般人听着比较复杂,觉得可能需要很大成本来部署和实施。幸运地是市面上已经有一些云服务来帮助我们让大数据变得更简单。另外,如果你选择合适的开源工具,也往往会使你的大数据之路起到事半功倍的效果。下面会列出实用并且较低成本的大数据实施系统,供参考。


请注意本文不讨论实时或者流数据处理,如果你在寻找那些方面的解决方案,为了节省你的时间,我们建议你忽略本文。


在选择据具体大数据工具之前,你更好回答两个问题:


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)。