EtlCloud安装部署及简单应用

文章讲述了作者在处理数据同步业务场景时,从编码实现的繁琐到考虑使用ETL工具Etlcloud。介绍了选择Etlcloud的原因、安装部署过程、配置数据源和同步流程,以及通过Etlcloud实现单表数据的全量同步、新增、修改和删除的测试结果,显示了其作为初学者友好的ETL解决方案的高效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

最近碰到了一个数据同步的业务场景,客户要求生产环境的某些特定数据定时同步到指定的数据池中,并对数据池中的表名称有特殊要求,必须以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\data
  journal:
    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功能非常强大,文档相对来说也很健全,非常适合初学者上手。

### ETLCloud与Oracle集成设置及使用 #### 集成背景 ETL (Extract, Transform, Load) Cloud 是一种用于数据抽取、转换和加载的服务平台,旨在简化不同系统间的数据迁移过程。当涉及到 Oracle 数据库时,这种集成可以极大地提高工作效率并减少手动操作带来的错误风险。 #### 设置环境准备 为了成功实现 ETLCloud 和 Oracle 的无缝对接,需确保具备如下条件: - 安装有适当版本的 JDK 或 OpenJDK。 - 已经部署好 Oracle Database,并开放必要的网络端口以便远程连接[^2]。 - 准备好了相应的 JDBC Driver 来支持 Java 应用程序访问 Oracle DB[^3]。 #### 创建数据库链接 通过 JDBC URL 建立到目标 Oracle 数据库的安全连接是至关重要的一步。通常情况下,URL 格式如下所示: ```java String url = "jdbc:oracle:thin:@//hostname:port/service_name"; Connection conn = DriverManager.getConnection(url, username, password); ``` 对于固定绑定类型 `NUMBER(9,0)` 到 C++ 中整数的情况,Tomasz Olszewski 提出了有效的解决方案来处理这类数值映射问题[^1]。 #### 使用 FANWatcher 订阅通知服务 FAN(Fast Application Notification)是一种由 Oracle RAC 发布的通知机制,允许应用程序接收来自集群状态变化的消息。为了验证是否能够正常接收到这些消息,在客户端上安装名为 **FANWatcher** 的工具是非常有用的。该工具可以通过订阅 ONS (Oracle Notification Service),实时监控并展示所捕获的所有事件信息。 #### Web Services 导出配置 如果计划利用 JAX-WS 技术栈导出自定义 Web 服务,则需要注意保持 Servlet Endpoint 所属的应用上下文与 Spring IoC Container 处于同一级别内运行。这有助于充分利用 Spring Framework 提供的各种特性和服务功能。 #### 自动化工作流管理 Apache Airflow 能够显著提升大规模数据集整合工作的效率。借助其灵活的任务调度能力和丰富的插件生态体系,用户不仅可以在短时间内完成复杂的数据流转流程编排;而且还能有效保障整个过程中各个环节的一致性和准确性,从而为企业带来更高的生产率以及更优的成本效益表现[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值