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慢查询导致的故障进行处理,慢查询是我们在mysql中经常需要使用到的一个很方便的功能,慢查询对于跟踪有问题的查询很有用,需要的朋友可以参考下
    2015-08-08
  • Ubuntu18.04 安装mysql8.0.11的图文教程

    Ubuntu18.04 安装mysql8.0.11的图文教程

    本文通过图文并茂的形式给大家介绍了Ubuntu18.04 安装mysql8.0.11的方法,非常不错,具有一定的参考借鉴价值,需要的的朋友参考下吧
    2018-07-07
  • Ubuntu安装Mysql+启用远程连接的完整过程

    Ubuntu安装Mysql+启用远程连接的完整过程

    这篇文章主要介绍了Ubuntu如何安装Mysql+启用远程连接,用ssh客户端或者云服务器厂家提供的网页版控制台都行,只要你能连上服务器就行,需要的朋友可以参考下
    2022-06-06
  • 详解MySQL中的基本表与视图

    详解MySQL中的基本表与视图

    Mysql是一种常用的关系型数据库管理系统,其中的基本表和视图是数据库中存储和操作数据的两种重要方式,本文将介绍什么是基本表和视图,并探讨为何要使用视图以及视图的优缺点,最后,将给出在Mysql中创建视图的方法,需要的朋友可以参考下
    2023-09-09
  • win10安装zip版MySQL8.0.19的教程详解

    win10安装zip版MySQL8.0.19的教程详解

    这篇文章主要介绍了win10安装zip版MySQL8.0.19的教程详细,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 使用Mysql5.x以上版本出现报错#1929 Incorrect datetime value: '''''''' for column ''''createtime''''的快速解决方法

    使用Mysql5.x以上版本出现报错#1929 Incorrect datetime value: '''''''' f

    我的MySQL安装后,保存删除表数据总是出现#1929 Incorrect datetime value: '' for column 'createtime' 的报错提醒,导致不能删除表里数据。下面小编给大家分析原因及解决办法,需要的朋友可以参考下
    2017-01-01
  • MySQL8新特性:降序索引详解

    MySQL8新特性:降序索引详解

    在数据库中我们一般都会对一些字段进行索引操作,这样可以提升数据的查询速度,下面这篇文章主要给大家介绍了关于MySQL8新特性:降序索引的相关资料,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-07-07
  • mysql配置模板(my-*.cnf)参数详细说明

    mysql配置模板(my-*.cnf)参数详细说明

    这篇文章主要介绍了mysql配置模板就是mysql的配置文件参数说明,需要的朋友可以参考下
    2015-01-01
  • MySQL 获得当前日期时间 函数

    MySQL 获得当前日期时间 函数

    这篇文章主要介绍了MySQL 获得当前日期时间 函数 非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-07-07
  • SQL和NoSQL之间的区别总结

    SQL和NoSQL之间的区别总结

    在本篇内容里我们给大家精选了关于SQL和NoSQL之间的区别的总结内容,对此有需要的朋友们跟着学习下。
    2019-02-02

最新评论