Logstash学习之路(二)Elasticsearch导入json数据文件
一、数据从文件导入elasticsearch
1、数据准备:
1、数据文件:test.json
2、索引名称:index
3、数据类型:doc
4、批量操作API:bulk
{"index":{"_index":"index2","_type":"type2","_id":0}}
{"age":10,"name":"jim"}
{"index":{"_index":"index2","_type":"type2","_id":1}}
{"age":16,"name":"tom"}
2、_bulk API导入ES的JSON文件需要满足一定的格式,每条记录之前,需要有文档ID且每一行\n结束
curl -H 'Content-Type: application/x-ndjson' -s -XPOST localhost:9200/_bulk --data-binary @test.json
如果是在test.json文件中没有指定index名、type、id时:
curl -H 'Content-Type: application/x-ndjson' -s -XPOST localhost:9200/index2/type2/_bulk --data-binary @test.json
{ "index" : { } }
{"age":16,"name":"tom"}
但是id会自动生成
3、对于普通json文件的导入,可以logstash进行导入:
logstash的安装准备详细过程请查阅:
https://www.cnblogs.com/yfb918/p/10763292.html
json数据准备
[root@master mnt]# cat data.json
{"age":16,"name":"tom"}
{"age":11,"name":"tsd"}
创建配置文件:
[root@master bin]# cat json.conf
input{
file{
path=>"/mnt/data.json"
start_position=>"beginning"
sincedb_path=>"/dev/null"
codec=>json{
charset=>"ISO-8859-1"
}
}
}
output{
elasticsearch{
hosts=>"http://192.168.200.100:9200"
index=>"jsontestlogstash"
document_type=>"doc"
}
stdout{}
}
执行结果:
[root@master bin]# ./logstash -f json.conf
[2019-04-25T10:59:14,803][INFO ][logstash.agent ] Pipelines running {:count=>1, :running_pipelines=>[:main], :non_running_pipelines=>[]}
[2019-04-25T10:59:16,084][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
{
"name" => "tom",
"age" => 16,
"path" => "/mnt/data.json",
"@timestamp" => 2019-04-25T02:59:16.009Z,
"host" => "master",
"@version" => "1"
}
{
"name" => "tsd",
"age" => 11,
"path" => "/mnt/data.json",
"@timestamp" => 2019-04-25T02:59:16.096Z,
"host" => "master",
"@version" => "1"
}

从结果中可以看到:默认增加了几个字段。那么我们想要这几个默认生成的字段我们应该怎么么办呢,可以如下解决:
在配置文件中使用filter进行过滤:
[root@master bin]# cat json.conf
input{
file{
path=>"/mnt/data.json"
start_position=>"beginning"
sincedb_path=>"/dev/null"
codec=>json{
charset=>"ISO-8859-1"
}
}
}
filter{
mutate {
remove_field => "@timestamp"
remove_field => "@version"
remove_field => "host"
remove_field => "path"
}
}
output{
elasticsearch{
hosts=>"http://192.168.200.100:9200"
index=>"jsontestlogstash"
document_type=>"doc"
}
stdout{}
}
过滤之后的结果:


Logstash学习之路(二)Elasticsearch导入json数据文件的更多相关文章
- Solr学习笔记——导入JSON数据
1.导入JSON数据的方式有两种,一种是在web管理界面中导入,另一种是使用curl命令来导入 curl http://localhost:8983/solr/baikeperson/update/j ...
- 【Spring学习笔记-MVC-4】SpringMVC返回Json数据-方式2
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- 【Spring学习笔记-MVC-3】SpringMVC返回Json数据-方式1
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- Qt 学习之路 2(35):文件
Qt 学习之路 2(35):文件 豆子 2013年1月5日 Qt 学习之路 2 12条评论 文件操作是应用程序必不可少的部分.Qt 作为一个通用开发库,提供了跨平台的文件操作能力.从本章开始,我们来了 ...
- Qt 学习之路 2(17):文件对话框
Home / Qt 学习之路 2 / Qt 学习之路 2(17):文件对话框 Qt 学习之路 2(17):文件对话框 豆子 2012年9月24日 Qt 学习之路 2 85条评论 在前面的章节中 ...
- sqlcmd导入大数据文件
sqlcmd导入大数据文件 SQLCMD 允许在Windows命令窗中通过命令行提示符运行脚本. 语法如下: sqlcmd [ { { -U <login id> [ -P <p ...
- 阿里云Mysql导入大数据文件
1.查询数据保存为CSV文件 select * from account into outfile '/root/account.csv' fields terminated by ',' enclo ...
- IOS学习之路二十(程序json转换数据的中文字符问题解决)
ios请求web中的json数据的时候经常出现乱码问题: 例如请求结果可能如下:"\U00e5\U00a5\U00bd\U00e8\U00ae\U00a4" 在网上查到的解决方法是 ...
- Redis——学习之路二(初识redis服务器命令)
上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息 s ...
随机推荐
- 第15.18节 PyQt(Python+Qt)入门学习:Model/View架构中视图Item Views父类详解
老猿Python博文目录 老猿Python博客地址 一.概述 在PyQt图形界面中,支持采用Model/View架构实现数据和界面逻辑分离,其中Model用于处理数据存储,View用于界面数据展现,当 ...
- 性能测试基础——(MEN)
关于内存在一块其实我并不是很想拿出来说,一般情况下内存这一块都是可优化的,可以通过硬件资源或者调整一些系统或者应用系统的参数配置来进行优化. 很多同僚问到了"内存泄漏"和" ...
- SQL数据库优化的六种方法
SQL命令因为语法简单.操作高效受到了很多用户的欢迎.但是,SQL命令的效率受到不同的数据库功能的限制,特别是在计算时间方面,再加上语言的高效率也不意味着优化会更容易,所以每个数据库都需要依据实际情况 ...
- Day5 【Scrum 冲刺博客】
每日会议总结 昨天已完成的工作 方晓莹(PIPIYing) 搭建与后台对接的代理服务器 对接个人中心接口 方子茵(Laa-L):暂无 黄芯悦(Sheaxx) 完善投诉反馈页面 完善车位管理页面 舒雯钰 ...
- Devpress (DxReport)使用ReportDesigner (一) 基本功能
1. Devpress (DxReport)编辑 (1) 新建一个XtraReport. (2) 在报告上点右键添加元素: 元素说明: (1) 其中有报告头,报告尾,页头,页尾,组头,组尾,详细. ...
- AcWing 328. 芯片 (二进制写法)
题目链接 我自闭了,调了一下午,我居然认为 \(2, 3\) 凑不出 \(7\),我怕是个孤儿. 这是一位非要用二进制写的勇士. 首先定义状态 \(S\),若 \(S\) 的二进制第 \(k\) 位为 ...
- Java中四舍五入
1.Math中四舍五入的方法 Math.ceil(double a)向上舍入,将数值向上舍入为最为接近的整数,返回值是double类型 Math.floor(double a)向下舍入,将数值向下舍入 ...
- undo表空间丢失、损坏
1.模拟误删undo表空间 rm -rf undotbs01.dbf 2.解决步骤 SQL> shutdown immediateORA-01116: error in opening data ...
- html 01-认识Web和Web标准
01-认识Web和Web标准 #Web.网页.浏览器 #Web Web(World Wide Web)即全球广域网,也称为万维网. 我们常说的Web端就是网页端. #网页 网页是构成网站的基本元素.网 ...
- css 06-CSS盒模型详解
06-CSS盒模型详解 #盒子模型 #前言 盒子模型,英文即box model.无论是div.span.还是a都是盒子. 但是,图片.表单元素一律看作是文本,它们并不是盒子.这个很好理解,比如说,一张 ...