笔者大学所学计算机专业,读书时接触过Oracle、mysql和SQL SERVER,一度坐井观天以为数据库应该也就这些了,但自笔者毕业进入数据仓库这个行业,接触的第一个商业数据库便是Teradata,亦是接触到的第一个MPP体系架构,先简单谈谈我的对Teradata的认识吧mysql
产品特色:算法
1.MPP架构,为提供商业大数据分析处理而设计构建(OLAP)sql
2.经过PE、BYNET、AMP中间件构建出高效的并行数据库系统(做为行式数据库对硬件资源要求特别在于内存资源需求上优点很明显)数据库
3.经过PI和SI构建数据的均匀分布和高效的读写能力安全
4.提供了丰富的SQL请求工具(BTEQ、Teradata SQL ASSISTANT、FASTLOAD、MULTILOAD、FASTEXPORT、TPUMP)服务器
5.提供了完备的管理工具(Teradata Manager、DBQM、Teradata Administrator)网络
6.提供了丰富的二次开发接口(PP二、CLI、ECLI、ODBC、Oracle Transparent Gateway、WinCLI、TS/API)架构
产品不足工具
1.过于封闭,在网上很难找到Teradata数据库的相关资料,产生异常或疑问只能咨询Teradata内部人员(或有相关经验人员)oop
这给后期架构规划和平常异常的处理上带来了很大的不便,随着与Teradata方合做的开展,亦愈发认识到,技术的彻底封说的好听点是为了操做的合规性和单一性,说的直白点就是为了最大化专利技术的经济效益(之间产生过几回数据库异常,Teradata中国区的工程师处理不了都是申请美国工程师的技术支持,这也能看出来对于Teradata内部亦是存在比较明显的技术封闭现象)
2.扩展性不足,做为一款MPP体系架构产品,对比开源hadoop以及笔者如今所用的商业Vertica数据库,其扩展性表现十分有限
笔者接触过Teradata 5系列和2系列的架构环境,均采用了共享阵列存储,其最大的问题就在于,阵列插满磁盘就没法有效进行扩容了,节点的扩展没有接触很差妄加评论,固然如今的Teradata可能在这块有了很大的提高和对市场需求积极的调整(在最后一次架构规划中,Teradata方给出了基于X86服务器的2系列架构方案)
3.兼容性不足,这点也可称之为可移植性(固然这类大存储的MPP数据库也不会轻易作移植),固然其原因仍是在于其封闭性
从底层硬件到上层数据库软件以及后期的服务,甚至机柜都是由Teradata定制化的实现,固然如今的Teradata可能在这块有了很大的提高和对市场需求积极的调整(在最后一次架构规划中,Teradata方给出了基于X86服务器的2系列架构方案)
4.IO能力有限,行式存储数据库的通病,在压缩比较低的状况下,加重了OLAP场景中对于数据库IO能力瓶颈的产生
下面咱们就来简单认识认识Teradata吧。
一、Teradata因数据仓库而存在
Teradata 是一个关系型数据库管理系统 (RDBMS).
• 为运行世界上最大的商业数据库而设计;
• 企业级数据仓库的首选解决方案;
• 基于Linux/UNIX与NT的开放式系统平台;
• 彻底符合ANSI标准;
• 能够运行于单个或多个节点;
• 能够帮助企业提供自服务端到客户端的全部应用
• 运用并行处理方式来管理Terabytes以上的数据
二、Teradata与EDW
三、数据仓库发展的五个阶段
四、Teradata数据库系统体系架构
基本读写过程
•解析引擎PE将SQL请求拆分红 各AMP的请求以便幵行处理
• 解析器分解接收到的SQL交易 请求,验证语法、权限等
• 优化器产生最优的查询方案
• 分发所优化的方案到AMP
• 数据经过表PI的HASH值均匀 分布到各AMP管理的磁盘( 写)
• 信息传递层可汇总各AMP数 据,将最终结果返回客户端( 读)
五、The Parsing Engine (PE) 解析器
PE的做用:
• 一种VPROC,用亍解释SQL请求、 接收输入记录、审查数据、发送信 息到AMPS
• 每一个PE能幵发操做120条会话,每 个会话能处理多个请求
• 当多个用户同时访问系统时, Teradata可以经过PE在各节点间自 劢平衡负载,不须要人工干预
六、BYNET(高速链接网络)
BYNET的做用是:
• 负责AMP与PE之间的通讯
• 通讯方式可为:Point-to-Point, Multi-Cast, and Broadcast communications
• 将AMP返回给PE的结果集进行合并 • 它的存在使得Teadata的并行成为可能
• BYNET能够是硬件也能够是软件 • 随着节点的增长,BYNET的带宽线性增加
七、AMP - Teradata并行处理的基础
• 一种VPROC,每节点可包含多个 AMP
• 每一个AMP拥有独立内存和CPU资 源,与一个VDISK链接,管理数 据库/表的部分数据。
• 控制全部磁盘交互及部分数据库 的操做,如读、写、转换、格式 化等
• 各个AMP幵行处理,互不干扰, 交易处理结果在信息传递层汇总 后,直接返回给应用程序
• 一个请求能够分发到全部AMP一 起共同工做,每一个AMP也能够同 步处理多个请求
八、Teradata支持MPP架构,经过系统扩展实现并行 处理能力的线性扩展
九、Teradata数据分布
Teradata采用hash算法根据用户建表所选的PI进行数据分布,固然这里有全部MPP体系架构数据库的通病,数据倾斜问题,Terdata为方便DBA的维护管理工做,提供了数据重组功能,固然做为一个大型的MPP数据库,数据库对象量级的过于庞大,数据倾斜问题的处理每每会占用DBA至关大的维护管理成本(靠每一个用户遵照PI选择的原则只是理论上的指望)
关于Teradata组件和语法的分享这里就不详述了,若有兴趣欢迎留言交流
后期随着使用的深刻,在逐步了解其强大同时也更加了解其封闭,要使用Teradata购买其产品只是一个开始,后续在于配套的维护和扩容上还需源源不断的投入,在这个注重信息安全和成本控制的时代趋势中,伴随着去IOE的深刻和开源技术的成熟,Teradata注定淡出大部分国内市场,至少对于笔者所处的通讯行业来说是如此,天然首当其冲的仍是企业对投入成本的控制,固然不能否认的是,Teradata做为一个为大数据商业数据库产品,确有其独到之处。
老生常谈,在数据仓库体系架构中,至少在当下,RDBMS还是核心的一环,笔者所在的环境,在对hadoop生态取代Teradata探索中有过血淋淋的教训,在面对Teradata服务即将到期的时候不得再也不次进行基于MPP体系架构的RDBMS招标,事实证实开源与商业的组合架构现阶段最为合适,故而这样的架构沿用至今,只是对于数据仓库环境,基于MPP架构体系的列式存储RDBMS应是首选。
关于MPP体系架构相关知识,咱们下期再聊。
我是Mr.Yu,一名数据仓库行业的资深从业者,很高兴与你的此次分享!