kettle是一个ETL工具确实比较好用,至少能替代sqoop的相关任务
主要是图形化界面,方便,开源免费
不过简单的导入工作用sqoop就ok了
解压最新版8.3,data-integration 结合,整合
配置PENTAHO_JAVA_HOME环境变量为jdk根目录,加入path环境中
ie浏览器最好为最新版,不然建立资源库的时候会出现空白(重装可能解决问题)!
它里面主要分为两个模块
转换和作业
组件通过拖拉或者双击创建
etl任务都是在半夜执行,什么从ods层导dwd层之类的
mysql不支持string
hdp26里面的配置是空的,需要手动复制Hadoop集群的配置
hive的底层是mr
create database kettle_test;
use kettle_test;
DROP TABLE IF EXISTS stu1;
CREATE TABLE stu1 ( id int,name varchar(20),age int) ;
insert into stu1 values(1001,'zhangsan',20),(1002,'lisi',18),(1003,'wangwu',23);
DROP TABLE IF EXISTS stu2;
CREATE TABLE stu2 ( id int,name varchar(20)) ;
insert into stu2 values(1001,'zhaoliu');
#------------创建表user
DROP TABLE IF EXISTS user;
CREATE TABLE user (
userid int(10) DEFAULT NULL COMMENT '用户ID',
username varchar(10) DEFAULT NULL COMMENT '用户姓名',
usersex varchar(1) DEFAULT NULL COMMENT '性别',
userposition varchar(20) DEFAULT NULL COMMENT '职业',
userage int(3) DEFAULT NULL COMMENT '年龄' )
ENGINE=InnoDB DEFAULT CHARSET=utf8;
#------------插入数据
INSERT INTO user VALUES ('1', '陈XX', '女', '学生', '20');
INSERT INTO user VALUES ('2', '王XX', '男', '工程师', '30');
INSERT INTO user VALUES ('3', '李XX', '女', '医生', '40');
#------------创建表product
DROP TABLE IF EXISTS product;
CREATE TABLE product (
productid int(10) DEFAULT NULL COMMENT '产品ID',
productname varchar(20) DEFAULT NULL COMMENT '产品名称' )
ENGINE=InnoDB DEFAULT CHARSET=utf8;
#------------插入数据
INSERT INTO product VALUES ('1', '手机');
INSERT INTO product VALUES ('2', '电脑');
INSERT INTO product VALUES ('3', '水杯');
#------------创建表orders
DROP TABLE IF EXISTS orders;
CREATE TABLE orders (
orderid int(10) DEFAULT NULL COMMENT '订单ID',
userid int(10) DEFAULT NULL COMMENT '用户ID',
productid int(10) DEFAULT NULL COMMENT '产品ID',
buytime datetime DEFAULT NULL COMMENT '购买时间' )
ENGINE=InnoDB DEFAULT CHARSET=utf8;
#------------插入数据
INSERT INTO orders VALUES ('1', '1', '1', '2017-06-01 15:02:02');
INSERT INTO orders VALUES ('2', '1', '2', '2017-06-02 15:02:22');
INSERT INTO orders VALUES ('3', '1', '3', '2017-06-02 15:02:36');
INSERT INTO orders VALUES ('4', '2', '1', '2017-06-06 15:02:52');
INSERT INTO orders VALUES ('5', '3', '2', '2017-06-09 16:55:24');
INSERT INTO orders VALUES ('6', '2', '2', '2017-07-14 14:01:36');