1.直连同步
通过定义好的规范接口API和基于动态动态链接库的方式直接连接数据库;eg:ODBC\JDBC等规范了统一规范的标准接口,不同的数据库基于这套标准接口提供规范的驱动,支持完全相同的函数调用和SQL实现。
- 适用场景:操作型业务系统的的数据同步
- 优点:
- 配置简单
- 实现容易
- 缺点:
- 大批量数据同步会降低业务系统性能
- 即使业务库采取主备策略,当数据量较大时采取从备库抽取数据性能也很差,不太适合业务系统到数仓系统的同步。
2.数据文件同步
数据文件通过约定好的文件编码,大小,格式等,直接从源系统生成数据的文本文件,再由专门的数据服务器(eg:FTP)传输到目标系统后,加载到目标数据库系统中。
- 适用场景:日志采集信息较完整数据格式稳定的业务系统
- 优点:
- 当数据源包含多个数据库系统时,这种方式比较简单实用
- 互联网日志一般是以文本方式存储,也适合数据文件同步方式
- 缺点:
- 文件服务器的上传下载可能会导致丢包或错误,为确保数据文件同步的完整性,需要一个记录了文件的数据量和文件大小等校验信息的校验文件
- 在文件传输的过程中需要主义传输效率和安全性
3.数据库日志解析同步
大多数主流数据库都已实现了使用日志文件用以收集变化的数据信息,因为日志文件信息足够丰富,而且数据格式稳定,完全可以通过解析日志文件获取数据信息变化,从而满足数据同步的需求。
- 适用场景:广泛应用于业务系统到数据仓库系统的增量数据同步应用
- 优点:
- 日志解析同步方式实现了实时与准实时的同步能力,延迟可以控制在毫秒级别
- 对业务系统性能影响比较小
- 缺点:
- 数据延迟,业务系统批量补录可能会导致数据更新量超过系统处理峰值,导致数据延迟
- 投入较大,采用数据库抽离的方式投入较大,需要在源数据库和目标数据库之间部署一个系统实时抽取数据
- 数据漂移和遗漏。数据漂移,一般是对增量表而言的,通常指该表的同一业务日期数据中包含前一天或则后一天凌晨的数据或则丢失当天的变更数据。
参考书籍《大数据之路:阿里巴巴大数据实践》