2012-10-10 31 views
1

我正在使用StreamInsight 2.1處理StreamInsight應用程序。在許多查詢中共享InputAdapter

輸入適配器將成爲每秒數千個事件的實時股票數據流。 我想使用相同的數據流運行多個獨立查詢,並且能夠在流正在運行時添加更多查詢,並在流中的當前位置進行拾取。

但是,每當我編寫查詢時,它都會創建一個全新的輸入適配器。所以,我最終有25個輸入適配器全部加載並推送相同的數據。

我在想這個錯嗎?輸入適配器是否獨立於每個查詢?

將輸出適配器放在輸入適配器後面並讓每個輸入適配器再次流式傳輸數據是唯一的解決方案嗎?

任何建議都會很棒,StreamInsight上的優秀文檔很難找到。

回答

1

由於您在談論輸入適配器,我假設您使用的是舊適配器模型而不是較新的事件源/接收器方法。你需要看看所謂的「動態查詢組合」或DQC。這種方法可讓您創建輸入適配器的單個實例,然後與其他查詢共享流。

簡而言之,您需要創建一個包含所有股票行情數據的「來源」查詢。從那裏,你可以在查詢中調用「ToStream()」來將查詢結果轉換回CepStream。接下來有25個左右的其他查詢/計算/等使用該流作爲他們的數據源。

在MSDN StreamInsight文檔中查看Composing Queries at Runtime。該頁面上的第一部分「重用已有查詢的輸出」應該正是您所需要的。