当前位置: 首页 > news >正文

Migrate your data into databend with DataX

现在互联网应用越来越复杂,每个公司都会有多种多样的数据库。通常是用最好的硬件来跑 OLTP,甚至还在 OLTP 中进行分库分表来满足业务,这样对于一些分析,聚合,排序操作非常麻烦。这也有了异构数据库的数据同步需求,今天重点给大家介绍两个利器 :异构数据迁移:DataX 结合云原生数仓 Databend 实现异构数据库数据合并及分析。

Datax 是一个异构数据源离线同步工具 ,致力于实现包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS 等各种异构数据源之间稳定高效的数据同步功能。

Databend 是一个开源、弹性、负载感知的现代云数仓库,赋能企业降本增效。在之前的文章中介绍了如何快速部署 Databend。

下面我们通过一个简单练习,让你学习使用 DataX , 另外通过几个进阶案例给你展示一下 DataX 的魅力。

本文中仅以 DataX 的 mysqlreader plugin 为例进行实验,databendwriter 支持所有 Addax 提供的 reader plugin。

DataX 基本使用

1.1 安装编译DataX

git clone git@github.com:alibaba/DataX.git
cd  {DataX_source_code_home}
mvn -U clean package assembly:assembly -Dmaven.test.skip=true

1.2 Demo ( From MySQL to Databend )

在 MySQL Server 中建立迁移用户。(本例中待迁移的表为 db.tb01)

mysql> create user 'mysqlu1'@'%' identified by 'databend';
mysql> grant all on *.* to 'mysqlu1'@'%';
mysql> create database db;
mysql> create table db.tb01(id int, d double, t TIMESTAMP,  col1 varchar(10));
mysql> insert into db.tb01 values(1, 3.1,now(), 'test1'), (1, 4.1,now(), 'test2'), (1, 4.1,now(), 'test2');

在 Databend 中建立对应的表结构。(将 MySQL 的 db.tb01 数据迁移至 Databend 的 migrate_db.tb01)

databend> create database migrate_db;
databend> create table migrate_db.tb01(id int null, d double null, t TIMESTAMP null,  col1 varchar(10) null);

进行如下的dataX 配置

{"job": {"content": [{"reader": {"name": "mysqlreader","parameter": {"username": "mysqlu1","password": "databend","column": ["id", "d", "t", "col1"],"connection": [{"jdbcUrl": ["jdbc:mysql://127.0.0.1:3307/db"],"driver": "com.mysql.jdbc.Driver","table": ["tb01"]}]}},"writer": {"name": "databendwriter","parameter": {"username": "databend","password": "databend","column": ["id", "d", "t", "col1"],"preSql": [],"postSql": [],"connection": [{"jdbcUrl": "jdbc:databend://localhost:8000/migrate_db","table": ["tb01"]}]}}}],"setting": {"speed": {"channel": 1}}}
}

运行 DataX

python datax.py ./mysql_demo.json 

查看同步的结构

databend> select * from migrate_db.tb01;
+------+------+----------------------------+-------+
| id   | d    | t                          | col1  |
+------+------+----------------------------+-------+
|    1 |  3.1 | 2023-02-01 07:11:08.500000 | test1 |
|    1 |  4.1 | 2023-02-01 07:11:08.501000 | test2 |
|    1 |  4.1 | 2023-02-01 07:11:08.501000 | test2 |
+------+------+----------------------------+-------+

小结

上面的例子是通过 DataX 跑通一个 mysql 表的迁移到 Databend , 通过一个简单的例子也可以感受一下 DataX 大概的流程。

但 DataX 远比这个 Demo 强大。另外 DataX 强大之处可能通过参数来控制配置文件,这样比轻松地实现一个配置迁移, 甚至可以传入 SQL 这样来读取指定区间做数据的迁移。

关于 Databend

Databend 是一款开源、弹性、低成本,基于对象存储也可以做实时分析的新式数仓。期待您的关注,一起探索云原生数仓解决方案,打造新一代开源 Data Cloud。

  • Databend 文档:https://databend.rs/

  • Twitter:https://twitter.com/Datafuse\_Labs

  • Slack:https://datafusecloud.slack.com/

  • Wechat:Databend

  • GitHub :https://github.com/datafuselabs/databend

http://www.lryc.cn/news/25437.html

相关文章:

  • ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password)
  • 有限元中三角形的一些积分公式
  • 【docker-compose】安装mongodb
  • 【ClickHouse源码】物化视图的写入过程
  • .NET 使用NLog增强日志输出
  • 一道阿里类的初始化顺序笔试题
  • cuda找不到路径报错
  • Elasticsearch进阶之(核心概念、系统架构、路由计算、倒排索引、分词、Kibana)
  • Android包体积缩减
  • 【华为OD机试】 网上商城优惠活动(C++ Java Javascript Python)
  • GWT安装过程
  • 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
  • office@word@ppt启用mathtype组件方法整理
  • 计算机大小端
  • Matplotlib绘图从零入门到实践(含各类用法详解)
  • C语言 入门教程||C语言 指针||C语言 字符串
  • Nacos2.x+Nginx集群配置
  • Android源码分析 - InputManagerService与触摸事件
  • python库--urllib
  • 美团前端二面常考react面试题及答案
  • 环境搭建04-Ubuntu16.04更改conda,pip的镜像源
  • 【C++进阶】四、STL---set和map的介绍和使用
  • JavaSE学习进阶 day1_01 static关键字和静态代码块的使用
  • 苹果笔可以不买原装吗?开学必备性价比电容笔
  • 数据库连接与properties文件
  • Linux上的校验和验证
  • 杂记——14.git在idea上的使用及其实际开发介绍
  • 记一次Nodejs减低npm版本的踩坑日记
  • 【iOS】—— 初识RAC响应式编程
  • Java——面向对象