0

我正在嘗試構建數據管理(DM)解決方案,其中涉及大量數據提取,通過一些數據域規則,替換(擴充),在發送之前標記錯誤數據到下游系統。檢查值替換的規則可以像數據元素應該滿足的可允許的閾值數值一樣簡單,更復雜一些,例如使用用於值域值池的主數據查找。#Apache-flink:用於數據管理的用例

您認爲Apache Flink可以成爲此類處理的良好選擇嗎?是否可以定義flink運算符來查找(使用主數據)每個元組流經它的數據?我認爲在後一個問題上使用Apache Flink有一些缺點 - 1)查找可能是阻塞操作,會降低吞吐量; 2)如果操作員功能必須獲取主數據,則無法完成檢查點和持久化操作員狀態從其他地方。

有什麼想法?在上述用例中還有其他一些最好的工具嗎?

謝謝

回答

0

簡短答案是'是'。您可以使用Flink處理您提到的所有事情,包括數據查找和豐富功能,最多隻能提供一次或最多一次,但一次只能保證操作員的副作用(如更新外部狀態)。您可以針對該特定運算符的更高並行性解決外部查找的附加延遲問題。

如果沒有更多的信息,例如什麼確切地構成您的案例中的「大量數據」,您的每個事件延遲要求是什麼,您擁有哪些其他限制條件等等,則無法給出準確答案。但是,在一般意義上,在你承諾使用Flink之前,你應該看看Spark Streaming和Apache Storm,並進行比較。 Spark和Storm都有更大的社區和更多的文檔,所以它可能爲朗姆酒節省一些痛苦。在撰寫本文時,StackOverflow上的標籤:spark-streaming x 1746,apache-storm x 1720,apache-flink x 421

更重要的是,Spark Streaming與Flink具有類似的語義,但可能會爲您提供更好的批量數據吞吐量。另外,Storm在概念上類似於Flink(噴嘴/螺栓vs操作員),並且在大多數情況下實際上具有較低的性能/吞吐量,但它只是一個更爲成熟的框架。

相關問題