ETL 工具

ETL工具:kettle、informatica、datastage、ogg+odi(oracle数据库自带)、ssis

  1. 资源库:程序包,打包程序,整体迁移备份
    文件资源库(元数据 = 描述数据的数据)
  2. 数据库:连接数据库,可以获取里面的表数据
  3. 转换:mapping抽取数据 + 添加字段(抽取数据)
  4. 作业:工作流、job、调度(作业调度定时自动抽取数据)
    把kettle里开发的转换 串联或者并联 调度执行,自动化(定时) T+1 M+1 实时
  5. 日志监控
     

一、kettle介绍

什么是 Kettle

Kettle 是“Kettle E.T.T.L. Envirnonment”的缩写。

用来实现:抽取、转换、装入和加载数据。 = ODS层同步传输
Spoon 是 Kettle 的图形设计用户界面,允许你运行转换或者任务
其中转换是用Pan 工具来运行,任务是用 Kitchen 来运行。Pan 是一个数据转换引擎,它可以执行很多功能。

从不同的数据源读取、操作和写入数据。Kitchen 是一个可以运行利用 XML
或数据资源库描述的任务。通常任务是在规定的时间间隔内用批处理的模式自动运行。

kettle关闭ssl mysql kettle database join_资源库

 运行 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. 创建新资源库

kettle关闭ssl mysql kettle database join_kettle关闭ssl mysql_02

 2. 选择数据库连接方式

kettle关闭ssl mysql kettle database join_字段_03

 3. 新建数据库连接

创建或更新后执行

kettle关闭ssl mysql kettle database join_etl_04

 4. 连接资源库

自己写好id名字(aa),连接资源库
密码admin

kettle关闭ssl mysql kettle database join_字段_05

 

kettle关闭ssl mysql kettle database join_etl_06

 三、抽取转换

先全量抽取,再增量抽取(以T+1的方式)

表输入表输出

  1. 创建两个DB连接
    源层 贴源层
  2. 表输入
    源层
    选择要输入的表
  3. kettle关闭ssl mysql kettle database join_字段_07

  4.  to_char(sysdate-1,‘yyyy-MM-dd’) 前一天
  5. 表输出
    贴源层
  6. kettle关闭ssl mysql kettle database join_资源库_08

  7.  
  8. 连接表输入表输出
    从源层传到贴源层
  9. kettle关闭ssl mysql kettle database join_字段_09

  10.  
  11. 记得保存

执行sql语句

删除表里数据,重新全部插入

kettle关闭ssl mysql kettle database join_etl_10

 

kettle关闭ssl mysql kettle database join_数据库_11

 SQL转Excel

  1. 新建一个转换,创建一个表输入
    如果有日期类型,要提前转换to_char
  2. 创建一个Excel输出
    选择存放位置和名字,并获取字段
  3. 保存执行

Excel转SQL

创建Excel输入
选择要用的文档添加,并添加字段

 

  1. 创建Excel输入
    选择要用的文档添加,并添加字段
  2. 创建表输出
    选择用户和要用的表
  3. 输入字段映射
    无法匹配的=生日 手动添加
    选中两个对应字段添加
  4. 添加一个组件
    字段选择

 四、作业

实现作业自动化 、T+1等

 转换

  1. 选择文件新建一个作业
  2. kettle关闭ssl mysql kettle database join_kettle关闭ssl mysql_12

  3. 选择转换
  4. kettle关闭ssl mysql kettle database join_字段_13

  5. 定时
    每一分钟执行一次
  6. kettle关闭ssl mysql kettle database join_数据库_14

  7. 保存运行

作业调度

kettle关闭ssl mysql kettle database join_字段_15

 

给要用的表按照需求创建转换并对应好

  1. 并联关系 = 同时执行
    start右键 --> launch next entries in parallel 实现并联
  2. kettle关闭ssl mysql kettle database join_数据库_16

  3. 串联关系 = 一个一个执行
  4. kettle关闭ssl mysql kettle database join_字段_17

调用存储过程

kettle关闭ssl mysql kettle database join_资源库_18


创建一个转换,调用存储过程

kettle关闭ssl mysql kettle database join_资源库_19

带参数

kettle关闭ssl mysql kettle database join_数据库_20

  1. 添加字段
    第一行=命令行1
  2. 获取刚刚字段
  3. 选择要调用的存储过程
  4. 保存执行,写参数