ETL基础及常用技术培训.ppt

上传人:wj 文档编号:813330 上传时间:2023-04-30 格式:PPT 页数:87 大小:3.45MB
下载 相关 举报
ETL基础及常用技术培训.ppt_第1页
第1页 / 共87页
ETL基础及常用技术培训.ppt_第2页
第2页 / 共87页
ETL基础及常用技术培训.ppt_第3页
第3页 / 共87页
ETL基础及常用技术培训.ppt_第4页
第4页 / 共87页
ETL基础及常用技术培训.ppt_第5页
第5页 / 共87页
ETL基础及常用技术培训.ppt_第6页
第6页 / 共87页
ETL基础及常用技术培训.ppt_第7页
第7页 / 共87页
ETL基础及常用技术培训.ppt_第8页
第8页 / 共87页
ETL基础及常用技术培训.ppt_第9页
第9页 / 共87页
ETL基础及常用技术培训.ppt_第10页
第10页 / 共87页
ETL基础及常用技术培训.ppt_第11页
第11页 / 共87页
ETL基础及常用技术培训.ppt_第12页
第12页 / 共87页
ETL基础及常用技术培训.ppt_第13页
第13页 / 共87页
ETL基础及常用技术培训.ppt_第14页
第14页 / 共87页
ETL基础及常用技术培训.ppt_第15页
第15页 / 共87页
ETL基础及常用技术培训.ppt_第16页
第16页 / 共87页
ETL基础及常用技术培训.ppt_第17页
第17页 / 共87页
ETL基础及常用技术培训.ppt_第18页
第18页 / 共87页
ETL基础及常用技术培训.ppt_第19页
第19页 / 共87页
ETL基础及常用技术培训.ppt_第20页
第20页 / 共87页
亲,该文档总共87页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ETL基础及常用技术培训.ppt

《ETL基础及常用技术培训.ppt》由会员分享,可在线阅读,更多相关《ETL基础及常用技术培训.ppt(87页珍藏版)》请在冰点文库上搜索。

ETL基础及常用技术培训.ppt

ETL基础及常用技术,主要内容,ETL基本概念ETL常用逻辑架构ETL实施过程ETL常用技术(shell,oracle,datastage),ETL基本概念,ETL(Extract-Transform-Load)即数据的抽取、转换与加载。

ETL是从各种原始的业务系统(异构多源)中提取数据,按照预先设计好的规则将抽取到的数据进行转换,最后将转换完的数据按计划增量或全部导人到目标数据库,成为联机分析处理、数据挖掘的基础。

ETL为BI/DW的核心和灵魂.ETL就是一个批量数据加工的过程.,ETL常用逻辑架构,数据抽取数据清洗与转换数据加载,ETL实施过程,数据抽取确定所有数据源来源于哪些源系统,核心系统,信贷,信用卡等定义数据接口对每个源文件及接口的每个字段进行详细说明数据抽取方法主动抽取还是源系统提供文件,增量还是全量,每日还是每月,ETL实施过程,1.代码标准化2.数据粒度的转换3.根据业务规则计算确定数据清洗和转换规则后细化mapping,编码实现,数据清洗与转换数据清洗1.不完整的数据2.错误的数据3.重复的数据数据转换,ETL实施过程,数据加载将数据缓冲区的数据直接加载到数据库对应的表中,如果是全量采用load方式,如果是增量则根据业务规则merge进数据库,ETL实施过程,ETL常用技术,SHELL(unix基本操作)SQLPL/SQLPROCDATASTAGE,shell基础,Linux中有好多种不同的shell,如bsh,csh,同其他语言一样,可以通过我们使用任意一种文字编辑器,比如vi等来编写我们的shell程序。

程序必须以下面的行开始(必须放在文件的第一行):

#!

/bin/sh符号#!

用来告诉系统它后面的参数是用来执行该文件的程序。

在这个程序中我们使用/bin/sh来执行程序。

当编辑好脚本时,如果要执行该脚本,还必须使其可执行。

要使脚本可执行:

chmod+x然后,可以通过输入:

./来执行脚本。

最新课件,shell基础,Vi

(一)、进入vi在系统提示字符(如$、#)下敲入vi档案名称,vi可以自动帮你载入所要编辑的文件或是开启一个新文件(如果该文件不存在或缺少文件名)。

进入vi后萤幕左方会出现波浪符号,凡是列首有该符号就代表此列目前是空的。

(二)、两种模式如上所述,vi存在两种模式:

指令模式和输入模式。

在指令模式下输入的按键将做为指令来处理:

如输入a,vi即认为是在当前位置插入字符。

而在输入模式下,vi则把输入的按键当作插入的字符来处理。

指令模式切换到输入模式只需键入相应的输入命令即可(如a,A),而要从输入模式切换到指令模式,则需在输入模式下键入ESC键,如果不晓得现在是处於什麽模式,可以多按几次ESC,系统如发出哔哔声就表示已处于指令模式下了。

最新课件,shell基础,Vi由指令模式进入输入模式的指令:

新增(append)a:

从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。

A:

从光标所在列最後面的地方开始新增资料。

插入(insert)i:

从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。

I:

从光标所在列的第一个非空白字元前面开始插入资料。

开始(open)o:

在光标所在列下新增一列并进入输入模式。

O:

在光标所在列上方新增一列并进入输入模式。

最新课件,shell基础,Vi(三)、基本编辑配合一般键盘上的功能键,像是方向键、Insert、Delete等等,现在你应该已经可以利用vi来编辑文件了。

当然vi还提供其他许许多多功能让文字的处理更为方便。

何谓编辑?

一般认为是文字的新增、修改以及删除,甚至包括文字区块的搬移、复制等等。

先这里介绍vi的如何做删除与修改。

删除与修改文件的命令:

x:

删除光标所在字符。

dd:

删除光标所在的列。

r:

修改光标所在字元,r後接著要修正的字符。

R:

进入取替换状态,新增文字会覆盖原先文字,直到按ESC回到指令模式下为止。

s:

删除光标所在字元,并进入输入模式。

S:

删除光标所在的列,并进入输入模式。

在指令模式下移动光标的基本指令是h,j,k,l。

最新课件,shell基础,Vi(四)、退出vi在指令模式下键入:

q,:

q!

:

wq或:

x(注意:

号),就会退出vi。

其中:

wq和:

x是存盘退出,而:

q是直接退出,如果文件已有新的变化,vi会提示你保存文件而:

q命令也会失效,这时你可以用:

w命令保存文件后再用:

q退出,或用:

wq或:

x命令退出,如果你不想保存改变后的文件,你就需要用:

q!

命令,这个命令将不保存文件而直接退出vi。

shell基础,注释#变量在shell编程中,所有的变量都由字符串组成,并且不需要对变量进行声明。

要赋值给一个变量,可以这样写:

变量名=值取出变量值可以加一个美元符号($)在变量前面shell脚本中的三类命令1)Unix命令2)管道,重定向和backtick3)流程控制,shell基础unix命令,在shell脚本中可以使用任意的unix命令,这些命令通常是用来进行文件和文字操作的。

常用命令语法及功能:

echosometext:

将文字内容打印在屏幕上ls:

文件列表wclfilewc-wfilewc-cfile:

计算文件行数计算文件中的单词数计算文件中的字符数cpsource:

文件拷贝mvoldnamenewname:

重命名文件或移动文件rmfile:

删除文件greppatternfile:

在文件内搜索字符串比如:

grepsearchstringcut-bcolnumfile:

指定欲显示的文件内容范围,并将它们输出到标准输出设备比如:

输出每行第5个到第9个字符cut-b5-9千万不要和cat命令混淆,这是两个完全不同的命令,最新课件,shell基础unix命令,ftp:

远程传输文件然后输入用户名密码,put,getcat:

输出文件内容到标准输出设备(屏幕)上:

得到文件类型readvar:

提示用户输入,并将输入赋值给变量sort:

对文件中的行进行排序uniq:

删除文本文件中出现的行列比如:

sort|uniqexpr:

进行数学运算Example:

add2and3expr2+3find:

搜索文件比如:

根据文件名搜索find.-name-printtee:

将数据输出到标准输出设备(屏幕)和文件比如:

somecommand|teeoutfilebasenamefile:

返回不包含路径的文件名比如:

basename/bin/tux将返回tux,最新课件,shell基础unix命令,dirnamefile:

返回文件所在路径比如:

dirname/bin/tux将返回/binheadfile:

打印文本文件开头几行tailfile:

打印文本文件末尾几行sed:

Sed是一个基本的查找替换程序。

可以从标准输入(比如命令管道)读入文本,并将结果输出到标准输出(屏幕)。

该命令采用正则表达式(见参考)进行搜索。

不要和shell中的通配符相混淆。

比如:

将linuxfocus替换为LinuxFocus:

cattext.file|seds/linuxfocus/LinuxFocus/newtext.fileawk:

awk用来从文本文件中提取字段。

缺省地,字段分割符是空格,可以使用-F指定其他分割符。

cat|awk-F,print$1,$3这里我们使用,作为字段分割符,同时打印第一个和第三个字段。

如果该文件内容如下:

AdamBor,34,IndiaKerryMiller,22,USA命令输出结果为:

AdamBor,IndiaKerryMiller,USAtar:

将文件或文件夹打包解包,tarcvfa.tarabctarxvfa.tar,shell基础管道、重定向和backtick命令,管道(|)将一个命令的输出作为另外一个命令的输入。

grephello|wc-l在中搜索包含有”hello”的行并计算其行数。

在这里grep命令的输出作为wc命令的输入重定向将命令的结果输出到文件,而不是标准输出(屏幕)写入文件并覆盖旧文件加到文件的尾部,保留旧文件内容。

反短斜线()使用反短斜线可以将一个命令的输出作为另外一个命令的一个命令行参数。

命令:

V_date=date+%F,最新课件,shell基础流程控制命令(if),ifThen.elifThen.Else.fi大多数情况下,可以使用测试命令来对条件进行测试。

比如可以比较字符串、判断文件是否存在及是否可读等等通常用来表示条件测试。

注意这里的空格很重要。

要确保方括号的空格。

-fsomefile:

判断是否是一个文件-x/bin/ls:

判断/bin/ls是否存在并有可执行权限-n$var:

判断$var变量是否有值$a=$b:

判断$a和$b是否相等,最新课件,shell基础流程控制命令(if),字符串比较:

string1=string2如果相等则为真string1!

=string2如果不等则为真-nstring如果不空则为真-zstring如果为空则为真算术比较:

expression1-eqexpression2如果相等则为真expression1-neexpression2如果不等则为真expression1-gtexpression2如果大于则为真expression1-geexpression2大于等于则为真expression1-ltexpression2如果小于则为真expression1-leexpression2小于等于则为真,最新课件,shell基础流程控制命令(if),文件:

-dfile如果为目录则为真-efile如果存在则为真(在这里要注意的是,由于历史原因,-e选项并不可移植,所以常用的是-f选项-ffile如果为常规文件则为真-gfile如果设置了组ID则为真-rfile如果文件可读则为真-sfile如果文件大小不为零则为真-ufile如果设置了用户ID则为真-wfile如果文件可写则为真-xfile如果文件可执行则为真,最新课件,shell基础流程控制命令,1)while.Do.Donewhile-loop将运行直到表达式测试为真。

willrunwhiletheexpressionthatwetestforistrue.关键字break用来跳出循环。

而关键字”continue”用来不执行余下的部分而直接跳到下一个循环。

2)forvarin.do.Donefor-loop表达式查看一个字符串列表(字符串用空格分隔)然后将其赋给一个变量:

3)case.in.).;Esaccase表达式可以用来匹配一个给定的字符串,最新课件,oracle基础数据库安装,Windows环境下:

网上下载安装包点击安装全选默认配置即可。

其它机器上已有server端,可只安client端。

PLSQL软件是一个优秀的oracle工具,建议安装unix环境下:

建oracle组和用户在oracle用户下安装授予其它用户执行oracle命令的权限,最新课件,oracle基础数据库的连接,Client端连接配置到oracle安装目录下搜索tnsnames.ora增加修改相应连接内容ORCL=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=cg)(PORT=1521)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)mdb=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=128.160.96.21)(PORT=1521)(CONNECT_DATA=(SERVER=DEDICATED)(SID=mdb),最新课件,oracle基础数据库的连接,Unix环境先设置编辑器exportEDITOR=viselectparameter,valuefromnls_database_parameterswhereparameter=NLS_CHARACTERSET;-显示数据库字符集NLS_LANG应与数据库字符集一致exportNLS_LANG=“SIMPLIFIEDCHINESE.ZHS16GBK”exportNLS_DATE_FORMAT=YYYY-MM-DD-HH24.MI.SS命令行:

sqlplususername/passwordserverassysdbaassysopersqlplus/assysdba-管理员进入sqlplusetl/etlmdb-普通用户进入SQLsetlinesize300;-设置行长度SQLsetpagesize1;-设置页长度SQLcolnameformata30;-设置列格式SQLselectsysdatefromdual;-运行语句,最新课件,oracle基础数据库的连接,Plsql是一款优秀的操作oracle图形界面软件Sqlwindow可单条执行sqlCommandwindow可批量执行多条sql,最新课件,oracle基础表空间,ORACLE数据库被划分成称作为表空间的逻辑区域形成ORACLE数据库的逻辑结构。

一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。

表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。

每个ORACLE数据库均有SYSTEM表空间,这是数据库创建时自动创建的。

SYSTEM表空间必须总要保持联机,因为其包含着数据库运行所要求的基本信息(关于整个数据库的数据字典、联机求助机制、所有回退段、临时段和自举段、所有的用户数据库实体、其它ORACLE软件产品要求的表)。

一个小型应用的ORACLE数据库通常仅包括SYSTEM表空间,然而一个稍大型应用的ORACLE数据库采用多个表空间会对数据库的使用带来更大的方便。

最新课件,oracle基础表空间,建立本地管理表空间CREATETABLESPACEtablespace_nameDATAFILESIZEUNIFORMSIZEextent_size|AUTOALLOCATECREATETABLESPACEDATATBS01_32KDATAFILE/home/mdb/oracle/oradata/mdb/datatbs01_01.dbfSIZE100G,/home/mdb/oracle/oradata/mdb/datatbs01_02.dbfSIZE100G,/home/mdb/oracle/oradata/mdb/datatbs01_03.dbfSIZE100G,EXTENTMANAGEMENTLOCALUNIFORMSIZE32MSEGMENTSPACEMANAGEMENTAUTOblocksize32k,最新课件,oracle基础表空间,建立UNDO表空间CREATEUNDOTABLESPACEtablespace_nameDATAFILESIZEUNIFORMSIZEextent_size|AUTOALLOCATE建立临时表空间:

存放查询、排序、分组等生成的临时数据CREATETEMPORARYTABLESPACEtablespace_nameTEMPFILESIZEUNIFORMSIZEextent_size|AUTOALLOCATE,最新课件,oracle基础表空间,改变表空间可用性ALTERTABLESPACEtablespace_nameonline|offline改变表空间读写状态ALTERTABLESPACEtablespace_nameREADWRITE|READONLY改变表空间名称ALTERTABLESPACEtablespace_nameRENAMETOnew_tbs_name设置默认表空间ALTERDATABASEDEFAULTTABLESPACEtablespace_name-数据库默认表空间ALTERDATABASEDEFAULTTEMPORARYtablespace_name-数据库默认临时表空间删除表空间DROPTABLESPACEtablespace_nameINCLUDINGCONTENTSANDDATAFILES;,最新课件,oracle基础用户管理,建立用户createuserETLidentifiedbydefaulttablespaceETLDATA01temporarytablespaceTEMP1pro;给用户授权grantconnecttoetl;grantselect_catalog_roletoetl;grantselectanytabletoetl;grantcreatesessiontoetl;grantaltersessiontoetl;grantcreatetabletoetl;grantcreateviewtoetl;grantcreatetypetoetl;grantcreatesynonymtoetl;grantcreatesequencetoetl;grantcreateproceduretoetl;,最新课件,oracle基础用户管理,修改口令ALTERUSERuser_nameIDENTIFIEDBYnew_password;修改默认表空间ALTERUSERuser_nameDEFAULTTABLESPACEnew_tablespace_name;锁定用户ALTERUSERetlACCOUNTLOCK;解锁用户ALTERUSERetlACCOUNTUNLOCK;删除用户DROPUSERusernameCASCADE;,最新课件,oracle基础表建立及管理,普通建表CREATETABLEschema.table_name(column_namedatatypeDEFAULTexpr,)TABLESPACEtablespace_name;使用子查询建表CREATETABLEschema.table_name(column_name,)TABLESPACEtablespace_nameASsubquery;建临时表-事务临时表当前事务内有效CREATEGLOBALTEMPORARYTABLEtable_name(column_name,)ONCOMMITDELETEROWS;-会话临时表当前会话内有效CREATEGLOBALTEMPORARYTABLEtable_name(column_name,)ONCOMMITPRESERVEROWS;,最新课件,oracle基础表建立及管理,增加列ALTERTABLEtable_nameADD(columndatatypeDEFAULTexpr);修改列定义ALTERTABLEtable_nameMODIFY(columndatatypeDEFAULTexpr);删除列ALTERTABLEtable_nameDROP(column);修改列名ALTERTABLEtable_nameRENAMECOLUMNcolumn_nametonew_column_name;增加注释COMMENTONTABLEtable_nameIStext;COMMENTONCOLUMNtable_name.column_nameIStext;迁移非分区表的表空间ALTERTABLEtable_nameMOVEnew_tablespace_name;-表对应索引需重建,最新课件,oracle基础表建立及管理,截断表-快速删除数据释放空间保留表结构-是DDL语句不可回退TRUNCATETABLEtable_name;-delete是DML语句可回退删除表-PURGE是oracle10g新特性表永久删除DROPTABLEtable_nameCASCADECONSTRAINTSPURGE;从回收站Recyclebin恢复被删除表FLASHBACKTABLEtable_nameTOBEFOREDROP;清空回收站PURGERECYCLEBIN;查看回收站SELECT*FROMRECYCLEBIN;,最新课件,oracle基础表建立及管理,表SELECT*FROMUSER_TABLES;对象SELECT*FROMUSER_OBJECTS;表占用的空间selectsum(bytes)fromuser_segmentswheresegment_name=table_name;清空回收站PURGERECYCLEBIN;查看回收站SELECT*FROMRECYCLEBIN;查看表的列SELECT*FROMUSER_TAB_COLUMNS;查看注释SELECT*FROMUSER_TAB_COMMENTS;SELECT*FROMUSER_COL_COMMENTS;查看建表语句SELECTdbms_metadata.get_ddl(TABLE,)FROMdual;SELECTdbms_metadata.get_ddl(TABLE,upper(tmpcg_ctl_paravalue),upper(etl)FROMdual;,最新课件,oracle基础索引,建索引CREATEINDEXUNIQUEindex_nameONtable_name(column_name,.)TABLESPACEtablespace_name;-不设表空间则建在用户默认表空间上维护索引ALTERINDEXindex_nameREBUILDTABLESPACEtablespace_name;-可改变索引表空间显示索引信息SELECT*FROMUSER_INDEXES;SELECT*FROMUSER_IND_COULMNS;-查找失效的非分区索引SELECT*FROMUSER_INDEXESWHERESTATUS=UNUSABLE;查看建索引语句SELECTdbms_metadata.get_ddl(INDEX,)FROMdual;SELECTdbms_metadata.get_ddl(INDEX,upper(idx_tmpcg_ctl_paravalue),upper(etl)FROMdual;,最新课件,oracle基础序列,序列(Sequence)是用于生成唯一数字的数据库对象,自动生成顺序递增的序列号,可提供唯一的主键值,事务回滚值不会减少建序列CREATESEQUENCEseq_nameINCREMENTBYnSTARTWITHnMAXVALUEn|NOMAXVALUE;MINVALUEn|NOMINVALUECYCLE|NOCYCLECACHEn|NOCACHE;使用序列INSERTINTOt1(id)VALUES(t1id_seq.NEXTVAL);SELECTt1id_seq.CURRVALFROMdual;删除序列DROPSEQUENCEseq_name;显示序列信息SELECT*FROMSEQ;查看建序列语句SELECTdbms_metadata.get_ddl(SEQUENCE,)FROMdual;,最新课件,oracle基础分区表,ORACLE的分区(PartitioningOption)是一种处理超大型表的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2