大数据系统的分级缓存策略
目前大数据系统建设过程中,经常会涉及到不同的数据源、数据种类、数据格式以及业务系统对这些数据要求等方面去设计存储策略。
通常,根据实战项目经验来看,可以分成两个逻辑的概念:
一、 磁盘存储:
这些数据的特点是非常的大、多样复杂的原始格式、动辄几个T到PB级别,那针对这样的数据,我们可以从数据的成本、可计算性等维度去考虑设计架构。
存储数据一方面是收集的赋能,还有个更重要的是能够分析起来、利用起来,而不是单独只是存储。
针对这一层,可以考虑Hadoop的技术构建:
1、hdfs 文件存储:将收集过来的文件,分录分时间等逻辑进行数据文件级别的存储。同时的好处是,这样的文件可以为后续采用MapReduce或者Pig或者hive 的方式进行分析和利用。
2、hive 数据仓库方式:将收集的数据直接转存到hive数据表的格式,在底层文件方面则可以选择如ORC、Parquet、Txt等存储。这样的一个好处则是,直接把数据以逻辑表的方式进行存储了,可以通过SQL 的方式进行分析和加工,而且底层存储还支持了压缩和提升计算效能的问题。
二、内存存储
1、面向业务的数据分析和应用,则可以考虑采用Presto或者Impala这样的基于内存结构来构造,因为这些数据经过处理后相对较小,可以在内存中进行分析,这样满足来业务人员进行交互分析的需要。