首页 > 数据库 >elasticsearch学习笔记2 - logstash jdbc 同步MYSQL到ES

elasticsearch学习笔记2 - logstash jdbc 同步MYSQL到ES

时间:2024-01-19 16:01:06浏览次数:49  
标签:jdbc MYSQL jar logstash 同步 elasticsearch mysql id

logstash是一个管道工具 input 输入 output输出 filter过滤条件 咋们初级先了解到这些再说

比较优秀的教程文档 作为基础知识需要了解:

https://blog.csdn.net/qq_19283249/article/details/130839158?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170564710516800215045067%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=170564710516800215045067&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-2-130839158-null-null.142^v99^pc_search_result_base1&utm_term=logstash&spm=1018.2226.3001.4449

同步MySQL到es需要用到logstash的工具jdbc

1、需要MySQL jar包 版本 8.0.25  zip 压缩包 解压 jar 导入 ubuntu中使用

 

1、创建logstash  MySQL文件夹

mkdir mysql

将jar包放入mysql文件夹中

2:创建数据同步配置文件

input {
    jdbc {
        #注意mysql连接地址一定要用ip,不能使用localhost等
        jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/erp-dev?characterEncoding=utf8&serverTimezone=Asia/Shanghai"
        jdbc_user => "" 
        jdbc_password => ""
        
        #数据库重连尝试
        connection_retry_attempts => "3"
        
        #数据库连接可用校验超时时间,默认为3600s
        jdbc_validation_timeout => "3600"
        
        #这个jar包的地址是容器内的地址
        jdbc_driver_library => "/usr/bin/lib/es/logstash-8.11.0/mysql/mysql-connector-java-8.0.25.jar"
        jdbc_driver_class => "com.mysql.cj.jdbc.Driver"
        
        #开启分页查询(默认是false)
        jdbc_paging_enabled => "true"
        
        #单次分页查询条数(默认100000,字段较多的话,可以适当调整这个数值)
        jdbc_page_size => "500"
        
        #执行的sql语句
    statement_filepath => "/usr/bin/lib/es/logstash-8.11.0/heyines/order.sql"
    }
}

filter {
  mutate {
     copy => { "id" => "[@metadata][_id]"}
     remove_field => ["@version","@timestamp"] #remove system add columns 
    }   
} 


output {
     elasticsearch {
        hosts => ["127.0.0.1:9200"]                            # Elasticsearc主机地址
        index => "t_es_order"                                      # ES索引名称
        document_id => "%{id}"                                # 使用MySQL中的ID作为文档ID
     }
}

 

 

jdbc 同步遇到的问题

1、同步字段时间提前8小时

jdbc_connection_string  中 设置时间时区为上海  serverTimezone=Asia/Shanghai

2、同步时间字段 格式不正确 无法再fliter中修改时间格式

只能修改查询SQL语句

datetime类型字段 两种

,SUBSTRING(DATE_FORMAT(t0.`timestamp`,'%Y-%m-%d %H:%i:%S.%f'),1,23) as `timestamp`
,DATE_FORMAT(t0.`create_time`,'%Y-%m-%d %H:%i:%S')as `create_time`

 

标签:jdbc,MYSQL,jar,logstash,同步,elasticsearch,mysql,id
From: https://www.cnblogs.com/lt-com/p/17974669

相关文章

  • 使用 Docker 安装 Elasticsearch (本地环境 M1 Mac)
    Elasticsearch+kibana下载安装dockerpullelasticsearch:7.16.2dockerrun--namees-d-eES_JAVA_OPTS=“-Xms512m-Xmx512m”-e“discovery.type=single-node”-p9200:9200-p9300:9300elasticsearch:7.16.2dockerpullkibana:7.16.2dockerrun--namekibana-eELAST......
  • ShardingSphere-JDBC学习
    springBoot 引入maven<dependency><groupId>org.apache.shardingsphere</groupId><artifactId>sharding-jdbc-spring-boot-starter</artifactId><version>4.0.0-RC1<......
  • 如何在 Debian 12 上安装 MySQL
    MySQL是一个关系型数据库管理系统,目前依旧是最流行的数据库之一,很多系统都在使用MySQL数据库。自从MySQL被甲骨文收购之前后,基本上所有Linux发行版的源默认都不包含MySQL了,而是改成了开源的MariaDB。本文主要介绍如何在Debian12中安装MySQL。前期准备1、一台安......
  • MySQL索引使用原则
    1、最左前缀法则:     如果索引多列(联合索引),要遵循最左前缀法则,最左前缀法则指的是查询从索引的最左列开始,并且不跳过索引中的列。如果跳过某一列,索引将部分失效(后面的字段索引失效)。2、范围查询   联合索引中,出现范围查询(<,>),范围查询右侧的列索引失效(业务允许......
  • mysql 数据库备份
     MySQL数据库备份是重要的数据保护措施,以下是常用的MySQL数据库备份命令1.mysqldump命令#备份整个数据库mysqldump-uusername-pdbname>backup.sql#备份选择的表mysqldump-uusername-pdbnametable1table2>backup.sql#压缩备份文件mysqldump-uusername-......
  • Windows的mysql版本升级 windows mysql版本(转载)
    Windows下安装和使用MySQL8.0一、下载MySQL二、安装MySQL三、使用MySQL3.1、配置环境变量3.2、命令行使用MySQL一、下载MySQL偷懒直接点击下载即可: 下载MySQL8.0,如果你要切换版本,请进入官网下载!https://dev.mysql.com/downloads/installer/首先进入MySQL官网下载界面(Downlo......
  • openEuler欧拉配置MySQL8的MGR单主双从
    一、系统优化(三个节点全部操作)关闭防火墙systemctlstopfirewalldsystemctldisablefirewalld关闭selinuxecho"SELINUX=disabled">/etc/selinux/configecho"SELINUXTYPE=targeted">>/etc/selinux/configcat/etc/selinux/configsetenforce0设置主机名hostn......
  • MySQL技术内幕:InnoDB存储引擎-姜承尧.pdf下载
    由资深mysql专家亲自执笔,中外数据库专家联袂推荐,权威性毋庸置疑。内容深入,从源代码的角度深度解析了innodb的体系结构、实现原理、工作机制,并给出了大量最佳实践,能帮助你系统而深入地掌握innodb,更重要的是,它能为你设计和管理高性能、高可用的数据库系统提供绝佳的指导。注重实战......
  • MySQL 的保留账号
    以下账号是MySQL中的保留账号,在mysql初始化的时候创建。>selectuser,host,authentication_string,account_lockedfrommysql.userwhereaccount_locked='Y';+------------------+-----------+------------------------------------------------------------------------+-......
  • MySQL int(1)、int(20) 的区别
    在设计数据库表的时候,经常需要设计一个id字段,它的类型一般都是整型int,经常会遇到int(1)、int(20)等。int的范围:有符号的整型范围是-2147483648~2147483647无符号的整型范围是0~4294967295参看MySQL手册,int(M):Mindicatesthemaximumdisplaywidthforintegertypes.int(......