将旧数据从postgres导入到elasticsearch

时间:2017-07-30 19:38:36

标签: database postgresql elasticsearch import export

我的postgres数据库中有很多数据(在遥控器上)。这是过去1年的数据,我现在想将它推送到elasticsearch。

数据的格式为2016-09-07 19:26:36.817039+00

我希望这是elasticsearch中的时间段(@timestamp)。所以我可以在kibana中查看它,并在去年看到一些可视化。

我需要有关如何有效推送所有这些数据的帮助。我无法理解如何从postgres获取所有这些数据。

我知道我们可以通过jdbc插件注入数据,但我想我无法用它创建我的@timestamp字段。

我也知道zombodb但不确定这是否也让我有时间给我自己的时间。

此外,数据是批量的,所以我正在寻找一个有效的解决方案

我需要帮助才能做到这一点。所以,欢迎提出建议。

1 个答案:

答案 0 :(得分:1)

  

我知道我们可以通过jdbc插件注入数据,但我想我无法创建   我的@timestamp字段。

这应该适用于Logstash。第一个起点应该是this blog post。请记住,Logstash总是由3部分组成:

  1. 输入:JDBC input。如果您只需要导入一次,请跳过schedule,否则在cron语法中设置正确的时间。
  2. 过滤器:这个不是博客文章的一部分。您需要使用Date filter设置正确的@timestamp值 - 最后添加一个示例。
  3. 输出:这只是Elasticsearch output
  4. 这将取决于PostgreSQL中时间戳值的格式和字段名称,但过滤器部分应如下所示:

    date {
       match => ["your_date_field", "dd-mm-YYYY HH:mm:ss"]
       remove_field => "your_date_field" # Remove now redundant field, since we're storing it in @timestamp (the default target of date)
    }
    

    如果你关注表现: