我想與卡夫卡一起深入處理流處理,我需要一些幫助,讓我的頭部圍繞一些目前不太清楚的設計原則。卡夫卡流應用程序設計負責人
1.)假設我有一些實時股價數據。你是否會用股票代碼來鎖定(並因此分割)一個主題「價格」?或者你會爲每個符號製作一個主題?例如,如果我決定生產(添加)一些更多的股票代碼,包括以後的完整歷史記錄,會發生什麼情況?現在我的歷史(在日誌中訂購)的主題「價格」是一團糟,對吧?另一方面,對於每個價格系列,我想要稍後計算回報,如果它們在不同的主題上,我必須跟蹤它們併爲每個符號開始新的流應用程序。
2.)現在有不同的實時價格,我需要加入一個任意數量的一個大的記錄。在例子中將所有sp500符號連接成一條記錄。因爲我在同一時間沒有所有sp500符號的價格,但可能非常接近。如果在這個確切的時間裏失蹤,我怎樣才能使用最新的價格加入他們?
3.)說我已經解決了加入用例,我將所有sp500股票的加入記錄抽回卡夫卡。如果我犯了一個錯誤,並且我忘記了一個符號,我該怎麼做?顯然,我想將它添加到流中。現在我需要鞭撻「sp500」日誌並重建它的權利?或者是否有一些機制將起始偏移重置爲特定的偏移量(我已修復連接的偏移量)?也很可能我有其他流應用程序正在從這個主題消費。他們還需要做某種重置/重放。是不是存儲sp500主題可能是一個更好的主意,但將其作爲長流程的一部分?但是我最終會多次進行同一個連接。
4)也許這應該是1,因爲這是我的目標^^部分 - 但是,我怎麼能像建模這樣的數據流:
produce prices -> calculate returns -> join several returns into a row vector -> calculate covariance (window of rowvectors) -> join covariance with returns
-> -> into a tuple (ret, cov)
我甚至不知道,如果這樣的使用今天的流處理可能會出現複雜的用例。