打字猴:1.7004321e+09
1700432100
1700432101
1700432102
1700432103
1700432104 图4-1 传统的分析架构
1700432105
1700432106
1700432107
1700432108
1700432109 图4-2 现代的库内分析架构
1700432110
1700432111 在企业级数据仓库环境中,大部分数据源都已经被整合在一起了。如果企业级数据库存在部分数据缺失,那么将从数据仓库中抽取出来的90%~95%的数据与外部5%~10%的数据进行整合分析是完全没有意义的。正确的做法是把外部5%~10%的数据导入数据仓库内,然后在数据仓库内进行分析。换句话说,在数据所处的地方进行分析,而不是把数据拿到分析的地方去,这就是库内分析的理念。
1700432112
1700432113 优化你的架构
1700432114
1700432115 既然可以在数据所在的地方进行分析,为什么还要耗费大量的时间、人力和金钱把数据抽取到分析的地方呢?这就是库内分析的简洁原则,并将为扩展性带来实质性的飞跃。在大数据时代,不使用库内分析技术,将使驾驭大数据变得前所未有的困难。
1700432116
1700432117 在20世纪90年代,Teradata公司是第一家推行库内分析的公司。到了今天,几乎所有的数据库厂商都接受了这个概念。企业级数据仓库,以及数据集市的扩展性和灵活性已经足以支持库内分析过程。库内分析对于大规模并行处理系统更加重要,我们将在随后进行讨论。关键的概念是,就像前面提到的,要在数据所在的地方进行分析,而不是把数据拿到分析的地方去。让数据库做它最适合做的事情,就是管理数据。
1700432118
1700432119 今天的大学生可能已经不太了解主机系统,也很难想象在磁带驱动器上进行分析。也许过不了多久,他们将会不理解为什么分析环境与数据环境曾经是彼此独立的,也将无法区分数据分析环境与存储环境。这两者将融为一体不分彼此,因为它本来就该是这样的。
1700432120
1700432121 驾驭大数据 [:1700430564]
1700432122 4.3 海量并行处理系统
1700432123
1700432124 海量并行处理(Massively Parallel Processing,MPP)数据库系统已经出现几十年了。不同供应商的系统架构可能存在差异,但对于存储并分析海量数据来说,MPP是最成熟、经过验证的、使用最广泛的处理机制。MPP到底是什么?它有什么特别之处?
1700432125
1700432126 一个MPP数据库会把数据切分成不同的独立数据块,由独立存储与CPU资源进行管理。在概念上,这有点像把一些数据导入您家里多台电脑构成的网络中。MPP打破了数据被仅拥有一个CPU单元和磁盘的中央服务器进行管理的限制。MPP系统中的数据被切分导入一系列的服务器中,存储于不同CPU单元管理的不同磁盘里。图4-3说明了MPP的原理。
1700432127
1700432128
1700432129
1700432130
1700432131 图4-3 海量并行处理系统的数据存储
1700432132
1700432133 为什么MPP架构有如此巨大的威力?想象一下,您正在一条六车道的高速公路上开车,假如六车道变成一车道,即使只发生在某一小段距离内,这都会带来可怕的交通拥堵。如果从出发地到目的地始终都是六车道,那么交通会顺畅得多。虽然在某些时刻比如高峰期,拥堵仍然不可避免,但也不会持续很长时间,这让公路状况变好了很多。在非MPP架构的数据库中,即使不是全过程,在某些处理环节,也会出现六车道变成一车道的情况。在车流不多的情况下,一车道也没问题,一旦出现大的车流量就会出现问题。这就是MPP架构处理海量数据时无与伦比的优势,它开放了更多车道让车辆快速通过。
1700432134
1700432135 让我们来看一个数据库的例子。假如有一张1T的数据表,一个传统的数据库在同一时间只能查询一行。如果是一个拥有10个处理单元的MPP系统,它可以把这个1T的数据表切分成10份,每份100GB数据,并分配给不同的处理单元。这意味着在同一时间可以同时查询10份100GB的数据。如果需要更强大的分析能力和更快的分析速度,只要增加更多的处理单元,系统能力就会得到提高。
1700432136
1700432137 分工合作!
1700432138
1700432139 一个海量并行处理架构(MPP)的数据库,会把数据分配给不同的CPU单元和不同的磁盘空间。逻辑上,这类似于拥有几十台甚至几百台个人电脑,每台电脑存储一部分数据。在执行查询时,用不同处理单元同时执行的许多小型查询替代了一个单一的大型查询,查询速度自然就快了很多。
1700432140
1700432141 在这个数据库的例子中,如果这个系统升级到了20个处理单元,那么就不是同时进行10次100GB的查询,而是同时进行20次50GB的查询,这相当于100%的性能提升。当查询要求不同数据单元的数据进行信息交互时,事情会更复杂一些,但是MPP系统在设计时就已经考虑到了这一点,因此可以非常快速地处理这种情况,如图4-4所示。
1700432142
1700432143
1700432144
1700432145
1700432146 图4-4 传统查询与MPP查询的比较
1700432147
1700432148 MPP系统会制造一定程度的数据冗余,同一份数据可以同时存储在不同的地方,这样做的好处是,一旦出现系统故障,数据恢复会非常简单。MPP系统里的资源管理工具会管理这些CPU和磁盘空间,查询优化器会对执行的查询任务进行优化,这都使得整个系统变得更容易管理,计算效率也更高。对这些内容更深度层次的讨论不在本书的范围内。
1700432149
[ 上一页 ]  [ :1.7004321e+09 ]  [ 下一页 ]