我有几个ms SQL脚本,我想迁移到水壶。理想情况下,我想要做的是脚本的每一步都是水壶中的一个步骤。但我发现很难围绕ms SQL语句和相关的水壶步骤。有人可以详细说明可用于执行以下操作的水壶步骤:
更新b SET b.b_field = a.a_field FROM [table_a] a INNER JOIN [table_b] b 右边(b.b_identity,19)= a.a_identity 其中b.b_field为空
在许多其他不同的表格中重复步骤3,并对不同的字段进行比较。
谢谢。
答案 0 :(得分:1)
您无法一步一步地翻译它。替换功能,但您不能简单地将SQL步骤映射到PDI步骤。这是一个完全不同的范例。
答案 1 :(得分:0)
将SQL脚本迁移到Kettle的快速而又脏的方法是SQL Execute script
步骤,您可以按原样复制/粘贴脚本。
仍然快速而肮脏的方式,请注意您可以在Table Input
中放置多个语句,前提是它们被昏迷分开。您甚至可以使用SELECT INTO创建临时表,索引它们并从中读取它们。
但显然这不是很干净。对于(2),您可以生成包含表名和字段名的流,然后使用Javascript
步骤写下包含文本的列" ALTER TABLE [table-name] ADD [ field-name] NVARCHAR(255)",然后Dynamic SQL row
为每个输入行执行该语句。
对于(3),原则是创建输入流,其中Table Input
带有" SELECT a.a_field FROM [table_a] a INNER JOIN [table_b] b ON RIGHT(b.b_identity, 19)= a.a_identity&#34 ;.然后使用Update
步骤更新table_b。我无法真正帮助那里,因为我没有看到更新的b键。
当完成并测试一个表和一个字段时,您可以将这些值放在参数中,并使用Job循环参数。
您的发行版随附的sample directory
中有一个此用例示例。它与spoon.bat位于同一个文件夹中,您感兴趣的工作是samples/transformations/dynamic-table/Dynamic table creation and population.kjb
。