Logstash 从 JSON 导入 Elasticsearch

发布于 2025-01-28 06:19:23 字数 1820 浏览 13 评论 0

测试数据

movies.json

{"movieId":1,"title":"Toy Story (1995)","genres":"Adventure|Animation|Children|Comedy|Fantasy","cast":[{"name":"Tom Hanks"},{"name":"Tim Allen"}]}
{"movieId":2,"title":"Jumanji (1995)","genres":"Adventure|Children|Fantasy","cast":[{"name":"Robin Williams"},{"name":"Bonnie Hunt"}]}
{"movieId":3,"title":"Grumpier Old Men (1995)","genres":"Comedy|Romance","cast":[{"name":"Jack Lemmon"},{"name":"Ann-Margret"}]}
{"movieId":4,"title":"Waiting to Exhale (1995)","genres":"Comedy|Drama|Romance","cast":[{"name":"Whitney Houston"},{"name":"Angela Bassett"}]}
{"movieId":5,"title":"Father of the Bride Part II (1995)","genres":"Comedy","cast":[{"name":"Steve Martin"},{"name":"Diane Keaton"}]}
{"movieId":100,"title":"Something Wrong","genres":"Ignore"}

Logstash 配置文件

logstash.conf

input {
  file {
    path => "/Users/jasonwu/WorkSpace/learn/Elasticsearch/movies.json"
    start_position => "beginning"
    sincedb_path => "/Users/jasonwu/.Trash/sincedb.trash"
  }
}

filter {
  json {
    source => "message"
  }

  if [moveId] == "100" or [genres] == "Ignore" {
    drop {}
  }

  split {
    field => "[cast]"
  }

  mutate {
    add_field => {
      "cast_name" => "%{[cast][name]}"
    }

    rename => {
      "movieId" => "movie_id"
      "genres" => "genre"
    }

    convert => {
      movie_id => "integer"
    }

    remove_field => ["cast", "path", "@version", "message", "@timestamp", "host"]
  }
}

output {
  stdout {}

  elasticsearch {
    hosts => ["localhost:9200"]
    index => "movies-json"
  }
}

执行 Logstash 导入 Elasticsearch

$ bin/logstash -f /Users/jasonwu/WorkSpace/learn/Elasticsearch/logstash.conf

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

行雁书

暂无简介

文章
评论
28 人气
更多

推荐作者

alipaysp_snBf0MSZIv

文章 0 评论 0

梦断已成空

文章 0 评论 0

瞎闹

文章 0 评论 0

寄意

文章 0 评论 0

似梦非梦

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文