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

news/2024/7/10 20:07:18 标签: 数据库, 开源, 云原生, 分布式, 数据库架构

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 语句:

create database test1;
use test1;
CREATE TABLE `test_table` (
  `name` varchar(255) DEFAULT NULL,
  `age` int(11) DEFAULT NULL
) 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 文件中,添加以下内容:

--connectors-v2--
connector-jdbc
--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 启动后的数据输入、处理和输出方式和逻辑。

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

env {
  execution.parallelism = 2
  job.mode = "BATCH"
}

source {
    Jdbc {
        url = "jdbc:mysql://192.168.110.40:3306/test"
        driver = "com.mysql.cj.jdbc.Driver"
        connection_check_timeout_sec = 100
        user = "root"
        password = "123456"
        query = "select * from test_table"
    }
}

transform {

}

sink {
   jdbc {
        url = "jdbc:mysql://192.168.110.248:6001/test"
        driver = "com.mysql.cj.jdbc.Driver"
        user = "root"
        password = "111"
        query = "insert into test_table(name,age) values(?,?)"
   }
}

安装数据库依赖项

下载 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 运行结束后,将显示类似以下的统计结果,汇总了本次写入的用时、总读取数据数量、总写入数量以及总写入失败数量:

***********************************************
           Job Statistic Information
***********************************************
Start Time                : 2023-08-07 16:45:02
End Time                  : 2023-08-07 16:45:05
Total Time(s)             :                   3
Total Read Count          :             5000000
Total Write Count         :             5000000
Total Failed Count        :                   0
***********************************************

你已经成功将数据从 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

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


http://www.niftyadmin.cn/n/5200269.html

相关文章

安卓毕业设计:基于安卓android微信小程序的在线医生答疑系统

项目介绍 在线医生答疑开发使系统能够更加方便快捷,同时也促使在线医生答疑变的更加系统化、有序化。系统界面较友好,易于操作。具体在系统设计上,客户端使用微信开发者,后台也使用java技术在动态页面上进行了设计,My…

Ubuntu Server download

前言 Ubuntu——公共云、数据中心和边缘上最受欢迎的 Linux 发行版。自成立以来,Ubuntu 一直在获得市场份额,截至今天已接近 50%。 Ubuntu Server download VersionUbuntu Server 其它主机型号版本Ubuntu AMD历史版下载百度云Ubuntu Server all Ubuntu…

nvidia tf32格式的意义是啥?和fp32的区别

nvidia tf32格式的意义是啥?:https://www.zhihu.com/question/545977619 作者:丽台科技 链接:https://www.zhihu.com/question/545977619/answer/2629134304 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c…

Java运行时数据区和常用指令

Java运行时数据区是Java虚拟机规范中定义的一块区域,用于存储Java程序在运行过程中需要使用到的数据。这些数据包括: 1. 堆区:用于存储对象实例,是Java内存中最大的一块区域。2. 方法区:用于存储已被虚拟机加载的类信…

hologres 索引与查询优化

hologres 优化部分 1 hologres 建表优化1.1 建表中的配置优化1.1 字典索引 dictionary_encoding_columns1.2 位图索引 bitmap_columns1.2.2 Bitmap和Clustering Key的区别 1.3 聚簇索引Clustering Key 1 hologres 建表优化 1.1 建表中的配置优化 根据 holo的 存储引擎部分的知…

用js切割文字,超出省略

因为项目需要,当人员超过两个事则进行超出省略,如将一个 “张三,李四,王五”,这样的字串切割成"张三,李四…" 效果: 主要用的是基础的切割法 isOutlier(text) {if (!text || text "") return;const parts text.split(","); // 使用逗号将字…

nvm切换node后,没有npm

当我们想要在不同的 Node.js 版本之间切换的时候,通常会使用 nvm(Node Version Manager) 来完成。但是,当我们在使用 nvm 切换 Node.js 版本的时候,可能会遇到没有 npm 的情况。这种情况通常发生在我们在新环境或者重新…

Rocky Linux Download

前言 Rocky Linux 是一个社区企业操作系统,旨在与美国顶级企业 Linux 发行版 100% 逐个 bug 兼容,因为其下游合作伙伴已经转移方向。它正在社区的密集开发中。Rocky Linux 由 CentOS 项目的创始人 Gregory Kurtzer 领导。贡献者被要求使用本网站上提供的…