EtlCloud安装部署及简单应用

背景

最近碰到了一个数据同步的业务场景,客户要求生产环境的某些特定数据定时同步到指定的数据池中,并对数据池中的表名称有特殊要求,必须以t_xxxx_tablename的格式命名,其中xxxx为单位编号,tablename可以是应用中的表名称(也就是说在从正式环境同步到数据池后表名称需要加个前缀)。数据不需要实时同步,定时同步即可。

能想到的方案之一是编码实现:针对需要同步的表,编写代码从原数据源获取数据,写入到目标数据源的指定表中,目标数据源的表名称当然可以根据用户需求随意指定。

但是毕竟需要编码,即使需要同步的表不多,也还是有工作量的,而且编码的时候需要控制原数据的增删改,比较繁琐。所以编码实现一定不是最佳方案。

方案二是ETL工具,ETL工具天然就是为解决这类需求而生的,虽然从来没用过任何一款ETL工具,但是感觉学习成本应该不会太大。

ETL工具选择

百度了下,选择了Etlcloud,应该是谷云科技(广州)有限责任公司旗下的产品,号称社区版终生免费,找到了他的官网,文档也比较完善,安装部署文档写的很详细:

https://www.etlcloud.cn/restcloud/view/page/helpDocument.html?id=64671836bd12a45a27ada704

下载部署

etlcloud官网提供了社区版的免费下载:
在这里插入图片描述
不过虽然是免费的,但还是要求登录后才能下载,而且安装部署启动之后,要求必须有SN(需要在官网生成)才能使用,有短期临时SN(6个月有效期)和长期有效SN的区别,长期有效的SN要求用户注册3个月以上才能申请。

安装过程其实比较简单,但是需要注意以下几点:

  1. 对JDK版本应该是有要求的,最开始我用了JDK17,系统启动、用户登录都没有问题,但是SN录入之后提交不了,后台报错,搞得我差一点就要放弃了,最后想着换一下JDK试试,换成JDK8就OK了。
  2. 按照安装文档的要求,安装了mongodb4.2,etlcloud的安装文档很贴心的提供了mongoDB的安装教程,但是确实,mongodb也是我首次安装使用,也碰到了一点小小的问题。
  3. etlcloud主应用其实是tomcat应用,很简单,几乎不需要修改啥,按照安装文档操作就可以了,注意需要指定环境变量JAVA_HOME。以及,如果安装mongodb后设置的用户名、密码和官网举例的不一样的话,需要修改一下tomcat的配置文件,匹配mongodb的用户名密码就可以了。

在这里插入图片描述

mongodb的安装配置

其实mongodb的安装配置也很简单,按照官网的安装说明操作就可以:

https://etlcloud.cn/restcloud/view/page/helpDocument.html?id=6563ef397f90446d6352d072&type=8

不过需要说明一下的是,安装文档的 1.6 配置并安装 Mongodb 服务 部分,4.2版本的mongodb不需要自己再创建配置文件,bin目录下就有一个:
在这里插入图片描述
打开该文件修改一下对应的数据库文件存储路径就可以:

# Where and how to store data.
storage:dbPath: D:\MongoDB\Server\4.2\datajournal:enabled: true

然后在注册为服务的时候指定该配置文件即可:

D:\mongodb\bin\mongod.exe --config "D:\MongoDB\Server\4.2\bin\mongod.cfg" --install

install之后打开windows任务管理器看一下,有启动的mongodb服务就表明安装成功了。

之后根据安装文档的说明创建mongodb用户,也就是安装文档的2.2.4部分(放在了linux安装部署mongodb部分,但是windows下安装也是需要执行的),通过mongodb的shell脚本客户端mongo.exe完成。

安装文档 《1.7 进入MongoDB 后台管理 Shell界面》 调出shell界面之后,执行 《2.2.4 创建Mongo用户》,db.createUser脚本敲进去之后需要双击回车键执行脚本(我是mongodb小白,折腾了好一会儿才发现)。

启动应用

完成JDK的安装以及JAVA_HOME环境配置,以及完成mongodb的安装之后,启动eltcloud的tomcat服务反而很简单,按照安装手册的说明操作就可以。

etlcloud服务默认是在8080端口,访问服务:

在这里插入图片描述

用户名admin,默认密码是pass,登录之后就要求输入SN,从官网获取SN输入之后,就可以正常使用了。
在这里插入图片描述

配置数据源

开工第一步就是配置数据源,首页 数据源管理,添加两个数据源:
在这里插入图片描述
一个source,一个desination,数据源的设置非常简单,指定ip:port以及用户名密码就OK,设置完之后先做一下链接测试,没问题之后,保存数据源。

创建同步流程

其实同步流程的配置也很简单,第一个测试:只同步一张表的数据。

我们尝试从源数据库中同步sys_user表的数据到目标数据库中,目标数据库中可以不建表,让etlcloud在同步的过程中自动创建。

系统首页选“离线数据集成”,离线数据集成是针对实时数据集成而言的,比如我们每天晚上2点同步一次数据,就可以通过离线数据集成实现。

第一步创建应用,很简单。

创建应用之后,点击该应用进入应用详情页面:
在这里插入图片描述
点击左侧数据集成流程 - 所有数据流程,之后新增流程:
在这里插入图片描述
注意:使用定时自动调度的话,需要选择调度策略,系统提供了几个简单的调度策略,如果不能满足的话,可以通过首页平台配置 - 定时任务设置 - 定时策略管理 新增调度策略(通过cron表达式)。

我配置的是每10分钟跑一次,你当然可以配置每天凌晨2点跑一次,cron表达式还是很强大的。

流程设计

新增流程之后,通过流程设计功能进行具体的ETL配置:
在这里插入图片描述
第一步:先从左侧菜单拖入一个库表输入组件,一个库表输出组件,并选中上方的 流程线,将流程图按上图所示连接好。

第二步:配置库表输入节点,其实配置很简单,按照操作提示一步步配置即可:
在这里插入图片描述
第三部:配置库表输出节点,指定目标表的名称:
在这里插入图片描述
注意目标表的结构也不需要自己创建,可以选择从其他节点导入,选择第一步的库表输入节点,选择原表的结构导入即可,注意原表最好有主键字段,目标表中将该主键设置为目标表的关键字段,猜测该关键字段是数据迁移过程中新增、删除字段的依据
在这里插入图片描述
配置完成之后,保存流程即可。

跑流程、测试

流程配置完成之后,在流程首页立即调度该流程:
在这里插入图片描述
之后可以在任务监控中跟踪任务调度情况:
在这里插入图片描述
流程执行成功之后,到目标表中查看数据同步情况:

  1. 全量数据:首次同步之后,发现原表中的所有数据都已经同步到目标表中。
  2. 新增数据:在原表中新增一条数据,目标表能正确同步。
  3. 修改数据:修改原表中的一条数据,目标表能正确同步。
  4. 删除数据:删除一条数据,目标表能正确同步。

OK!单表数据传输可以用etlcloud轻松实现,其实etlcloud功能非常强大,文档相对来说也很健全,非常适合初学者上手。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java-幂等性

幂等性 1.1幂等性定义: 在计算机领域中,幂等(Idempotence)是指任意一个操作的多次执行总是能获得相同的结果,不会对系统状态产生额外影响。在Java后端开发中,幂等性的实现通常通过确保方法或服务调用的结…

Linux速览(1)——基础指令篇

在上一章对Linux有了一些基础了解之后,本章我们来学习一下Linux系统下一些基本操作的常用的基础指令。 目录 1. ls 指令 2. pwd&&whoami命令 3. cd 指令 4. touch指令 5.mkdir指令(重要): 6.rmdir指令 && …

事故预测 | Matlab基于FuzzySVR模糊支持向量机多特征变量事故预测

事故预测 | Matlab基于FuzzySVR模糊支持向量机多特征变量事故预测 目录 事故预测 | Matlab基于FuzzySVR模糊支持向量机多特征变量事故预测预测效果基本描述程序设计参考资料 预测效果 基本描述 Matlab基于FuzzySVR模糊支持向量机多特征变量事故预测 运行环境: Matlab2023及以 上…

波斯猫 6页面 宠物动物 长毛猫 HTML5 带背景音乐 JS图片轮播特效 滚动文字 鼠标经过图片 JS时间代码

波斯猫 6页面 宠物动物 长毛猫 HTML5 带背景音乐 JS图片轮播特效 滚动文字 鼠标经过图片 JS时间代码 注册表单 宠物网页成品 海量学生网页成品 个人博客 人物明星 城市家乡 旅游景点 美食特产 购物电商 公司企业 学校大学 科普教育 宠物动物 鲜花花卉 植物水果 茶叶咖啡 健康生…

JetCache源码解析——API实现(持续更新中……)

在JetCache中不仅可以通过在类和接口的函数上使用注解Cached、CacheUpdate和CacheInvalidate等实现缓存加载、更新和删除操作,也支持通过调用API接口的形式来实现缓存的加载、更新和删除操作。 缓存接口 缓存接口的定义如下: /*** 缓存接口&#xff0…

行为树入门:BehaviorTree.CPP Groot2练习(前置后置条件)(3)

前置与后置条件理论 前置条件 例程: //hp_get叶节点class hp_get : public BT::SyncActionNode{public:hp_get(const std::string& name, const BT::NodeConfig& config) :BT::SyncActionNode(name, config){}// 给该节点申明端口static BT::PortsList pro…

bxCAN总线的工作模式和测试模式(STM32F4xx)

概述 本文主要介绍STM32F4XX的bxCAN知识,包括bxCAN的概念,各种工作模式下特性,如何配置各类工作模式等内容,还介绍了bxCAN的测试模式,bxCAN测试模式有3种工作类型,每种类型有什么特性,以及如何配…

网络编程(2/29)

1、TCP通信模&#xff1a; 服务器&#xff1a; #include <myhead.h> #define SERVER_IP "192.168.125.230" #define SERVER_PORT 8888 int main(int argc, const char *argv[]) {//1、创建用于监听的套接字int sfdsocket(AF_INET,SOCK_STREAM,0);if(sfd-1){p…

Java:JVM基础

文章目录 参考JVM内存区域程序计数器虚拟机栈本地方法栈堆方法区符号引用与直接引用运行时常量池字符串常量池直接内存 参考 JavaGuide JVM内存区域 程序计数器 程序计数器是一块较小的内存空间&#xff0c;可以看做是当前线程所执行的字节码的行号指示器&#xff0c;各线程…

第二十一周周报

文献阅读&#xff1a;Recent Advances of Monocular 2D and 3D Human Pose Estimation: A Deep Learning Perspective 摘要&#xff1a;在本文中&#xff0c;作者提供了一个全面的 2d到3d视角来解决单目人体姿态估计的问题。首先&#xff0c;全面总结了人体的二维和三维表征。…

上传项目的全部依赖到maven私有仓库-nexus

背景 项目之前的私有仓库不能使用了&#xff0c;本地仓库可以&#xff0c;但是一旦clean就没了&#xff0c;所以在本地有依赖的时候可以自己搭建一个maven私有仓库然后将依赖全部上传上去 搭建&#xff1a;使用docker-compose方式搭建 docker-compose文件 version: "3…

游戏框架搭建

使用框架的目标&#xff1a;低耦合&#xff0c;高内聚&#xff0c;表现和数据分离 耦合&#xff1a;对象&#xff0c;类的双向引用&#xff0c;循环引用 内聚&#xff1a;相同类型的代码放在一起 表现和数据分离&#xff1a;需要共享的数据放在Model里 对象之间的交互一般有三…