You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用OpenSearch Data Prepper将Unix时间戳转为指定格式时间?

在OpenSearch Data Prepper中将秒级Unix时间戳转换为可读时间格式

要将日志中字符串类型的秒级Unix时间戳转换为dd/MMM/yyyy:HH:mm:ss格式,需要分两步处理:先将字符串转成数值类型的时间戳,再用date处理器格式化。以下是具体实现方案:

完整Pipeline配置示例

source:
  http:
    path: "/log/ingest"
processor:
  # 第一步:将字符串类型的时间戳转为长整型
  - convert:
      fields:
        - from: "customField"
          to: "customField_timestamp" # 生成中间字段,也可直接覆盖原字段
          type: "long"
  # 第二步:将秒级时间戳格式化为目标格式
  - date:
      from_time_received: false
      source: "customField_timestamp"
      destination: "formatted_time" # 存储格式化后时间的新字段
      format: "dd/MMM/yyyy:HH:mm:ss"
      time_zone: "UTC" # 根据实际需求调整时区,比如Asia/Shanghai
  # 可选:删除中间字段
  - remove:
      entries:
        - key: "customField_timestamp"
sink:
  - opensearch:
      hosts: ["https://localhost:9200"]
      index: "logs-index"
      username: "admin"
      password: "admin"

配置说明

  • convert处理器:原始日志中customField是字符串格式的时间戳,date处理器无法直接解析,因此需要先转换为长整型。如果不需要保留原字段,可将to的值设为customField直接覆盖。
  • date处理器:
    • source指定待转换的数值型时间戳字段;
    • destination定义格式化后时间的存储字段;
    • format严格遵循Java DateTimeFormatter的规则,这里设置为需求的dd/MMM/yyyy:HH:mm:ss;
    • time_zone需根据业务场景设置对应时区,确保时间显示准确。

处理后日志示例

{
  "ua": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/21.0 Chrome/110.0.5481.154 Safari/537.36",
  "customField": "1685959346",
  "key3": "test",
  "securityRule": "test|112122|super",
  "formatted_time": "06/Jun/2023:10:02:26"
}

直接覆盖原字段的简化配置

如果希望直接替换原customField字段为格式化后的时间,可使用以下配置:

processor:
  - convert:
      fields:
        - from: "customField"
          to: "customField"
          type: "long"
  - date:
      from_time_received: false
      source: "customField"
      destination: "customField"
      format: "dd/MMM/yyyy:HH:mm:ss"
      time_zone: "UTC"

内容的提问来源于stack exchange,提问作者Youness CHETOUI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 16:20:33