大数据背景
众所周知,当前是一个数据爆炸的时代,大数据背景下的数据治理是每一个企业应该重点考虑的问题。例如金融机构、电信运营商这种“传统”行业每日需要处理的数据量都已经十分巨大了,中小型互联网公司都已经握着上千万日活了,就更不要说腾讯,阿里这样的互联网巨头。
传统行业的数据治理
以电信运营商为例,一个省级的电信运营商在好多年前一年积累的信息量就已经达到数个PB了,在数据爆炸的时代,我们通过移动互联网随时随地就可以surfing everything,数据爆炸的程度估计可以用指数建模了。
而相比与互联网企业,这些传统行业企业的数据量的特点是:数据价值密度大,数据多呈结构化。这是与互联网企业业务场景的不同之处。这也就意味着,使用大数据开源项目例如Hadoop等难以起到良好的存储效果。
数据仓库现状
数据仓库与数据库的区别大家想必早有耳闻,一个以数据分析为主,另一个以数据的增删查改为主。数据仓库既然以数据分析为主,没有一个足够的数据量谈何分析?我们当前的时代,谈到数据仓库,就自然而然与大数据联系到一起,不然就会被认为是一个没有价值的数据仓库。
既然企业的数据治理这么困难,那数据治理究竟是阿里巴巴、腾讯这样的互联网巨头抑或是工行、移动、联通这样掌握着大量数据的500强企业们的专利呢?
答案也可以说是,也可以说不是。
所谓“是”的原因:
前面说到,传统行业的数据仓库应该以结构化的数据查询为主,在这上面可以进行BI,生成报表,数据挖掘等相关操作。而结构化的数据仓库实现起来比非结构化的数据仓库实现起来要困难很多(我自认为)。而开源产品中主要是面向非结构化数据的,诸如greenplum这种开源的结构化数据仓库其也只能说是一个“广告”性质的开源产品,毕竟greenplum是靠卖数据仓库服务而生存的。而这些商用数据仓库的价格不菲,以teradata数据仓库为例,每年工商银行要支付的费用要以亿为单位来计算。
高价格就意味着,结构化数据仓库很多传统企业用不起,另一方面也没有足够的数据量进行支撑,而这些企业你懂得,很多好东西到他们手中,其实并不会用,因此这个答案是“是”。
另一方面也可以说“不是”,原因是:
数据爆炸时代,每个一定规模的公司都会积累一定的数据量,“大数据,小分析”是当前提到的一个概念。每个企业要想合理规划未来,掌握客观规律,不进行科技投入终归是不太可行的。诸如此类公司,最大的困难估计是没有人会用数据仓库。不过,随着云计算的兴起,数据仓库也已经上云了,从技术角度看,比较好的云上数据仓库有阿里云和华为云两种可供选择,其他的从技术角度,客观分析要比二者性能差。
数据仓库的架构
当前,数据仓库的架构主要可以分为两种:一种是mpp架构,另一种是nosql形式的开源产品。
当今有一句话不知道大家知不知道“Nosql退场,newsql代表未来”。虽然话不能这么说,但是newsql确实是一个很新的概念,而newsql所采用的架构大多数就是mpp架构。所谓的mpp便是大规模并行处理的意思,mpp架构数据库除了支持传统数据库的acid事物,同时也支持集群的线性扩展。而Nosql最大的不足就是不支持事务或者很弱。
mpp相比较于nosql数据库,支持事物,支持sql语录,支持表联接(join)等复杂查询,技术复杂度要比nosql高很多。nosql的优点是扩展性更强,因为mpp架构在线性扩容之后需要做数据的重分布,这里面技术很复杂,感兴趣的比较多的话,我以后再开专题讲解。
OLAP
提到数据仓库,就要谈论一个概念——OLAP,它的意思是联机大规模数据处理,说白了就是进行数据分析的意思,与其相对的是OLTP概念。OLTP偏重于并发,侧重CURD,例如在线支付、交易场景。OLAP偏重分析,侧重查询,数据挖掘。从数据量上讲,OLAP的数据量远远大于OLTP系统,OLAP对应着的就是数据仓库,而OLTP对应着Oracle这类的数据库。
现在的数据仓库也好,数据库也好,只要是满足高可用场景,就不得不考虑分布式这个概念。
数据库的分布式系统
OLAP与OLTP都是分布式系统,一个是分布式的数据仓库,一个是分布式的数据库。通过通过分布式来保障高可用,当然,这里面也面临着一致性的问题需要考虑。
对于OLAP数据仓库系统来讲,我们说过,他是用来对数据进行分析的,很多场景要求即席查询秒级响应,这个要求是非常高的,感兴趣的可以了解一下SQL on hadoop的工具Hive:去趟茅厕的功夫都搞不定。
这就要求分布式架构,同时OLAP还要尽可能地进行SQL语句解析,还要涉及到多表连接这样复杂的业务,甚至还要支持事物,这时候mpp架构就派上用场了,nosql就比较弱了。而这同样是HBase等开源项目难以实现的,但是后者毕竟是NoSQL,高扩展性是其生存的必杀技,因为我们前面说过mpp在线性扩展时需要作数据的重分布,目的是为了保障能够哈希映射,还是很耗时的。
总结
有关数据仓库的架构层面技术就讲解到这里了,这里面涉及到的技术十分复杂,尤其是mpp架构。国内在专门研究mpp架构的厂商不多,大型一点的有阿里和华为在做研究,腾讯、百度貌似也有团队在搞。相比于mpp架构,很多公司可以选择开源软件来实现自己的数据仓库,一般用得多一点的是hbase,这主要是互联网场景存储一些结构化比较弱的数据,实际上更像是一种kv结构。但是对传统厂商这种数据价值密度大的业务场景,就不得不考虑使用teradata等专业的数据仓库了。
?
原文地址:https://www.cnblogs.com/qfdsj/p/9548706.html