Centos7快速安装Logstash 7.17.7并实现MySQL中数据导入Elasticsearch

news2024/12/22 19:51:50

可以通过以下命令在线安装 Logstash 7.17.7

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo rpm -ivh https://artifacts.elastic.co/downloads/logstash/logstash-7.17.7-x86_64.rpm

安装完成后,需要添加环境变量

export PATH=$PATH:/usr/share/logstash/bin

然后,通过执行以下命令,使更改生效:

source ~/.bashrc

你可以通过运行以下命令来验证 Logstash 版本:

logstash -V

如果一切正常,你应该能看到类似如下输出:

logstash 7.17.7

Mysql创建数据库,表,并制造和添加数据

假设有一个 MySQL 数据库 mydb,其中包含一个表 mytable,表结构如下:

CREATE TABLE mytable (
  id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL,
  age INT NOT NULL,
  address VARCHAR(100) NOT NULL,
  PRIMARY KEY (id)
);

造46条数据:

INSERT INTO mytable (name, age, address) VALUES
('Alice', 25, '主街123号'), ('Bob', 30, '高街456号'), ('Charlie', 35, '橡树大道789号'), ('David', 40, '松树街321号'), ('Emma', 45, '榆树街654号'),
('Frank', 50, '枫树大道987号'), ('Grace', 55, '樱桃街246号'), ('Henry', 60, '桦树路369号'), ('Isabella', 65, '橡木道802号'), ('John', 70, '公园大道1473号'),
('Kate', 75, '柳树巷567号'), ('Lucas', 80, '森林路901号'), ('Mia', 85, '胡桃街2345号'), ('Nathan', 90, '松林大道678号'), ('Olivia', 95, '雪松街1011号'),
('Paul', 100, '第五大道1213号'), ('Quinn', 105, '主街1415号'), ('Robert', 110, '百老汇1617号'), ('Samantha', 115, '榆树道1819号'), ('Thomas', 120, '松树巷2021号'),
('Ursula', 125, '橡树路2223号'), ('Vincent', 130, '公园大道2425号'), ('Wendy', 135, '日落大道2627号'), ('Xavier', 140, '橡木道2829号'), ('Yvette', 145, '枫木路3031号'),
('Zachary', 150, '橡树街3233号'), ('Alice', 25, '主街123号'), ('Bob', 30, '高街456号'), ('Charlie', 35, '橡树大道789号'), ('David', 40, '松树街321号'),
('Emma', 45, '榆树街654号'), ('Frank', 50, '枫树大道987号'), ('Grace', 55, '樱桃街246号'), ('Henry', 60, '桦树路369号'), ('Isabella', 65, '橡木道802号'),
('John', 70, '公园大道1473号'), ('Kate', 75, '柳树巷567号'), ('Lucas', 80, '森林路901号'), ('Mia', 85, '胡桃街2345号'), ('Nathan', 90, '松林大道678号'),
('Olivia', 95, '雪松街1011号'), ('Paul', 100, '第五大道1213号'), ('Quinn', 105, '主街1415号'), ('Robert', 110, '百老汇1617号'), ('Samantha', 115, '榆树道1819号'),
('Thomas', 120, '松树巷2021号');

需要将 mytable 中的数据导入到 Elasticsearch 中。

实际上不需要分词器!!

以下是操作步骤:
在 Elasticsearch 中创建索引,并指定字段类型和分词器,导入之前还需要注意下时间的问题,确定一下系统时间

PUT /myindex
{
  "mappings": {
    "properties": {
      "name": {
        "type": "text",
        "analyzer": "ik_max_word",
        "search_analyzer": "ik_smart"
      },
      "age": {
        "type": "integer"
      },
      "address": {
        "type": "text",
        "analyzer": "ik_max_word",
        "search_analyzer": "ik_smart"
      }
    }
  }
}

安装 Logstash 和 JDBC 驱动

安装 Logstash(Logstash已安装的可以忽略)
sudo rpm -ivh https://artifacts.elastic.co/downloads/logstash/logstash-7.17.7-x86_64.rpm

下载 JDBC 驱动,此处使用 MySQL 官方的 JDBC 驱动
sudo curl -L -O https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.28.tar.gz

解压 JDBC 驱动
sudo tar xvf mysql-connector-java-8.0.28.tar.gz

将 JDBC 驱动复制到 Logstash 的 plugins 目录下
sudo cp mysql-connector-java-8.0.28/mysql-connector-java-8.0.28.jar /usr/share/logstash/logstash-core/lib/jars/

创建 Logstash 配置文件 mysql.conf,

配置文件可以放任何地方,需要指定 JDBC 连接信息、SQL 语句和 Elasticsearch 输出配置

input {
  jdbc {
    jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/mysql-connector-java-8.0.28.jar"
    jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://192.168.80.1:3306/mydb"
    jdbc_user => "root"
    jdbc_password => "QWER1234@"
    statement => "SELECT * FROM mytable"
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "mytable"
    document_id => "%{id}"
    user => "elastic"
    password => "111111"
  }
}

其中 jdbc_connection_string 指定了 MySQL 数据库的连接信息,jdbc_user 和 jdbc_password 分别指定了 MySQL 数据库的用户名和密码,statement 指定了 SQL 语句,此处是将 mytable 表中的所有数据导入到 Elasticsearch 中。别忘了配置es的账号密码。
document_id 指定了 Elasticsearch 中文档的 ID,此处将使用 MySQL 中的 id 字段作为 Elasticsearch 中文档的 ID!!!(文档的id需要具有唯一性)在这里插入图片描述

运行 Logstash

sudo /usr/share/logstash/bin/logstash -f mysql.conf

等待 Logstash 导入数据完成
在这里插入图片描述

完成以上操作后,我们可以通过以下步骤验证数据是否成功导入 Elasticsearch 中:
在 Kibana 中打开 Dev Tools。
执行以下命令,查询导入的文档数量是否正确:
GET /mytable/_count
在这里插入图片描述
执行以下命令,查询文档内容是否正确:
GET /mytable/_search
在这里插入图片描述
以上步骤中的 SQL 语句可以根据实际需求进行修改,例如可以添加 WHERE 子句来筛选符合条件的数据,或者使用 JOIN 等高级功能来获取更丰富的数据。同时,我们也可以根据需要修改 Logstash 的配置文件和 Elasticsearch 的映射规则等,以满足不同的数据导入需求。
在Elasticsearch中查询地址含有“森林路”的名字,您可以使用以下查询语句:会分词!!!!!

GET mytable/_search
{
  "query": {
    "match": {
      "address": "森林路"
    }
  }
}

因为在 Elasticsearch 中使用 Match 查询时,默认情况下会对文本进行分词。这意味着如果你搜索 “森林路”,它将在文本中寻找包含 “森林” 和 “路” 的文档。因此,包含 “松林大道” 或 “枫木路” 的文档也会出现在查询结果中。
这将在名为“mytable”的索引中搜索具有地址“森林路”的所有记录,并返回匹配的文档。如果您只想返回特定字段(例如,只想返回匹配的记录的姓名),可以使用“_source”参数来指定要返回的字段。例如:

GET mytable/_search
{
  "_source": ["name"],
  "query": {
    "match": {
      "address": "森林路"
    }
  }
}

这将仅返回匹配的文档中的“name”字段。

要精确匹配整个短语,可以使用 Match Phrase 查询或使用双引号将搜索词语括起来。例如:

GET mytable/_search
{
  "query": {
    "match_phrase": {
      "address": "森林路"
    }
  }
}

这将只返回地址中包含 “森林路” 短语的文档。
在这里插入图片描述
**

修改数据库中数据然后再同步

**
在数据库中修改数据,然后执行logstash同步,数据居然可以把修改后同步过去,数量依旧是46,保持不变
在这里插入图片描述
在这里插入图片描述
**

在数据库中新增数据再同步

**
在这里插入图片描述
sudo /usr/share/logstash/bin/logstash -f mysql.conf
数量变成了47,同时也查出了数据在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/484256.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ARM处理器的指令集(3)

ARM处理器的指令集 一、数据处理类指令 数据处理指令只能对寄存器的内容进行操作,而不能对内存中的数据进行操作,所以ARM数据处理指令均可以选择使用S后缀,以影响状态标志位。 影响状态标志位的命令: MOVS–>数据传送指令&am…

java servlet 农机租赁网站系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 java servlet 农机租赁网站系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助 系统采用 serlvetdaobean 模式开发 ,系统具有完整的源代码和数 据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,M…

[架构之路-179]-《软考-系统分析师》-19- 系统可靠性分析与设计 -1- 故障模型、可靠性模型、可靠性分析

目录 前言: 1 9 . 1 系统可靠性概述 19.1.1 系统故障模型 1. 在信息系统中,故障或错误有如下儿种表现形式: 2. 故障的缘由 3. 故障模型 (1)逻辑电路级的故障 (2) 数据结构级的故障 &a…

【大数据Hadoop】HDFS3.3.1-Datanode-DataStorage的实现原理

DataStorage的实现原理 前言Storage类继承关系StorageInfoStorage.StorageStateStorage.StorageDirectory文件夹操作加锁/解锁操作存储状态恢复操作 StorageDataStorage 前言 Datanode 最重要的功能就是管理磁盘上存储的 HDFS 数据块。Datanode 将这个管理功能切分为两个部分&…

确定不进来看看吗?详细讲解C语言文件操作(示例分析每个函数)

前言 🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言初阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:讲解c语言中的文件操作,文件的读取,输入输出,流的概念…

【分布式搜索引擎03】

分布式搜索引擎03 11.9.数据聚合11.9.1.聚合的种类11.9.2.DSL实现聚合11.9.2.1.Bucket聚合语法11.9.2.2.聚合结果排序11.9.2.3.限定聚合范围11.9.2.4.Metric聚合语法11.9.2.5.小结 11.9.3.RestAPI实现聚合11.9.3.1.API语法11.9.3.2.业务需求11.9.3.3.业务实现 11.10.自动补全&a…

AMBA协议-AXI协议详解(读写时序、Outstanding、乱序传输、原子操作)

目录 1. AXI 写通道信号 1.1. 写地址通道信号 1.2. 写数据通道信号 1.3. 写response通道信号 1.5. 握手规则 1.4. AXI 写通道之间关系 2. AXI 读通道信号 2.1. 读地址通道信号 2.2. 读数据通道信号 2.3. AXI 读通道之间关系 3. AXI传输 3.1. AXI突发读传输 3.2. …

EventBus(事件总线)的使用和源码的简单解析

Google Guava EventBus(事件总线)的使用和源码的简单解析 什么是EventBus? 事件总线(EventBus)是一种广泛用于软件架构中的设计模式,用于实现解耦和松散耦合的通信机制。它可以帮助组织和管理应用程序中不同组件之间的通信&…

【SQL篇】面试之高级查询和连接

603 连续空余座位 select distinct c1.seat_id from Cinema c1 join Cinema c2 on abs(c2.seat_id-c1.seat_id) 1 where c1.free1 and c2.free1 order by c1.seat_id;总结 思路:为什么我们这里需要abs和distinct,如果是如下代码,为什么不可…

[架构之路-178]-《软考-系统分析师》-17-嵌入式系统分析与设计- 3- 分区操作系统(Partition Operating System)概述

目录: 本文概述: 1.1 什么是分区操作系统 1.2 分区操作系统出现背景 1. 前后台系统(Foreground/Background System) 2. 实时操作系统(RTOS) 本文概述: 随着嵌入式系统日趋复杂化以及对安全性要求的不断提高,采用空间隔离、时…

[计算机图形学]光场,颜色与感知(前瞻预习/复习回顾)

一、Light Field / Lumigraph—光场 1.我们看到的是什么 我们的眼睛能够把3D世界转换为2D的成像信号被我们感知,如上面第一幅图,这就是我们看到整个世界的过程,那么如果我们把之前记录的光的信息都完美的放在一个幕布上,那么我们…

第15章 信息(文档)和配置管理

文章目录 软件文档的分类(1)开发文档:描述开发过程 本身(2)产品文档:描述开发过程的 产物(3)管理文档:记录项目管理的信息 文档的质量可以分为四级(1&#xf…

第二十五章 刚体Rigidbody

在物理学中,静止和匀速直线运动是物体的平衡状态,如果给该物体施加某一个力的话,物体的平衡状态就会改变,当然这个真理的前提是理想状态。我们知道在现实世界中,由于重力和摩擦力的存在,任何一个物体都不可…

【SQL篇】窗口函数和公共表达式

1077 项目员工 III # Write your MySQL query statement below select project_id, employee_id from (select project_id, e.employee_id, rank() over(partition by project_id order by experience_years desc) as rkfrom Employee ejoin Project pon e.employee_id p.empl…

【Fluent】接着上一次计算的结果继续计算,利用计算过程中得到的物理场(温度、速度、压力等)插值Interpolate文件初始化模型的方法

一、问题背景 因为fluent中支持的初始化无非三种类型。 1、Standard initialization 标准初始化 2、Hybridinitialization 混合初始化 3、FMG initialization FMG初始化 另外,还可以用UDF通过坐标判断的方式予以初始化。 但是这些初始化方法都没办法利用以前计算过…

通关MyBatis(上)

作者:~小明学编程 文章专栏:spring框架 格言:热爱编程的,终将被编程所厚爱。 目录 什么是MyBatis 如何使用Mybatis 添加依赖 创建数据库 配置数据库连接字符串 MyBatis的操作流程 数据持久层 配置mybatis的xml文件 mapp…

Windows自动虚拟机WSL和VMware虚拟机兼容问题(此平台不支持虚拟化的 Intel VT-x/EPT)

问题背景与原因分析 在安装了WSL2之后,忽然发现VMware Workstation无法正常启动了。就是在开启虚拟机时遇到了这种情况: “ 此平台不支持虚拟化的 Intel VT-x/EPT” 问题描述:出现以上问题,发现WSL2和 VMware Workstation 是不兼…

idea使用git遇到的小问题

idea使用git遇到的小问题 前置说明颜色含义中文插件修改提交的用户名 前置说明 idea版本为2022专业版 github需要自己会科学上网 颜色含义 在idea中使用github后,会发现项目中会有各种各样的颜色,如图所示文件全为绿色 这颜色含义分别为:…

函数-函数递归及练习

目录 1、什么是递归? 2、递归的两个必要条件 3、递归的练习 3.1 接受一个整型值(无符号),按照顺序打印它的每一位 3.2 编写函数不允许创建临时变量,求字符串的长度 3.3 求第n个斐波那契数 3.4 字符串逆序&…

UG NX二次开发(C++)-建模-修改NXObject或者Feature的颜色(二)

文章目录 1、前言2、在UG NX中修改Body的颜色操作3、采用NXOpen(C)实现3.1 创建修改对象颜色的方法3.2 在do_it()中添加调用的代码3.3 测试效果 1、前言 在UG NX中,改变NXObject和Feature的操作是不相同的,所以其二次开发的代码也不一样,我们…