背景
flink是一個低延遲高吞吐的系統,每秒處理的數據量高達數百萬,而機器模型一般比較笨重,雖然功能強大,但是qps一般都比較低,日常工作中,我們一般是如何把flink和機器學習模型組合起來一起使用呢?
flink和機器學習模型的常用組合方式
第一種:flink處理和機器模型的處理完全分離
一般來說,這是目前常用的組合方式,首先利用flink集群先把數據處理完,然后輸出一份結果數據到某個外部存儲,比如DB中,到這里flink的處理就完成了。緊接著是會有一個外部的定時任務,其任務是獲取flink的結果數據,然后調用機器模型接口獲取最終的預測結果,把這份預測結果寫入到最終的存儲目的地
第二種: flink處理和機器模型處理完全結合
這種方式要解決的最大問題是flink的處理速度和機器模型的qps完全不是一個數量級的問題,所以為了將就機器模型的吞吐量,我們一般會在flink中進行數據聚合操作,比如把每分鐘的數據聚合然后在調用一次機器模型,這樣就相當于每分鐘只會調用一次機器模型接口,這種訪問量機器模型完全能應對