簡體   English   中英

如何在Apache Flink流中從關系數據庫中讀取數據

[英]How to read data from relational database in apache flink streaming

我們如何使用自定義數據源從關系數據庫中讀取數據。 我是flink流媒體的新手。 添加新的自定義數據源時,我遇到了問題。 因此,請幫助我添加自定義數據源並從源DB連續讀取數據

正如Chengzhi所建議的那樣,關系數據庫並非設計為以流方式處理,因此最好使用Kafka,Kinesis或其他系統。

但是,您可以編寫一個自定義源函數,該函數使用JDBC連接來獲取數據。 它必須連續查詢數據庫以獲取任何新數據。 這里的問題是,您需要一種方法來確定已讀取/處理的數據以及未讀取/處理的數據。 從我的頭頂開始,您可以使用一些方法,例如記住什么是最后處理的主鍵,並在后續查詢中使用它,例如:

SELECT * FROM events WHERE event_id > $last_processed_event_id;

或者,您可以清除某些事務中的events表,例如:

SELECT * FROM unprocessed_events; DELETE FROM unprocessed_events WHERE event_id IN $PROCESSED_EVENT_IDS;

event_id可以是使您可以唯一標識記錄的任何東西,也許可以是一些時間戳或一組字段。

要考慮的另一件事是,如果要提供任何合理at-least-onceexactly-once保證,則必須手動檢查( last_processed_even_id偏移量)檢查點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM