1. 程式人生 > >pipelineDB學習筆記-3. Continuous Transforms (連續轉換)

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,必須是已經存在的,否則會丟擲錯誤。  

  七、建立自己的輸出函式:

    1. 你也可以建立自己的輸出函式,以便與”連續轉換”一同使用.下面的例子就是將“連續轉換”的指定的資料插入到一張表中.