2017-09-26 32 views

回答

1

我以前用Sql服務器而不是Oracle試過這個,它工作的很好,我相信你可以用同樣的方法用Oracle,因爲我知道我將在下面描述的logstash JDBC插件已經支持Oracle DB。

所以基本上你需要一個Logstash JDBC輸入插件https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html,它指向你的Oracle數據庫實例,並使用Kafka輸出插件https://www.elastic.co/guide/en/logstash/current/plugins-outputs-kafka.html將行推送到Kafka。

現在要從Kafka中讀取您需要的另一個Logstash實例(這是索引器)並使用Kafka輸入插件https://www.elastic.co/guide/en/logstash/current/plugins-inputs-kafka.html。最後,使用Logstash索引器配置文件中的彈性搜索輸出插件將事件推送到Elastic Search。

所以管道是這樣的, 甲骨文 - > Logstash託運人 - >卡夫卡 - > Logstash索引 - >彈性搜索

因此總體而言,我認爲這是一種將事件從數據庫推送到彈性搜索的可伸縮方式。現在,如果你看看缺點,有時你會覺得管道中有太多的組件,並且可能會令人沮喪,尤其是在發生故障時。因此,您需要在每個級別進行適當的控制和監視,以確保您具有上述功能的數據聚合管道。試試看,祝你好運!

+0

您可以將Logstash從該管道中切除,並使用Kafka工具。 –

+0

這會做增量更新/增量變化? – Chris

+0

如果您打算使用logstash jdbc plgin,請在文檔中查找sql​​_last_value,您需要在表中使用timestamp字段,並且應該使用修改的日期時間戳進行更新 – ranjithkr

相關問題