dataX同步SQLserver到MySQL数据

news2024/12/23 4:56:28

引用datax官方描述:

DataX 是阿里云 DataWorks数据集成 的开源版本,在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、Hologres、DRDS, databend 等各种异构数据源之间高效的数据同步功能。

因业务需要和三方系统交互,数据同步采用jdbc连接三方库方式进行数据同步,优点是灵活性强,比如可以在同步数据的时候做一些扩展性的操作,缺点是随着复杂度增长,以及三方库的增多,导致资源消耗越来越多,很容易出现性能问题。在此调研采用datax来同步数据,笔记如下:

1:下载dataX:

Gitee.comicon-default.png?t=N7T8https://gitee.com/link?target=https%3A%2F%2Fdatax-opensource.oss-cn-hangzhou.aliyuncs.com%2F202308%2Fdatax.tar.gz

2:上传到linux服务器,rz命令,上传后解压到某目录,我直接解压没指定目录

Tar -zxvf datax.tar.gz

3:进入datax目录验证是否成功

python bin/datax.py  job/job.json,

如出现上图为没有安装Java环境,上传jar到服务器后在etc/profile中配置目录即可

export JAVA_HOME=/home/java/jdk1.8.0_361

export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar

export PATH=$JAVA_HOME/bin:$PATH

Source /etc/profile 即可使配置文件生效,执行Java -version

4:再次执行:python bin/datax.py  job/job.json

进行到这一步表示安装完成

5:配置

Sqlserverreader

{

    "name": "sqlserverreader",

    "parameter": {

        "username": "",

        "password": "",

        "connection": [

            {

                "table": [],

                "jdbcUrl": []

            }

        ]

    }

}

Mysql:

{

    "name": "mysqlreader",

    "parameter": {

        "username": "",

        "password": "",

        "column": [],

        "connection": [

            {

            "jdbcUrl": [],

            "table": []

            }

        ],

        "where": ""

    }

}

6:启动后:python bin/datax.py job/warehouse-cq.json

这个问题是因为url配置有问题

正确配置:

{

    "job": {

        "content": [

            {

                "reader": {

                    "name": "sqlserverreader",

                    "parameter": {

                        "connection": [

                            {

                                "jdbcUrl": ["jdbc:sqlserver://219.153.111.**:**337;DatabaseName=***1076"],

                                "querySql": ["SELECT a.spid as erp_product_id,a.ckid as warehouse_id,sum(a.shl) as stock_num  FROM phspkc AS a LEFT JOIN zl_spzl zs ON a.spid = zs.spid LEFT JOIN phzykc AS b ON a.spid= b.spid AND a.jwhid= b.jwhid AND a.pici= b.pici AND a.hzid= b.hzid LEFT JOIN zl_Hzzl z on a.hzid = z.hzid INNER JOIN zl_ckzl AS c ON a.ckid= c.ckid LEFT JOIN ( SELECT hzid,spid,pici,jwhid,SUM(shl) AS shl FROM dszykc GROUP BY hzid,spid,pici,jwhid ) AS d ON a.spid= d.spid AND a.jwhid= d.jwhid AND a.pici= d.pici AND a.hzid= d.hzid WHERE 1=1             GROUP BY a.spid, a.ckid, a.pici, a.pihao, a.sxrq, a.baozhiqi, a.jlgg, a.rkrq, a.djbh, a.hzid, z.hzmch, a.wldwid, a.dangqzht, a.jwhid, zs.spbh"]

                            }

                        ],

                        "password": "*****",

                        "username": "**"

                    }

                },

                "writer": {

                    "name": "mysqlwriter",

                    "parameter": {

                        "column": ["erp_product_id","warehouse_id","stock_num"],

                        "connection": [

                            {

                                "jdbcUrl": "jdbc:mysql://192.168.0.184:3307/ydw-middleground-dev?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false",

                                "table": ["warehouse_stock"]

                            }

                        ],

                        "password": "******",

                        "preSql": ["truncate table warehouse_stock"],

                        "session": [],

                        "username": "****",

                        "writeMode": "update"

                    }

                }

            }

        ],

        "setting": {

            "speed": {

                "channel": "5"

            }

        }

    }

}

7:全量同步数据,同步成功

8:配置定时

查看是否已配置定时任务:crontab -l

若未配置:no crontal for xxx

创建crondatax文件:vim crondatax

编辑内容,十分钟运行一次:

 0,10,20,35,44,50 * * * *  python /root/datax//bin/datax.py /root/datax/job/warehouse-cq.json >>/home/datax/logs/corndataxlog.`date +\%Y\%m\%d\%H\%M\%S`  2>&1,

重启定时任务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1874441.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何利用“AI交互数字人+展厅”拓展文娱消费空间?

打造新生代潮玩聚集地,打造演艺新空间,促进虚拟现实体验等文娱业态场景创新,成为了当下发展文旅消费新场景的一大重要手段。数字人汇集了虚拟现实、增强现实、全息投影、人工智能、实时传输语音合成等数字技术,可以利用数字人重构…

在等保2.0的合规性审查中,常见的难点和误区有哪些?

在等保2.0(即《信息安全技术 网络安全等级保护基本要求》GB/T 22239-2019)的合规性审查中,企业和机构经常会遇到一些难点和误区,主要包括以下几个方面: 常见误区 1. “三同步”不同步:等保2.0强调“同步规…

golang生成RSA公钥和密钥

目录 场景 场景一:加密、解密 场景二:微信退款 场景三:SSL证书 为什么是.key和.pem格式的文件 生成密钥、公钥 密钥、公钥保存到文件中 第一个:保存密钥到文件里 第二个:保存公钥到文件里 场景 场景一&#…

AI产品活跃用户排名出炉!文心一言APP国内第一,Kimi疯狂掉队

AI视频生成:小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 6月28日,极光大数据旗下月狐数据发布2024年5月中国生成式AI行业市场热点月度分析报告,披露了国内移动端主流生成式AI应用…

一个AI图片生成工具导航网站

上周末上线了一个AI图片生成工具导航网站,主要是面向AI图片工具这个垂直领域。 https://chatgpt-image-generator.com/ 目标是通过收集当下的一些工具,然后进行分类管理,一方面方便大家发现新的工具,另一方面能够更加有针对性、…

操作系统期末复习(对抽象概念的简单形象化)

操作系统 引论 定义与基本概念:操作系统是计算机硬件与用户之间的桥梁,类似于家中的管家,它管理硬件资源(如CPU、内存、硬盘),并为用户提供方便的服务(应用程序执行、文件管理等)。…

Typora 2024 安装教程

本章教程,介绍一下如何使用Typora 最新版本1.9.4,仅供学习交流,切勿滥用。 一、下载安装包 下载地址:https://www.alipan.com/s/8pvKf5ns6GH 当然,你也可以去官网下载,但是官网有可能随时更新,该…

探索CSS布局:创建一个居中的内嵌方块示例

在网页设计中,布局是至关重要的部分。CSS提供了多种方式来实现元素的布局,包括居中对齐、外边距、内边距等。本文将通过一个简单的示例,介绍如何使用CSS来创建一个居中的内嵌方块,并探讨其背后的布局原理。 HTML 结构 首先&…

【Matlab】-- 飞蛾扑火优化算法

文章目录 文章目录 01 飞蛾扑火算法介绍02 飞蛾扑火算法伪代码03 基于Matlab的部分飞蛾扑火MFO算法04 参考文献 01 飞蛾扑火算法介绍 飞蛾扑火算法(Moth-Flame Optimization,MFO)是一种基于自然界飞蛾行为的群体智能优化算法。该算法由 Sey…

上市公司绿色投资者原始数据+计算代码(2008-2022年)

数据简介:“绿色”信号,意味着潜在环境风险更低,从而绿色投资者降低了对绿色债券的风险补偿要求,推动了信用利差的收窄。因此,绿色投资者会通过投资者风险意识影响债券信用风险。绿色投资者在推动企业绿色可持续发展方…

江山欧派杯2024全国华佗五禽戏线上线下观摩交流比赛在亳州开幕

6月28日,2024全国华佗五禽戏线上线下观摩交流比赛在安徽省亳州市开幕。 此次比赛是由安徽省亳州市文化旅游体育局和安徽省非物质文化遗产保护中心主办、亳州市华佗五禽戏协会(国家级非遗华佗五禽戏保护单位)和亳州市传统华佗五禽戏俱乐部&…

GIT版本管理工具轻松入门 | TortoiseGit

目录 一、下载git 二、下载tortoisegit(可视化git) 三、Git本地仓库创建 四、git克隆 五、添加,提交,推送,拉取 六、分支 七、冲突 八、忽略文件(修改gitignore文件) 一、下载git 安装…

关于转BigDecimal对象时,精度问题

//浮点型数值Double d 0.0003d;//转BigDecimal对象BigDecimal a new BigDecimal(d);System.out.println(String.format("浮点类型数字:%.4f创建BigDecimal对象并且保留多位小数并且保留多位小数时,精度会变多,结果为%s",d,a.setScale(8, BigDecimal.ROUND_DOWN)));…

高电压技术-冲击高压发生器MATLAB仿真

微❤关注“电气仔推送”获得资料(专享优惠) 冲击电压发生器是产生冲击电压波的装置,用于检验电力设备耐受大气过电压和操作过电压的绝缘性能,冲击电压发生器能产生标准雷电冲击电压波形,雷电冲击电压截波,标准操作冲击…

Spring底层原理之bean的加载方式三 用注解声明配置类 以及@Configuration 和 @Component 的区别

bean的加载方式三 用注解声明配置类 我们之前用组件扫描加上注解定义bean 实现了bean的加载 当我们又会发现这个配置文件过于繁琐 我们可以写一个类 不是配置文件而是配置类 我们接下来只需要把这句话的功能写到 配置类里面 这样书写就行 package com.bigdata1421.config;…

Git(涵盖GitHub\Gitee码云\GitLab)

Git(涵盖GitHub\Gitee码云\GitLab) 文章目录 Git(涵盖GitHub\Gitee码云\GitLab)课程介绍Git概述官网介绍版本控制介绍两种版本控制工具集中式版本控制工具分布式版本控制工具 Git工作机制代码托管中心 Git安装和客户端的使用Git常用命令设置用户签名初始化本地库查看本地库状态…

软件构造 | Design Patterns for Reuse and Maintainability

Design Patterns for Reuse and Maintainability (面向可复用性和可维护性的设计模式) Open-Closed Principle (OCP) ——对扩展的开放,对修改已有代码的封 Why reusable design patterns A design… …enables flexibility to change …

uni-appx使用form表单页面初始化报错

因为UniFormSubmitEvent的类型时 e-->detail-->value,然后没有了具体值。所以页面初始化的时候 不能直接从value取值,会报错找不到 所以form表单里的数据我们要设置成一个对象来存放 这个问题的关键在于第22行代码 取值: 不能按照点的方式取值 …

如何在Java中使用Levenshtein距离实现字符串相似度匹配

在许多应用中,我们需要根据用户输入的问题找到最匹配的已知问题。Levenshtein距离(编辑距离)是一个强大的工具,可以帮助我们衡量两个字符串之间的差异,并进一步计算它们的相似度。本文将使用一个具体的例子来展示如何在…

BUUCTF-WEB(第二天)

[极客大挑战 2019]Http 这题明显考察的是http协议,打开靶场访问什么也没有,F12来查看看控制台的html源码,直到最后那里我们才看到一个Secret.php文件4,所以直接访问即可。 回显字符串:It doesnt come from https://S…