oracle 同步数据 greenplum linux kettle

gh 加油

最近公司在做项目时,使用oracle采集底层数据,使用greenplum分析加工数据,数据交换使用的是kettle。

本次方案缺点:kettle必须部署在greenplum的主节点

第一步:在greenplum主机安装kettle

第二步:给gpadmin用户授权kettle安装目录读写

第三步:创建一个测试例子

测试例子分为两步:
第一步将oracle的数据转换为txt
第二步将txt的数据同步到gp,如下图

B5nfzn2jlq+kAAAAAElFTkSuQmCC

点击查看 greenplum load的配置





描述一下load action :

load action:update/insert/merge 有三种类型,就像oracle类似,只需要关注 get fields 的下方match ,update;一个是匹配,一个是update

merge into a using (select * from b) z
on (match)
update
...



YhmBh6PxfWwAAAAASUVORK5CYII=

第二部分 local host name
端口号我选择的是gp的对外端口(可以测试一下其他端口5555,6666)
hostname:我选择是gp主机名
port:5432
hostname:master
lyhtrsQwToPWdlhzv84qqn87r2QcAAACAa7OfnXAsG6NX3qxnJ08Y7voVRliW+Cq5fjq5sy8EAAAAXgD72Ym5tJHOPbfTAgAAAJfWM36SAwAAAJ4D2QkAAAC4hIyMDL1en5eXh+wEAAAAXIVCocjOzkZ2AgAAAK4iLS2tsbHRsiq2saHeuVcDAAAAoFKpMjMzce8EAAAAXEh6ejqyEwAAAHAhSqXyPxnhoZsdxwsxAAAAAElFTkSuQmCC

第三部分:gp configuration

一般情况下,gp的安装路径都在/usr/local/greenplum-db/bin/gpload
control file :可以自己先建立一个文件名

[gpadmin@master gpextdata]$ ls
a.csv  b.txt  c.txt  member_delta.dat  my_flag.yml  my_load.yml  my_update.yml  test001.txt  test002.txt  test_distribute.dat
[gpadmin@master gpextdata]$ cat my_flag.yml
[gpadmin@master gpextdata]$

my_flag.yml没有文件内容

data_file:也可以自己建立一个没有内容的空文件

+fs2bt+liGSZUF5SeMj7wOfVQvfzJJwAAAEBf4D5H4Vg20aC60cDOnDzG+yuSsCwJUnFD9YrevhEAAAD437jPURwFkfS+uTkXAAAA9AF947UdAAAA8DfIUQAAAMArZGVlGQyG4uJixyFyFAAAAPAWSqUyNzfXsT0fchQAAADwFkajsampyWw2E+mZ2abGhl69JQAAAACiVquzs7NNJlN6ejrmUQAAAMCLZGZmWq3WoqKifwFFWd4oxbcg8gAAAABJRU5ErkJggg==

保存好运行后,数据入库,同时查看 my_flag.yml内容
[gpadmin@master gpextdata]$ ls
a.csv  b.txt  c.txt  member_delta.dat  my_flag.yml  my_load.yml  my_update.yml  test001.txt  test002.txt  test_distribute.dat
[gpadmin@master gpextdata]$ cat my_flag.yml
VERSION: 1.0.0.1
DATABASE: tutorial
USER: user1
HOST: 192.168.1.80
PORT: 5432
GPLOAD:
    INPUT:
    - SOURCE:
        LOCAL_HOSTNAME:
        - master
        PORT: 5432
        FILE: ['/home/admin/gpextdata/c.txt']
    - COLUMNS:
        - id:
        - "name":
    - FORMAT: TEXT
    - DELIMITER: ','
    - QUOTE: ''
    - HEADER: FALSE
    - ENCODING: UTF8
    - ERROR_LIMIT: 50
    OUTPUT:
    - TABLE: "public.test001"
    - MODE: insert

单独这个命令也可以执行

[gpadmin@master gpextdata]gpflod -f my_flag.yml;


备注:在load method的下方 Erase cfg/data files after use 的对勾取消掉



不知道大家有没有方案可以不在本机执行?

远程方案自己已经做完,链接: http://blog.itpub.net/29162273/viewspace-2130770/

其实就是在远程机器中安装greenplum-loader后
配置相关变量,就可以使用了。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29162273/viewspace-2127884/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29162273/viewspace-2127884/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值