MySQL数据同步到Doris的四种方式

 更新时间:2024年02月01日 11:47:54   作者:m0_37559973  
这篇文章给大家介绍了MySQL数据同步到Doris的四种方式,CSV文件方式,JDBC 编码方式,JDBC Catalog 方式和Binlog Load 方式,并通过代码示例给大家介绍的非常详细,需要的朋友可以参考下

1.CSV文件方式

当mysql与doris服务之间无法通过网络互联时,可以通过将mysql数据导出成csv文件,然后再在doris服务器导入csv文件的方式进行同步数据。

1.1 导出mysql数据

使用select * into outfile 命令导出csv数据

select * into outfile 'F:\\24\\mysql\\dim_area.csv' fields terminated by '\t' lines terminated by '\n' from dim_area;

导出的文件格式如下:

需要在mysql的配置文件中设置secure_file_priv=导出的文件路径,如上面案例中F:/24/mysql,才能导出文件。

1.2 导入数据

将mysql导出的csv文件上传到doris服务器之后,可以通过Stream Load和MySQL Load两种方式导入数据进doris数据库中。

1)Stream Load导入

Stream load 是一个同步的导入方式,用户通过发送 HTTP 协议发送请求将本地文件或数据流导入到 Doris 中。可以通过 HTTP 协议提交导入命令。

 curl --location-trusted -u root -T /home/weisx/opt/doris/local_import_data/dim_area.csv -H "columns:id,level,parent_code,area_code,name,short_name,merger_name,pinyin,lng,lat,pcode,ccode,acode,tcode,vcode" -H "label:label_dim_area" -H "column_separator:\t" -H "format:csv" http://localhost:8030/api/demo/dim_area/_stream_load

2)MySQL Load导入

MySql load 主和Stream Load功能相似, 都是导入本地文件到Doris集群中, 因此MySQL Load实现复用了StreamLoad的基础导入能力。执行MySQL Load语句的时候, 客户端命令必须带有--local-infile参数, 同时还需要设置FE的配置mysql_load_server_secure_path开启服务端导入功能。

mysql -u root -p -P9030 -h127.0.0.1 --local-infile=1

LOAD DATA INFILE '/home/hadoop/opt/data_doris/dim_area.csv' INTO TABLE article.dim_area COLUMNS TERMINATED BY '\t';

2.JDBC 编码方式

通过编程方式,利用jdbc读取mysql中的数据,然后可以通过jdbc或者Stream Load方式插入数据到doris中。Stream Load java代码实现可参考:Doris:StreamLoad导入数据-CSDN博客

3.JDBC Catalog 方式

JDBC Catalog 通过标准 JDBC 协议,连接其他数据源。连接后,Doris 会自动同步数据源下的 Database 和 Table 的元数据,以便快速访问这些外部数据。

3.1 上传mysql驱动包

需将 Jar 包预先存放在 FE 和 BE 部署目录的 jdbc_drivers/ 目录下。系统会自动在这个目录下寻找。该目录的位置,也可以由 fe.conf 和 be.conf 中的 jdbc_drivers_dir 配置修改。

修改fe和be配置文件,指定jdbc_drivers_dir目录。

3.2 创建mysql catalog

####mysql 8

CREATE CATALOG jdbc_mysql_233_8 PROPERTIES (
    "type"="jdbc",
    "user"="root",
    "password"="123456",
    "jdbc_url" = "jdbc:mysql://192.168.110.233:3307/demo",
    "driver_url" = "mysql-connector-java-8.0.30.jar",
    "driver_class" = "com.mysql.cj.jdbc.Driver"
)

####mysql 5

CREATE CATALOG jdbc_mysql_233_5  PROPERTIES (
    "type"="jdbc",
    "user"="root",
    "password"="123456",
    "jdbc_url" = "jdbc:mysql://192.168.110.233:3306/demo",
    "driver_url" = "mysql-connector-java-5.1.47.jar",
    "driver_class" = "com.mysql.jdbc.Driver"
)

3.3. 插入数据

insert into internal.demo.dim_area select * from demo.dim_area

4.Binlog Load 方式

Binlog Load提供了一种使Doris增量同步用户在Mysql数据库的对数据更新操作的CDC(Change Data Capture)功能。需要安装Canal采集mysql实时日志信息。

以上就是MySQL数据同步到Doris的N种方式的详细内容,更多关于MySQL数据同步Doris的资料请关注脚本之家其它相关文章!

相关文章

  • Mysql将一个表中的某一列数据复制到另一个表中某一列里的方法

    Mysql将一个表中的某一列数据复制到另一个表中某一列里的方法

    今天小编就为大家分享一篇关于Mysql将一个表中的某一列数据复制到另一个表中某一列里的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • mysql分组后合并显示一个字段的多条数据方式

    mysql分组后合并显示一个字段的多条数据方式

    这篇文章主要介绍了mysql分组后合并显示一个字段的多条数据方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • mysql count详解及函数实例代码

    mysql count详解及函数实例代码

    这篇文章主要介绍了mysql count详解及函数实例代码的相关资料,需要的朋友可以参考下
    2017-01-01
  • MySQL优化GROUP BY(松散索引扫描与紧凑索引扫描)

    MySQL优化GROUP BY(松散索引扫描与紧凑索引扫描)

    这篇文章主要介绍了MySQL优化GROUP BY(松散索引扫描与紧凑索引扫描),需要的朋友可以参考下
    2016-05-05
  • mysql5.7.17 zip 解压安装详细过程

    mysql5.7.17 zip 解压安装详细过程

    这篇文章主要为大家详细介绍了mysql5.7.17 zip 解压安装详细过程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • 一文带你搞懂MySQL如何创建索引

    一文带你搞懂MySQL如何创建索引

    这篇文章主要为大家详细介绍了MySQL创建索引的相关知识,包括索引的创建、使用与优化,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2026-04-04
  • mysql之如何查找配置文件my.ini的位置

    mysql之如何查找配置文件my.ini的位置

    这篇文章主要介绍了mysql之如何查找配置文件my.ini的位置问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 简单整理MySQL的日志操作命令

    简单整理MySQL的日志操作命令

    这篇文章主要介绍了MySQL的日志操作命令,其中重点讲述了MySQL的日志删除方法,需要的朋友可以参考下
    2015-12-12
  • MySQL如何生成唯一的server-id

    MySQL如何生成唯一的server-id

    这篇文章主要给大家介绍了关于MySQL如何生成唯一的server-id的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用MySQL具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • MySql报错:Duplicate entry ‘10‘ for key ‘PRIMARY‘的解决方案

    MySql报错:Duplicate entry ‘10‘ for key&nbs

    经常遇到这个问题,今天我把这个问题记录下来,以后如果有其他人遇到相同的问题,不至于困惑,在操作数据库的时候,经常会出现Duplicate entry ‘10’ for key 'PRIMARY’这样的报错,本文将给大家讲讲如何解决这个问题,需要的朋友可以参考下
    2023-10-10

最新评论