ETL工具常见技术问题答疑(一)

以下是灵蜂ETL工具产品在实际项目实施落地时遇到的典型技术问题(20个)总结:

1   灵蜂ETL工具(Beeload/BeeDI)如何与数据库交互,需要在数据库服务器安装代理程序吗?

灵蜂ETL工具产品通过TCP方式远程连接数据库,通常需要了解数据库服务器IP、端口、数据库名、用户及密码参数信息。不需要在数据库服务器安装任何代理程序,依据实际项目情况,灵蜂ETL产品可以单独部署在源数据服务器、目标数据服务器或单独的ETL服务器上。


2   灵蜂ETL工具(Beeload/BeeDI)支持哪些同步方式,各种同步方式的优缺点?

灵蜂ETL工具产品支持的数据同步方式分为全量和增量两类,其中全量方式包含全量覆盖和全表比对两种模式,增量方式包含时间戳、触发器、日志解析三种模式。各种同步方式的特点如下:

 

  • 全量覆盖

抽取前首先清空目标表的对应数据,然后将抽取数据装载到目标表,适合于历史数据初始化加载;另外对于T+1方式同步数据,即每天同步一次当天或前一天的业务数据,也可以采用全量覆盖方式处理。

全量覆盖方式由于处理数据较多通常会花费较长的时间,不适合实时同步的场景。

 

  • 全表比对

全表比对模式逐条比对源表和目标表记录,根据比较结果执行新增、修改或删除操作,运行效率较低,适合于不能使用增量同步方式时的备选方法,通常用于数据总量较小的表同步。

 

  • 时间戳

时间戳需要源表存在满足以下条件的字段或字段组合,字段值按照记录插入顺序递增(如流水号或日期值)、记录修改时,需要把对应字段值设为最大。

时间戳不能同步记录删除操作

 

  • 触发器

触发器模式需要在源库针对源表创建触发器和临时表,当源表已经存在其它触发器时,需要了解其它触发器内部逻辑以避免冲突。

触发器可以捕获数据的增加,删除,修改,适合于业务数据变化不大的情况,当业务数据变化较大时,会由于触发器降低系统性能

 

  • 日志解析

源库连接用户需要具备读取系统字典及日志的权限,源库需要开启归档模式。
日志解析模式可以捕获数据的增加,删除,修改操作,无需对源库结构作任何改变,但数据库日志会占用主库额外的磁盘空间。


3   灵蜂ETL工具(Beeload/BeeDI)是否支持双向数据同步,是否存在变化数据反复同步的情况?

灵蜂ETL工具系列支持双向数据同步,双向同步基于触发器或日志解析模式实施部署,对于变化数据的再次同步问题,灵蜂ETL通过识别数据的操作用户判定数据是否需要同步,从而可杜绝数据的反复同步。


4   当同步服务器、数据库服务器或网络出现故障恢复正常后,灵蜂ETL工具(Beeload/BeeDI)是否会出现数据丢失?

灵蜂ETL工具在增量模式下支持断点续传功能,在数据同步过程中会自动记录同步断点,断点信息仅在数据提交后记录。当发生上述故障时,ETL任务会重新运行并读取上次存储的同步断点,依据断点信息从源库抽取未同步提交的数据。由于断点仅在数据提交成功后记录,所以不会出现数据丢失的情况。


5   灵蜂ETL工具(Beeload/BeeDI)支持字符集不同(如GBK到UTF8)的数据库间数据同步吗?

灵蜂ETL工具内置字符串编码转换功能,对于非GB字符集,只需在数据库连接参数中指定正确的数据库编码,软件即可自动对数据库抽取或插入数据库的数据进行正确的编码。


6   灵蜂ETL工具(Beeload/BeeDI)提供哪些数据转换及过滤功能,对于一些复杂的处理,如果软件没有直接匹配的功能该如何处理?

灵蜂ETL工具支持各种字段级的映射转换,如类型转换、字段运算、参照转换、字符串处理、字符集转换、空值处理、日期转换、聚集运算、既定取值、字段切分、字段合并等;支持记录间的合并及计算;支持基于布尔表达式的数据的分流、过滤;支持横表纵表转换(BeeDI)等。

对于某些复杂的转换过滤功能,软件支持自定义单独的脚本函数,在脚本中可编辑极其复杂的转换或过滤逻辑,然后在ETL中调用自定义函数即可。


7   对于源端和目标端表名、字段名及字段类型皆不相同的情况,灵蜂ETL工具(Beeload/BeeDI)能否提供数据转换?

灵蜂ETL工具内置各种数据类型转换功能,对于源和目标表名不同、字段名称及类型皆不相同的情况,只需使用与源及目标字段类型匹配的转换函数即可实现转换规则定义。如源表tab1字段field1类型为字符串表示的时间,格式为YYYY/MM/DD hh:mm:ss,目标表tab2字段field2类型为时间型字段,在目标表tab2的字段field2对应的赋值表达式中输入toDateTime(tab1.field1,” YYYY/MM/DD hh:mm:ss”)即可实现转换。


8   相对于指定映射表的常规图形化配置,灵蜂ETL工具(Beeload/BeeDI)是否支持大批量表的ETL规则定义?

灵蜂ETL工具除支持图形化ETL配置外,也提供集成脚本开发环境。对于大批量(成千上万张)表的ETL规则定义,采用图形配置需要耗费大量人力去逐一定义表的转换规则,而通过脚本可以统一定义转换逻辑,极大减轻ETL的实施及维护成本。


9   灵蜂ETL工具(Beeload/BeeDI)是否支持跨越多个库的数据合并?

对于多个库的数据合并,有以下两种方式进行合并:

通过灵蜂ETL工具先将多个库的数据落地到中间库,然后在ETL任务中利用中间库的SQL功能抽取合并数据并存入目标库。

直接通过灵蜂ETL工具系列之BeeDI的数据联邦功能在ETL软件内部进行跨库数据合并,将合并结果存入目标库。


10  灵蜂ETL工具(Beeload/BeeDI)是否支持不同类型数据库间的整库同步(如SQL Server到Oracle),是否支持DDL操作同步?

对于异类数据库,有以下两种方式实现整库同步:

触发器方式,灵蜂ETL工具首先遍历源库为每个表创建触发器和缓冲增量数据的临时表,执行历史数据同步。然后定时读取临时表的增量数据并将其同步到目标库。

日志解析方式,同步前必须开启源库归档日志。灵蜂ETL工具系列之BeeDI首先遍历源库完成所有表的历史数据同步,然后从预设的初始时间点开始顺序解析源库日志,获取增量数据并将其同步到目标库。

灵蜂ETL产品支持DML同步,不支持DDL同步。灵蜂复制产品(Beedup)既支持DML又DDL同步。

 

灵蜂产品系列安装包下载地址:http://www.livbee.com/download.html 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值