【Kettle】4、SQL SERVER到SQL SERVER数据转换抽取实例

1、系统版本信息

  System:Windows旗舰版 Service Pack1

  Kettle版本:6.1.0.1-196

  JDK版本:1.8.0_72

2、连接数据库

  本次实例连接数据库时使用全局变量。

  2.1 创建新转换:spoon启动后,点击Ctrl+N创建新转换

  

  2.2 在新转换界面中,右键点击DB连接,系统会弹出【数据库连接】界面。

  

  windows系统环境下,可用${}获取变量的内容。

  

  说明:

    连接名称:配置数据源使用名称。(必填)

    主机名称:数据库主机IP地址,此处演示使用本地IP(Localhost)地址或用127.0.0.1也可以。(必填)

    数据库名称:数据库实例名称。(必填)

    端口号:数据库使用端口号。MS SQL Server默认1433,Oracle默认1521。(必填)

    用户名:登录数据库用户。(必填)

    密码:登录数据库对应用户的密码。(必填)

  2.3 连接完成后,在DB连接下可看到完成的数据库连接。右键点击分享,可生成sharp.xml文件,同时在kettle.properties文件中配置全局变量。

  

  生成的sharp.xml文件截图

  

  sharp.xml文件部分内容截图。

  

  kettle.properties部分内容截图。

  

3、数据抽取转换

  在【核心对象】下可显示在转换中能使用的所有组件。在【输入】中找到表输入,双击出现到设计页面中;在【输出】下,找到表输出,把空间往空白处拖入即可;然后点住shift键,左键连接两者之间的关系。

  

  A.表输入:双击表输入控件,系统会弹出表输入空间的详细内容。

  

  说明:

    数据库连接:DB连接下的连接,这里选择就可以

    SQL:编写查询源数据SQL脚本,可以通过“获取SQL查询语句…”获取

    替换SQL语句里的变量:如果在查询条件里使用了变量,需勾选   

    从步骤插入数据:默认

    执行每一行:默认

    记录数量限制:如果为0,则预览时无数据

    预览:  如果无法确定SQL语句是否正常时可以通过【预览】来查看SQL语句是否正确。

  B.表输出:主选项

  

  说明:

    数据库连接:DB连接下的连接数据源,这里选择就可以

    目标表:选择数据需要插入的数据表

    提交记录数量:每次插入时提交的数量

    裁剪表:如果选中以后,每次都会把目标表的内容清空,然后再插入

    指定数据库字段:表输入的字段和表输出的字段需选择映射关系

  表输出:数据库字段,在这里可以选择字段的映射关系。

  

  说明:

    获取字段:会自动获取字段的映射关系

    输入字段映射:需手动维护字段的映射关系

    SQL:点击SQL会有选项;执行:本人暂未点击过

  完成了表输入和表输出的连接后,可点击左上角的三角号执行下,在下方可查看执行日志

  

  

  

  说明:

    根据日志可以查看出每个步骤执行的记录数、读、写、输入、输出、更新、拒绝、错误、激活、时间、速度。可根据此处分析当前转换运行效率而断定转换是否需要进行优化。

总结:

1、  在运行转换时,当前转换是处于并发状态,如果有多个表输入则会同时运行。

2、  在设计转换时最好是一个数据流,不要一个转换有多条数据流;如果有多条数据流则有可能发生锁表问题。

 

  

时间: 2024-08-02 02:48:56

【Kettle】4、SQL SERVER到SQL SERVER数据转换抽取实例的相关文章

高效SQL语句(SQL Server)

以下的SQL语句以Northwind为例 1.不要再where子句中"="的左侧使用函数和表达式,因为系统无法应用函数或表达式中的索引 SELECT * FROM Customers WHERE Cast(CustomerID AS VARCHAR(20))='1' --Clustered Index Scan 全表扫描SELECT * FROM Customers WHERE CustomerID ='1' --Clustered Index Seek 索引扫描 2.只返回必要的行或

设置Proxy Server和SQL Server实现互联网上的数据库安全

◆首先,我们需要了解一下SQL Server在WinSock上定义协议的步骤: 1. 在"启动"菜单上,指向"程序/Microsoft Proxy Server",然后点击"Microsoft Management Console". 2. 展开"Internet Information Service",再展开运行Proxy Server的服务器. 3. 右击WinSock Proxy service, 再点击属性. 4.

使用Operations Manager监视Windows Server和SQL Server

在这个实验章节中通过监控Windows Server.SQL Server.来了解使用Operations Manager监控企业基础架构.这里需要下载 1. System Center Management Pack for Windows Server Operating System管理包 2. System Center Management Pack for SQL Server管理包 http://down.51cto.com/data/1895686 一. 监视Windows Se

SQL Server 用链接server 同步MySQL

--測试环境SQL 2014 在MySql环境: use test ; Create Table Demo(ID int,Name varchar(50)) 在控制面板-管理工具-数据源(ODBC)-系统 DSN --加入 --下一步(完毕) 下一步(OK) 正常显示配置(MySql_Link),记住名称 在SQL Server查询分析器或SSMS界面操作 方法1:以SSMS为例 --打开企业管理器-server对象-链接server-右健(新建) 下一步,登陆信息 watermark/2/te

SQL SERVER 查看SQL语句IO,时间,索引消耗

1.查看SQL语句IO消耗 set statistics io on     select * from dbo.jx_order where order_time>'2011-04-12 12:49:57.580' set statistics io off 2.查看SQL语句时间消耗 set statistics time on      select * from dbo.jx_order where order_time>'2011-04-12 12:49:57.580' set st

连接SQL Server执行SQL语句

public static DataTable GetData() { string Connect = ConfigurationManager.AppSettings["ConnectionString"].ToString(); SqlConnection sc = new SqlConnection(Connect); sc.Open(); SqlCommand cm = new SqlCommand("select * from Department");

Azure SqlDatabase 系列之2--Azure SQL Database 与 SQL Server 的比较

(内容整理自msdn Azure Sql Database主题部分内容) 与 SQL Server 相似,Azure SQL Database 为基于 Transact-SQL 的数据库访问公开表格格式数据流 (TDS) 接口.这允许你的数据库应用程序采用与它们使用 SQL Server 相同的方式来使用 Azure SQL Database. 与 SQL Server 管理不同,Azure SQL Database 从物理管理中提取逻辑管理:你继续管理数据库.登录名.用户和角色,但 Micro

SQL Server 2008——SQL命令INSERT

T-SQL的INSERT命令的语法: INSERT [INTO]     {table_name|view_name}     [{(column_name,column_name,-)}]     {VALUES (expression,expression,-)} 方括号内是可选的. 列名的列表必须用圆括号包围住,逗号分隔. 关键字VALUES是必须的,数据值用圆括号包围,逗号分隔. 最好是尽量避免在名称中包含空格: 如果表或视图的名称与保留字相同或包含空格,则必须用方括号或双引号将名称包围

数据库高并发情况下重复值写入的避免 字段组合约束+ SQL SERVER 的SQL语句优化方式小结(转)

10线程同时操作,频繁出现插入同样数据的问题.虽然在插入数据的时候使用了: insert inti tablename(fields....) select @t1,@t2,@t3 from tablename where not exists (select id from tablename where [email protected],[email protected],[email protected]) 当时还是在高并发的情况下无效.此语句也包含在存储过程中.(之前也尝试线判断有无记