• 手把手入门MO | 如何使用SeaTunnel将数据写入MatrixOne


    1 概述

    SeaTunnel 是一个分布式、高性能、易扩展的数据集成平台,专注于海量数据(包括离线和实时数据)同步和转化。MatrixOne 支持使用 SeaTunnel 从其他数据库同步数据,可以稳定高效地处理数百亿条数据。

    本文档将介绍如何使用 SeaTunnel 向 MatrixOne 中写入数据。

    2 开始前准备

    在使用 SeaTunnel 向 MatrixOne 写入数据之前,请确保完成以下准备工作:

    • 已完成安装和启动 MatrixOne。
    • 已完成安装 SeaTunnel Version 2.3.3。安装完成后,可以通过 shell 命令行定义 SeaTunnel 的安装路径:
    export SEATNUNNEL_HOME="/root/seatunnel"

    3 操作步骤

    创建测试数据

    Step 1

    创建名为 test1 的 MySQL 数据库,并在其中创建名为 test_table 的表,存储在 root 下的 mysql.sql 中。以下是 MySQL 的 DDL 语句:

    1. create database test1;
    2. use test1;
    3. CREATE TABLE `test_table` (
    4. `name` varchar(255) DEFAULT NULL,
    5. `age` int(11) DEFAULT NULL
    6. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    Step 2

    使用 mo_ctl 工具将 MySQL 的 DDL 语句直接导入至 MatrixOne。执行以下命令:

    mo_ctl sql /root/mysql.sql

    安装 Connectors 插件

    本篇文档中将介绍如何使用 SeaTunnel 的 connector-jdbc 连接插件连接 MatrixOne。

    Step 1

    在 SeaTunnel 的 ${SEATNUNNEL_HOME}/config/plugin_config 文件中,添加以下内容:

    1. --connectors-v2--
    2. connector-jdbc
    3. --end--

    Step 2

    版本 2.3.3 的 SeaTunnel 二进制包默认不提供连接器依赖项,你需要在首次使用 SeaTunnel 时,执行以下命令来安装连接器:

    sh bin/install-plugin.sh 2.3.3

    4 定义任务配置文件

    在本篇文档中,我们使用 MySQL 数据库的 test_table 表作为数据源,不进行数据处理,直接将数据写入 MatrixOne 数据库的 test_table 表中。

    那么,由于数据兼容性的问题,需要配置任务配置文件 ${SEATNUNNEL_HOME}/config/v2.batch.config.template,它定义了 SeaTunnel 启动后的数据输入、处理和输出方式和逻辑。

    按照以下内容编辑配置文件:

    1. env {
    2. execution.parallelism = 2
    3. job.mode = "BATCH"
    4. }
    5. source {
    6. Jdbc {
    7. url = "jdbc:mysql://192.168.110.40:3306/test"
    8. driver = "com.mysql.cj.jdbc.Driver"
    9. connection_check_timeout_sec = 100
    10. user = "root"
    11. password = "123456"
    12. query = "select * from test_table"
    13. }
    14. }
    15. transform {
    16. }
    17. sink {
    18. jdbc {
    19. url = "jdbc:mysql://192.168.110.248:6001/test"
    20. driver = "com.mysql.cj.jdbc.Driver"
    21. user = "root"
    22. password = "111"
    23. query = "insert into test_table(name,age) values(?,?)"
    24. }
    25. }

    安装数据库依赖项

    下载 mysql-connector-java-8.0.33.jar,并将文件复制到 ${SEATNUNNEL_HOME}/plugins/jdbc/lib/ 目录下。

    运行 SeaTunnel 应用

    执行以下命令启动 SeaTunnel 应用:

    ./bin/seatunnel.sh --config ./config/v2.batch.config.template -e local
    

    查看运行结果

    SeaTunnel 运行结束后,将显示类似以下的统计结果,汇总了本次写入的用时、总读取数据数量、总写入数量以及总写入失败数量:

    1. ***********************************************
    2. Job Statistic Information
    3. ***********************************************
    4. Start Time : 2023-08-07 16:45:02
    5. End Time : 2023-08-07 16:45:05
    6. Total Time(s) : 3
    7. Total Read Count : 5000000
    8. Total Write Count : 5000000
    9. Total Failed Count : 0
    10. ***********************************************

    你已经成功将数据从 MySQL 数据库同步写入到 MatrixOne 数据库中。

    关于MatrixOne

    MatrixOne 是一款基于云原生技术,可同时在公有云和私有云部署的多模数据库。该产品使用存算分离、读写分离、冷热分离的原创技术架构,能够在一套存储和计算系统下同时支持事务、分析、流、时序和向量等多种负载,并能够实时、按需的隔离或共享存储和计算资源。云原生数据库MatrixOne能够帮助用户大幅简化日益复杂的IT架构,提供极简、极灵活、高性价比和高性能的数据服务。

    MatrixOne企业版和MatrixOne云服务自发布以来,已经在互联网、金融、能源、制造、教育、医疗等多个行业得到应用。得益于其独特的架构设计,用户可以降低多达70%的硬件和运维成本,增加3-5倍的开发效率,同时更加灵活的响应市场需求变化和更加高效的抓住创新机会。在相同硬件投入时,MatrixOne可获得数倍以上的性能提升。

    MatrixOne秉持开源开放、生态共建的理念,核心代码全部开源,全面兼容MySQL协议,并与合作伙伴打造了多个端到端解决方案,大幅降低用户的迁移和使用成本,也帮助用户避免了供应商锁定风险。


    MatrixOrigin 官网:新一代超融合异构开源数据库-矩阵起源(深圳)信息科技有限公司 MatrixOne

    Github 仓库:GitHub - matrixorigin/matrixone: Hyperconverged cloud-edge native database

    关键词超融合数据库、多模数据库、云原生数据库、国产数据库

  • 相关阅读:
    Golang go-redis cluster模式下不断创建新连接,效率下降问题解决
    Codeforces Round #809 (Div. 2)(A~D2)
    SkyWalking快速上手(四)——SkyWalking运用Java Agent插件对应用程序进行增强和监控
    Docker Tutorial
    手机影像内卷几时休?
    Window系统安装JDK8与Maven
    安全运营 (历史漏洞修复)
    Elasticsearch:如何在不更新证书的情况下为集群之间建立互信
    策略模式的应用——应对频繁的需求变更
    云计算的发展趋势和挑战
  • 原文地址:https://blog.csdn.net/MatrixOrigin/article/details/134531413