2017-08-09 106 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