Elasticsearch 基于logstash 同步MySQL8 数据

2023-10-26

概述

  在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。
  在使用logstash我们应先了解其特性,再决定是否使用:

  • 无需开发,仅需安装配置logstash即可;
  • 凡是SQL可以实现的logstash均可以实现(本就是通过sql查询数据)
  • 支持每次全量同步或按照特定字段(如递增ID、修改时间)增量同步;
  • 同步频率可控,最快同步频率每分钟一次(如果对实效性要求较高,慎用);
  • 不支持被物理删除的数据同步物理删除ES中的数据(可在表设计中增加逻辑删除字段IsDelete标识数据删除)。

1、安装

  前往官网下载logstash,下载地址www.elastic.co/downloads/l…,zip压缩包大约160M(觉得官网下载慢的可前往@zxiaofan的CSDN下载);
  程序目录:【windows】C:\logstash-6.3.2;

2、配置

2.1、新建目录存放配置文件及mysql依赖包

  在【windows】目录(\bin同级)新建elasticsearch目录,将下载好的mysql-connector-java-8.0.11.jar放入此目录;
  在【windows】\elasticsearch目录新建elasticsearch.conf文件,此文件将配置数据库连接信息、查询数据sql、分页信息、同步频率等核心信息。
  注意事项请查看注释信息。

2.2、单表同步配置

input {
  stdin {
  }
  jdbc {
  jdbc_connection_string => "jdbc:mysql://192.168.0.1:3306/***?serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true&allowMultiQueries=true"
  jdbc_user => "root"
  jdbc_password => "123456"
  jdbc_driver_library => "../elasticsearch/mysql-connector-java-8.0.11.jar"
  jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
  statement => "select 
							tb.sid as sid,
							tb.unit_proj_sid,
							tb.individual_proj_sid,
							tb.eng_proj_sid,
                            (select CONCAT(organization_code, '|', organization_name) from ucas_auth_organization where ucas_auth_organization.organization_code =  tb.organization_code) as organization_code_name,
                            (select CONCAT(assort_num, '|', assort_name) from sys_assort_bus where sys_assort_bus.assort_num =  tb.assort_num) as assort_num_name,
                            tb.organization_code as organization_code,
                            tb.assort_num as assort_num,
							tb.arch_id,
							tb.unit_proj_arch_no,
							tb.reg_no,
							tb.arch_title,
							tb.make_org_name,
							(select sys_data_dict.value_ from sys_data_dict where sys_data_dict.key_ =  tb.arch_type_code and sys_data_dict.category_code ='ARCH_TYPE_CODE') as arch_type_code,
							tb.spec_code,
							tb.start_date,
							tb.end_date,
						    (select sys_data_dict.value_ from sys_data_dict where sys_data_dict.key_ =  tb.security_level_code and sys_data_dict.category_code ='SECURITY_LEVEL_CODE') as security_level_code,
							(select sys_data_dict.value_ from sys_data_dict where sys_data_dict.key_ =  tb.storage_type_code and sys_data_dict.category_code ='STORAGE_TYPE_CODE') as storage_type_code,
							'案卷信息' AS arch_type_name,
							tb.arch_type,
							tb.arch_category_code,
							tb.archiving_date,
							DATE_FORMAT(tb.archiving_date, '%Y') as archiving_date_year
					from ucas_arch_info tb where tb.arch_type = 2"
  }
}
output {
  elasticsearch {
    hosts => "192.168.1.105:9200"
    index => "blog"
	document_type =>"bookInfo"
    document_id => "%{sid}"
  }
  stdout {
    codec => json_lines
  }
}

3、启动运行

  在【windows】目录执行以下命令启动:

【windows】
C:\logstash-6.3.2\logstash-6.3.2\bin>logstash.bat -f 
     ../elasticsearch/elasticsearch.conf

 在【windows】\logs目录会有运行日志

Note:
  5.x/6.X/7.x版本需要jdk8支持,如果默认jdk版本不是jdk8,那么需要在logstash或logstash.lib.sh的行首位置添加两个环境变量:

export JAVA_CMD="/usr/tools/jdk1.8.0_162/bin"
export JAVA_HOME="/usr/tools/jdk1.8.0_162/"

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Elasticsearch 基于logstash 同步MySQL8 数据 的相关文章

  • Vue项目引入Echarts可视化图表库教程&踩坑

    Apache ECharts是一个基于 JavaScript 的开源可视化图表库 ECharts是一款基于JavaScript的数据可视化图表库 提供直观 生动 可交互 可个性化定制的数据可视化图表 ECharts最初由百度团队开源 并于2
  • AD如何设置单个元器件规则

    在我们使用AD进行PCB绘制时 有时候可以将两个元器件重叠放置 但这时由于规则设置的原因 导致DRC检检查报错 那么如何将这种报错解决呢 一 在英文模式下 按下T M 忽视掉这个检查 但这种方法一旦移动元器件又会显示报错 二 设置单个元器件
  • 负载均衡器ribbon和LoadBalancer

    负载均衡器ribbon和LoadBalancer 客户端负载均衡器 目前主流的负载方案分为以下两种 集中式负载均衡 在消费者和服务提供方中间使用独立的代理方式进行负载 有硬件的 比如 F5 也有软件的 比如 Nginx 客户端根据自己的请求
  • 测试key-value

    package com datacloudsec test collect import com alibaba fastjson JSON import com datacloudsec UEBAApplication import co

随机推荐

  • 【ERROR】本地计算机上的mysql服务启动停止后 Windows下mysql数据库恢复

    MySQL突然连不上的 提示 本地计算机上的mysql服务启动停止后 某些服务在未由其他服务或程序使用时将自动停止 折腾半天网上各种查 才找到方法完美解决 数据库恢复 步骤1 删除原有mysql服务 mysqld remove lt 你的m
  • 面向应用学习stm32(7)-TIM通用定时器-PWM输出和输入

    前导 本文的目的与 意在于面向应用的学习单片机 故不会涉及太多的原理知识 例如寄存器之类的 主要目的在于面向应用的学习单片机 学会单片机的基础用法 开发板采取野火的指南者f103 作者大二小白 写的不好的地方轻点喷 欢迎评论区交流 全部工程
  • 常见的函数式接口介绍

    Supplier
  • linux环境下python编程指南,在Linux系统中搭建Python编程环境

    Linux系统是为编程而设计的 因此在大多数Linux计算机中都默认安装了Python 1 检查Python版本 在系统中运行应用程序Terminal 如果是Ubuntu 可按Ctrl Alt T 打开终端窗口 通过执行python 注意是
  • [学习opencv]彩色图像通道分离、合成

    将彩色图像RGB三色分离出来是一个很有意义的操作 用到void split const Mat mtx vector
  • LeetCode 61. 旋转链表

    题目链接 61 旋转链表 一共用两个指针 第一个记录链表的尾节点 第一次遍历记录链表的长度 由于k可能很大所有我们对k模上n 第二次遍历记录我们用第二个指针记录要翻转的第二段链表的前一个节点 然后用尾部指针tail的next指针指向头结点
  • (超详细)基于MTCNN+FaceNet实现人脸识别及轻量级网络探索和改进(附数据集及预训练模型)

    目录 一 原理分析 二 FcaeNet源码使用 三 爬虫自制数据集 提高亚洲人脸准确率 四 加载预训练模型 五 加载自制pairs验证文档 六 轻量级网络研究 七 FaceNet扩展使用 FaceNet SVM KNN或者改进损失函数 八
  • Windows安装Linux虚拟机详细教程

    文章目录 一 VirtualBox安装 二 Vagrant安装 三 Centos安装 在线安装 离线安装 四 启动与连接 方式一 命令行登入 无需输入用户名与密码 方式二 Xshell登入 自定义ip 一 VirtualBox安装 下载 V
  • raid技术快速入门

    RAID技术 简介 raid全称为Redundant Arrays of Independent Drives 即磁盘冗余阵列 这是由多块独立磁盘 多为硬盘 组合的一个超大容量磁盘组 Raid技术意图在于把多个独立的磁盘设备组成一个容量更大
  • linux配置网络yum源

    yum是Linux环境安装软件包的一种方式 yum仓库用来存放所有的现有的 rpm包 当使用yum安装一个rpm包时 需要依赖关系 会自动在仓库中查找依赖软件并安装 yum仓库可以是本地的 也可以是HTTP FTP nfs形式的网络仓库 简
  • 运放的相位补偿 ?

    两个作用 1 改变反馈网络相移 补偿运放相位滞后 2 补偿运放输入端电容的影响 其实最终还是补偿相位 因为我们所用的运放都不是理想的 一般实际使用的运算放大器对一定频率的信号都有相应的相移作用 这样的信号反馈到输入端将使放大电路工作不稳定甚
  • 华为***技术一:L2TP概述

    原理名词解析 VPDN VPDN是承载PPP报文的 可以为企业 小型ISP 移动办公人员提供接入服务 NAS NAS网络接入服务器 Network Access Server 主要由ISP维护 连接拨号网络 是距离PPP终端地理位置最近的接
  • 小程序开发一个多少钱啊

    在今天的数字化时代 小程序已经成为一种非常流行的应用程序形式 由于它们的便捷性 易用性和多功能性 小程序吸引了越来越多的用户和企业 但是 很多人在考虑开发一个小程序时 都会遇到同一个问题 开发一个小程序需要多少钱 小程序的开发费用因人而异
  • angular 使用前端代理方式实现请求跨域,解决代理不生效问题!!

    最近玩angular 在使用代理方式进行前端跨域处理时 一直无法代理成功 查了许多资料 发现所有angular跨域教程都不完整 下边为大家奉上完整版的跨域操作 1 在项目根目录下定义proxy config json文件 2 在第1步刚刚创
  • 关于在Python的for循环中改变列表的值问题探究

    案例一 def test a 1 2 for i in a print i id a if i 5 break a a 0 2 a 1 2 输出 1 4313456192 2 4313269056 解释 在for循环语句中的变量a使用的内存
  • pwnable.tw - orw

    简单概览 与 start 不同 该程序使用动态链接 提示仅允许有限的系统调用 open read write 函数 程序运行 哪怕是输入一个字母 程序仍然会出现段错误 检查安全措施 可见栈上开了 CANARY 程序 在 IDA 中反编译可见
  • 数据结构 第三章 栈与队列

    栈 Stack 定义 限定仅在表尾进行插入和删除操作的线性表 即后进先出的线性表 Last In First Out 表尾即栈顶top 表头即栈低bottom 存储方式 顺序栈 链栈 顺序栈 一组地址连续的存储单元 一次存放自栈低到栈顶的数
  • 一种高效且节约内存的聚合数据结构的实现

    一种高效且节约内存的聚合数据结构的实现 在特定的场景中 特殊定制数据结构能够得到更加好的性能且更节约内存 聚合函数GroupArray的问题 GroupArray聚合函数是将分组内容组成一个个数组 例如下面的例子 SELECT groupA
  • qt实现侧边导航栏_UI设计干货分享:设计语言 - 侧边导航栏/分页

    原文作者 罗耀 UI 侧边导航栏 分页 步骤条的绘制方法 不管是做设计 感性 还是设计规范 理性 都是仁者见仁智者见智的 都很主观 我是想阐述出自己的想法供大家参考 文章中的数值也不是固定标准 还是希望大家根据不同的项目需求 去解决不同的实
  • Elasticsearch 基于logstash 同步MySQL8 数据

    概述 在生成业务常有将MySQL数据同步到ES的需求 如果需要很高的定制化 往往需要开发同步程序用于处理数据 但没有特殊业务需求 官方提供的logstash就很有优势了 在使用logstash我们应先了解其特性 再决定是否使用 无需开发 仅