eradata数据库介绍.ppt
Teradata 数据库介绍,范晓亮 2010-12-6,主题,What is Teradata?Teradata数据库竞争优势Teradata RDBMS 架构Teradata 系统架构Teradata 数据库与数据库用户的比较数据存储和访问,主题,What is Teradata?Teradata数据库竞争优势Teradata RDBMS 架构Teradata 系统架构Teradata 数据库与数据库用户的比较数据存储和访问,What is Teradata?,主题,What is Teradata?Teradata数据库竞争优势Teradata RDBMS 架构Teradata 系统架构Teradata 数据库与数据库用户的比较数据存储和访问,Teradata数据库竞争优势,数据及用户不限量经过验证的可升级性:支持小到(10 GB)大到(100+TB)的数据库无限的并行性:设计和建立在并行基础上的数据库成熟的优化技术:能够处理复杂的查询,支持到最多64个的join子查询商业模型:NF、强大的视图处理、星型模型能力提供单个真实商业版本:Teradata提供一个中央的,通过抽取各个源系统数据集成的企业范围的数据库,保证数据的一致性高可用性并行装载及卸数处理 强大的并行装载,load与unload工具可升级性,这些工具如:Fastload、Multiload、TPump、and FastExport,主题,What is Teradata?Teradata数据库竞争优势Teradata RDBMS 架构Teradata 系统架构Teradata 数据库与数据库用户的比较数据存储和访问,Teradata存储体系架构,Teradata存储体系架构,注意:Parsing Engine解释sql命令并把记录转换成一个AMP消息,分配插入数据的请求Message Passing Layer分发行,并确保每行发送到合适的AMPAMP格式化行并经其写入与此AMP相关的磁盘一个AMP管理一个由磁盘阵列中多个物理磁盘组成的逻辑或虚拟盘,Teradata数据检索体系架构,注意Parsing Engine优化请求并创建任务AMP需要执行的任务Message Passing Layer分发PE创建的任务到相应的AMP,并激活它AMP从各自对应的物理磁盘取出需要的数据并通过MPL返回PE,PE把数据返回给请求的客户应用程序,如果数据需要格式化,排序,聚合都由AMP完成,Teradata架构中几个名词概念,BYNET(Ban Yan NETwork)BYNET是一个为NCR MPP系统提供高性能网络互连能力的软件与硬件集。BYNET允许在各节点之间使用点对点、多点传送、广播通讯。通讯能力的可测量性,每增加一个节点,每个BYNET增加60M(BYNET Version 3 是90M)的带宽,所以增加一个节点时,更多的点对点连接可以同时建立,广播和多点传送的固定带宽是每秒60M(BYNET Version 3 是90M),广播通信只有在需要对所有AMP操作时才会调用,一般都是点对点的通信,多点通信在V2R5版本中才引进进来。MPP(Massively Parallel Processing)system大量并行数据处理系统CLI(Call Level Interface)CLI是一个最底层的与TeradataRDBMS之间的接口TDP(Teradata Director Program)它运行于任何客户端系统上的程序,它管理CLI的Session通行到RDBMS,它的功能包括SESSION开始,终止,登录,身份认证,备份恢复,重起,Teradata and MPP Systems,Teradata 使一个MPP系统以一个整体的系统形态展现给用户和数据库管理者Teradata RBDMS 的主要组件是Parsing Engine(PE)和Access Module Processor(AMP)两个虚拟的处理器The MPL(包括PDE and BYNET)连接并使各节点之间可以通信,Teradata Functional Overview,Channel-Attached client software Overview,Call Level Interface(CLI):访问Teradata最底层的接口,控制客户端的请求和响应,创建session,缓冲区的分配和初始化,信息的打包和解包Teradata Director Program(TDP):session初始化和终止,登陆,验证,恢复和重起,维护传递到PE的session队列,错误通知(如应用程序失败,Teradata重起),session在多个PEs之间的分配企业系统连接信道(ESCON Channel)和总线和标记信道(Bus and Tag Channel),Network-Attached client software Overview,CLI提供对Teradata最大限度的连接和访问性,ODBC作为业内标准是更多的应用程序可以连接到TeradataMicro Teradata Director Program(MTDP)是Teradata 提供的网络连接环境下的TDP实现,它和渠道连接下的TDP功能基本一致,唯一的区别是它不负责session在多个PEs之间的分配,此功能由运行在Teradata系统上的Connect and Assign Servers 实现Micro Operating System Interface(MOSI)实现在客户端访问Teradata时的操作系统独立性,有了它,只需要一个版本的MTDP运行在不同的网络连接数据库平台上,Teradata PE(Parsing Engine)Define,包括以下功能Session control:一个有效的session一经建立,就由PE负责在客户端应用程序和RDBMS之间的这次对话的管理,session control 主要控制着 logon 和 logoffParser:解析客户端请求的sql,判断其语法和语义上的正确性,并查询数据字典确认所有的请求对象和列是否存在,请求的用户是否有相应的访问权限Optimizer:评估所有可选的执行计划并选出最快的一种,并将其转化成AMP可执行的步骤,传给DispatcherDispatcher:通过执行控制控制Optimizer传来的执行步骤一步步传递给相应的AMP,通过响应控制把结果返回给客户,根据sql请求的不同,执行步骤可能传递给一个AMP,或者几个AMP或者所有AMP,The Parsing Engine(分析引擎),PE的功能管理session(可以管理多达120个)解析并优化请求的sql语句发送优化过的执行计划给AMP输入转换 例如EBCDIC/ASCII之间转换,如果需要转换时发送返回的结果集给请求端,Message Passing Layer Define,它负责处理Teradata 数据库的内部通讯,即所有PEs和AMPs之间的通讯都要经过MPL,PE分配给AMP的执行步骤通过MPL路由到合适的AMP,处理完成后,响应消息再经过MPL路由由AMP返回给相应的PEMPL由Parallel Database Extensions(PDE)软件,Bynet软件和Bynet硬件组成根据分发的请求不同,会有以下三种通信 Broadcast 消息传递给系统中所有的AMPs 和 PEs Multi-Cast 消息传递给一组 AMPs Point-to-Point 消息传递给系统中一个特定的 AMP 或者 PEMPL这种技术是Teradata并行性的基础,Message Passing Layer,MPL功能在PE和AMP之间传送信息点对点,多点,广播通讯合成返回结果集并传回PETeradata并行性的基础MPL组成Parallel Database Extensions(PDE)软件Bynet软件用于MPP系统的Bynet硬件,The Access Module Process(AMP)Define,每个AMP负责管理数据库的一部分,AMPs完成生成一个结果集时所有的物理处理工作,包括排序,聚合,格式化,转换当一个AMP收到MPL传递过来的Parser/Optimizer的执行步骤时,它会完成相应的请求如从物理磁盘取出数据或对数据进行排序,对于某些请求,AMPs也可能会将其上的数据拷贝并传递给其他AMPsLock数据库或表,创建、修改、删除表,插入、修改、删除表中的数据返回结果集给Dispatcher 空间管理,空间的使用控制和空间分配输出数据的转换,与PE做相反的工作,如PE把EBCDIC 转换成ASCII,AMP则把ASCII转换成EBCDIC返回,The Access Module Processor(AMP),AMP功能找出请求的行Lock管理行排序聚合列输出转换和格式化为客户请求创建结果集磁盘空间管理恢复处理,Linear Growth and Expandability,Teradata ParallelismDefine,Parallelism(并行性):是Teradata数据库的核心每个PE能够支持120个Session并行处理每个Session可以处理多个并发请求,虽然每个时点只有一个请求是活动的,但每个Session自已能够管理16个请求和它们相关的结果集每个AMP能够并行处理80个任务,多线程的同时处理多个请求每个AMP作为数据库的一部分一起并行的处理请求,如果optimizer 传递来的执行步骤之间没有交叉,AMP会同时并行处理一个请求的多步操作,Teradata Parallenlism,Teradata 是建立在并行基础上的系统每个PE能够支持120个Session并行处理每个Session可以处理多个并发请求MPL能并行处理所有活动的消息每个AMP能够并行处理80个任务所有的AMP能并悉心能够处理一个请求一个AMP能并行处理多个请求,主题,What is Teradata?Teradata数据库竞争优势Teradata RDBMS 架构Teradata 系统架构Teradata 数据库与数据库用户的比较数据存储和访问,Teradata Database Version 1 Platforms,Teradata Architecture Physical View,Teradata Database Version 2 Architecture,Teradata Database Version 2 Single Node(SMP),SMP 体系架构,Multi-Node MPP,NCR Rack-Based Cabinets,NCR MPP系统的一些特性,Teradata数据库软件:它允许多个SMP运行在Teradata数据库上,并扮演单个实例角色可升级的BYNET连接:当增加节点时,相应的增加了带宽并行可升级性:通过安装/升级多个SMPs 实现软件的并行安装和升级AWS(Administration Workstation):单点操作控制及升级服务管理SMP:SMP只需要负责管理各自资源还有一些冗余的组件:两个BYNET,在一个磁盘组中有两个磁盘控制器,又模拟控制器来增强可用性,个power来支持节点.,主题,What is Teradata?Teradata数据库竞争优势Teradata RDBMS 架构Teradata 系统架构Teradata 数据库与数据库用户的比较数据存储和访问,Teradata 数据库与数据库用户的比较,首先在Teradata中,数据库与数据库用户同样的重要,在整个系统中数据库名与用户名必须是唯一的,是sql语句里最高层次的限定条件一般来说,一个用户具有登录及访问权限的在很多系统中,一般不会给用户分配永久的空间,只能授权用户访问包括数据视图或宏的数据库,通过授权给用户去访问数据库中的表.数据库和用户一样是可以为空的,既不包括任何表、视图、宏、触发器、存储过程,也可以不分配永久空间他们唯一的不同是用户必须有密码,而数据库没有。在任何时候,一个有权限的用户可以改变另一个用户的spool空间大小只有永久空间被分配后,才可以创建表到数据库中,而视图、宏、触发器等可以在任何时间添加,因为他们不需要永久空间。数据库与用户都是一个数据库对象的存储库,他们主要的不同是用户能够登录并获得数据库SESSION.在DBC.DBASE表存放着数据库或用户信息,Database User Comparison,Teradata Database-user 的层次关系,数据库和用户的空间类别,Permanent Space:分配给用户或数据库的最大存储容量,存放 table rows,Fallback tables,secondary index subtables,stored procedures,and permanent journals.Spool Space:系统自动获取的临时空间,存放结果集的中间过程和最终的sql语句结果(select语句通常是用Spool space存放已经select的数据),可变临时表和导出表的数据,不再需要时自动释放.Temporary Space:系统自动获取的临时空间,存放Global Temporary tables 被实例化的数据。,主题,What is Teradata?Teradata A Brief HistoryTeradata数据库竞争优势Teradata RDBMS 架构Teradata 系统架构Teradata 数据库与数据库用户的比较数据存储和访问,Storing Rows,Primary Index Values,Primary Keys and Primary Indexes,Row Distribution Using a UPI Case 1,Row Distribution Using a NUPI Case 2,Row Distribution Using a Highly Non-UniquePrimary Index(NUPI)Case,Secondary Indexes,跟Oracle的索引差不多每一个表可以有零或多个次索引可以是唯一或非唯一在数据仓库并不常用次索引建立次索引需要额外资源和空间Teradata 性能本身很高,用次索引的需要不高不影响表在AMP中的分布可以在需要时动态添加,不用时再drop掉添加改善查询性能,Unique Secondary Index(USI)Access,Non-Unique Secondary Index(NUSI)Access,Comparison of Primary and Secondary Indexes,Full Table Scans,Partitioned Primary Indexes(PPI),Teradata 数据库的一种索引机制,数据按分区字段在AMP中分组摆放 每一个表可有零或一个表分区 访问只看有关系的分区用表分区字段作过滤条件直接比较=不用分区字段作运算大大加快速度例子:select*from prdview.Tbl_a where sum_date=20030101从一个分区取数,定义PPI,CREATE MULTISET TABLE prdmiddle.Ft_mid_subtotal_item,NO FALLBACK,NO BEFORE JOURNAL,NO AFTER JOURNAL(user_id DECIMAL(15,0),gen_amt DECIMAL(12,0),gen_month DECIMAL(6,0),subtotal_bill_item DECIMAL(12,0),deal_id DECIMAL(12,0),sum_date INTEGER)PRIMARY INDEX XIE1Ft_mid_subtotal_item(user_id)PARTITION BY RANGE_N(sum_date BETWEEN 20030701 AND 20091231 EACH 1,NO RANGE OR UNKNOWN);,Partitioned Primary Indexes(PPI)和NPPI对照,表分区 Explain,select*from devview.Tb_seu_first_bill_item where load_time is null,非表分区 Explain,select*from devview.Tb_seu_first_bill_item where load_time/100 is null,PI Explain,select*from devview.Tb_seu_first_bill_item where cdr_id=123,非 PI Explain,select*from devview.Tb_seu_first_bill_item where rate_id=123,数据库锁,Locking 关键字,Locking关键字能重写Teradata默认的锁策略,可以升级锁的级别:例如:LOCKING ROW FOR ACCESS SELECT*FROM Table_A;一个ACCESS锁允许用户访问一个有writer 或read锁的对象,在上例中即使定义的是locking row,但是因为是全表扫描,所以还是锁的table。LOCKING TABLE Table_B FOR EXCLUSIVE UPDATE Table_B SET A=2007;上例给Table_B一个排它锁,实际上升级了锁级别。LOCKING TABLE Table_C FOR WRITE NOWAITUPDATE Table_CSET A=2008;nowait选项在不想让锁排队的情况下使用,如果不能立即对表置锁则报 Error code 7423,Rules of Locking,Access Locks,Rank()与row_number()的使用,PARTITION BY后的列为排队的粒度;ORDER BY后的内容为排序的依据。例如:qualify rank()over(partition by jiejuh order by jiluzt)=1 在某个jiejuh内部jiluzt最小(默认升序排第1)的记录才会选出来。但是rank()函数的结果是有排名并列的情况的,如果某jiejuh的jiluzt最小的是两条记录,那么这两条记录rank()的返回值都是1。为了避免并列的情况我们可以改用row_number()函数。row_number()函数的用法与rank()函数完全相同,只是不会出现并列的情况,于是select语句中的qualify子句写成如下的样子:qualify row_number()over(partition by jiejuh order by jiluzt)=1,Thank you for your time!,