数据同步工具datax安装配置与示例

news2024/10/5 17:28:51

文章目录

  • 一、部署步骤
    • 1、jdk环境
    • 2、python环境
      • 步骤一:安装
        • 方式一:官网下载安装包
        • 方式二:brew命令安装
      • 步骤二:配置环境变量
      • 步骤三:验证
    • 3、maven环境(可选)
  • 二、下载安装datax
    • 1、下载datax源码
    • 2、下载datax安装文件
    • 3、验证
  • 三、配置示例
    • 1、生成配置模版
    • 2、根据配置模版生成配置文件
    • 3、运行datax
    • 4、执行成功后查看结果表,数据正常进入


一、部署步骤

1、jdk环境

查看jdk的版本,一般使用1.8.
在这里插入图片描述

2、python环境

datax是以python脚本形式的语言,需要python的运行环境。
以python3为例,mac安装。

步骤一:安装

方式一:官网下载安装包

访问Python官方网站(https://www.python.org/downloads/macos/)下载适用于Mac的Python安装包。根据你的操作系统版本选择合适的安装包,安装步骤与正常软件安装步骤一致。
在这里插入图片描述

方式二:brew命令安装

首先mac中要有Homebrew(包管理器),如果未安装可以通过命令行进行安装。
安装步骤:

  1. 打开终端,输入命令
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 更新Homebrew的配方和包
brew update
  1. 查看python版本
brew search python@

在这里插入图片描述

  1. 安装python,可以指定版本,如果不指定版本,会安装最新版
brew install python3
  1. 安装时可能会提示git认证过期,若没有跳至第7步,需要重新认证,获取token地址:https://github.com/settings/tokens/new?scopes=gist,public_repo&description=Homebrew
    在这里插入图片描述在这里插入图片描述

  2. 在终端执行,第五步获取的token值

export HOMEBREW_GITHUB_API_TOKEN=

步骤二:配置环境变量

安装好python环境后,配置环境变量。

  • 配置编辑 vim ~/.bash_profile,加入alias python="/opt/homebrew/bin/python3",后面路径为安装的执行路径,可用which python3获取;
  • 刷新配置文件,source ~/.bash_profile,关闭终端重新打开

步骤三:验证

  • 配置完成后,验证是否安装成功
python --version

3、maven环境(可选)

如果下载源码进行编译的话,需要maven环境,直接下载datax工具包则不需要。
在这里插入图片描述

二、下载安装datax

方式1、2任选其一。

1、下载datax源码

  1. git地址:https://github.com/alibaba/DataX?tab=readme-ov-file
    在这里插入图片描述

  2. 本地打开源码后可能有依赖引用不到,需要手动添加,更换pom中的路径。
    在这里插入图片描述
    jar包下载地址:http://www.java2s.com/Code/Jar/j/Downloadjconn3jar.htm

  3. idea中添加jar包
    在这里插入图片描述

  4. 通过maven打包

cd  代码路径
mvn -U clean package assembly:assembly -Dmaven.test.skip=true

在这里插入图片描述

  1. 打包执行后,在target目录下
    在这里插入图片描述

2、下载datax安装文件

  1. 下载地址:https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/20220530/datax.tar.gz
  2. 下载后解压
tar -zxvf datax.tar.gz -C /Users/wangzhaokun/Downloads/google

3、验证

  1. 自测脚本
# python {YOUR_DATAX_HOME}/bin/datax.py {YOUR_DATAX_HOME}/job/job.json
 
# 例如:
python /Users/wangzhaokun/Downloads/google/datax/bin/datax.py /Users/wangzhaokun/Downloads/google/datax/job/job.json

在这里插入图片描述
在这里插入图片描述
2. 异常处理
若执行脚本中出现缺少文件xxx/datax/plugin/reader/._drdsreader/plugin.json类似文件存在,则需要删除 plugin 目录下的所有的以 _ 开头的文件

#进入/datax/plugin目录下
find ./* -type f -name ".*er" | xargs rm -rf

三、配置示例

场景:oracle数据库中,视图数据同步到表中。

1、生成配置模版

生成配置文件可选的reader\writer在plugin目录下

  1. 执行python datax.py -r oraclereader -w oraclewriter,生成模版文件
{
    "job": {
        "content": [
            {
                "reader": {
                    "name": "oraclereader",
                    "parameter": {
                        "column": [],
                        "connection": [
                            {
                                "jdbcUrl": [],
                                "table": []
                            }
                        ],
                        "password": "",
                        "username": ""
                    }
                },
                "writer": {
                    "name": "mysqlwriter",
                    "parameter": {
                        "column": [],
                        "connection": [
                            {
                                "jdbcUrl": "",
                                "table": []
                            }
                        ],
                        "password": "",
                        "preSql": [],
                        "session": [],
                        "username": "",
                        "writeMode": ""
                    }
                }
            }
        ],
        "setting": {
            "speed": {
                "channel": ""
            }
        }
    }
} 

2、根据配置模版生成配置文件

文件放在job目录下,模版文件中可通过表对表,也可能过sql查询结果,然后写入结果表。

#test.json
{
	"content":[
		{
			"reader":{
				"name":"oraclereader",
				"parameter":{
					"connection":[
						{
							"jdbcUrl":[
								"jdbc:oracle:thin:@//ip:port/gfmisdev"
							],
							"querySql":[
								" SELECT * from  MV_LEDGER_AGENCY"
							]
						}
					],
					"password":"*",
					"username":"KF_PAY_0512"
				}
			},
			"writer":{
				"name":"oraclewriter",
				"parameter":{
					"column":[
						"*"
					],
					"connection":[
						{
							"jdbcUrl":"jdbc:oracle:thin:@//ip:port/gfmisdev",
							"table":[
								"FM_LEDGER_AGENCY_TEST"
							]
						}
					],
					"password":"*",
					"preSql":[
						
					],
					"username":"KF_PAY_0512"
				}
			}
		}
	],
	"setting":{
		"speed":{
			"channel":"1"
		}
	}
}

3、运行datax

在bin目录下执行,也可通过全路径执行。

python datax.py ../job/test.json

4、执行成功后查看结果表,数据正常进入

在这里插入图片描述

待完善补充!!!

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

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

相关文章

CLCD 流水线发布SpringBoot项目

目录 一、流水线 1.1 点击进入流水线 1.2 新建流水线 二、添加流水线 三、构建上传和构建镜像 ​编辑 四、Docker部署 一、流水线 1.1 点击进入流水线 1.2 新建流水线 二、添加流水线 三、构建上传和构建镜像 在构建上传里添加一个步骤:构建镜像,这…

【环境变量】基本概念理解 | 查看环境变量echo | PATH的应用和修改

目录 前言 基本概念&理解 注意的点 查看环境变量的方法 PATH环境变量 PTAH应用系统指令 PTAH应用用户程序 命令行参数的修改(内存级) 配置文件的修改 windows环境变量 大家天天开心🙂 bash进程的流程。环境变量在系统指…

实战经验,公众号选题方向大盘点!

公众号是重要的内容传播平台,每个品牌都有自己的公众号,公众号选题选得好不好,直接决定你这篇文章是否会爆,公众号的选题决定了文章的阅读量和粉丝增长数量。一个好的选题带来的利益是多方面的。 选题是每个品牌和企业绞尽脑汁去…

background背景图参数边渐变CSS中创建背景图像的渐变效果

效果:可以看到灰色边边很难受,希望和背景融为一体 原理: 可以使用线性渐变(linear-gradient)或径向渐变(radial-gradient)。以下是一个使用线性渐变作为背景图像 代码: background: linear-gradient(to top, rgba(255,255,255,0)…

【Unity每日一记】如何从0到1将特效图集制作成一个特效

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:Uni…

Flink常见面试问题(附答案)

目录 基础篇1. 什么是Apache Flink?2. Flink与Hadoop的区别是什么?3. Flink中的事件时间(Event Time)和处理时间(Processing Time)有什么区别?4. Flink的容错机制是如何实现的?5. 什…

Myelsa的Python函数之旅(高铁直达)

一、函数的定义: 函数(Function)是一段可重复使用的代码块,用于执行特定的任务或计算,并可以接受输入参数和返回输出结果。函数可以将复杂的问题分解为更小的子问题,提高代码的可读性和可维护性。 二、函数的组成: 在…

设计模式总结-适配器模式

适配器模式 模式动机模式定义模式结构适配器模式实例与解析实例一:仿生机器人实例二:加密适配器 总结 模式动机 在软件开发中采用类似于电源适配器的设计和编码技巧被称为适配器模式。 通常情况下,客户端可以通过目标类的接口访问它所提供的…

Redis性能瓶颈与安全隐患排查验证纪实

在写《Redis怎样保证数据安全?》这篇文章,我是有对redis设置密码需要哪些步骤,设置密码的性能损耗有验证的。这就涉及到要对redis的配置做修改。 开始时我是打算采用直接使用redis配置文件的方式。所以我从redis官网下载了一个默认的配置文件…

java实现运行脚本文件

在最近的项目中,有一个需求是前端传给我一个脚本文件,然后我需要运行脚本文件后将结果进行返回,那接下来就让我们看看是怎么做的吧! public R runScripts(Integer id) {ScriptsInfo scriptsInfo this.baseMapper.selectById(id);…

影响力营销与AI的结合:Kompas.ai在搭桥角色中的独特价值

在数字化营销的新时代,影响力营销已经成为品牌建立信任和提升市场影响力的有效手段。通过与关键意见领袖(KOL)的合作,品牌能够利用KOL的信誉和影响力来扩大其市场覆盖范围和提升品牌认知度。然而,寻找与品牌价值观相契…

汇编语言:寻址方式在结构化数据访问中的应用——计算人均收入

有一年多没有在CSDN上发博文了。人的工作重心总是有转移的,庆幸一直在做着有意义的事。   今天的内容,是为汇编语言课程更新一个实验项目。      本方案修改自王爽编《汇编语言》第4版P172“实验7寻址方式在结构化数据访问中的应用” …

科普|老隋分享的人力资源项目怎么样?可不可以赚钱?

近年来,随着市场竞争的加剧和企业对人才需求的不断提升,人力资源项目逐渐成为了创业者和投资者关注的焦点。老隋作为一位在人力资源领域深耕多年的专业人士,经常分享关于人力资源项目的见解和经验。那么,老隋分享的人力资源项目究…

Android Glide

1.引入glide implementation com.github.bumptech.glide:glide:4.14.2 // Skip this if you dont want to use integration libraries or configure Glide. annotationProcessor com.github.bumptech.glide:compiler:4.14.2 //Glide 注解处理器 2.AndroidManifest.xml 中添加…

截稿倒计时 CCF-B 推荐会议EGSR’24论文摘要4月9日提交

会议之眼 快讯 第35届EGSR 2024 (Eurographics Symposium on Rendering)即欧洲图形学渲染专题讨论会将于 2024 年 7月3日-5日在英国伦敦帝国理工学院举行!在EGSR之前,将有一个全新的联合研讨会,即材料外观建模(MAM)和…

【如何写论文】解决方案——删除脚注里多余的回车换行,标题的段前磅数消失问题、图像显示不完整、被截断、浮动问题

目录 一、脚注里多余的回车换行无法删除问题1.1、问题描述1.2、解决方案 二、标题前的段前磅数消失问题2.1、问题描述2.2、解决方案 三、图像显示不完整、被截断、浮动问题3.1、问题描述3.2、解决方案 一、脚注里多余的回车换行无法删除问题 1.1、问题描述 一般论文要求需要有…

Unity Toggle组件

Toggle Group组件 Allow Switch Off属性值为false时, 1,Toggle初始时默认会有一个被勾选(ison为true),可以自己打勾指定 2,不能取消勾选 Allow Switch Off属性值为true时, 1,Toggl…

无监督学习简介

无监督学习简介 一、定义和核心概念 无监督学习的定义 无监督学习是机器学习的一个关键分支,它涉及到从未标注数据中学习和提取信息。不同于其他学习类型,无监督学习的数据集没有提供任何显式的输出标签或结果。因此,这种学习方法的主要任务…

js计算器实现

文章目录 1. 演示效果2. 分析思路3. 代码实现 1. 演示效果 2. 分析思路 给每个按钮添加点击事件&#xff0c;使用eval()进行计算。 3. 代码实现 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name&q…