当前位置: 首页 > 面试题库 >

logstash jdbc连接器基于时间的数据

薛利
2023-03-14
问题内容

在这里使用新的logstash jdbc连接器:

https://www.elastic.co/guide/zh-CN/logstash/current/plugins-inputs-
jdbc.html

后续logstash运行如何影响已经编入ElasticSearch的内容?是在ES索引中创建新文档,还是更新与已经被索引的行匹配的文档?我尝试解决的用例是将带有时间戳的行索引到elasticsearch中,但是该表不断更新,我只想索引新数据,或者如果我不得不再次读取该表,则只为新表添加新文档行。

有什么建议?还是有关logstash jdbc插件的更多文档?


问题答案:

我要做的是在查询语句中包含插件上次运行的时间戳(即sql_last_start),因此它将仅加载新更新的记录。

例如,您的jdbc输入插件如下所示:

input {
  jdbc {
    jdbc_driver_library => "mysql-connector-java-5.1.36-bin.jar"
    jdbc_driver_class => "com.mysql.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/mydb"
    jdbc_user => "mysql"
    schedule => "* * * * *"
    statement => "SELECT * FROM mytable WHERE timestamp > :sql_last_start"
  }
}

确保timestamp使用包含上次更新日期的字段mytable名称和表的真实名称进行更改。



 类似资料:
  • 我有两个数据帧df1和df2。 i、 e.df1的索引为天,df2的索引为日期时间。我想在索引上执行DF1和DF2的内部连接,这样如果DF2中对应于DF2的时间在DF1中可用,则我们认为内部连接为真,否则为假。 我想获得两个df11和df22作为输出. df11将有共同的日期和相应的列从df1. df22将有共同的日期小时和相应的列从df2. "例如df1中的"2002-08-04"和df2中的"

  • 我知道,如果延迟且其所属窗口关闭,则默认情况下将删除延迟事件<我想问一下,基于事件时间的连接间隔如何?水印的确切行为/效果是什么?最近的活动会取消吗?

  • 在我发布配置之后,当我执行HTTP curl时,状态是。在worker的日志中也没有错误日志,当我检查它时,在kafka主题中也没有数据。当我尝试做一个控制台-消费者时,我还尝试了其他几种组合,比如在。 我尝试的另一件事是使用这两个链接https://rmoff.net/2018/05/21/kafka-connect-and-oracle-data-types/https://www.confl

  • 问题内容: 我可以看到例如在这里进行了几次讨论,但是我认为由于Elasticsearch中的重大更改,解决方案已过时。 我正在尝试将我在Kafka主题中的Json中的long / epoch字段转换为通过连接器推送的Elasticsearch日期类型。 当我尝试添加动态映射时,我的Kafka连接更新失败,因为我试图将两个映射应用于字段_doc和kafkaconnect。我认为这是关于版本6的重大更

  • 我正在用chartjs绘制一个图形,其中x轴表示时间,y轴表示相应的数据。 现在我得到了今天、上周、上月和去年的数据。 }; 当我绘制图形时,每个点之间的距离是相同的。但这是不正确的,因为时间间隔不相同。 “去年”和“上月”之间的距离应大于“上周”和“上个月”之间的间隔。 任何人一个想法如何我可以实现这与chartjs,当我看留档我没有看到任何选项。

  • 有两个这样的数据帧(示例) df1 df2 然后,我想加入df1和df2,但是我不知道如何做到这一点,因为在第二个df中我只有开始和结束时间。如何根据第二个df的数据将条件放在第一个df上? 这就是我想要的