zoukankan      html  css  js  c++  java
  • kettle及数据库导数_20160920

    一、kettle是什么。

    Kettle是一款国外开源的ETL( Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程)工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出.
     
     二、kettle安装
    注意:设置好环境变量,将kettle 文件夹内的 spoon.bat发送快捷方式到桌面就可以启动了.
     
    三、kettle运行逻辑

    kettle包括作业、转换来进行数据处理的操作,执行步骤逻辑是这样:

    1、执行作业,作业调用转换

    2、调用的转换里面有多个执行步骤
    3、执行步骤里面可以和mysql等主流数据库连接 可以依托SQL语句实现数据处理

    图1:一个作业流程 对应第1个步骤

    图2 一个转换内部步骤 对应步骤2 和步骤3(步骤3就是写SQL)具体字段以处理过的表test数据为范本

     

    因此 如果想实现数据处理的最终结果,需要做的步骤和上面1、2、3顺序完全相反
    1、写SQL语句(更新数据库的和数据报表的)
    2、新建一个转换 连接对应数据库 表输入 表输出 设置好步骤 保存文件
    3、新建一个作业,START--->插入一个转换控件---->右击转换控件--->将第2步的转换导入调用
    保存文件 执行作业即可实现数据的导入

     三、从服务器导数到本地去进行MySQL练习和出一些报表 
    3.1、前提:表输入和表输出 来自的数据表的字段和数据类型完全一致(当然导数也不一定只用kettle)
    在执行转换的步骤里我已经创建了两个mysql数据库连接,一个阿里云服务器连接一个本地localhost 连接
    图3导数转换

     

    3.2导数到本地 服务器和本地数据表字段和数据类型一致

    #导数之前:最下面添加的两个字段productname 和order_date 在服务器数据表里是没有的 因此先创建下面这么多字段和服务器表保持一致
    CREATE TABLE IF NOT EXISTS test_a03(
    city VARCHAR(255),
    username INT(11),
    productID INT(11),
    price DECIMAL(19,4),
    sales INT(11),
    pay_money DECIMAL(19,4),
    order_time DATETIME,
    salesperson VARCHAR(255),
    KEY city(city),
    KEY username(username)
    )ENGINE INNODB DEFAULT CHARSET=utf8 
    #成功导入了200条数据 sql下载在博客底部百度云连接
    

    图4 导数成功

    3.3 修改表名 添加字段 更新字段内容

    #更换表名(和mysql目录文章保持同一个表 以这个数据表进行mysql学习
    #2修改表名 alter table 表名 rename 新表名
    ALTER TABLE test_a03 RENAME test_a03order;
    #3在字段 order_time后面增加一个字段
    ALTER TABLE `test_a03order` ADD order_date DATE AFTER order_time
    #插入的两个新字段内容为空 我们更新一下
    #更新 order_date
    UPDATE test_a03order SET order_date=DATE(order_time) WHERE order_date IS NULL;
    #更新productname
    UPDATE test_a03order SET productname="心灵鸡汤(押瓶1000元)10000ml*24瓶/箱" WHERE productname IS NULL
    #现在执行 select * from test_a03order  数据如下面图
    

      

       嗯。。productname 一样名称,根据username值范围再更新一下,日期包含7、8、9三个月的

    price*sales=pay_money, productID 和productname也能对应  price是变动的这个也比较符合实际 就是押金写的有点大..

    3.4 数据更新完成 

     sql文件放在百度云盘了 下载在本地数据库执行

     链接: https://pan.baidu.com/s/1slzUw6T

  • 相关阅读:
    A1052. Linked List Sorting (25)
    A1032. Sharing (25)
    A1022. Digital Library (30)
    A1071. Speech Patterns (25)
    A1054. The Dominant Color (20)
    A1060. Are They Equal (25)
    A1063. Set Similarity (25)
    电子码表
    矩阵键盘
    对象追踪、临时对象追踪、绝对坐标与相对坐标
  • 原文地址:https://www.cnblogs.com/Mr-Cxy/p/5890032.html
Copyright © 2011-2022 走看看