ETL 工具
ETL工具:kettle、informatica、datastage、ogg+odi(oracle数据库自带)、ssis
- 资源库:程序包,打包程序,整体迁移备份
文件资源库(元数据 = 描述数据的数据) - 数据库:连接数据库,可以获取里面的表数据
- 转换:mapping抽取数据 + 添加字段(抽取数据)
- 作业:工作流、job、调度(作业调度定时自动抽取数据)
把kettle里开发的转换 串联或者并联 调度执行,自动化(定时) T+1 M+1 实时 - 日志监控
一、kettle介绍
什么是 Kettle
Kettle 是“Kettle E.T.T.L. Envirnonment”的缩写。
用来实现:抽取、转换、装入和加载数据。 = ODS层同步传输
Spoon 是 Kettle 的图形设计用户界面,允许你运行转换或者任务
其中转换是用Pan 工具来运行,任务是用 Kitchen 来运行。Pan 是一个数据转换引擎,它可以执行很多功能。
从不同的数据源读取、操作和写入数据。Kitchen 是一个可以运行利用 XML
或数据资源库描述的任务。通常任务是在规定的时间间隔内用批处理的模式自动运行。
运行 Spoon
不同的平台上运行 Spoon 所支持的脚本:
Spoon.bat: 在 windows 平台运行 Spoon。
Spoon.sh: 在 Linux、Apple OSX、Solaris 平台运行 Spoon。
二、数据库连接(Database Connections)
资源库
一个 Kettle 资源库可以包含那些转换信息,这意味着为了从数据库资源中加载一
个转换,则必须连接相应的资源库。
要实现这些,需要在资源库中定义一个数据库连接,可以在 Spoon 启动的时候,利
用资源库对话框来定义。
配置环境变量
JAVA_HOME(JDK的安装路径):
C:\Program Files (x86)\Java\jdk1.8.0_25
classpath:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
path:
;%JAVA_HOME%\bin;
创建资源库
1. 创建新资源库
2. 选择数据库连接方式
3. 新建数据库连接
创建或更新后执行
4. 连接资源库
自己写好id名字(aa),连接资源库
密码admin
三、抽取转换
先全量抽取,再增量抽取(以T+1的方式)
表输入表输出
-
创建两个DB连接
源层 贴源层 -
表输入
源层
选择要输入的表to_char(sysdate-1,‘yyyy-MM-dd’) 前一天
-
表输出
贴源层
-
连接表输入表输出
从源层传到贴源层
-
记得保存
执行sql语句
删除表里数据,重新全部插入
SQL转Excel
- 新建一个转换,创建一个表输入
如果有日期类型,要提前转换to_char - 创建一个Excel输出
选择存放位置和名字,并获取字段 - 保存执行
Excel转SQL
创建Excel输入
选择要用的文档添加,并添加字段
- 创建Excel输入
选择要用的文档添加,并添加字段 - 创建表输出
选择用户和要用的表 - 输入字段映射
无法匹配的=生日 手动添加
选中两个对应字段添加 - 添加一个组件
字段选择
四、作业
实现作业自动化 、T+1等
转换
-
选择文件新建一个作业
-
选择转换
-
定时
每一分钟执行一次 -
保存运行
作业调度
给要用的表按照需求创建转换并对应好
-
并联关系 = 同时执行
start右键 --> launch next entries in parallel 实现并联 -
串联关系 = 一个一个执行
调用存储过程
创建一个转换,调用存储过程
带参数
- 添加字段
第一行=命令行1 - 获取刚刚字段
- 选择要调用的存储过程
- 保存执行,写参数