版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、TeraData 基础培训基础培训Teradata学习推荐资料:学习推荐资料:TF v800 Read Book1.pdfTF v800 Read Book2.pdfTeradata SQL.pdfETL Automation Manual V2.5.2(GB).docperl编程编程24学时教程学时教程。Teradata Client安装安装Teradata SQL Assistant & Teradata AdministratorDSQLTeradata数据库及数据库及ETL调度工具调度工具Procedure、Macro、View、TablesPI、SI、PPI机制机制数据重分布
2、及数据重分布及JOIN机制机制SQL函数及开发经验函数及开发经验AgendaAgendaTeradata ClientTeradata Client安装安装 选择安装界面上 ,点击Install Product高亮处操作。Teradata Client安装安装Teradata ClientTeradata Client安装安装Teradata Client安装安装Teradata ClientTeradata Client安装安装BTEQ:Basic Teradata SQL 的缩写,SQL工具,DOS界面FastLoad:数据加载工具,可以从文本、数据库想Teradata导入数据。主要特点:
3、1、加载加载速度快,要求导入的目标表示空表;2、具有校验点(Checkpoint)和重启动(Restart)的功能。MutiLoad:数据加载工具,类似FastLoad,可以对导入的目标表进行增、删、改操作。FastExport:将Teradata数据库的数据备份出来。Teradata SQL Assistant: SQL工具,Windows界面Teradata Administrator:数据库管理工具Teradata Client安装安装Teradata Client安装安装配置配置CLICLI打开系统目录system32Driversetc(如2003系统:C:WINNTsystem32
4、driversetc)下的hosts文件填写Teradata数据库的CLI接口地址:如9 tedemocop0 tedemocop1 tedemocop32 tedemocop4说明:说明:第一部分为第一部分为TeradataTeradata的的ip ip地址,后面为任意名字和地址,后面为任意名字和cop1cop1、cop2cop2的组合。的组合。CopNCopN指指的是的是TeradataTeradata的节点名称。的节点名称。打开odbc数据源管理器、选择系统dsn页点击【添加】按钮Teradata Client安
5、装安装配置配置ODBCODBC选择Teradata驱动程序,点击【Finish】按钮填DB Source、Teradata Info、Default DataBase、Uername、Password等选项点击【ok】按钮完成。Teradata Client安装安装Teradata SQL Assistant & Teradata AdministratorDSQLTeradata数据库及数据库及ETL调度工具调度工具Procedure、Macro、View、TablesPI、SI、PPI机制机制数据重分布及数据重分布及JOIN机制机制SQL函数及开发经验函数及开发经验AgendaAg
6、endaTeradataSQL AssistantTeradataSQL AssistantTeradataSQL AssistantTeradataSQL Assistant输入输入SQL结果结果SQL历史历史数据数据库,库,表结表结构构TeradataSQL AssistantTeradataSQL Assistant连接数据库连接数据库实行并行实行并行SQL实行实行SQLTeradataSQL AssistantTeradataSQL AssistantTeradataSQL AssistantTeradataSQL Assistant加数据库加数据库数据浏览显示建表DDLTeradat
7、aSQL AssistantTeradataSQL AssistantTeradataSQL AssistantTeradataSQL Assistant将将SQL结果输出文档结果输出文档文档数据插入数据库文档数据插入数据库TeradataSQL AssistantTeradataSQL Assistant定义输出定义输出/插入的文插入的文档字段间档字段间隔符隔符TeradataSQL AssistantTeradataSQL Assistant如果有highlight,只提交highlight 的SQLTeradataSQL AssistantTeradataSQL Assistant最高结
8、果行数数字加千位逗号NULL用什么显示显示字段标题还是名字TeradataSQL AssistantTeradataSQL Assistant Help - Query Builder Help - Query BuilderTeradata Administrator启动Teradata Administrator后,先指定数据源,然后输入用户名和密码,即可建立与Teradata的连接。Teradata Administrator I的左面以层次型结构的方式形象地描述了Teradata的空间结构,最上面是DBC,接下来有一些系统用户和系统数据库,以及用户自创建的用户。系统的数据字典在DBC下
9、面,通过右键选择,就可显示DBC下所有的表、视图和宏。创建、调整、删除、复制用户与数据库,权限的设置,数据库中具体对象的操作等等,甚至还能通过它来递交SQL交易请求都可以通过它完成F12能显示记录操作记录和记录执行的对应的SQL修改库、用户、表、角色等从某个空间移走空间给另外个空间新建库、用户、表、角色等赋权功能选项可执行查询申请记录返回显示区数据库树形结构对象列表Teradata Administrator显示宏和存储过程显示该库或用户下视图该库和用户下对象相关的权限管理显示该库/表下的子库、表的空间情况显示表和索引列表记录返回显示区显示所有对象返回表、视图、宏、存储过程、触发器等对象相关信
10、息列表Teradata Administrator返回表或视图的记录条数显示该对象(表、视图、宏、函数等)的定义语句显示表的统计信息显示该对象(表、视图)的列信息记录返回显示区浏览数据表的总空间表空间在各AMP分布情况对象的权限Teradata AdministratorTeradata Client安装安装Teradata SQL Assistant & Teradata AdministratorDSQLTeradata数据库及数据库及ETL环境环境Procedure、Macro、View、TablesPI、SI、PPI机制机制数据重分布及数据重分布及JOIN机制机制SQL函数及开
11、发经验函数及开发经验AgendaAgendaDSQL是什么?是什么?DSQL 象象bteq一样能够可以把一样能够可以把SQL请求提交到请求提交到Teradata 系统。系统。D-sql 脚本和脚本和bteq脚本一样也是由控制命令和脚本一样也是由控制命令和sql 请求组成,同时在脚本中可以方便地使用请求组成,同时在脚本中可以方便地使用 “变量变量”。对于。对于Select语句结果返回到语句结果返回到DSQL的变量中,而的变量中,而bteq只是把结果在只是把结果在Console输出。输出。- 获取 PI ColumnSELECT ColumnName PICOLS FROM DBC.Indices
12、xWHERE DataBaseName=$TARGETDB AND TableName=$HT AND IndexType=P AND columnName NOT IN($HT_s_date,$HT_e_date)ORDER BY columnPosition;.IF ERRORCODE0 THEN .QUIT 12;- 获取历史表中除了 s_date,e_date以外,其它字段SELECT ColumnName COLS FROM DBC.ColumnsxWHERE DataBaseName=$TARGETDB AND TableName=$HT AND columnName NOT IN
13、($HT_s_date,$HT_e_date)ORDER BY ColumnID;.IF ERRORCODE 0 THEN .QUIT 12;- 创建当日表 PI 与历史表同CREATE VOLATILE MULTISET TABLE $ND AS (SELECT $COLS FROM $TARGETDB.$HT ) WITH NO DATA PRIMARY INDEX($PICOLS) ON COMMIT PRESERVE ROWS;.IF ERRORCODE0 THEN .QUIT 12;DSQL功能介绍功能介绍Dsql 的启动方法的启动方法dsql c -f v1=txt1 v2=nn1
14、 第一参数为数据库登陆信息文件第一参数为数据库登陆信息文件,其内容包括:其内容包括:TD_SYS = dbc TD_USER=billTD_PASS=bill # 口令自动加密。#长度小于16时,认为是明文,加密后长度为16Dsql脚本中包含两类命令脚本中包含两类命令控制命令控制命令, 与与Bteq一样以一样以“.”开始开始SQL Request 命令,非以命令,非以“.”开始,以开始,以 “;” 和换行符作为结束。和换行符作为结束。DSQL功能介绍(工作变量)功能介绍(工作变量)DSQL工作变量工作变量DSQL 的工作变量为的工作变量为“字符串字符串”类型,可以出现在脚本的任意位置。使用类型
15、,可以出现在脚本的任意位置。使用方法和方法和perl/shell 的变量相似;的变量相似; $var1 或或 $var1DSQL 的工作变量,除了从初始参数文件中获取外,它增加了的工作变量,除了从初始参数文件中获取外,它增加了 select 结果结果转存到工作变量中的功能。这就使得转存到工作变量中的功能。这就使得 sql 脚本真正地脚本真正地“动态动态”了。了。变量的赋值方法:变量的赋值方法:1)从初始参数文件中获得从初始参数文件中获得2)从从select的结果中获得,变量名称就是的结果中获得,变量名称就是“字段名称字段名称”,变量的值为,变量的值为“字字段内容段内容”;当;当select的结
16、果为多条记录时,变量的值为该字段所有记录的结果为多条记录时,变量的值为该字段所有记录内容以内容以“,”连接起来的大字符串。连接起来的大字符串。3) 启动启动dsql 的附加参数,可以对变量赋值的附加参数,可以对变量赋值4) 通过控制命令通过控制命令 .run file= V5=abc V6=22DSQL功能介绍(流程控制)功能介绍(流程控制)DSQL控制命令控制命令DSQL 的控制命令与的控制命令与bteq的控制命令表现形式很相似;由于的控制命令表现形式很相似;由于ETL脚本很少使脚本很少使用用Bteq做数据的做数据的Import和和export, 所以所以DSQL舍弃了数据舍弃了数据Impo
17、rt和和export功能。并且也舍弃了功能。并且也舍弃了.logon 命令,仅使用初始参数文件的内容进命令,仅使用初始参数文件的内容进行行Teradata的连接,脚本中所有的的连接,脚本中所有的SQL语句都是通过这个连接提交到语句都是通过这个连接提交到 TeradataDSQL 控制命令控制命令1) .IF 条件判断命令条件判断命令2) .Goto/.Label命令命令2) .Run File 子脚本调用子脚本调用3) .Return 子脚本返回子脚本返回4) .Quit DSQL 结束命令结束命令5) .OS 操作系统功能调用操作系统功能调用6) .Define SQL-Block 定义命令
18、定义命令7) .Sleep 程序挂起程序挂起 n 秒钟秒钟 DSQL 将会给将会给ETL带来带来?ETLETL脚本脚本“单一单一”的执行环境的执行环境脚本真正地脚本真正地“动态动态”脚本更简洁和脚本更简洁和“易读易读”可以取消一条记录一个字段的StageTable可以方便地把复杂SQL语句中的“单值”Derived Table 隔离出去Insert into target1(f1, f2) select f1,f2 from src1, (select max(f2) maxf2 from src2) MWhere f2 = maxf2-Select max(f2) maxf2maxf2 fr
19、om src2;Insert into target1(f1,f2)Select f1,f2Where f2 = $maxf2maxf2DSQL 将会给将会给ETL带来带来?知识知识“共享共享”更方便更方便把那些同种类型的“处理过程”归纳总结,“抽象”成相对固定的算法,便于其他项目的使用;.run file= .run file=$HOME/bin/insert_his.dsql HT=tab1把那些对某种类型字段做同样的“操作”归纳总结,“抽象”成相对固定的宏定义(SQL Block),在其他ETL脚本中可以方便的重复使用,或在当前脚本中多次引用,从而提高脚本开发的效率.Define cha
20、r8_to_date (1,)Select &char8_to_date(f1), &char8_to_date(f2)Dsql 支持的支持的 OS-PlatformnWin32nLinux-i386 (Suse Linux 10 32-bit)nLinux-x64 (Suse Linux 10 64-bit)nMPRASTeradata Client安装安装Teradata架构架构Teradata SQL Assistant & Teradata AdministratorDSQLTeradata数据库及数据库及ETL调度工具调度工具Procedure、Macro、V
21、iew、TablesPI、SI、PPI机制机制数据重分布及数据重分布及JOIN机制机制SQL函数及开发经验函数及开发经验AgendaAgenda数据库环境数据库环境ETL AUTOMATION服务器端目录架构图服务器端目录架构图/APP 用来存放作业 (Job) 的作业指令文件 (任务脚本)。 在这个目录下会依照ETL系统来建立子目录, 在各系统的子目录下才是各所属作业所对应的目录。/APP/$SYS/$JOB/bin 用来存放JOB作业的脚本/bin 用来存放 ETL Automation 系统程序的执行文件。也会放一些自定义的函数包。/etc 用来存放 ETL Automation 机制的
22、一些配置文件,如登录文件。 登录automationETL调度工具调度工具Automation操作演示操作演示ETL调度工具调度工具Automation操作演示操作演示配置JOB配置JOB SourceETL调度工具调度工具Automation操作演示操作演示ETL调度工具调度工具Automation操作演示操作演示配置JOB DependencyETL调度工具调度工具Automation操作演示操作演示配置JOB streamETL调度工具调度工具作业调度和作业日志作业调度和作业日志重置作业状态ETL调度工具调度工具作业调度和作业日志作业调度和作业日志强制重跑(作业依赖条件满足情况下运行)立
23、刻强制重跑(不判断作业依赖条件)ETL调度工具调度工具作业调度和作业日志作业调度和作业日志作业调度和作业日志作业调度和作业日志查看日志ETL调度工具调度工具ETL调度工具调度工具作业日志作业日志点击view log File可以看明细日志,view Script File可以看脚本,这里可以对脚本更改,但严禁使用Teradata Client安装安装Teradata架构架构Teradata SQL Assistant & Teradata AdministratorDSQLTeradata数据库及数据库及ETL调度工具调度工具Procedure、Macro、View、TablesPI、
24、SI、PPI机制机制数据重分布及数据重分布及JOIN机制机制SQL函数及开发经验函数及开发经验AgendaAgendaProcedureREPLACE PROCEDURE DWMART_XXX.PROC_TEST(IN report_date DATE, OUT returnflag INTEGER)BEGIN DECLARE EXIT HANDLER FOR SQLEXCEPTION BEGIN SET returnflag = 0; END; CREATE MUTLISET TABLE TEMP_XX as . . ; INSERT INTO TEMP_XX . ; DELETE FROM
25、 TB_XXX WHERE STATISTICS_DT=CAST(:report_date AS DATE FORMAT YYYYMMDD) ; INSERT INTO TB_XXX SELECT STATISTICS_DT ,. ,. FROM TEMP_XX GROUP BY 1,2,. ;SET returnflag = 1; END;参数变量声明In 输入Out 输出INOUT 输入输出参数变量声明变量赋值调存储过程CALL DWMART_XXX.PROC_TEST( 20100501,returnflag )MacroCREATE MACRO new_dept(dept INTEGE
26、R,budget DEC(10,2) DEFAULT 0,name CHAR(30),mgr INTEGER)AS( INSERT INTO department(department_number,department_name,budget_amount,manager_employee_number)VALUES( :dept,:name,:budget,:mgr);SELECT department_number (TITLE number),department_name (TITLE name),budget_amouunt (TITLE budget),manager_emplo
27、yee_number (TITLE manager)FROM departmentWHERE department_number = :dept;);运行宏new_deptEXEC new_dept (505,610000.00, Marketing Research, 1007);ViewREPLACE VIEW XXXX.VIE_SYS_XXXASLOCKING TABLE TB_XXX_A FOR ACCESS LOCKING TABLE PDATA.TB_XXX_B FOR ACCESS LOCKING TABLE PDATA.TB_XXX_C FOR ACCESS SELECT T1
28、.COLUMN1 ,. ,T2.COLUMN1 ,. ,T3.COLUMN1 ,.FROM PDATA.TB_XXX_A T1 INNER JOIN PDATA.TB_XXX_B T2 ON T1.COLUMNXX = T2.COLUMNXX AND T1.COLUMNXY = T2.COLUMNXY INNER JOIN PDATA.TB_XXX_C T3 ON T1.COLUMNX = T3.COLUMNX WHERE T1.COLUMN1=XXXXX;REPLACE VIEW XXXX.VIE_SYS_XXXASSELECT T1.COLUMN1 ,. ,T2.COLUMN1 ,. ,T
29、3.COLUMN1 ,.FROM PDATA.TB_XXX_A T1 INNER JOIN PDATA.TB_XXX_B T2 ON T1.COLUMNXX = T2.COLUMNXX AND T1.COLUMNXY = T2.COLUMNXY INNER JOIN PDATA.TB_XXX_C T3 ON T1.COLUMNX = T3.COLUMNX WHERE T1.COLUMN1=XXXXX;TableSet不允许记录重复不允许记录重复CREATE SET TABLE pmart.RPT_NM_GRP_PRE_WARN_MON,( CAL_Month INTEGER TITLE 统计月
30、份,ORG_NUM CHAR(12) TITLE 集团编号,City_ID CHAR(3) TITLE 地市标识,ORG_SUBS_GRP_NUM CHAR(10) TITLE 集团用户群编号,ORG_Title VARCHAR(200) TITLE 集团名称,ORG_Level CHAR(2) TITLE 集团级别,STAT_Item_Code CHAR(2) TITLE 统计项,STAT_Value DECIMAL(18,2) TITLE 统计值) PRIMARY INDEX (ORG_NUM);MultiSet允许记录重复允许记录重复CREATE MULTISET TABLE pmart
31、.RPT_NM_GRP_PRE_WARN_MON,( CAL_Month INTEGER TITLE 统计月份,ORG_NUM CHAR(12) TITLE 集团编号,City_ID CHAR(3) TITLE 地市标识,ORG_SUBS_GRP_NUM CHAR(10) TITLE 集团用户群编号,ORG_Title VARCHAR(200) TITLE 集团名称,ORG_Level CHAR(2) TITLE 集团级别,STAT_Item_Code CHAR(2) TITLE 统计项,STAT_Value DECIMAL(18,2) TITLE 统计值) PRIMARY INDEX (OR
32、G_NUM);假设原有1286449条记录插入:152853条记录耗时:15秒假设原有1286449条记录插入:152853条记录耗时:1秒UNIQUE 建议:建议:Teradata中都用中都用 MultiSet,若真要限定唯一性,可以通过若真要限定唯一性,可以通过UPI或或USI实现实现Table永久表永久表临时表临时表可变临时表在一个会话中,能够被多个查询使用。占用SPOOLSPACE,在cache中保留表的定义,spool缓冲区中物化, 不使用数据字典每个会话可以建立64个,可以随时被手动删除,会话结束时自动删除。全局临时表每个会话最多可以物化32个全局临时表。空间占用Temporary
33、 Space,对会话而言,每个实例是本地的。物化表中内容与其他会话不共享。会话结束后,物化的表被自动删除。(但基础定义仍然存储在数据字典中)导出表只有一个查询要求使用临时表,其他查询都不要求。空间占用SPOOL SPACE,使用 SELECT语句在spool缓冲区中创建导出表。查询结果只使用一次。永久表永久表CREATE MULTISET TABLE tctap.tap_c_kpi_assess_2 ,NO FALLBACK , NO BEFORE JOURNAL, NO AFTER JOURNAL, CHECKSUM = DEFAULT ( KPI_ID CHAR(8) CHARACTER
34、SET LATIN CASESPECIFIC TITLE KPI标识标识 NOT NULL ,FREQ_ID CHAR(2) CHARACTER SET LATIN CASESPECIFIC TITLE 频度代码频度代码 NOT NULL ,DATA_DATE INTEGER TITLE 指标日期指标日期 NOT NULL ,DIM_VALUE_ID1 CHAR(8) CHARACTER SET LATIN CASESPECIFIC TITLE 维度维度1 NOT NULL DEFAULT Z ,DIM_VALUE_ID2 CHAR(8) CHARACTER SET LATIN CASESPE
35、CIFIC TITLE 维度维度2 NOT NULL DEFAULT Z ,DIM_VALUE_ID3 CHAR(8) CHARACTER SET LATIN CASESPECIFIC TITLE 维度维度3 NOT NULL DEFAULT Z ,. ,DIM_VALUE_ID18 CHAR(8) CHARACTER SET LATIN CASESPECIFIC TITLE 维度维度18 NOT NULL DEFAULT Z ,DIM_VALUE_ID19 CHAR(8) CHARACTER SET LATIN CASESPECIFIC TITLE 维度维度19 NOT NULL DEFAU
36、LT Z ,DIM_VALUE_ID20 CHAR(8) CHARACTER SET LATIN CASESPECIFIC TITLE 维度维度20 NOT NULL DEFAULT Z ,DIM_VALUE_IDn CHAR(8) CHARACTER SET LATIN CASESPECIFIC TITLE 维度维度n NOT NULL DEFAULT Z ,KPI_ASSESS_TYPE_ID CHAR(4) CHARACTER SET LATIN CASESPECIFIC TITLE KPI目标类型目标类型ID NOT NULL ,KPI_ASSESS_RESULT_ID CHAR(2)
37、 CHARACTER SET LATIN CASESPECIFIC TITLE KPI目标值返回值目标值返回值ID NOT NULL ,KPI_ASSESS_VALUE DECIMAL(18,2) TITLE KPI目标值目标值)PRIMARY INDEX ( DATA_DATE ,KPI_ID , DIM_VALUE_ID1)PARTITION BY RANGE_N(DATA_DATE BETWEEN 20000101 AND 20191231)UNIQUE INDEX (KPI_ID,FREQ_ID,DATA_DATE,DIM_VALUE_ID1,DIM_VALUE_ID2,DIM_VAL
38、UE_ID3,.,DIM_VALUE_ID18,DIM_VALUE_ID19,DIM_VALUE_ID20,DIM_VALUE_IDn,KPI_ASSESS_TYPE_ID,KPI_ASSESS_RESULT_ID);COLLECT STATISTICS ON tctap.tap_c_kpi_assess_2 COLUMN ( DATA_DATE ,KPI_ID , DIM_VALUE_ID1);COLLECT STATISTICS ON tctap.tap_c_kpi_assess_2 COLUMN ( DATA_DATE );COLLECT STATISTICS ON tctap.tap_
39、c_kpi_assess_2 COLUMN (KPI_ID,FREQ_ID,DATA_DATE,DIM_VALUE_ID1,DIM_VALUE_ID2,DIM_VALUE_ID3,.,DIM_VALUE_ID18,DIM_VALUE_ID19,DIM_VALUE_ID20,DIM_VALUE_IDn,KPI_ASSESS_TYPE_ID,KPI_ASSESS_RESULT_ID);COLLECT STATISTICS ON tctap.tap_c_kpi_assess_2 COLUMN (KPI_ID);设计原则:设计原则:1、调整PI,在保留一定数据分布均匀度的基础上,把PI字段从N个减少为
40、3个,提高数据查询速度。2、增加PPI,提高数据插入性能与查询性能。3、增加USI,而不是把Multiset改为Set;虽然这两种方式都能保证数据记录的唯一性,但是前者效率会更高。4、增加统计信息,有助于系统优化SQL查询。可变临时表可变临时表建表语句:建表语句:CREATE VOLATILE MULTISET TABLE vt_RETAIN_ANLY_MON ( col1 , col2)PRIMARY INDEX (PI_Cols) ;复制表结构:复制表结构: CREATE MULTISET VOLATILE TABLE VT_APP_AGG_INDEX_H AS DWMart_DOA.DO
41、A_APP_AGG_INDEX_H WITH DATA(NO DATA) ON COMMIT PRESERVE ROWS;CREATE VOLATILE MULTISET TABLE VT_RETAIN_ANLY_MON AS ( SELECT col1,col2, FROM WHERE GROUP BY . )WITH DATA PRIMARY INDEX (PI_Cols) ON COMMIT PRESERVE ROWS;ON COMMIT PRESERVE ROWS;全局临时表全局临时表建表语句建表语句CREATE GLOBAL TEMPORARY TABLE gt_deptsal(de
42、ptno SMALLINT,avgsal DEC(9,2),maxsal DEC(9,2),minsal DEC(9,2),sumsal DEC(9,2),empcnt SMALLINT)ON COMMIT PRESERVE ROWS;CREATE INDEX (empcnt)ON gt_deptsal;COLLECT STATISTICS ON gt_deptsal INDEX (deptno);COLLECT STATISTICS ON gt_deptsal COLUMN avgsal;HELP STATISTICS gt_deptsal;TEMPORARY导出表示例:示例:SELECT*
43、 FROM (SELECTdeptno,SUM(sal) AS sal_sum FROMscott.emp GROUP BY deptno)tmp固化临时表固化临时表固化临时表,就是把查询结果存放到一张物理表。固化临时表,就是把查询结果存放到一张物理表。共下次分析或他人使用。共下次分析或他人使用。Session断开之后,仍然可以使用。断开之后,仍然可以使用。在性能优化中也常被用到的一种做法。在性能优化中也常被用到的一种做法。示例示例1: CREATE MULTISET TABLE tttemp.TMP_BOSS_VOIC AS ( SELECT * FROM pview.vw_net_gsm_
44、nl) WITH NO DATA PRIMARY INDEX (subs_id);INSERT INTO tttemp.TMP_BOSS_VOICSELECT * FROM pview.vw_net_gsm_nl WHERE *;示例示例2:CREATE MULTISET TABLE tttemp.TMP_BOSS_VOIC AS ( SELECT * FROM pview.vw_net_gsm_nl WHERE *) WITH DATA PRIMARY INDEX (subs_id);示例示例3:(复制表,数据备份)复制表,数据备份)CREATE MULTISET TABLE tttemp.
45、TMP_BOSS_VOIC AS pdata.tb_net_gsm_nl WITH DATA ;修改表定义修改表定义常见的表定义修改操作:增加字段修改字段长度建议的操作流程建议的操作流程Rename table db.tablex as db.tabley;通过Show table语句获得原表db.tablex的定义定义新表: db.tablexInsert into db.tablex(。) select 。 From db.tabley;Drop table db.tabley;Teradata提供ALTER TABLE语句,可进行修改表定义但,不建议采用ALTER TABLE方式。Upd
46、ate/Delete操作操作UPDATE Customer SET Credit_Limit = Credit_Limit * 1.20 ; CREATE multiset TABLE Customer_N AS Customer with no data;INSERT INTO Customer_NSELECT Credit_Limit * 1.20 FROM Customer ;DROP TABLE Customer ;RENAME TABLE Customer_N TO Customer ;CREATE multiset TABLE Trans_N as Trans with no da
47、ta;INSERT INTO Trans_NSELECT * FROM Trans WHERE Trans_Date 981231;DROP TABLE Trans;RENAME TABLE Trans_N TO Trans;先建立空表,通过insert / select 方式插入数据这是非常快的操作!先备份,然后做变更操作,更加安全!对于大表进行Update/DELETE操作,将耗费相当多的资源与相当长的时间。Update/Delete操作,需要事务日志TJ(Transient Journal)以防意外中断导致数据受到破坏在Update/Delete操作中途被Cancel,系统则需回滚,这将
48、耗更多的资源与时间!DELETE FROM Trans WHERE Trans_Date 1000;Examples of Full Table Scans:Logical Example of NPPI versus PPI4 AMPs with Orders Table defined with PPI on O_Date.RHO_#O_DateRHO_#O_DateRHO_#O_DateRHO_#O_Date35100706/0126100206/0124100406/0120100506/0139101106/0136101206/0132100306/0143101006/01141
49、00106/0106100906/0104100806/0108100606/0103101606/0217101306/0248102306/0207101706/0216102106/0245101506/0209101806/0227101406/0244102206/0202102406/0211101906/0222102006/0201102806/0312103106/0328103206/0310103406/0329103306/0334102906/0319102506/0340103506/0347102706/0325103606/0331102606/03461030
50、06/0323104006/0430103806/0442104706/0413103706/0421104506/0436104306/0405104806/0415104206/0433103906/0418104106/0438104606/0441104406/04 4 AMPs with Orders Table defined with NPPI.01102806/0312103106/0328103206/0310103406/0329103306/0334102906/0319102506/0340103506/0347102706/0325103606/0331102606/
51、0346103006/0303101606/0217101306/0248102306/0207101706/0216102106/0245101506/0209101806/0227101406/0244102206/0202102406/0211101906/0222102006/0214100106/0135100706/0139101106/0106100906/0126100206/0136101206/0104100806/0124100406/0132100306/0108100606/0120100506/0143101006/0123104006/0430103806/044
52、2104706/0413103706/0421104506/0436104306/0405104806/0415104206/0433103906/0418104106/0438104606/0441104406/04RHO_#O_DateRHO_#O_DateRHO_#O_DateRHO_#O_Date Teradata Client安装安装Teradata SQL Assistant & Teradata AdministratorDSQLTeradata数据库及数据库及ETL调度工具调度工具Procedure、Macro、View、TablesPI、SI、PPI机制机制数据重分布
53、及数据重分布及JOIN机制机制SQL函数及开发经验函数及开发经验AgendaAgendaJoin之前的重分布AMP1SELECT. . .FROMTable1 T1INNER JOINTable2 T2ONT1.A = T2.A;Join 的列都是两个表的的列都是两个表的PI不需要数据重分布不需要数据重分布.Subs_idBCPI100 214 433T2Subs_idBCPI100 725002Subs_idBCPI200 214433T2Subs_idBCPI200 725002AMP2话单表用户资料表Join之前的重分布之前的重分布AMP1SELECT. . .FROM用户资料表用户资料
54、表 T1INNER JOIN客户资料表客户资料表ON T1.Cust_id = T2.Cust_id;Join 的列都是在一个表上是的列都是在一个表上是PI,另外一个表上不是,另外一个表上不是PI是是PI的表不需要重分布的表不需要重分布.Subs_id Cust_idPI100 214T2Cust_idBCPI 214 725002Subs_id Cust_idPI200 214T2Cust_idBCPI408133009AMP2用户资料表客户资料表Join之前的重分布之前的重分布AMP1Subs_id Cust_idPI100 214 100 408T2Cust_idBCPI 214 725
55、002Subs_id Cust_idPI200 214T2Cust_idBCPI408133009AMP2用户资料表客户资料表Subs_id Cust_id PI100 214 200 214Subs_id Cust_id PI 100 408Spool空间重分布的问题重分布的问题大表的代码字段与小表的PI字段SELECT city_name, COUNT(DISTINCT subs_id)FROM TB_Ofr_Subs AJOIN TB_CDE_City BON A.city_id = B.city_id如果选择重分布的策略,意味着将所有的用户按照地市重分布到所有的AMP上系统总共130个
56、AMP、总共13个市意味着只有13个AMP有数据,其它AMP根本不能被用到同时,由于A市的用户数较大,意味这A市所在的AMP上数据量很大,造成了13个AMP运行过程中的不均匀。Join之前的复制小表到所有的之前的复制小表到所有的AMPAMP1City_id City_namePI100 A市市 T2Cust_id City_idPI 214 200 City_id City_namePI200 A市市T2Cust_id City_idPI408 100AMP2地市代码表用户资料表 City_id City_name100 A市市 200 B市市 City_id City_name 100 A市
57、市 200 B市市Spool空间复制小表到Spool空间1M rows1M rows1M rows1M rows1M rows1M rows1M rows1M rowsTableTable1M rows8M rowsSPOOL(表被复制到所有的表被复制到所有的AMP上上)1M rows8M rows1M rows8M rows1M rows8M rows1M rows8M rows1M rows8M rows1M rows8M rows1M rows8M rows数据已经到了一个数据已经到了一个AMP上,关联怎么做?上,关联怎么做?关联策略 Merge Join用来用来Join的记录必须位于相
58、同的的记录必须位于相同的AMP上上Merge Join 仅仅读取每个表一次.对于等值条件的Join,优化器经常会选用Merge Join.通常情况下比product join的效率更高.Merge join 处理流程处理流程:找到一个小表.如果需要:将一个或者两个表要用到的数据都放在Spool空间里.基于Join列的hash值将记录重分布到相应的AMP.根据Join列的hash顺序对spool里面的记录进行排序.对于Join列的Hash值相同的记录进行比较.与Product Join相比,比较次数大大降低.A3DataA3DataA3DataB7DataB7DataC4DataC4DataJo
59、in ColumnHashA3DataB8DataC4DataJoin ColumnHash适用情况:适用情况:两个表的数据量都比较大时例如 100万 30万关联策略 Nested JoinsThis is a special join case.This is the only join that doesnt always use all of the AMPs.It is the most efficient in terms of system resources.It is the best choice for OLTP applications.To choose a Neste
60、d Join, the Optimizer must have:An equality value for a unique index (UPI or USI) on Table1.A join on a column of that single row to any index on Table2.The system retrieves the single row from Table1.It hashes the join column value to access matching Table2 row(s).Example:SELECT E.Name,D.NameFROMEmployee EINNER JOIN Department
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《专业英语》-第6单元
- 2026年房地产项目的财务与税务整合
- 2026年垃圾焚烧发电厂电气防爆设计
- 2026年土木工程绿色施工的技术创新与发展
- 课件设计思路介绍模板
- 职业病防护与安全生产培训教材
- 小学教研组工作总结模板合集
- 七年级英语期末测试题及评卷标准
- 毕业生自我评价与总结范文
- 课件活动安全案例分析
- 项目进度跟进及完成情况汇报总结报告
- 2024-2025学年冀教版九年级数学上册期末综合试卷(含答案)
- 《智能网联汽车车控操作系统功能安全技术要求》
- 公司绿色可持续发展规划报告
- 峨眉山城市介绍旅游宣传课件
- 浙江省温州市乐清市2023-2024学年五年级上学期期末语文试题
- 土壤改良合同模板
- 2024年中国成人心肌炎临床诊断与治疗指南解读课件
- 2024年新疆文旅旅游投资集团招聘笔试冲刺题(带答案解析)
- JT-T-915-2014机动车驾驶员安全驾驶技能培训要求
- (高清版)WST 442-2024 临床实验室生物安全指南
评论
0/150
提交评论