我的编程空间,编程开发者的网络收藏夹
学习永远不晚

DataX mysql同步到mysql

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

DataX mysql同步到mysql

准备工作

创建数据源 配置数据库相关信息
创建执行器 配置执行器执行地址相关信息

1.构建reade

在这里插入图片描述

1.1 SQL语句 (querySql)

在json文件中此部分配置就是 querySql
在有些业务场景下,where这一配置项不足以描述所筛选的条件,用户可以通过该配置型来自定义筛选SQL。当用户配置了这一项之后,DataX系统就会忽略table,column这些配置型,直接使用这个配置项的内容对数据进行筛选,例如需要进行多表join后同步数据,使用select a,b from table_a join table_b on table_a.id = table_b.id
当用户配置querySql时,xxxReader直接忽略table、column、where条件的配置。如果配置了querySql又配置了table,column、where等,在log中会有警告日志

1.2 表所有字段 (column)

在json文件中此部分配置就是 column

2.构建reade

在这里插入图片描述

2.1 前置sql语句 (preSql)

在json文件中此部分配置就是 preSql
写入数据到目的表前,会先执行这里的标准语句。如果 Sql 中有你需要操作到的表名称,请使用 @table 表示,这样在实际执行 Sql 语句时,会对变量按照实际表名称进行替换。比如你的任务是要写入到目的端的100个同构分表(表名称为:datax_00,datax01, … datax_98,datax_99),并且你希望导入数据前,先对表中数据进行删除操作,那么你可以这样配置:“preSql”:[“delete from 表名”],效果是:在执行到每个表写入数据前,会先执行对应的 delete from 对应表名称。

// 也可以通过配置参数进行部分数据删除  lastTime为传入的辅助参数"preSql": [              "delete from biz_ad_facebook where date =${lastTime}"            ]
2.2 postSql (postSql)

在json文件中此部分配置就是 postSql
== 写入数据到目的表后,会执行这里的标准语句。(原理同 preSql ) ==

3.字段映射

在这里插入图片描述

4.构建json ----选择模板

在这里插入图片描述

5.增量更新的配置

通过上述步骤创建出来的任务,在任务列表找到并编辑。
在这里插入图片描述
其中用于增量更新的辅助参数。
在这里插入图片描述
1.任务类型选DataX任务
2.辅助参数选择时间自增
3.增量开始时间选择,即sql中查询时间的开始时间,用户使用此选项方便第一次的全量同步。第一次同步完成后,该时间被更新为上一次的任务触发时间,任务失败不更新。
4.增量时间字段,-DlastTime=‘%s’ -DcurrentTime=‘%s’ 先来解析下这段字符串

1.-D是DataX参数的标识符,必配2.-D后面的lastTime和currentTime是DataX json中where条件的时间字段标识符,必须和json中的变量名称保持一致3.='%s'是项目用来去替换时间的占位符,比配并且格式要完全一致4.注意-DlastTime='%s'和-DcurrentTime='%s'中间有一个空格,空格必须保留并且是一个空格

6.遇到的问题—增量数据导入 可能重复的主键

解决办法:
datax的writeMode参数:"writeMode": "update",

insert
这个参数可以设置为insert,这样子就是对于同步的主键进行设置。主要主键存在,那么在更新的时候,就不会将结果表中的数据进行修改。只会增加新的数据。
2.update
在同步到时候,设置主键,那么会查看表中主键内容的数据,如果有变动,就会直接进行替换。

// 示例json{  "job": {    "setting": {      "speed": {        "channel": 3,        "byte": 1048576      },      "errorLimit": {        "record": 0,        "percentage": 0.02      }    },    "content": [      {        "reader": {          "name": "****",          "parameter": {            "username": "****",            "password": "****",            "splitPk": "",            "connection": [              {                "querySql": [                  "select * from tablename where date >= ${lastTime} and date< ${currentTime}"                ],                "jdbcUrl": [                  "****"                ]              }            ]          }        },        "writer": {          "name": "mysqlwriter",          "parameter": {            "writeMode": "update",            "username": "******",            "password": "*******",            "column": [              "`id`",              "`account_id`",              "`account_name`",              "`campaign_id`",              "`campaign_name`",              "`ad_set_id`",              "`ad_set_name`",              "`ad_id`",              "`ad_name`",              "`date`",              "`date_start`",              "`date_stop`",              "`spend`",              "`cpm`",              "`ctr`",              "`cpc`",              "`purchase`",              "`order_num`",              "`roas`",              "`clicks`",              "`video_avg_time_watched_actions`",              "`video_creator`",              "`level`",              "`create_by`",              "`create_time`",              "`update_by`",              "`update_time`",              "`sys_org_code`",              "`product_name`",              "`site_short_name`",              "`operator`",              "`date_timestamp`",              "`impressions`",              "`add_to_card`",              "`video_thirty_sec_watched`",              "`unique_clicks`",              "`unique_checkout`",              "`unique_add_to_card`",              "`conversion_rate_ranking`",              "`engagement_rate_ranking`",              "`quality_ranking`",              "`video_p100_watched`",              "`video_p25_watched`",              "`video_p50_watched`",              "`video_p75_watched`",              "`video_p95_watched`",              "`view_content`",              "`landing_page_view`",              "`unique_link_clicks`",              "`checkout`",              "`designer`",              "`campaign_objective`",              "`inline_clicks`",              "`unique_inline_clicks`",              "`outbound_clicks`",              "`unique_outbound_clicks`",              "`frequency`",              "`inline_post_engagement`",              "`cost_per_inline_click`",              "`cost_per_inline_post`",              "`cost_per_outbound_click`",              "`cost_per_unique_click`",              "`cost_per_unique_inline_click`",              "`cost_per_unique_outbound_click`",              "`watch_avg_time`",              "`video_play_curve`",              "`asc_flag`"            ],            "preSql": [              "delete from tablename where date =${lastTime}"            ],            "connection": [              {                "table": [                  "biz_ad_facebook"                ],                "jdbcUrl": "jdbc:mysql://localhost:3322/powerbi"              }            ]          }        }      }    ]  }}

来源地址:https://blog.csdn.net/weixin_43820104/article/details/129302652

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

DataX mysql同步到mysql

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

DataX安装使用实现MySQL到MySQL数据同步

DataX安装使用实现MySQL到MySQL数据同步1.前置条件:1.1jdk安装jdk安装前往官网,这里我安装jdk-8u261解压sudo mkdir -p /opt/moudlesudo tar -zxvf jdk-8u261-linux-x64.tar
DataX安装使用实现MySQL到MySQL数据同步
2018-05-28

Python脚本实现datax全量同步mysql到hive

目录前言一、展示脚本二、使用准备三、脚本使用方法前言在我们构建离线数仓时或者迁移数据时,通常选用sqoop和datax等工具进行操作,sqoop和datax各有优点,datax优点也很明显,基于内存,所以速度上很快,那么在进行全量同步时编
Python脚本实现datax全量同步mysql到hive
2024-10-23

DataX数据同步

为什么找个对象这么难呢? 哭哭。 单身找对象,呜呜呜。 DataX 一.一 什么是 DataX DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据 库(MySQL、Oracle 等)、HDFS、Hive、
2023-08-25

怎么使用DataX同步MaxCompute数据到TableStore

这篇文章给大家介绍怎么使用DataX同步MaxCompute数据到TableStore,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。概述现在越来越多的技术架构下会组合使用MaxCompute和TableStore,用M
2023-06-05

mysql增量同步到greenplum

采用工具:maxwell+Kafka+birememaxwell:maxwell能实时解析MySQL的binlog,并输出json格式的数据发送到Kafka(还支持其它的消息中间件),具体参见:maxwell官网Kafka: 一种消息中间件,在该方案中主要用于
mysql增量同步到greenplum
2016-02-27

Mysql数据怎么同步到Greenplum

本篇内容主要讲解“Mysql数据怎么同步到Greenplum”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Mysql数据怎么同步到Greenplum”吧!一、资源信息这边就不赘述二、配置相关数据
2023-06-01

MySQL 同步 ES 实战,肝到爆!

基本是手把手教你如何将 MySQL 同步到 ES,不仅是增量同步,还包括全量同步,如果你的项目也需要用到该场景,基本可以直接照搬。
MySQLES场景2024-11-30

基于Flink CDC实时同步数据(MySQL到MySQL)

一、环境 jdk8Flink 1.16.1(部署在远程服务器:192.168.137.99)Flink CDC 2.3.0MySQL 8.0(安装在本地:192.168.3.31) (安装部署过程略) 二、准备 准备三个数据库:flink_
2023-08-16

如何在 Java 中通过 DataX 实现数据同步?(详细步骤及技巧)(DataX在Java中实现数据同步的步骤)

在Java开发中,DataX是一个非常实用的数据同步工具,它能够高效地在不同数据源之间进行数据传输和同步。下面将为大家详细介绍在Java中使用DataX实现数据同步的步骤。一、环境准备安装Java开
如何在 Java 中通过 DataX 实现数据同步?(详细步骤及技巧)(DataX在Java中实现数据同步的步骤)
Java2024-12-22

MySQL数据怎么同步到Redis缓存

这篇“MySQL数据怎么同步到Redis缓存”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“MySQL数据怎么同步到Redis
2023-07-05

编程热搜

目录