elasticsearch Logstash jdbc插件:如何为列使用日期过滤器?,elasticsearch,logstash,logstash-jdbc,elasticsearch,Logstash,Logstash Jdbc" /> elasticsearch Logstash jdbc插件:如何为列使用日期过滤器?,elasticsearch,logstash,logstash-jdbc,elasticsearch,Logstash,Logstash Jdbc" />

elasticsearch Logstash jdbc插件:如何为列使用日期过滤器?

elasticsearch Logstash jdbc插件:如何为列使用日期过滤器?,elasticsearch,logstash,logstash-jdbc,elasticsearch,Logstash,Logstash Jdbc,在我的MS SQL表中,有一列日期存储为字符串,格式为“dd-mm-yyyy 00:00:00.000” 例如:1999-10-06 00:00:00.000或2000-04-27 00:00:00.000 在导入期间,我希望将此列的值转换为日期类型 我看到了一个名为filter的特性,它可以进行这种类型的转换。 我找到了一些示例,但仅用于解析Beats带来的带有某种regex的全文行日志 如何将此功能用于sql列? 例如,如何调整此conf文件以使其真正工作 input { jdbc

在我的MS SQL表中,有一列日期存储为字符串,格式为“dd-mm-yyyy 00:00:00.000” 例如:1999-10-06 00:00:00.000或2000-04-27 00:00:00.000

在导入期间,我希望将此列的值转换为日期类型

我看到了一个名为filter的特性,它可以进行这种类型的转换。 我找到了一些示例,但仅用于解析Beats带来的带有某种regex的全文行日志

如何将此功能用于sql列? 例如,如何调整此conf文件以使其真正工作

 input {
    jdbc {
        jdbc_connection_string => "jdbc:localhost;"
          jdbc_user => "user"
          jdbc_password => "pass"
       jdbc_driver_library => "C:\Program Files (x86)\jdbc\sqljdbc_6.0\enu\sqljdbc42.jar"
        jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
        statement => "SELECT  * FROM SOLD"
    }
}

filter
{
     date {
         match => [ "DATE_COLUMN", "YYYY-MM-dd 00:00:00.000" ]
    }
}

output {
    elasticsearch { 
       hosts => "localhost:9200"
       index => "indexname"
       document_type => "typename"

    }
}
目前此配置不起作用,并创建此ES文本字段:

 "date_column": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
          }
     }
  }

如果数据库中有一个名为myDateField的字段,那么在使用JDBC输入{}后,应该会得到一个同名字段。然后,您可以要求logstash处理(“筛选”)并输出这些数据

logstash包含50多个过滤器(请参阅)


要将字段设置为日期,请使用日期{}过滤器。请注意,此筛选器通常用于设置logstash的“@timestamp”字段,但如果需要,您可以将日期放入不同的字段(甚至覆盖相同的字段)。

因此Answare将此筛选器以小写形式写入列名中:

filter
{
     date {
         match => [ "date_column", "yyyy-MM-dd HH:mm:ss.SSS" ]
    }
}
要为此日期格式创建elasticsearch映射列,请执行以下操作:

PUT /index
{
     "mappings": {
      "type": {
        "properties": {
         "date_column": {
            "type": "date",
            "format": "yyyy-MM-dd HH:mm:ss.SSS"
          }
        }
      }
    }
}

谢谢你的回答,但我已经注意到过滤器是我需要使用的。在我的案例中,我失败了,我想看一个例子,我想覆盖一个字段。这可能很明显,但我的尝试没有成功,我也没有找到完整的示例发布您的尝试、您提供的输入、您收到的结果以及您想要的结果,可以帮助人们诊断问题。