Code Monkey home page Code Monkey logo

weiye-jing / datax-web Goto Github PK

View Code? Open in Web Editor NEW
5.3K 132.0 2.1K 42.65 MB

DataX集成可视化页面,选择数据源即可一键生成数据同步任务,支持RDBMS、Hive、HBase、ClickHouse、MongoDB等数据源,批量创建RDBMS数据同步任务,集成开源调度系统,支持分布式、增量同步数据、实时查看运行日志、监控执行器资源、KILL运行进程、数据源信息加密等。

Home Page: https://segmentfault.com/u/weiye_jing/articles

License: MIT License

Java 95.57% HTML 0.59% CSS 0.02% Shell 3.83%

datax-web's Introduction

GitHub contributors GitHub issues GitHub GitHub code size in bytes

DataX-Web

Stargazers over time

DataX Web是在DataX之上开发的分布式数据同步工具,提供简单易用的 操作界面,降低用户使用DataX的学习成本,缩短任务配置时间,避免配置过程中出错。用户可通过页面选择数据源即可创建数据同步任务,支持RDBMS、Hive、HBase、ClickHouse、MongoDB等数据源,RDBMS数据源可批量创建数据同步任务,支持实时查看数据同步进度及日志并提供终止同步功能,集成并二次开发xxl-job可根据时间、自增主键增量同步数据。

任务"执行器"支持集群部署,支持执行器多节点路由策略选择,支持超时控制、失败重试、失败告警、任务依赖,执行器CPU.内存.负载的监控等等。后续还将提供更多的数据源支持、数据转换UDF、表结构同步、数据同步血缘等更为复杂的业务场景。

Architecture diagram:

System Requirements

  • Language: Java 8(jdk版本建议1.8.201以上)
    Python2.7(支持Python3需要修改替换datax/bin下面的三个python文件,替换文件在doc/datax-web/datax-python3下)
  • Environment: MacOS, Windows,Linux
  • Database: Mysql5.7

Features

  • 1、通过Web构建DataX Json;
  • 2、DataX Json保存在数据库中,方便任务的迁移,管理;
  • 3、Web实时查看抽取日志,类似Jenkins的日志控制台输出功能;
  • 4、DataX运行记录展示,可页面操作停止DataX作业;
  • 5、支持DataX定时任务,支持动态修改任务状态、启动/停止任务,以及终止运行中任务,即时生效;
  • 6、调度采用中心式设计,支持集群部署;
  • 7、任务分布式执行,任务"执行器"支持集群部署;
  • 8、执行器会周期性自动注册任务, 调度中心将会自动发现注册的任务并触发执行;
  • 9、路由策略:执行器集群部署时提供丰富的路由策略,包括:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移、忙碌转移等;
  • 10、阻塞处理策略:调度过于密集执行器来不及处理时的处理策略,策略包括:单机串行(默认)、丢弃后续调度、覆盖之前调度;
  • 11、任务超时控制:支持自定义任务超时时间,任务运行超时将会主动中断任务;
  • 12、任务失败重试:支持自定义任务失败重试次数,当任务失败时将会按照预设的失败重试次数主动进行重试;
  • 13、任务失败告警;默认提供邮件方式失败告警,同时预留扩展接口,可方便的扩展短信、钉钉等告警方式;
  • 14、用户管理:支持在线管理系统用户,存在管理员、普通用户两种角色;
  • 15、任务依赖:支持配置子任务依赖,当父任务执行结束且执行成功后将会主动触发一次子任务的执行, 多个子任务用逗号分隔;
  • 16、运行报表:支持实时查看运行数据,以及调度报表,如调度日期分布图,调度成功分布图等;
  • 17、指定增量字段,配置定时任务自动获取每次的数据区间,任务失败重试,保证数据安全;
  • 18、页面可配置DataX启动JVM参数;
  • 19、数据源配置成功后添加手动测试功能;
  • 20、可以对常用任务进行配置模板,在构建完JSON之后可选择关联模板创建任务;
  • 21、jdbc添加hive数据源支持,可在构建JSON页面选择数据源生成column信息并简化配置;
  • 22、优先通过环境变量获取DataX文件目录,集群部署时不用指定JSON及日志目录;
  • 23、通过动态参数配置指定hive分区,也可以配合增量实现增量数据动态插入分区;
  • 24、任务类型由原来DataX任务扩展到Shell任务、Python任务、PowerShell任务;
  • 25、添加HBase数据源支持,JSON构建可通过HBase数据源获取hbaseConfig,column;
  • 26、添加MongoDB数据源支持,用户仅需要选择collectionName即可完成json构建;
  • 27、添加执行器CPU、内存、负载的监控页面;
  • 28、添加24类插件DataX JSON配置样例
  • 29、公共字段(创建时间,创建人,修改时间,修改者)插入或更新时自动填充
  • 30、对swagger接口进行token验证
  • 31、任务增加超时时间,对超时任务kill datax进程,可配合重试策略避免网络问题导致的datax卡死。
  • 32、添加项目管理模块,可对任务分类管理;
  • 33、对RDBMS数据源增加批量任务创建功能,选择数据源,表即可根据模板批量生成DataX同步任务;
  • 34、JSON构建增加ClickHouse数据源支持;
  • 35、执行器CPU.内存.负载的监控页面图形化;
  • 36、RDBMS数据源增量抽取增加主键自增方式并优化页面参数配置;
  • 37、更换MongoDB数据源连接方式,重构HBase数据源JSON构建模块;
  • 38、脚本类型任务增加停止功能;
  • 39、rdbms json构建增加postSql,并支持构建多个preSql,postSql;
  • 40、数据源信息加密算法修改及代码优化;
  • 41、日志页面增加DataX执行结果统计数据;

Quick Start:

请点击:Quick Start
Linux:一键部署

Introduction:

1.执行器配置(使用开源项目xxl-job)

  • 1、"调度中心OnLine:"右侧显示在线的"调度中心"列表, 任务执行结束后, 将会以failover的模式进行回调调度中心通知执行结果, 避免回调的单点风险;
  • 2、"执行器列表" 中显示在线的执行器列表, 可通过"OnLine 机器"查看对应执行器的集群机器;

执行器属性说明

1、AppName: (与datax-executor中application.yml的datax.job.executor.appname保持一致)
   每个执行器集群的唯一标示AppName, 执行器会周期性以AppName为对象进行自动注册。可通过该配置自动发现注册成功的执行器, 供任务调度时使用;
2、名称: 执行器的名称, 因为AppName限制字母数字等组成,可读性不强, 名称为了提高执行器的可读性;
3、排序: 执行器的排序, 系统中需要执行器的地方,如任务新增, 将会按照该排序读取可用的执行器列表;
4、注册方式:调度中心获取执行器地址的方式;
    自动注册:执行器自动进行执行器注册,调度中心通过底层注册表可以动态发现执行器机器地址;
    手动录入:人工手动录入执行器的地址信息,多地址逗号分隔,供调度中心使用;
5、机器地址:"注册方式"为"手动录入"时有效,支持人工维护执行器的地址信息;

2.创建数据源

第四步使用

3.创建任务模版

第四步使用

4. 构建JSON脚本

  • 1.步骤一,步骤二,选择第二步中创建的数据源,JSON构建目前支持的数据源有hive,mysql,oracle,postgresql,sqlserver,hbase,mongodb,clickhouse 其它数据源的JSON构建正在开发中,暂时需要手动编写。

  • 2.字段映射

  • 3.点击构建,生成json,此时可以选择复制json然后创建任务,选择datax任务,将json粘贴到文本框。也可以点击选择模版,直接生成任务。

5.批量创建任务

6.任务创建介绍(关联模版创建任务不再介绍,具体参考4. 构建JSON脚本)

支持DataX任务,Shell任务,Python任务,PowerShell任务

  • 阻塞处理策略:调度过于密集执行器来不及处理时的处理策略;

    • 单机串行:调度请求进入单机执行器后,调度请求进入FIFO队列并以串行方式运行;
    • 丢弃后续调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,本次请求将会被丢弃并标记为失败;
    • 覆盖之前调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,将会终止运行中的调度任务并清空队列,然后运行本地调度任务;
  • 增量增新建议将阻塞策略设置为丢弃后续调度或者单机串行

    • 设置单机串行时应该注意合理设置重试次数(失败重试的次数*每次执行时间<任务的调度周期),重试的次数如果设置的过多会导致数据重复,例如任务30秒执行一次,每次执行时间需要20秒,设置重试三次,如果任务失败了,第一个重试的时间段为1577755680-1577756680,重试任务没结束,新任务又开启,那新任务的时间段会是1577755680-1577758680
  • 增量参数设置

  • 分区参数设置

7. 任务列表

8. 可以点击查看日志,实时获取日志信息,终止正在执行的datax进程

9.任务资源监控

10. admin可以创建用户,编辑用户信息

UI

前端github地址

项目成员

  • water
非常荣幸成为datax-web的Committer,从早期datax手工编写任务+配置,到datax-web界面化勾选创建任务+配置信息+调度管理,datax-web将数据同步工作的效率提升不少,相信后面后成为etl中不可或缺的生产力……
  • Alecor
非常荣幸成为datax-web的Committer,datax-web旨在帮助用户从datax配置中解放出来,提供datax的Web化的管理能力。希望datax-web能为更多有需要的人服务,带来更好的简单、易用的体验!
  • zhouhongfa

  • liukunyuan

感谢贡献!

Contributing

Contributions are welcome! Open a pull request to fix a bug, or open an Issue to discuss a new feature or change.

欢迎参与项目贡献!比如提交PR修复一个bug,或者新建 Issue 讨论新特性或者变更。

Copyright and License

MIT License

Copyright (c) 2020 WeiYe

产品开源免费,并且将持续提供免费的社区技术支持。个人或企业内部可自由的接入和使用。

欢迎在 登记地址 登记,登记仅仅为了产品推广和提升社区开发的动力。

v-2.1.2

新增

  1. 添加项目管理模块,可对任务分类管理;
  2. 对RDBMS数据源增加批量任务创建功能,选择数据源,表即可根据模板批量生成DataX同步任务;
  3. JSON构建增加ClickHouse数据源支持;
  4. 执行器CPU.内存.负载的监控页面图形化;
  5. RDBMS数据源增量抽取增加主键自增方式并优化页面参数配置;
  6. 更换MongoDB数据源连接方式,重构HBase数据源JSON构建模块;
  7. 脚本类型任务增加停止功能;
  8. rdbms json构建增加postSql,并支持构建多个preSql,postSql;
  9. 合并datax-registry模块到datax-rpc中; 10.数据源信息加密算法修改及代码优化; 11.时间增量同步支持更多时间格式; 12.日志页面增加DataX执行结果统计数据;

升级:

  1. PostgreSql,SQLServer,Oracle 数据源JSON构建增加schema name选择;
  2. DataX JSON中的字段名称与数据源关键词一致问题优化;
  3. 任务管理页面按钮展示优化;
  4. 日志管理页面增加任务描述信息;
  5. JSON构建前端form表单不能缓存数据问题修复;
  6. HIVE JSON构建增加头尾选项参数;

备注:

2.1.1版本不建议升级,数据源信息加密方式变更会导致之前已加密的数据源解密失败,任务运行失败。 如果需要升级请重建数据源,任务。

v-2.1.1

新增

  1. 添加HBase数据源支持,JSON构建可通过HBase数据源获取hbaseConfig,column;
  2. 添加MongoDB数据源支持,用户仅需要选择collectionName即可完成json构建;
  3. 添加执行器CPU.内存.负载的监控页面;
  4. 添加24类插件DataX JSON配置样例
  5. 公共字段(创建时间,创建人,修改时间,修改者)插入或更新时自动填充
  6. 对swagger接口进行token验证
  7. 任务增加超时时间,对超时任务kill datax进程,可配合重试策略避免网络问题导致的datax卡死。

升级:

  1. 数据源管理对用户名和密码进行加密,提高安全性;
  2. 对JSON文件中的用户名密码进行加密,执行DataX任务时解密
  3. 对页面菜单整理,图标升级,提示信息等交互优化;
  4. 日志输出取消项目类名等无关信息,减小文件大小,优化大文件输出,优化页面展示;
  5. logback为从yml中获取日志路径配置

修复:

  1. 任务日志过大时,查看日志报错,请求超时;

提交代码

参与贡献

Contact us

个人微信

QQ交流群

datax-web's People

Contributors

alecor-sudo avatar binaryworld avatar fantasticke avatar kyofin avatar leigao-dev avatar liukunyuan avatar lw309637554 avatar shijieqin avatar sqdf1990 avatar sufism avatar waterwang avatar weiye-jing avatar wuchase avatar zhouhongfa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

datax-web's Issues

关于增量字段

您好,由于有些数据表中不包含时间戳字段。在做数据增量时,需要根据自增主键进行脚本替换。我准备支持该功能并向仓库提交PR,您觉得这个主意怎么样?可能会涉及到修改一些表结构及相关代码。

datax转换的问题

官方文档:dx_groovy只能调用一次。不能多次调用。([https://github.com/alibaba/DataX/blob/master/transformer/doc/transformer.md])
请问这个只能调用一次,当调度执行的时候怎么办?你是怎么解决的?

增加任务超时配置

增加任务超时配置,kill DataX任务超过配置时间的进程。可以配合重试机制,避免网络问题导致的reader读不到数据。

Wanted: Who is using DataX Web

谁在使用DataX Web

  • 诚挚地感谢每一位持续关注并使用DataX Web的朋友。我们会持续投入,把DataX Web做得更好,让数据集成的社区和生态更加繁荣。

此Issue的出发点

  1. 聆听社区的声音,让DataX Web更好
  2. 吸引更多的伙伴来参与贡献
  3. 更多的了解DataX Web的实际使用场景,以方便下一步的规划

我们期待您能提供

  1. 在此提交一条评论, 评论内容包括:
  2. 您所在公司、学校或组织和首页
  3. 您所在的城市、国家
  4. 您的联系方式: 微博、邮箱、微信 (至少一个)
  5. 您将DataX Web用于哪些业务场景

您可以参考下面的样例来提供您的信息:

* 组织:个人 , https://github.com/WeiYe-Jing/datax-web
* 地点:**苏州
* 联系方式:[email protected]
* 场景:使用DataX做异构数据源同步,项目选择数据源即可构建json极大提升了同步效率。

再次感谢你的参与!!! 您的支持是我们前进的强大动力!!
DataX Web 社区

json构建第四步选择模板优化

目前的做法是点击 “选择模板(操作步骤:构建->选择模板->下一步)”这段文字,希望通过按钮加说明来提示用户

执行器启动报错Unparseable date: "callbacklog"

java.text.ParseException: Unparseable date: "callbacklog"
at java.text.DateFormat.parse(DateFormat.java:366)
at com.wugui.datatx.core.thread.JobLogFileCleanThread.lambda$start$0(JobLogFileCleanThread.java:60)
at java.lang.Thread.run(Thread.java:748)
13:21:47.780 exe [datax-web, executor JobLogFileCleanThread] ERROR c.w.d.c.t.JobLogFileCleanThread - Unparseable date: "datax-executor.log"
java.text.ParseException: Unparseable date: "datax-executor.log"
at java.text.DateFormat.parse(DateFormat.java:366)
at com.wugui.datatx.core.thread.JobLogFileCleanThread.lambda$start$0(JobLogFileCleanThread.java:60)
at java.lang.Thread.run(Thread.java:748)
13:21:47.781 exe [datax-web, executor JobLogFileCleanThread] ERROR c.w.d.c.t.JobLogFileCleanThread - Unparseable date: "gluesource"
java.text.ParseException: Unparseable date: "gluesource"
at java.text.DateFormat.parse(DateFormat.java:366)
at com.wugui.datatx.core.thread.JobLogFileCleanThread.lambda$start$0(JobLogFileCleanThread.java:60)
at java.lang.Thread.run(Thread.java:748)
13:21:47.781 exe [datax-web, executor JobLogFileCleanThread] ERROR c.w.d.c.t.JobLogFileCleanThread - Unparseable date: "processcallbacklog"
java.text.ParseException: Unparseable date: "processcallbacklog"
at java.text.DateFormat.parse(DateFormat.java:366)
at com.wugui.datatx.core.thread.JobLogFileCleanThread.lambda$start$0(JobLogFileCleanThread.java:60)
at java.lang.Thread.run(Thread.java:748)

字段顺序可调整

在进行表字段对照时,源端字段和目标字段顺序可能不一致,建议增加字段顺序调整按钮,方便字段调整

Specified key was too long; max key length is 767 bytes

job_registry表使用utf8mb4字符集,联合索引i_g_k_v字节数超限制。建议修改建表语句设置registry_keyregistry_value字节大小为191

DROP TABLE IF EXISTS `job_registry`;
CREATE TABLE `job_registry`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `registry_group` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `registry_key` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `registry_value` varchar(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `update_time` datetime(0) NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `i_g_k_v`(`registry_group`, `registry_key`, `registry_value`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 26 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

前端form表单不能缓存数据

比如我先点击"datax-json构建这个模块"
然后点击其他模块
然后再点击"datax-json"模块,之前已经配置的进度就会消失,这样是不合理的

执行非DataX任务后端报空指针异常

JobInfo(id=7, jobGroup=1, jobCron=0 0 2 1/1 * ? , jobDesc=hive-sql-test, addTime=Wed Mar 25 14:30:24 CST 2020, updateTime=Wed Mar 25 14:54:49 CST 2020, author=qijun, alarmEmail=, executorRouteStrategy=ROUND, executorHandler=, executorParam=, executorBlockStrategy=SERIAL_EXECUTION, executorTimeout=0, executorFailRetryCount=0, glueType=GLUE_SHELL, glueSource=yesterday=date -d '-1 day' '+%Y-%m-%d'
echo $yesterday, glueRemark=null, glueUpdatetime=Wed Mar 25 14:54:49 CST 2020, childJobId=, triggerStatus=0, triggerLastTime=0, triggerNextTime=0, jobJson=null, replaceParam=, jvmParam=, incStartTime=null, partitionInfo=, lastHandleCode=0) 根据jobid 获取job信息 发现字段jobJson内容为空

偶现报错:XxlRpcException: xxl-rpc, request timeout at

出现频率:偶现(低于1%)
邮件报错信息:
msg:com.wugui.datax.rpc.util.XxlRpcException: xxl-rpc, request timeout at:1585273504252, request:XxlRpcRequest{requestId='761c6e38-1401-4a1c-b345-01ca66684054', createMillisTime=1585273501247, accessToken='', className='com.wugui.datatx.core.biz.ExecutorBiz', methodName='run', parameterTypes=[class com.wugui.datatx.core.biz.model.TriggerParam], parameters=[TriggerParam{jobId=152, executorHandler='executorJobHandler', executorParams='', executorBlockStrategy='DISCARD_LATER', executorTimeout=0, logId=2551329, logDateTime=1585273501000, glueType='BEAN', glueSource='null', glueUpdatetime=1582114646000, broadcastIndex=0, broadcastTotal=1, jobJson={ "job": { "setting": { "speed": { "channel": 16 } }, "content": [ { "reader": { "name": "mysqlreader", "parameter": { "username": "ods_readonly", "password": "IEOIXNo3QCKDbI4n1VYdYpSlGqGfmR3d", "connection": [ { "jdbcUrl": [ "jdbc:mysql://rm-2zen18ooiq4wsn0rj.mysql.rds.aliyuncs.com:3306/trade_hebei_prod?serverTimezone=Asia/Shanghai&useLegacyDatetimeCode=false&useSSL=false&nullNamePatternMatchesAll=true&useUnicode=true&characterEncoding=UTF-8" ], "querySql": [ "select id,created_by_id,created_time,updated_by_id,updated_time,data_flag,goods_47_kind_id,replace_kind_id,hxProductId,medicalAreaId,pack_convert_factor,replace_goods_id,replace_type,stand_spec_mg,superviseId,medicalConfigId,batch_type from p_goods_47_kind_replace_relation where (created_time >= FROM_UNIXTIME(${lastTime}-60) and created_time < FROM_UNIXTIME(${currentTime})) or (updated_time >= FROM_UNIXTIME(${lastTime}-60) and updated_time < FROM_UNIXTIME(${currentTime}))" ] } ] } }, "writer": { "name": "kafkawriter", "parameter": { "ack": "all", "batchSize": 2000000, "bootstrapServers": "192.168.1.246:9092,192.168.1.249:9092,192.168.1.248:9092", "fieldDelimiter": "#", "keySerializer": "org.apache.kafka.common.serialization.StringSerializer", "retries": 0, "transactionalId": "hb_trd_p_goods_47_kind_replace_relation_prod_trans_id", "topic": "hb_trd_p_goods_47_kind_replace_relation_prod_1", "writeType": "csv", "valueSerializer": "org.apache.kafka.common.serialization.StringSerializer", "columns": [ { "name": "id", "type": "Long" } ] } } } ] } }, processId=null, replaceParam=-DlastTime='%s' -DcurrentTime='%s', jvmParam=, startTime=Fri Mar 27 09:30:01 CST 2020, triggerTime=Fri Mar 27 09:45:01 CST 2020}], version='null'} at com.wugui.datax.rpc.remoting.net.params.XxlRpcFutureResponse.get(XxlRpcFutureResponse.java:120) at com.wugui.datax.rpc.remoting.invoker.reference.XxlRpcReferenceBean$1.invoke(XxlRpcReferenceBean.java:242) at com.sun.proxy.$Proxy164.run(Unknown Source) at com.wugui.datax.admin.core.trigger.JobTrigger.runExecutor(JobTrigger.java:204) at com.wugui.datax.admin.core.trigger.JobTrigger.processTrigger(JobTrigger.java:156) at com.wugui.datax.admin.core.trigger.JobTrigger.trigger(JobTrigger.java:73) at com.wugui.datax.admin.core.thread.JobTriggerPoolHelper.lambda$addTrigger$0(JobTriggerPoolHelper.java:88) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

read 插件不支持persql和postsql吗

eg.需求: 取数据前,对源库上table更改状态字段值,做完同步后,再改状态值。
如下步骤:

1.update @table set status=1 where status=0 --源表
2.执行select * from @table where status=1 -- insert目的表
3.update @table set status=2 where status=1 --postsql 源表

增加oracle数据库配置临活性

例如:增量使用的专用用户有另外一个用户的权限,数据同步的过程中控制使用专用用户,在界面上能够选取指定用户下有权限的表

获取用户信息接口

用户管理,点击“编辑”应该是前台根据userId从后台查询user信息。现在好像是前台直接从pageList中获取用户信息

json构建\符号转义异常

在datax json构建这个里面 输入 \t 那最后的 json 会出来 \t 执行任务报错,如果是 输入t 那 最后的json里又没有 ""

元数据mysql账密加密

数据源或者json中储存大量账密,所以元数据库的账密不能直接明文;
加密解密类JasyptUtil

dataxjson构建的问题

在dataxjson构建第三步需要填写字段映射,但填写的数据在构建时并没有使用上,按照了第一步和第二部的勾选顺序进行了映射。
比如:我在第一步先勾选了(name,pk,age)第二步我勾选了(pk,username,userage)那么第三步我填写映射关系,[
{
"src": {
"name": "name",
"name": "pk",
"name": "age"
},
"des": {
"name": "username",
"name": "pk",
"name": "userage"
}
}
]
生成的json中对应也是错误的。

where及postsql参数

同步过程中使用where、postsql参数也比较多,建议增加where、postsql参数的选项框

executor服务器资源使用问题

可以考虑一下自己写一下rpc的网关和负载均衡,如果没有将单个datax作业的executor拆分到多台执行服务器上的话,需要监控一个executor服务器上剩下的内存,不然机器上正在运行的作业会oom, 可以考虑一下把xxl的rpc改成蚂蚁开源的sofa-rpc, 然后自定义网关和负载均衡,作业推到执行器上,内存到达阀值就不再推了,延后

编辑用户逻辑是否需要修改?

编辑用户逻辑是否需要修改?
1,“密码”显示的是密文,使用的BCryptPasswordEncoder是无法解密的。要显示明文需要更换加密方法
2,或者逻辑修改为“密码”置空,让用户填入最新明文密码

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.