文章开头介绍下,有粉丝朋友曾留言让我分享下《数据增量同步和全量同步》,于是就抽空写篇原创博文来仔细讲讲吧,做技术分享。
本篇就来聊一聊 大数据领域 「数据接入」这块知识点。😄
通过大纲提问式进行概览,你能通过文章学到什么: 1. 常见的几种数据接入方式 2. 数据接入的几种业界同步策略 3. 面对海量数据同步的挑战,如何优化解决方案
附上一份文章脉络的思维导图帮助阅读
一、数据接入是什么
把数据同步至数据仓库中,称为数据接入,一般同步过来的数据存放在ODS贴源层。主要有抽数业务系统同步和埋点数据上报。
那么同步至数据仓库前的数据源有哪些呢?
关系型数据库的结构化数据:例如mysql/oracle/sqlserver 等
非关系型数据库的非结构化数据:例如hbase/mongodb/oceanbean 等
文件系统的结构化和非结构化数据:例如 阿里云对象存储OSS/文件存储NAS 等
二、数据接入几种策略方式
1. 数据库直连同步
直连同步是指通过定义好的规范接口API和基于动态链接库的方 式直接连接业务库,如 ODBC/JDBC 等规定了统一规范的标准接口,不同的数据库基于这套标准接口提供规范的驱动,支持完全相同的函数调用和SQL实现 直连同步这也是目前大数据平台离线同步数据的主要手段,但该方式对业务源系统的性能影响可能会较大,比如涉及到大批量数据同步时会拖垮业务系统的性能,如果业务数据库有采用主从库策略的话,那么我们从从库抽数还可以避免对业务系统的影响,但是数据量大的表同步,效率还是不高。
关于直连同步总结:
实现简单,是大数据平台离线同步的主要手段
同步数据量大的表,会影响业务系统的性能,谨慎操作,数据库若有主从库策略则要从从库抽数避免对业务系统直接影响,而且还要制定数据接入规范,避免业务高峰期大批量抽数操作,不然随时会带来影响线上服务的风险。
2. 数据文件同步
数据文件同步通过约定好的文件编码、大小、格式等,直接从源系 统生成数据的文本文件,由专门的文件服务器,如 FTP 服务器传输到目标系统后,加载到目标数据库系统中。 互联网的日志类数据通常是以文件形式保存的,适合这种同步方式。不过毕竟通过文件服务器上传下载的话难免会有丢包或者错误的风险,所以在传输数据文件的同时,为了确保数据文件同步的完整性,会一并传输一个校验文件,该校验文件记录了数据文件的数据量以及文件大小等校验信息,以供下游目标系统验证数据同步的准确性。另外还可以在源系统生成数据文件的同时进行压缩和加密操作,在目标系统接收数据文件时再进行解压缩和解密操作,保证数据文件同步的效率和安全性。
关于数据文件同步总结: