pipelineDB學習筆記-3. Continuous Transforms (連續轉換)
以下內容為本人根據pipelineDB官網內容進行翻譯,如有不妥之處請指正,謝謝大家
Continuous Transforms (連續轉換)
一、定義:
Continuous Transforms (我意譯為“連續轉換”),是用來將沒有進行儲存的時序化資料連續不斷的進行轉換。由於沒有資料被儲存,所以“連續轉換”不支援聚合功能。由“連續轉換”得到的結果可以通過管道(pipe)連線到其他的流或者寫入到外部資料來進行儲存。簡單的說就是將時序化資料轉換為一個新的stream或者持久化資料進行儲存。
二、建立:
建立語句與建立連續檢視的語句相似,將”action”的引數換為”transform”即可。
語句:CREATE VIEW 名稱 (WITH action=transform [ , outputfunc=輸出函式(引數列表) ]) AS query;
query: pipelineDB是基於postgreSQL改進的,這裡的query是指 postgreSQL中的 “select ” 語句.
(以上是官網關於 query 的截圖,表示query可以支援的選項)
三、 刪除:
DROP VIEW 要刪除的連續轉換的名稱;
四、檢視所有定義的“連續轉換”:
SELECT * FROM pipelinedb.transforms;
五、“連續轉換”的輸出流:
所有的“連續轉換”都有一個與它自身相關聯的輸出流,通過使用這個輸出流可以“讀取” “連續轉換”所指定的資料.
例如:通過join關聯stream與table所生成的“連續轉換”,“連續轉換”中的資料可以通過 output_of( ) 函式讀取。六、內建輸出函式:
為了比內建輸出函式提供更多的靈活性,pipelinedb提供了一個使用“觸發器函式”來接收“連續轉換”中所有資料列的介面。 通過將“觸發器函式”附加到“連續轉換”上,你可以對接收到的資料做任何你想做的事,包括“寫入”到其他的stream中.
pipelineDB提供了一個內建觸發器 “pipelinedb.insert_into_stream”,可以與“連續轉換”一同使用。這個觸發器會將資料插入到所有在引數列表中指定的stream中。下面的例子就是將stream中所有的偶數插入到“even_stream”中 注意:被插入資料的stream,必須是已經存在的,否則會丟擲錯誤。
七、建立自己的輸出函式:
-
- 你也可以建立自己的輸出函式,以便與”連續轉換”一同使用.下面的例子就是將“連續轉換”的指定的資料插入到一張表中.