Teradata系统特性及开发规范

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Teradata系统特性及开发规范介绍赵世辉2014年5月内部资料请勿外传ChinaConstructionBank.|2目录Teradata软硬件体系及数据库特点Teradata开发规范及应注意的问题内部资料请勿外传Teradata系统的硬件构成ChinaConstructionBank.|3Bynet线光纤内部管理网以太网SWS备份服务器磁带库Bynet存储阵列MPP节点内部资料请勿外传Teradata数据库逻辑结构ChinaConstructionBank.|4ChannelDriversGatewaySoftwareApplications/Utilities(TPA)局域网主机直连硬件系统软件VPROC虚处理软件信息传递软件内部资料请勿外传Teradata数据库工作原理ChinaConstructionBank.|5结果返回PESQL请求解析器优化器分发器信息传递层AMPAMPAMPAMP数据数据数据数据基本读写过程解析引擎PE将SQL请求拆分成各AMP的请求以便并行处理解析器分解接收到的SQL交易请求,验证语法、权限等优化器产生最优的查询方案分发所优化的方案到AMP数据通过表PI的HASH值均匀分布到各AMP管理的磁盘(写)信息传递层可汇总各AMP数据,将最终结果返回客户端(读)内部资料请勿外传重要概念-PE解析SQL请求、接收输入记录、审查数据、发送信息到AMP每个PE(ParsingEngine)能并发操作120条会话当多个用户同时访问系统时,Teradata能够通过PE在各节点间自动平衡负载,不需要人工干预可以由混合负载(TDWM)控制连接数量以及哪些类型的语句不能连接ChinaConstructionBank.|6内部资料请勿外传重要概念-AMP每个AMP(AccessModuleProcessor)拥有独立内存和CPU资源,与一个VDISK连接,管理数据库/表的部分数据。每节点可划分多个AMP(生产系统每节点划分54个AMP)控制所有磁盘交互及部分数据库的操作,如读、写、转换、格式化等各个AMP并行处理,互不干扰,交易处理结果在信息传递层汇总后,直接返回给应用程序,一个请求可以分发到所有AMP一起共同工作,每个AMP也可以同步工作于多个请求ChinaConstructionBank.|7重要概念-SPOOLChinaConstructionBank.|8SPOOL是未使用的且连续的数据库空间(类似虚拟内存),与存储数据的空间一起以AMP为单位分配,适合大数据量、并行处理的特点(与传统数据库在内存中处理相比)在工作量适中、无Fallback的系统中,SPOOL最少占总数据库空间的25%—30%好的调优策略可减少对SPOOL空间的占用内部资料请勿外传内部资料请勿外传Teradata的数据保护机制CliqueFALLBACK锁保护备份机制ChinaConstructionBank.|9内部资料请勿外传CliqueChinaConstructionBank.|10•定义:共享磁盘阵列的多个数据库节点•一个Clique包含2到3个节点,每个Clique还配置一个热备节点•Clique中如果一个节点宕机,该节点上进程会迁移到其他节点,系统仍然可以运行。×热备节点内部资料请勿外传Fallback定义:在同一Cluster中其他的AMP上保存一份相同的记录来达到保护数据的目的如果一个AMP失效,AMP上的数据仍然可用。用户可以继续使用Fallback的表,而不会丢失任何数据有额外的开销,包括两倍的磁盘空间、两倍的Insert、Update、Delete的I/O开销ChinaConstructionBank.|111010内部资料请勿外传锁保护防止多用户在同一时刻修改同一数据而影响数据的完整性请求操作时自动加载,请求完成后自动释放用户是可以改变锁的类型(LOCKINGTABLEFOR锁的类型)锁的作用对象:数据库、表、记录锁的类型及优先级避免死锁的发生ChinaConstructionBank.|12申请锁的类型持有锁的类型无ACCESSREADWRITEEXCLUSIVEACCESS接受接受接受接受等候READ接受接受接受等候等候WRITE接受接受等候等候等候EXCLUSIVE接受等候等候等候等候内部资料请勿外传备份机制将数据备份到Teradata数据库外部,可以是文件、磁带等形式可选的基本ARC方式Fastload/FastExportArcmain备份工具:Netvault、NetBackup等备份方式全量备份:最安全的方式,但多进程(带机)下无法均分备份任务Cluster备份:效率最高,但多进程(带机)下风险较大数据恢复方式RestoreCopyChinaConstructionBank.|13内部资料请勿外传连接Teradata的方式TTU特点:速度快,可并行代表工具:bteq,fastload,fastexport使用Perl封装ODBC/JDBC接口通用接口,可供外部工具连接代表工具:TeradataSQLAssistantDBI/DBD接口(不支持HPUX)Perl中连接复杂数据库处理ChinaConstructionBank.|14注意:1.提前在hosts文件中配置dbc连接2.严禁使用IP地址连接,否则将无法负载均衡内部资料请勿外传TD开发工具BTEQ(Batch/BasicTeradataQueryLanguage)FASTLOADMULTILOADTPUMP(TeradataParallelDataPump)FASTEXPORTTPT(TeradataParallelTransporter)ARCMAIN(ArchiveandRecoveryUtility)ChinaConstructionBank.|15SQL操作数据加载数据卸载数据备份以上工具的整合TD数据库的一些特点ChinaConstructionBank.|16可运行于单个或多个节点,每个结点有单独的IP地址无主次节点之分,连接任何一台都是访问整个数据库连接时自动进行负载均衡数据库资源无法从逻辑上实现完全的分割内部资料请勿外传内部资料请勿外传ChinaConstructionBank.|17目录Teradata软硬件体系及数据库特点Teradata开发规范及应注意的问题内部资料请勿外传TD开发规范ChinaConstructionBank.|18《中国建设银行(全行)应用(Teradata)开发规范.docx》《Teradata应用开发规范设计要点.xls》内部资料请勿外传TD开发中注意的问题11.避免数据倾斜:设计关键:PI的选择均匀分布原则查询常用原则关联(JOIN)一致原则同一应用(主题域)内一致设计不当的影响:空间充足但报空间不足(Perm和Spool)引起整个系统缓慢ChinaConstructionBank.|19内部资料请勿外传案例——数据倾斜问题T05主题表倾斜导致整个系统运行效率低现象:T05所有脚本运行效率低原因:T05主题表物理化时直接以主键作PI,虽然从业务角度看是合理的,但忽视了源系统数据库与Teradata技术特性上的差异,导致PI设置不合理而发生数据倾斜。Accessright系统表倾斜导致整个系统运行效率低现象:BPS数据加载效率低原因:由于dbc.accessrights系统表的PI为(userid,databaseid),BPS采用一个用户dwbpsuser向dwBPSmart加数,导致大量权限记录分布在1个AMP上,导致建表缓慢ChinaConstructionBank.|20内部资料请勿外传TD开发中注意的问题22.数据库设计a)对象数量:每个应用数据库的库表数量少于5000个b)对象命名:控制在25个字符,避免使用常规英文单词c)大表拆分:保证每个表在500GB以下d)大表分区:可以分区的尽量设置成分区表e)Fallback表:严禁使用f)表类型:采用multiset方式g)索引:不建议使用h)字段类型选择:最小空间原则i)压缩:提前规划压缩方式j)宏的使用:频繁调用的SQL可以采用宏,提高效率k)UDF(用户自定义函数):慎重使用,在保护模式下运行l)……ChinaConstructionBank.|21总体设计要求表设计要求字段设计要求其他要求内部资料请勿外传案例——数据库设计问题对象命名与TD关键字冲突现象:TD升级时部分表无法建立原因:某张表使用了“result”单词作为字段名,与TD数据库的关键字冲突,后修改模型、脚本后正常。字段类型选择错误对空间的浪费现象:错误的选择数据类型分析:某应用在设计“利率类”字段,全部设计成decimal(18,6),使用了8个字节,其实可以设置成decimal(9,6)或者更少,在满足要求的前提下可以节约1半的空间。ChinaConstructionBank.|22内部资料请勿外传TD开发中注意的问题33.数据库进程的连接与并发设计关键:不能长连接TD数据库及时主动关闭连接循环连接时,上一次未完成不开始新一轮连接设计不当的影响:数据库无法登录ChinaConstructionBank.|23内部资料请勿外传案例——数据库连接问题系统监控收集程序导致系统阻塞现象:所有程序无法连接Teradata原因:一个收集系统资源使用情况的程序设置为每隔30分钟收集一次系统信息,因当时系统繁忙,30分钟内无法完成一次任务,进程数累积至PE的最大值,无法响应新的任务,后修改程序解决JDBC长时间连接导致系统阻塞现象:所有程序无法连接Teradata原因:新一代访问ADW数据库时长时间JDBC连接,引发了大量Idle进程,占用了PE的连接,导致无法响应新任务,后减少连接时间后大大缓解。ChinaConstructionBank.|24内部资料请勿外传TD开发中注意的问题4ChinaConstructionBank.|254.事务管理(BT,ET)设计关键:合理设置事务大小禁止对临时表使用事务设计不当的影响:产生资源浪费案例:内部资料请勿外传TD开发中注意的问题5ChinaConstructionBank.|265.优化锁的使用设计关键:合理使用锁的类型(locktablenamefor锁的类型)在视图中尽量使用Access锁避免频繁对单表进行插入、更新操作设计不当的影响:处理时间延长,访问效率低案例:某应用的户登陆时读取用户表和权限表时采用Read锁,同时对这些表还有更新操作,总是造成用户登陆缓慢,后登陆时改为Access锁解决。DW数据质量检核结果都要插入结果表,高峰期由于并发较多,造成大量任务等待,至今没有解决内部资料请勿外传TD开发中注意的问题6ChinaConstructionBank.|276.用户分开管理设计关键:设计时ETL用户、查询用户要分离设计不当的影响:会受到混合负载的限制,可能得不到足够资源,运行缓慢案例:工作时段(9:00-17:00),某应用使用批处理用户做即席查询,长时间没有响应。原因是白天优先提供个人实名制用户、Web用户的访问,ETL用户限制了并发和资源,后使用查询用户解决。内部资料请勿外传TD开发中注意的问题7ChinaConstructionBank.|287.减少SPOOL空间的占用设计关键:尽量把所有过滤条件加上,先过滤再JOIN;中间过程中的SPOOL尽量小控制SQL长度,减少SPOOL长时间占用设计不当的影响:程序运行缓慢,降低整个数据库的性能经验和案例:如表A、B、C、D的关联字段均为k,即A.k=B.kANDA.k=C.kANDA.k=D.k,而同时还有条件substr(A.k,1,2)='01',加上substr(B.k,1,2)='01'、substr(C.k,1,2)='01'、substr(D.k,1,2)='01'会有好处。DW某大脚本上线后脚本缓慢,

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功