最近在做个项目,功能主要是数据同步。
客户有多个系统(OA,AD 域服务器···),各个系统间没有直接连通,这些系统都要用到 HR 系统的员工相关数据(员工信息变更都是在 HR 系统进行),现在要把 HR 系统相关数据同步到其他的系统。不要求实时,但是要求支持增量同步和全量同步,数据量比较多。
请问黑客有没相关方案或者资料可推荐?
最近在做个项目,功能主要是数据同步。
客户有多个系统(OA,AD 域服务器···),各个系统间没有直接连通,这些系统都要用到 HR 系统的员工相关数据(员工信息变更都是在 HR 系统进行),现在要把 HR 系统相关数据同步到其他的系统。不要求实时,但是要求支持增量同步和全量同步,数据量比较多。
请问黑客有没相关方案或者资料可推荐?
全量数据的话用阿里的 datax,官网 https://github.com/alibaba/DataX,应该没有任何问题
这个比较复杂了,要看具体任务具体设计了。不知道符合以下哪种情况。
@linker @xjtushilei ,昨天问的问题今天整理了两个方案出来,正在实现中(java web),欢迎讨论:
这里对场景进行简化:
- 现在有张表:A 和 B,A B 表通过 id 字段关联(A 表掌握在客户手里,不能随便变更结构和数据)
- 俩表异构,需要自己根据业务做好字段的对应
- 这两张表可能不在同一个数据库
- 用户只对 A 进行人为操作,其中 增删改 操作的结果需要同步到 B 表
- 不要求实时,要求准确可靠,增量更新,并且数据量大
增量更新必须要有相应的字段支持,否则除了行间内容的全量对比(成本高效率低),别无他法。
增量同步的两个先决条件:
查询出 B 表的最小 syncTime(minSync) ,分页查出 A 表 modifyTime>=minSync (上次同步完之后进行了修改) 的记录进行同步或者插入,直到所有的 modifyTime<minSync 。
分页从 A 表取出 id 和 modifyTime,在 B 系统中做关联对比,syncTime<=modifyTime 的记录需要更新,B 表中没有的记录则执行插入。
注意:考虑到不同机器的时间有一些误差,需要做一些处理,避免都写出在临界值的记录没有得到更新,比如:modifyTime>=minSync-N (N 是机器间时间差和其他的时间开销产生的误差)
以上两种方案的优缺点,暂时没有总结整理。
Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。
又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。
SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。
你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!
以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。
Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。
子曰:“工欲善其事,必先利其器。”
互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。
JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。
Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。
IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。
钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。
Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。
黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。
A second brain, for you, forever.
腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。
PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。
Open Source, Open Mind, Open Sight, Open Future!
沉迷游戏伤身,强撸灰飞烟灭。
jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。
安全永远都不是一个小问题。
Latke 是一款以 JSON 为主的 Java Web 框架。
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。
Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于