2017-08-09 105 views
0

我有几个SQL脚本,我想迁移到水壶。理想情况下,我想要做的是脚本的每一步都是水壶中的一个步骤。但是我发现很难将我的头围绕在MS SQL语句和相关的水壶步骤上。可能有人请详细说明一下所谓水壶步骤,可用于执行以下操作:从MS SQL过渡到Pentaho Kettle

  1. SELECT * FROM [表] - 这一个显然是[输入 - >输入表]
  2. ALTER TABLE [表] ADD [字段名] [nvarchar的](255)
  3. UPDATE b设置b.b_field = a.a_field FROM [表-A]一个 INNER JOIN [表-B] b ON右(b.b_identity,19)= a.a_identity 其中b.b_field为空

第3步重复与许多其他不同的领域比较不同的领域。

谢谢。

回答

1

你不能简单地一步一步翻译它。替换功能,但不能简单地将SQL步骤映射到PDI步骤。这是一个完全不同的范例。

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)原则是创建一个带有“SELECT a.a_field FROM [table_a] INNER JOIN [table_b] b ON RIGHT(b.b_identity,19)= a.a_identity的Table Input的输入流”。然后用Update步骤更新table_b。因为我没有看到更新的b键,所以我无法帮助。

完成并测试一个表和一个字段后,可以将这些值放在参数中,然后使用Job对参数进行循环。

您在发行版附带的sample directory中有此用例的示例。它位于与spoon.bat相同的文件夹中,您感兴趣的工作是samples/transformations/dynamic-table/Dynamic table creation and population.kjb