利用Canal把MySQL数据同步到ES

news/2025/2/12 21:03:59/

Canal是阿里巴巴开源的一个数据库变更数据同步工具,主要用于 MySQL 数据库的增量数据到下游的同步,例如同步到 Elasticsearch、HBase、Hive 等。下面是一个基本的步骤来导入 MySQL 数据库到 Elasticsearch。

  1. 安装和配置 Canal

    首先,需要在你的机器上安装并配置Canal。具体步骤可在 Canal 的 GitHub 页面找到,包括下载Canal、解压缩并修改配置文件等步骤。

  2. 配置 MySQL

    需要在 MySQL 中启用 binlog,Canal 通过读取 binlog 来获取数据变更。在 MySQL 的配置文件中 (通常在 /etc/mysql/mysql.conf.d/mysqld.cnf 或者 /etc/my.cnf), 修改以下配置:

    [mysqld]
    log-bin=mysql-bin # 开启 binlog
    binlog-format=ROW # 选择 ROW 模式
    server_id=1 # 配置 MySQL replaction 需要定义,不能和 canal 的 slaveId 重复
    

    重启 MySQL 生效。

  3. 配置 Canal

    在 Canal 的配置文件 conf/example/instance.properties 中,修改以下配置:

    canal.instance.master.address=127.0.0.1:3306
    canal.instance.dbUsername=canal
    canal.instance.dbPassword=canal
    canal.instance.connectionCharset = UTF-8
    canal.instance.tsdb.enable=true
    canal.instance.gtidon=false
    

    其中,master.address 是 MySQL 的地址,dbUsernamedbPassword 是你的 MySQL 用户名和密码。

  4. 启动 Canal

    进入 Canal 的 bin 目录,执行以下命令启动 Canal:

    ./startup.sh
    
  5. 安装和配置 Canal Adapter

    Canal Adapter 是 Canal 的一个组件,用于将数据同步到下游,例如 Elasticsearch。需要在你的机器上安装并配置 Canal Adapter。配置文件位于 conf/application.yml,需要指定 source 数据源 (即 MySQL) 和 target 数据源 (即 Elasticsearch)。

  6. 启动 Canal Adapter

    进入 Canal Adapter 的 bin 目录,执行以下命令启动 Canal Adapter:

    ./startup.sh
    

以上步骤在你的环境中可能有所不同,具体情况需要参考 Canal 和 Canal Adapter 的官方文档。
官方文档链接:
https://help.aliyun.com/document_detail/135297.html


http://www.ppmy.cn/news/74028.html

相关文章

8.防火墙-SNAT和DNAT

文章目录 SNAT-内网客户访问外网服务原理操作实验 DNAT-外网客户访问内网服务原理操作实验 tcpdump SNAT-内网客户访问外网服务 原理 由内网到外网:从内网发到外网的数据包的源IP由私网IP转换成公网IP 由外网到内网:从外网发到内网的数据包的目的IP由公…

Springboot +spring security,自定义认证器实现验证码功能

一.简介 SpringSecurity 默认是不支持验证码功能的,但是可以自己扩展,这也是使用SpringSecurity的好处之一,原生不支持,我们就自己扩展。 二.思路分析 因为系统默认的有一个DaoAuthenticationProvider 认证处理器,但…

使用Python实现Rest API指南

在今天的数字化世界中,数据的获取、交换和使用已经成为几乎所有行业的核心部分。无论您正在为一个大型公司设计复杂的软件系统,还是只是为了个人项目尝试获得一些公开的数据,理解和利 用API——尤其是RESTful API——都是一项至关重要的技术。…

细说java动态代理及使用场景

一、定义 Java代理模式是一种结构型设计模式,它允许通过创建一个代理对象来间接访问另一个对象,从而控制对原始对象的访问。 1.1 作用 1、在访问原始对象时增加额外功能,如访问前或访问后添加一些额外的行为。 2、控制对原始对象的访问。 J…

ARM汇编 C语言数据存储 堆和栈的区别

ARM汇编 ARM汇编是一种用于编写针对ARM架构的汇编语言。它是ARM处理器的底层指令集的人类可读表示形式,用于编写底层的系统级代码或优化特定的程序。 ARM汇编语言使用助记符(mnemonic)来表示不同的指令操作,例如"ADD&quo…

apk 作为资源提供 aar 的过程

1:参考:Android将APK项目封装为SDK(AAR) https://blog.csdn.net/weixin_51522235/article/details/128216091 四大点:1: apply plugin:com.android.library 2:去掉:applicationId 3:去掉:applicationVariants.all…

keycloak异常关闭报错username ‘admin‘ already added时卡死无法重启的问题处理

问题现象 使用docker部署keycloak服务,使用docker-compose进行配置管理,配置如下: keycloak:image: jboss/keycloak:16.1.0 container_name: keycloakcommand:[-b,0.0.0.0,-Dkeycloak.migration.actionimport,-Dkeycloak.migration.provider…

深入理解 Linux 内核

Linux 内核系列文章 Linux 内核设计与实现 深入理解 Linux 内核 深入理解 Linux 内核(二) Linux 设备驱动程序 Linux设备驱动开发详解 文章目录 Linux 内核系列文章前言一、绪论二、内存寻址1、内存地址2、硬件中的分段(1)段选择符…