亲爱的读者,这些 Teradata面试问题专门设计用于让您熟悉在面试 Teradata 时可能遇到的问题的本质.根据我的经验,好的面试官在你的面试中几乎不打算问任何特定的问题,通常问题从这个主题的一些基本概念开始,然后他们继续基于进一步的讨论以及你回答和减去的内容;
Teradata Architecture由三个组件组成.
解析引擎 : 解析引擎接收来自用户的查询,解析它并准备执行计划.
BYNET : BYNET从解析引擎接收执行计划并发送到相应的AMP.
AMP : AMP负责存储和检索行.它将数据存储在与其关联的虚拟磁盘中.除此之外,AMP还负责锁管理,空间管理,排序和聚合.
FastLoad | MultiLoad |
---|---|
目标表应为空 | 目标表不能为空 |
只能使用单个脚本加载一个表 | 最多可以加载/更新5个表 |
仅支持CREATE/INSERT语句 | 在单个脚本中支持最多20个DML语句 |
不支持具有RI,SI和触发器的表 | 支持带有NUSI的表 |
FastLoad通过检查点提供重启功能.从最后一个检查点重新启动脚本时,可能会将相同的行再次发送到AMP.这就是FastLoad不支持重复的原因.
SET表不允许重复记录,而MULTISET允许重复记录.
对于插入的每一行,系统检查是否有任何记录具有相同的行哈希.如果表已定义UPI,则它将拒绝该记录为重复.否则,它将比较整个记录的重复.这将严重影响系统性能.
您可以定义唯一主索引或唯一辅助索引,以避免重复行检查.
表格是使用CREATE TABLE语句创建.可以使用
使用列定义的CREATE TABLE语句创建表.
从现有表创建表.
带有SELECT语句的CREATE TABLE语句.
可以使用DISTINCT语句或GROUP BY语句识别重复记录.
SELECT DISTINCT第1列,第2列... FROM tablename; SELECT第1列,第2列,... FROM tablename GROUP BY第1列,第2列...... .
主键在Teradata中不是必需的,而主索引是强制性的.
数据分发基于主索引值.
主键不接受NULL,而主键索引接受NULL值.
主键是唯一的,而主索引可以是唯一的(UPI)或非唯一的(NUPI).
主键不会改变,而主索引会改变.
数据可以可以通过3种不同方式访问 : 去;
通过主要索引
通过二级索引
全桌扫描
可以使用查询SELECT HASHAMP()&plus来识别它. 1;
以下查询可用于此目的.
SELECT HASHMAP (HASHBUCK(HASHROW(primaryindexvalue))),COUNT(*) FROM tablename GROUP BY 1;
Teradata支持两种交易模式.
Teradata
ANSI
使用SET SESSION TRANSACTION BTET设置Teradata模式; ANSI模式使用SET SESSION TRANSACTION ANSI设置;
可以使用BT和ET语句执行交易.
用户无法直接访问连接索引.只有优化器才能访问它们.
重复记录将被加载目标表而被拒绝,并将被插入到UV表中.
FALLBACK是Teradata用于处理AMP故障的保护机制.对于每个数据行,该行的另一个副本存储在群集内的不同AMP中.如果任何AMP失败,则使用FALLBACK AMP访问相应的行.
使用CREATE TABLE语句创建表时或使用ALTER TABLE语句创建表后,可以提及FALLBACK.
如果查询的中间结果超过为提交查询的用户设置的每个AMP假脱机空间限制,则会发生假脱机空间错误.
SLEEP命令指定Teradata尝试之前的等待时间建立连接.
TENACITY命令规范es Teradata建立新连接的总等待时间.
您可以保留BEGIN LOADING和END LOADING语句并提交FASTLOAD脚本.其他选项是删除表格并再次创建表格.
Teradata中的缓存与源一起使用并保持相同的顺序,即它不会经常更改.缓存通常在应用程序之间共享.
这是使用Teradata的额外优势.
RAID是一种处理磁盘故障的保护机制.它代表Redundant Array of Independent Disks. RAID 1通常用于Teradata.
二级索引提供了访问数据的备用路径.它们用于避免全表扫描.但是,二级索引需要额外的物理结构来维护子表,并且还需要额外的I/O,因为需要为每一行更新子表.
Teradata中有四种不同的锁定 : 独家,写入,读取和访问.
锁可以应用于三个不同的级别和减号;数据库,表和行.
使用多值压缩(MVC),您最多可以压缩255个值,包括NULL.
FastLoad以64K块加载数据. FastLoad有两个阶段.
在阶段1中,它将数据带入64K块并将它们发送到目标安培.然后,每个AMP都会将行重新分配到其目标AMP.
在阶段2中,行按行哈希顺序排序并写入目标表.
MultiLoad导入有五个阶段.
第1阶段 : 初步阶段 - 执行基本设置活动.
阶段2 : DML Transaction Phase - 验证DML语句的语法并将它们带到Teradata系统.
阶段3 : 获取阶段 - 将输入数据输入工作表并锁定表格.
阶段4 : 申请阶段 - 适用所有DML操作.
阶段5 : 清理阶段 - 释放表锁.
MULTILOAD DELETE更快,因为它删除了块中的记录. DELETE FROM将逐行删除.
存储过程返回一个或多个值,而宏可以返回一行或多行.除了SQL之外,存储过程可能包含SPL语句.
FastLoad和MultiLoad都以64K块加载数据,而BTEQ一次处理一行.
FastExport以64K块的形式输出数据,而BTEQ一次输出一行.
Teradata Parallel Transporter(TPT)是加载的实用程序/出口数据.它结合了FastLoad,MultiLoad,BTEQ,TPUMP和FastExport的所有功能.
永久日记帐在应用更改之前或之后跟踪数据.这有助于将表回滚或前滚到特定状态.可以在表级或数据库级启用永久日记帐.
在Teradata中,每个AMP都与一个虚拟磁盘相关联.只有拥有虚拟磁盘的AMP才能访问该虚拟磁盘中的数据.这被称为无共享架构.
如果查询使用分区列,则会导致分区消除,这将大大改善性能.
分区消除了其他分区,只访问包含数据的分区.
您可以轻松删除旧分区并创建新分区.
是的.二级索引需要需要永久空间的子表.
是的.每当添加分区主索引时,每行占用分区号的额外2或8个字节.
您可以在指定列上使用RANK函数具有Qualify = 2条件的降序.
您可以检查查询的EXPLAIN计划,以确定消耗更多假脱机空间的步骤并尝试优化查询.可以应用过滤器来减少正在处理的记录数,也可以将大型查询拆分为多个较小的查询.
当对查询使用EXPLAIN命令时,它指定优化器的置信度检索记录.
Teradata有三个置信度:高信度,中等信度和低信心.
NUSI和全表扫描(FTS)将访问所有AMP,但FTS将访问AMP中的所有块,而NUSI将仅在子表包含符合条件的行时访问块.
在BTEQ模式下,SKIP命令可用于跳过记录.
BYTEINT.它只占用一个字节,可以存储最多+ 127的值.
通过唯一主索引 - 1 AMP
通过非唯一主要指数 - 1 AMP
通过独特的二级指数 - 2个AMP
通过非独特的二级指数 - 所有AMP
Clique是一种处理节点故障的保护机制.它是一组节点.当clique中的节点发生故障时,vproc(解析引擎和AMP)将迁移到其他节点并继续在其虚拟磁盘上执行读/写操作.
Teradata提供不同级别的保护机制.
Transient Journal : 处理交易失败.
后退 : 处理AMP失败.
Cliques : 处理节点故障.
RAID : 处理磁盘故障.
热备用节点 : 处理节点故障而不影响性能并重新启动.
ACTIVITYCOUNT给出了受BTEQ中先前SQL查询影响的行数.如果ACTIVITYCOUNT语句在insert语句后面,则返回插入的行数.如果ACTIVITYCOUNT语句跟在select语句之后,它将返回所选行数.
下一步是什么?
此外,您可以完成您对该主题所做的过去作业,并确保您能够自信地说出这些作业.如果你更新鲜,那么面试官不会指望你会回答非常复杂的问题,而是你必须使你的基本概念非常强大.
第二,如果你不能,那真的没关系回答几个问题,但重要的是无论你回答什么,你必须自信地回答.所以在面试时要有信心.我们在it1352希望您有一个好的面试官和所有最好的未来努力.干杯: - )