如何将字段格式从epoh更改为日期

时间:2019-06-18 10:42:06

标签: python json elasticsearch text kibana

我在数据文件中有一个纪元格式的字段,我想将该字段中的数据更改为日期格式。有什么简单的方法吗?

https://drive.google.com/open?id=1JRZj8myVu1UHJ3jxZzzb8LSKKMicY0Qi

1 个答案:

答案 0 :(得分:0)

您可以利用摘要date processor功能,该功能将读取包含一个纪元值的日期字段并将其转换为普通的ISO8601格式:

首先,您可以像这样创建管道:

PUT _ingest/pipeline/epoch-to-format
{
  "processors": [
    {
      "date": {
        "field": "arrival_timestamp",
        "target_field": "arrival_timestamp",
        "formats": [
          "UNIX_MS"
        ]
      }
    },
    {
      "date": {
        "field": "event_timestamp",
        "target_field": "event_timestamp",
        "formats": [
          "UNIX_MS"
        ]
      }
    }
  ]
}

然后,当您提取文档时,可以指定要使用的管道:

PUT test/doc/1?pipeline=epoch-to-format
{
   "event_timestamp": 1556843795341,
   "arrival_timestamp": 1556843798527,
   ...
}

您最终将把该文档编入ES:

GET test/doc/1
{
   "arrival_timestamp" : "2019-05-03T00:36:38.527Z",
   "event_timestamp" : "2019-05-03T00:36:35.341Z",
   ...
}

使用Python提取时,您可以像这样指定管道:

es.index(index='indexname', doc_type='typename', body="string", pipeline='epoch-to-format')