找回密码
 立即注册

QQ登录

只需一步,快速开始

willning
超级版主   /  发表于:2022-11-22 19:01  /   查看:3744  /  回复:4
本帖最后由 willning 于 2022-11-22 19:24 编辑

通常情况下,我们可以像操作业务数据一样,将被集成的系统的数据表(如ERP中存货档案等主数据)以“外联表”的形式加入到活字格工程,让活字格可以直连ERP的数据库。但在中大型项目中,这种做法可能会遭遇以下问题:
  • 跨网络读取ERP数据库,响应差
  • 频繁读取被集成系统的数据库,ERP变慢
  • 不能建立跨库的视图或表关联,开发麻烦


如果您使用的是内置库开发,推荐采用“外联表副本”功能,定时将ERP数据同步到本地的SQLite库,帮助文档如下:
帮助文档:创建外联表副本

不过,和其他内置库的表一样,外联表副本无法创建索引、性能较慢而且不支持负载均衡集群部署。是否有办法将ERP数据定时同步到外联的业务数据库

这时我们可以拿出阿里DataWorks的开源版,DataX(官方文档),轻松搞定跨数据源的定时同步。首先,datax是一个使用python开发的数据同步工具,可以运行在Windows上和Linux上。作为一个拿到12k+ star的明星项目,资源相当丰富,网上有很多教程和示例,大家可以随时搜索。

image.png246049498.png

下面我准备了两个示例,向大家演示一下使用datax做全量同步和增强同步。准备好了吗?走起!

安装
Windows
  • 官方下载并安装Python3的最新版,勾选“将python添加到Path”
  • 官方下载并安装java 1.8版本(jre8),将 C:\Program Files\Java\jre1.8.0_351\bin; 加入到系统的Path中
  • 官方下载最新版datax(2210版),解压缩到硬盘如 E:\TOOLS\datax
  • 将附件中的 hello.json 文件下载并保存到 E:\TOOLS\datax\job hello.json (717 Bytes, 下载次数: 261)
  • 打开命令行(不是“终端”),输入以下命令,确保中文不是乱码:CHCP 65001
  • cd到e:\TOOLS\datax\bin\,执行  python datax.py ..\job\hello.json
  • 命令行提示如下图,意味着datax配置成功了

image.png642828979.png

Linux

全量:常用于主数据同步
全量同步是系统集成中最常见的场景,也是datax最擅长的。

1 基础款:单通道同步,不分片
datax的配置非常简单,只需要准备一个json,然后调用命令行执行即可。
比如,在e:\TOOLS\datax\job\ 下创建inventory.json文件,内容如附件 inventory.json (1.97 KB, 下载次数: 288)

4 个回复

倒序浏览
VVANVI悬赏达人认证
论坛元老   /  发表于:2022-11-22 21:10:29
沙发
版主这个 又是Python  还有java   着实会的很多
回复 使用道具 举报
willning
超级版主   /  发表于:2022-11-22 21:33:20
板凳
VVANVI 发表于 2022-11-22 21:10
版主这个 又是Python  还有java   着实会的很多

我干的事情是读文档 ,写几个json和一个bat,然后测试一下,就成啦。现在的软件很发达,大把开源方案,很少需要自己动手撸代码:)
回复 使用道具 举报
葛挺挺
金牌服务用户   /  发表于:2022-11-23 17:39:01
地板
回复 使用道具 举报
赛龙周
银牌会员   /  发表于:2022-11-23 21:34:40
5#
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部