ES学习日记(九)-------logstash导入数据

一、安装和下载

es官网
下载地址

官方介绍:Logstash是开源的服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到您最喜欢的"存储库"中。(我们的存储库当然是 Elasticsearch。)

下载和ES一样的版本(很重要,必须这么做)

解压到指定目录

二、启动与配置

测试启动命令

java 复制代码
bin/logstash -e 'input {stdin {}}output { stdout {} }'
1.准备下面内容

可以直接抄作业,自己手写的,亲测可用,暂时定时更新,后续会更新配置信息:

jdbc.conf

java 复制代码
input {
    stdin {
    }
                jdbc {
                # 配置数据库信息
                jdbc_connection_string => "jdbc:mysql://172.18.8.61:3306/chengqu_eplatform?useunicodetrue&characterEncoding=UTF-8&serverlimezone=Asia/shanghai"
                # 驱动包
                jdbc_driver_class =>"com.mysql.cj.jdbc.Driver"
                # 用户名
                jdbc_user => "****"
                # 密码
                jdbc_password => "****"
                # 是否需要分页
                jdbc_paging_enabled => "true"
                # 分页大小
                jdbc_page_size => "50000"
                # 时区
                jdbc_default_timezone => "Asia/Shanghai"
                # 执行 sql 语句文件位置
                statement_filepath => "/home/local/escolony/logstash-7.4.2/jdbc.sql"
                # 定时字段 各字段含义(由左至右)分、吋、天、月、年,全部为*默认含义为每分钟都更新
                schedule => "* * * * *"
                # 是否将 sql 中 column 名称转小写(是否转驼峰)
                lowercase_column_names=> false
    }
}

filter {
    json {
        source => "message"
        remove_field => ["message"]
    }
}

output {
    elasticsearch {
        # 输出位置
        hosts => ["127.0.0.1:9200"]
        # port => "9200"
        # protocol => "http"
        # 索引名称
        index => "shop"
        # 文档 id%{id}意思是取査询出来的id的值,并将其映射到shop的id字段中
        # 文档 id,%{goodsId}如果是别名,意思是取查询出来的goodsId的值,并将其映射到shop的 id字段中
        document_id => "%{id}"
        # cluster => "logstash-elasticsearch"
    }
    stdout {
        codec => json_lines
    }
}

jdbc.sql

java 复制代码
select * from goods

把准备好的mysql驱动包放到/logstash-7.4.2/logstash-core/lib/jars/,另外两个文件放到/logstash-7.4.2/下面

执行之前,测试启动(加-t),检查配置文件是否编写正确(注意中英文,大小写,空格啥的,配置文件要求很高,不能出错)

java 复制代码
bin/logstash -f /home/local/escolony/logstash-7.4.2/jdbc.conf -t
2.创建新的索引
java 复制代码
curl -X PUT http://localhost:9200/shop -H 'Content-Type:application/json' -d'{
	"settings": {
		"number_of_shards": 5,
		"number_of_replicas": 1
	}
}'
3.分词
java 复制代码
curl -XPOST http://localhost:9200/shop/_mapping -H 'Content-Type:application/json' -d'{
	"properties":{
		"t_name":{
			"type": "text",
			"analyzer":"ik_max_word",
			"search_analyzer":"ik_max_word"
		}
	}
}'

三、关联mysql导入数据

1.连接mysql导数据

测试成功后,建立索引完成(也可以先建),现在就可以从mysql里面导数据了

实际使用中,一般打开了logstash以后就不要动了,每分钟会去数据库取数据,除非你的sql语句发生变化,不然开着不用管就行

启动logstash

java 复制代码
bin/logstash -f /home/local/escolony/logstash-7.4.2/jdbc.conf

获取数据成功

刷新下索引,就有了

写在最后

注意配置文件,要求很高,不能出错,需要的命令我都粘上面了,后续会改为实时更新

下一节开始用代码操作ES

相关推荐
@小博的博客几秒前
C++初阶学习第十弹——深入讲解vector的迭代器失效
数据结构·c++·学习
南宫生42 分钟前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法
懒惰才能让科技进步1 小时前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝
Qspace丨轻空间2 小时前
气膜场馆:推动体育文化旅游创新发展的关键力量—轻空间
大数据·人工智能·安全·生活·娱乐
love_and_hope2 小时前
Pytorch学习--神经网络--搭建小实战(手撕CIFAR 10 model structure)和 Sequential 的使用
人工智能·pytorch·python·深度学习·学习
Chef_Chen2 小时前
从0开始学习机器学习--Day14--如何优化神经网络的代价函数
神经网络·学习·机器学习
芊寻(嵌入式)2 小时前
C转C++学习笔记--基础知识摘录总结
开发语言·c++·笔记·学习
hong1616882 小时前
跨模态对齐与跨领域学习
学习
Elastic 中国社区官方博客3 小时前
如何将数据从 AWS S3 导入到 Elastic Cloud - 第 3 部分:Elastic S3 连接器
大数据·elasticsearch·搜索引擎·云计算·全文检索·可用性测试·aws
掘金-我是哪吒3 小时前
微服务mysql,redis,elasticsearch, kibana,cassandra,mongodb, kafka
redis·mysql·mongodb·elasticsearch·微服务