2017-09-26 113 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

相关问题