数据仓库的特性是集成,把不同数据源、不同形式的数据整合在一起。大数据下的数据特点如下:
①数据多样性:包括高度结构化,易于处理的结构化数据以及服务器日志、图片、视频等非结构化数据
②数据量:传统的数据仓库每天的同步量在几百GB上下,大型的数据仓库每天达PB级别,甚至EB级别
批量数据同步:
1)离线的数据线仓库用于负责将不同数据源的数据同步到数据仓库,以及定时将数据同步到业务系统
2)要实现不同数据库与数据仓库之间数据的双向同步,必须把数据转换成某种中间状态进行数据格式的统一。目前使用字符串类型作为中间类型
以阿里巴巴DataX为例:2PB数据,3小时
① 通过插件的方式将数据从数据源转换为中间状态,同时提供传输、缓存等服务。
② 在DataX中数据以中间状态的形式存储,在业务系统中转化为需要的数据格式。
③ DataX采用FrameWork+Plugin的方式实现,FrameWork负责数据缓冲、流程控制、上下文切换、并发并提供接口与插件接入服务;Plugin 仅需实现对数据系统的访问,易于开发
④ 数据传输全部在内存中完成,实现异构数据库与数据仓库之间的高速数据交换
job:数据同步作业
Task:同步作业经过分解,切分成多个小人物
Reader:运行Task,将数据从源系统装载到DataX
Channel:Reader与Writer之间数据交换
Writer:将数据从DataX导出到目标系统
实时数据同步
1)对于日志类数据或者需要实时处理的业务数据,需要以流的方式把数据不间断的同步到数据仓库
2)采用的策略是建立数据交换中心,通过解析数据日志实时地将增量数据以流的方式不同同步到数据中心
以阿里巴巴TimeTunnel为例:
① 基于生产者、消费者、Topic的传输中间件,将消息持久化到HBase
② 生产者、消费者、Topic类似于kafka,Broker负责处理收发消息的请求,向Hbase取发数据
③ 实现基于Topic的读写分离(kafka的读写操作都在leader上)