当前位置: 首页 > article >正文

3分钟快速了解mysql数据导入到es

可以将 MySQL 中的表数据导入 Elasticsearch 中,并使用中文分词器。在这个例子中,我们将使用 Logstash(一个数据处理管道工具)将 MySQL 中的数据导入 Elasticsearch。假设您已经安装了 Elasticsearch、Logstash 和 MySQL。

  1. 首先,为了使用中文分词器,您需要安装一个 Elasticsearch 插件,如 analysis-ik。在 Elasticsearch 安装目录下执行以下命令来安装该插件:
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.15.0/elasticsearch-analysis-ik-7.15.0.zip
  1. 重启 Elasticsearch 以使插件生效。

  2. 在 Elasticsearch 中创建一个索引,使用中文分词器:

curl -X PUT "localhost:9200/books?pretty" -H 'Content-Type: application/json' -d'
{
  "settings": {
    "analysis": {
      "analyzer": {
        "ik_smart": {
          "type": "custom",
          "tokenizer": "ik_smart"
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "analyzer": "ik_smart"
      },
      "author": { "type": "keyword" },
      "publish_date": { "type": "date" },
      "category": { "type": "keyword" }
    }
  }
}'
  1. 在 MySQL 数据库中创建一个名为 books 的表,并插入一些书籍数据:
CREATE TABLE books (
  id INT AUTO_INCREMENT PRIMARY KEY,
  title VARCHAR(255),
  author VARCHAR(255),
  publish_date DATE,
  category VARCHAR(255)
);

INSERT INTO books (title, author, publish_date, category)
VALUES
  ('活着', '余华', '1992-01-01', '小说'),
  ('百年孤独', '加西亚·马尔克斯', '1967-05-30', '小说'),
  ('人类简史', '尤瓦尔·赫拉利', '2011-01-01', '历史');
  1. 在 Logstash 安装目录下,创建一个名为 mysql_to_es.conf 的配置文件,内容如下:
input {
  jdbc {
    jdbc_driver_library => "/path/to/mysql-connector-java.jar"
    jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
    jdbc_connection_string => "jdbc:mysql://localhost:3306/your_database?serverTimezone=UTC"
    jdbc_user => "your_username"
    jdbc_password => "your_password"
    schedule => "* * * * *"
    statement => "SELECT * FROM books"
  }
}

output {
  elasticsearch {
    hosts => "localhost:9200"
    index => "books"
    document_id => "%{id}"
  }
}

请替换 /path/to/mysql-connector-java.jar 为 MySQL JDBC 驱动的路径,your_database 为您的数据库名,your_usernameyour_password 为您的 MySQL 用户名和密码。

  1. 使用 Logstash 运行刚刚创建的配置文件:
./bin/logstash -f mysql_to_es.conf
  1. 查看 Elasticsearch 中的数据是否正确导入:
curl -X GET "localhost:9200/books/_search?pretty"

您应该会看到包含导入的书籍数据的 JSON 响应。

在这个例子中,我们使用了 Logstash 将 MySQL 中的数据导入到 Elasticsearch 中,并使用中文分词器对 title 字段进行了分词。注意,在生产环境中,您需要谨慎处理敏感数据,并遵循适当的数据保护措施。

可以在运行中的 MySQL 服务上执行数据导入操作。Logstash 将会建立与 MySQL 数据库的连接,并从中读取数据,不会影响 MySQL 的正常运行。但是,如果您在 MySQL 表上执行写操作(如插入、更新、删除),则需要确保 Logstash 配置文件中的查询语句不会受到影响,否则可能导致数据不一致。


http://www.kler.cn/a/16908.html

相关文章:

  • 【计算机网络】TCP网络程序
  • 【大数据学习 | flume】flume的概述与组件的介绍
  • WordPress HTTPS 配置问题解决方案
  • Axure设计之文本编辑器制作教程
  • 【设计模式】行为型模式(二):策略模式、命令模式
  • MQTT协议解析 : 物联网领域的最佳选择
  • 【OMNET++】V2X仿真
  • 【Mac教学】如何打开macOS 的最大权限
  • 密码学【java语言】初探究
  • python面向对象三大特性详解 - 封装 继承 多态
  • 第四十八章 管理镜像 - 将备份降级为 DR 异步
  • Three.js--》模型材质与纹理的使用
  • 如何编写高质量代码
  • CentOS7 安装MySQL8
  • 第16章 指令级并行与超标量处理器
  • java获取文件名后缀方法
  • 分布式光伏发电大规模应用,运维难题如何解?
  • 网络应用基础 ——(2023新星计划文章一)
  • 跟我学c++高级篇——反射
  • Html5版音乐游戏制作及分享(H5音乐游戏)
  • Python——正则表达式re讲解
  • pandas使用教程:apply函数、聚合函数agg和transform
  • 【WAF】雷池waf升级体验
  • IT行业里的热门技术和项目分享
  • RabbitMQ死信队列延迟交换机
  • java对BigDecimal数字位数验证