2013-06-19 48 views
1

我在mysql表中有一個時間字段。基於這個時間字段,我需要從mongodb集合中導入數據。 因此,在Pentaho轉換首先我有一個表輸入步驟獲取所需的日期。 接下來我有一個mongodb輸入step.Here如何根據上一步的輸出篩選記錄?在pentaho的Mongodb輸入

我看到,在mongodb輸入查詢中,它只接受參數,只有當它是環境變量或在另一個轉換中定義,但不能識別上一步中的變量時。 如何從上一步加載,請幫助我我是Pentaho的一名新手,並且自一週以來嘗試使用此解決方案。

謝謝 Deepthi

回答

1

你已經回答了自己的問題:

我看到MongoDB中輸入查詢它接受的參數只有當它的環境變量或在另一個轉換定義,但不能識別上一步的變量。如何從上一步加載,請幫助我我是Pentaho的一名新手,並且自一週以來一直在嘗試此解決方案。

如果沒有辦法讓步驟接受輸入流,則必須完全按照您的描述進行操作。在一次轉換中,訪問MySQL表獲取時間並將其存儲在一個變量中。然後在另一個轉換中訪問MongoDB步驟中的變量。

請注意,您必須在兩次轉換中執行此操作,以確保該變量是在MongoDB步驟運行時設置的。

+0

謝謝你的迴應。我在想是否有任何其他方式來加載從上一步在相同的轉換。因爲我們必須加載很多表,併爲每個我們必須創建單獨的轉換隻是爲了有一個變量。是否有任何其他方式像一個java插件?如果沒有其他解決方案,那麼是的,我會繼續進行單獨的轉換。 – Deepthi

+0

您可以隨時構建自定義Java步驟(通過創建Java步驟步驟或通過編寫一個Kettle步驟插件)來執行任何您想要的操作,因此這是一種可能性。 –

0

看看optiq。這是流血的邊緣,但允許MongoDB的SQL訪問,所以在理論上,你可以在表中輸入步驟中使用它,而不是一個蒙戈輸入步驟:

http://julianhyde.blogspot.co.uk/2013/06/efficient-sql-queries-on-mongodb.html

+0

謝謝你真的有用的信息..但是有可能從mysql和mongodb中加入一個表嗎?此外,我們有Pentaho集成作業將數據加載到登臺表。如何在pentaho內使用它?可能嗎? – Deepthi

+0

是的,只需從每個源獲取數據,確保它按連接鍵排序並使用「連接行」步驟。不確定第二個問題的含義。 – Codek

+0

非常感謝:) – Deepthi

0

可以實現奧鋼聯通過查詢作爲參數。 在轉型設置添加一個參數(例如:MONGO_QRY)

在MongoDB中查詢表達式(JSON)

$ {MONGO_QRY}

我們嘗試它工作正常。如果不知道。