Teradata 交叉连接 (CROSS JOIN)
CROSS JOIN : 不使用任何匹配或者选取条件,而是直接交一个数据源中的每个行与另一个数据源中的每个行都一一匹配,结果集是笛卡尔乘积.大多数交叉连接都是由于错误操作而造成的,但是它在造测试数据时非常有用. select * from table1 as t1 cross join table2 as t2 等同于 select * from table1 as t1, table2 as t2
CROSS JOIN : 不使用任何匹配或者选取条件,而是直接交一个数据源中的每个行与另一个数据源中的每个行都一一匹配,结果集是笛卡尔乘积.大多数交叉连接都是由于错误操作而造成的,但是它在造测试数据时非常有用. select * from table1 as t1 cross join table2 as t2 等同于 select * from table1 as t1, table2 as t2
根据各种 SQL 语句的功能不同,可以将其分成以下三大类: (1) 数据定义语言 (DDL) :用来在系统中创建或修改各种对象的结构,也可以用来删除系统中已有的对象,其命令集中主要包括: – CREATE : 创建一个新的数据库,用户,数据库对象或索引 – 删除一个已存在的数据库,用户,数据库对象或索引 – 修改一个表结构和保护定义,启动或禁止触发器 (2) 数据操作语言 (DML) :用来存取对象中的信息. 因此, DML 是 SQL 中使用最频繁的语言.其命令集中主要包括: – SELECT : 执行关系查询 – INSERT : 在表中增加新行 – UPDATE : 修改表中已存在行的值……
继续阅读»»»
Teradata 通过 HASH 算法,通过 AMP 将数据随机或均匀的分布到存储设备上 每个 AMP 负责表的记录行的一个子集 负载的均匀分布取决于数据的均匀分布 数据分布通过 PI (PRIMARY INDEX) 来实现: 每张表都必须有一个PI 如果建表时未指定 PI ,系统将使用表中第一个不能为空的字段做为 PI PI 字段不能修改 PI 可以是一个字段或多个字段
Perm Space – 数据库中用来存储真正数据的空间,也称为永久空间 – 只是逻辑的概念,表示数据库可使用的存储空间的上限,不预先分配 – 可以动态修改 Spool Space – 用于存储处理交易请求的中间结果,交易结果,空间释放 – 也是逻辑概念,表示数据库可使用的 SPool 空间不能超过此上限 – 整个系统的剩余空间,都可以用作 SPool Temp Space – 用于存储临时表, Session 结束,空间释放 – 也是逻辑的概念,表示数据库可使用的 temp 空间不能超过些上限 – 整个系统的剩余空间都可以用作 temp
在 Teradata MPP 系统中,各个节点间 (确切的说是各个 AMP 之间) 的内部高速互联是通过 BYNET 实现的,它就是 Teradata 系统中那些松散耦合的节点之间相互联系的通讯总结,但实际上,它却远远没有这么简单. BYNET 是一组硬件和运行在这组硬件上的处理通迅任务的软件进程的组合体,用于: 节点之间的双向广播 (bidirectional broadcast) 多路传递 (nulticast) 点对点通信 (poing to point communication) 实现 SQL 查询过程的合并功能
在软件结构上,每个结点自下向上包括操作系统软件(OS),Teradata 并行数据库扩展 (PED) 和相关应用程序,其中 PED 的主要职责是管理和运行虚拟处理器,其中主要包括 PE 和 AMPs. (1) PDE : 并行数据库扩展 (2) VPROC : 虚拟处理器 (3) PE : 解析引擎,将接收到的 SQL 进行分解并优化 (4) AMP : 存储模块处理器,完成数据的存取操作,是实行并行机制的关键 (5) Vdisk : 虚拟磁盘
Teradata 数据库系统主要包括三个部分: – 处理节点(Node) – 用于节点间通信的内部高速互联(interConnection) – 数据存储介质(通常是磁盘阵列) 每个节点都是 SMP 结构的单机,多个节点一起构成 MPP 系统,多个节点之间的内部高速互联是通过一种被称为 BYNET 的硬件来实现的,整个系统的组成如下图所示: