资源预览内容
第1页 / 共86页
第2页 / 共86页
第3页 / 共86页
第4页 / 共86页
第5页 / 共86页
第6页 / 共86页
第7页 / 共86页
第8页 / 共86页
第9页 / 共86页
第10页 / 共86页
亲,该文档总共86页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
ETL基础及常用技术,主要内容,ETL基本概念 ETL常用逻辑架构 ETL实施过程 ETL常用技术(shell,oracle,datastage),ETL基本概念,ET L(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基本操作) SQL PL/SQL PROC DATASTAGE,shell基础,Linux中有好多种不同的shell,如bsh,csh ,同其他语言一样,可以通过我们使用任意一种文字编辑器,比如vi等来编写我们的shell程序。 程序必须以下面的行开始(必须放在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个程序中我们使用/bin/sh来执行程序。 当编辑好脚本时,如果要执行该脚本,还必须使其可执行。 要使脚本可执行: chmod +x filename 然后,可以通过输入: ./filename 来执行脚本。,.,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)管道, 重定向和 backtick 3)流程控制,shell基础unix命令,在shell脚本中可以使用任意的unix命令,这些命令通常是用来进行文件和文字操作的。 常用命令语法及功能: echo some text: 将文字内容打印在屏幕上 ls: 文件列表 wc l filewc -w filewc -c file: 计算文件行数计算文件中的单词数计算文件中的字符数 cp sourcefile destfile: 文件拷贝 mv oldname newname : 重命名文件或移动文件 rm file: 删除文件 grep pattern file: 在文件内搜索字符串比如:grep searchstring file.txt cut -b colnum file: 指定欲显示的文件内容范围,并将它们输出到标准输出设备比如:输出每行第5个到第9个字符cut -b5-9 file.txt千万不要和cat命令混淆,这是两个完全不同的命令,.,shell基础unix命令,ftp:远程传输文件 ftp ip 然后输入用户名密码,put ,get cat file.txt: 输出文件内容到标准输出设备(屏幕)上 file somefile: 得到文件类型 read var: 提示用户输入,并将输入赋值给变量 sort file.txt: 对file.txt文件中的行进行排序 uniq: 删除文本文件中出现的行列比如: sort file.txt | uniq expr: 进行数学运算Example: add 2 and 3expr 2 + 3 find: 搜索文件比如:根据文件名搜索find . -name filename -print tee: 将数据输出到标准输出设备(屏幕) 和文件比如:somecommand | tee outfile basename file: 返回不包含路径的文件名比如: basename /bin/tux将返回 tux,.,shell基础unix命令,dirname file: 返回文件所在路径比如:dirname /bin/tux将返回 /bin head file: 打印文本文件开头几行 tail file : 打印文本文件末尾几行 sed: Sed是一个基本的查找替换程序。可以从标准输入(比如命令管道)读入文本,并将结果输出到标准输出(屏幕)。该命令采用正则表达式(见参考)进行搜索。不要和shell中的通配符相混淆。比如:将linuxfocus 替换为 LinuxFocus :cat text.file | sed s/linuxfocus/LinuxFocus/ newtext.file awk: awk 用来从文本文件中提取字段。缺省地,字段分割符是空格,可以使用-F指定其他分割符。cat file.txt | awk -F, print $1 , $3 这里我们使用,作为字段分割符,同时打印第一个和第三个字段。如果该文件内容如下: Adam Bor, 34, IndiaKerry Miller, 22, USA命令输出结果为:Adam Bor, IndiaKerry Miller, USA tar:将文件或文件夹打包解包,tar cvf a.tar abc tar xvf a.tar,shell基础管道、重定向和 backtick命令,管道 (|) 将一个命令的输出作为另外一个命令的输入。grep hello file.txt | wc -l 在file.txt中搜索包含有”hello”的行并计算其行数。 在这里grep命令的输出作为wc命令的输入 重定向 将命令的结果输出到文件,而不是标准输出(屏幕) 写入文件并覆盖旧文件 加到文件的尾部,保留旧文件内容。 反短斜线() 使用反短斜线可以将一个命令的输出作为另外一个命令的一个命令行参数。命令: V_date=date +%F,.,shell基础流程控制命令(if),if Then . elif Then . Else . fi 大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等 通常用 来表示条件测试。注意这里的空格很重要。要确保方括号的空格。 -f somefile :判断是否是一个文件 -x /bin/ls :判断/bin/ls是否存在并有可执行权限 -n $var :判断$var变量是否有值 $a = $b :判断$a和$b是否相等,.,shell基础流程控制命令(if),字符串比较: string1 = string2 如果相等则为真 string1 != string2 如果不等则为真 -n string 如果不空则为真 -z string 如果为空则为真 算术比较: expression1 -eq expression2 如果相等则为真 expression1 -ne expression2 如果不等则为真 expression1 -gt expression2 如果大于则为真 expression1 -ge expression2 大于等于则为真 expression1 -lt expression2 如果小于则为真 expression1 -le expression2 小于等于则为真,.,shell基础流程控制命令(if),文件: -d file 如果为目录则为真 -e file 如果存在则为真(在这里要注意的是,由于历史原因,-e选项并不可移植,所以常用的是-f选项 -f file 如果为常规文件则为真 -g file 如果设置了组ID则为真 -r file 如果文件可读则为真 -s file 如果文件大小不为零则为真 -u file 如果设置了用户ID则为真 -w file 如果文件可写则为真 -x file 如果文件可执行则为真,.,shell基础流程控制命令,1)while . Do . Done while-loop 将运行直到表达式测试为真。will run while the expression that we test for is true. 关键字break 用来跳出循环。而关键字”continue”用来不执行余下的部分而直接跳到下一个循环。 2)for var in . do. Done for-loop表达式查看一个字符串列表 (字符串用空格分隔) 然后将其赋给一个变量: 3)case . in .) .; Esac case表达式可以用来匹配一个给定的字符串,.,oracle基础数据库安装,Windows环境下: 网上下载安装包 点击安装 全选默认配置即可。 其它机器上已有server端,可只安client端。 PLSQL软件是一个优秀的oracle工具,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号