• Doris:MySQL数据同步到Doris的N种方式


    目录

    1.CSV文件方式

    1.1 导出mysql数据

    1.2 导入数据

    2.JDBC 编码方式

    3.JDBC Catalog 方式

    3.1 上传mysql驱动包

    3.2 创建mysql catalog

    3.3. 插入数据

    4.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实时日志信息。

            具体操作可以参考:Doris:Binlog Load导入数据-CSDN博客

  • 相关阅读:
    sensor曝光时间
    缓存穿透、缓存雪崩、缓存击穿(一张表清晰明了)
    免费生成证书
    房产销售数据分析与可视化的设计与实现
    从内核世界透视 mmap 内存映射的本质(源码实现篇)
    微服务中的服务发现是什么?
    leetcode_421数组中两个数的最大异或值
    通过finalshell快速在ubuntu上安装jdk1.8
    Spring的7种事务传播机制
    OpenCV中的RGB与YUV转换
  • 原文地址:https://blog.csdn.net/m0_37559973/article/details/133951065