TeraData项目总结
TeraData体系结构和处理机制
在物理布局上,Teradata系统主要包括三个部分:处理节点(Node)、用于节点间通信的内部高速互联(InterConnection)和数据存储介质(通常是磁盘阵列)。
图1
图2
其中解析引擎PE(Parsing Engine)是一个虚拟处理器,用于进行客户端和存取模块处理器之间的通讯和交互。
主要的功能包括任务控制(Session Control),SQL语句的解析、优化、查询步骤的生成和分发,并行化预处理和返回查询结果,每个PE最多支持120个Session。如图3
图3
一般来说一个节点对应一个IP,一个节点一般有2个PE, 在Host文件中一般时候会把所有的IP都设置上,连接时会默认从设置的第一个IP连接,如果大家在HOST中第一个都设置同一IP,那就会出现第一个连接不足时,使用节点间通信,将请求传给其他节点,以达到平均负载的功能。而传回结果的时候还是要通过连接的IP传回数据,这样就会产出不必要的网络资源的浪费。可以通过调整HOST中设置的IP的顺序得到解决。
比如host中
192.168.0.1 dbcoop1
192.168.0.2 dbcoop2
…
192.168.0.20 dbcoop20
调整为
192.168.0.20 ..dbcoop1
192.168.0.19..dbcoop2
…
192.168.0.1 dbcoop20
查看PI的分布情况
例如:SELECT
HASHAMP(HASHBUCKET(HASHROW(customer_code,report_date))) AS "AMP", COUNT(*)
FROM dwcrssmart.rm_cr_cl_cust_basic_info_t
GROUP BY 1
ORDER BY 1;
查询结果:
AMP Count(*)
0 3,134
1 3,228
2 3,199
3 3,177
4 3,200
....
使用PI字段查询
Ø 避免使用like、substr、index、<>等这类用法,会导致索引失效
Ø 值类型必须与该字段类型相同,否则TERADATA会在内部进行数据转换,将消耗大量的性能。