野餐的英文-公务船
考虑到企业数据仓库的重要战略意义(
EDWs
)和每年投入的巨额维护和扩展费用,如何容
易地访问这些大量信息资产是非常迫切的需
求。然而,许多
EDWs
成为自己成功的受害者。
随着时间的推移,
用户获取新问题答案的需要导致
E
DWs
包含的数据量和复杂数据类型发生
迅速增长,
同时也带来更多的并发和复杂分析的压力。
如果企业级数据仓库变得无法应
付这
种变化,或者服务水平协议
(SLA)
不能满足用户的要求
,
企业则往往不得不进行昂贵的数据库
重新设计或硬件平台迁移扩容项目,
这往往需要持续好多个月以
及带来大量成本损失。
即使
如此新的架构也往往由于数据量增加
得太快
(目前已经有大量的客户从
TB
向
PB
级别扩展)
,
< br>而导致系统不得不进行更多的优化,
这些优化需要占用大量的磁盘存储,
带来了存储浪费和
I/O
瓶颈的问题。因此如何
解决在以往
EDWs
架构保持不变的状况下来满足新的实时性分
析
应用的需要成为技术创新的重要领域。
Vertica
正是这一领域的积极创新先锋。
Vertica
创建于
2005
p>
年,
Vertica
成立于
2005
年,总部位于美国麻萨诸塞州的
Bille
rica
,在
亚太和欧洲都设有
Off
ice
。
2011
年
< br>3
月被
HP
公司收购。
它的合作创始人是数据库之父
Michael
Stonebraker
,他曾开发了
Ingres
和
Postgres
数据库,是公认的数据库权威大师。
Vertica
是
Stonebraker
基于
p>
MIT
开发的
C-Store
架构的商业实现,
致力于解决当前数据分析平台日益
增长的“大数据”和实时分析要求所带来的挑战,可以以传统解决方案
30%
的成本,实现
50
倍
-
1000
倍的性能提高。
从技术角度来看,目前数据分析技术主要面临以下四个挑战:
1.
数据量和数据复杂程度的增长。非结构化数据,如
web
数据,设备采样数据,图形数据
等被纳
入数据分析的视野,数据量也随之成倍甚至数十倍的增长。
2.
处理数据的时间窗口越来越短。以往存在往往一整个晚上
进行批处理而无需考虑提供查
询服务,
现在则逐渐缩短到需要分
钟级延迟的分析,
即越来越多的准实时分析带来用户更强
大的竞
争能力、
3.
混合负载和大并发成
为常态。以往数据分析只需要满足很少的几个高端用户,而随着数
据分析的价值被广泛接
受,
越来越多用户,
从高级分析者,
到
日常业务经理,
甚至是一般操
作人员都会需要数据分析提供的业
务价值。
因此大并发情况越来越多,
有许多系统甚至可同
时容纳多达数百上千的用户进行访问。
4.
需要保留较长时间的原始历史数据。合规性要求越来越严格,同时较长的历史数据使企<
/p>
业能够更加有效地分析各种业务变化的历史趋势,从而对未来业务发展提供科学依据。
p>
传统的分析技术平台往往使用昂贵、<
/p>
专用的硬件产品,
采用集中式的部署模式,
数据流程处
理复杂,
大量使用批模式进行处理,
影响缓慢且维护成本高昂。
现在新的分析平台如
ve
rtica
则采用迥然不同的技术,
采用低成本、
开放的
X86
硬件平台,
分布式的部署
(可扩展到云服
务)
,自
服务的数据处理和优化,提供实时敏捷的响应能力。
Vertica
整体架构如下图:
从架构中可以看到,
其底层为支持实
时分析的高性能列式数据库,
带有业界最先进的数据库
优化器引
擎,
并附带强大的数据压缩,
高级分析,
弹性扩展以及自定义外部扩展等先进特性,
从而为满足未来
b
ig data
带来的业务分析挑战提供了最好的工具。
从一个数据库开发者的角度来看,
V
ertica
分析数据库看起来中规中矩。它支持
SQL
,
ACID
事务属性,
JDBC
,
和
ODBC
,
也能与常见的
ETL
工具
,
BI
报表产品相互兼容。
虽然看似普
通,
Vertica
实质上却是与众不同。
Vertica
在设计上大幅度地优化了硬盘的读入读出
IO
操作,
并
且支持网格计算。
Vertica
,
作为
21
世纪的数据解决方案,
它是被设计用于捕捉和查询
TB-PB
级别的详细数据记录
,
比如电信的呼叫数据,
网络设备监控数据
(
SNMP
)
,
IP<
/p>
详情记录
(
IPDR
)
的数据和其他快速增长的大规模复杂数据。
Vertica
具有突出的高性价比和强大性能,在大量客户
的基准测试分析中,
Vertica
表现出强
< br>劲的查询性能,其速度是普通数据仓库的
20-30
倍,
而成本仅为传统数据仓库的
67%
。具体
见下图:
图
1 <
/p>
同时
Vertica
还提供超世界记录的
数据加载能力,加载效率达到
5.65TB/
小时(
1
台
HP C7000
刀片服务器集群,含有
128core
)
,
超过此前最快的微软数据库的加载速度
2.36TB/<
/p>
小时,在
此环境下成本仅为传统数据库
1
7%
。具体下图:
图
2
要了解为什么
< br>Vertica
分析数据库能够做到低成本而高效率,
必
须了解
Vertica
使用的底层关
键创新技术。主要如下:
1.
数据列存储架构
在
Vertica
中,每列数据是独立地存储在连续的
硬盘存储块中。根据数据值在数据列中的相
对位置,
数据列的值
和数据行的值隐式的相互关联。
大部分的数据库产品都是采用行数据的
< br>所有列存储在一起的方式。与这些数据库不同的是,
Vertica
数据库对于某个特定的查询只
需要获取特定的某几列值,而不需要得到行数据
的所有数据列。存储结构如下图:
图
3 <
/p>
对于大多数的决策支持查询而言,它只需要获取所有列数据的一个子集。
< br>Vertica
针对这种
现象采取了垂直分割技术,因而
获得了大量的
I/O
资源节省。比如,一个通信公司的详细呼<
/p>
叫数据记录(
CDR
)有
230
项数据列。绝大多数查询只用到其中的
10
p>
项不到。实际上,多
达
200
项数据在日常的查询中很难被用到。
2.
广泛使用高压缩算法存储数据
<
/p>
根据数据类型,奇偶性和排列顺序,
Vertica
分析数据库采用多种压缩算法以便缩小单列数
据所占据的空间。这些压缩算法
超过
12
种,如:
行程长度算法(
run length
encoding
),增量编码(
delta value e
ncoding
),针对整数数据的
整数压缩,
针对字符数据的块字典编码和针对其他数据类型的
Lempel-Ziv
编码等。
压缩存放
结构如下图:
图
4
根据样本数据,
Vertica<
/p>
会自动选取数据压缩编码来压缩每列的数据。因为同列的数据有相
同的数据类型和取值范围,
所以采用基于数据列的数据压缩通常能够提升数据压缩率。<
/p>
以行
程长度算法(
run
length
encoding
)为
例,如果数据例中的值已经排好序或数据列中的数据
中特殊值比较少
(通常与行数相比)
,
那么行程长度算法针对这两种的情形
的效率最高。
因
为诸如日期,
性别或者
是州邮政编码数据,
这些数据值的行程长度是一致,
所以行程长
度算
法特别有效。
Vertica<
/p>
大量自动化使用压缩技术,即使对比其他使用压缩方式的数据库而言,也存在明显
的优势。
一般情况下数据压缩率可达到
8
到
13
倍。
而其他数据库一般只能压缩在
3-5
倍左
p>
右。数据压缩率情况见下图:
图
5 <
/p>
Vertica
分析数据库也能直接访问压缩形式下的数据值。这
种特性避免了在查询中花费运行
周期去扩展相关列的数据值。同时,该特性也将
Vertica
与其他支持压缩的数据库显著地区
别开。
3.
多数据投影存储模式
Vertica
数据库并没有采用将数据储存在逻辑模式下的基表中,而是物理的将其存储于多个
视图中。
这种方式被称为数据投影式存储
(理
念上与物化视图类似)
。
每一个数据投影包含
< br>特定排序方式下表的数据列的一个子集。
数据投影中数据行中数据的位置与构成数
据投影的
表的数据列中的位置是一致的。见下图:
野餐的英文-公务船
野餐的英文-公务船
野餐的英文-公务船
野餐的英文-公务船
野餐的英文-公务船
野餐的英文-公务船
野餐的英文-公务船
野餐的英文-公务船
-
上一篇:(完整word)新高考英语模拟试题(卷)(一)
下一篇:电子商务网站架构分析