用kattle将数据从SQLserver中导入到vertica中
今天简单的学习了一下ETL工具kattle了,只是简单的上手,不过这也已经够我去做POC了。
首先大体介绍一下kattle,Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。因为有客户在使用这个,为了跟客户交流时不至于不懂,所有今天就稍微弄了一下,还行,基本能完成我的工作。
首先在kattle官网下载kattle,然后解压文件,打开里面的spoon.bat就可以运行它了,很简单。
现在我是有这样的需求的,需要将SQLserver的数据在不用导出的情况下直接导入到vertica中,以前也一直有这样的需求,今天刚好,稍微学习一下,以后弄起来就方便了。因为需要跟vertica和SQLserver连接,所以同时需要下载vertica的jdbc和SQLserver的jdbc,这个需要准备好,还有可能需要jtds.jar包,如果没有的话,会在使用的时候报错的。所以提前将其下载下来。具体的下载地址我就不附上了,随便搜搜就能找到。那就将今天我所整理的简单说一下。
在进行数据库连接的时候遇到一些问题,现在是解决方法:
1、sqlserver数据库
首先安装好sqlserver服务器:
为了能远程连接,在sqlserver配置管理器中需要将SQL Server browser设置为启动状态
如果无法设定,那就在服务中先将该服务设置为手动启动,再在配置管理器中启动该服务。
然后将配置管理器中将TCP/IP协议启动。
并将端口输入,重启服务。
由于kattle需要sqlserver的驱动,在网上下载sqlserver的驱动程序:
需要对应java版本的驱动:
将其放入到kattle的lib目录下。
有时候发生无法找到jtds.jar包,这时候就需要下载该jar放到lib目录下。
在kattle中新建一个转换,在转换中新建一个DB连接。
输入连接名称,主机名称,数据库名称(输入一下的数据库名称才正确),实例名称,用户名和密码,测试。
再新建一个vertica连接,下载对应的vertica驱动程序并放在lib目录下:
输入主机名,数据库名称,用户名,密码,测试连接
在核心对象中找到输入和输出
打开输入:
添加表输入
打开输出:添加插入和更新
添加到右边的空白处。
按shift键将两者连起来。
双击表输入:
选择数据库,点击获取SQL查询语句,选择某张表。可以先预览看看是否有数据。点击确定。
双击插入/更新
选择数据库连接,目标表,获取字典,获取和更新字段,点击SQL ,执行创建表语句,确定。
启动程序:
查看结果: