手机版 欢迎访问人人都是自媒体网站
数据环境指的是数据存储、处理、转换所处的物理环境,例如生产环境、分析环境和测试环境等。
生产环境是生产应用和系统实时运行所处的环境,其中的数据是会实时变化的。
分析环境是与生产环境解耦的一个数据环境,在数据环境中对数据进行分析,不会影响生产环境的正常运行。分析环境中的数据来源于生产环境中的“快照”,因此本质上是离线的数据。
为保证分析环境的作业不对生产环境造成影响,我们应该避免数据直连的方式,即将原始数据直接从生产系统导入分析系统的紧耦合方式。这种方式在数据量较小时可能不会出现问题,但当数据量增大后,数据直连的弊端便会逐渐展现。主要体现在双方环境的互相影响、安全上的隐患、平台扩展性差等方面。因此更合理的办法是在生产环境和分析环境之间设置数据缓冲区,作为中转从各个系统接收原始数据并暂存,经过ETL后导入分析环境。
至此,根据数据所处环境,可将数据定义为3种基本形态:生产数据、原始数据和分析数据。数据和其所处环境之间的联系如下图所示。
数据形态及所处环境之间关系
1. 生产数据生产数据是动态的,会随着业务的变化而变化,例如用户订单状态会因为用户、商户、物流等相关方的行为而发生变化。数据分析工作通常不会直接接触生产数据,相反,分析数据可能会转化成生产数据。例如用户标签数据,是通过分析数据构建的,但可能会形成画像、推荐等应用,从而转化为生产数据为业务提供服务。
2. 原始数据原始数据由生产系统中的数据解耦而得到。解耦过程通常包括了数据脱敏、筛选、批量导出等。原始数据的存放应独立于生产环境和分析环境,以避免不同环境间的互相影响,也就是前面提到的数据缓冲区。
3. 分析数据分析数据由原始数据经过ETL后得到。ETL(Extract-Transform-Load)是抽取-转换-加载的缩写,该过程会对原始数据进行清洗、转换,按照统一的标准将数据存储在分析环境中。例如去掉一些无效字段,对空值、异常值进行插补,对日期格式进行统一等操作,都会在ETL过程中完成。ETL过程还可能包含对数据的优化存储,以提升存储和读取效率,比如创建索引、分区、分表等。
对分析数据的存储、使用,需要依赖于数据平台,数据平台的性能对处理分析数据有决定性的影响。不同规模、类型的分析数据,也可能适用于不同的数据平台。
具体的数据流转方式可参考下图,数据缓冲区作为中转,一端连接了生产环境中的各类应用系统,另一端连接了分析环境中的各类数据平台。
数据流转示例
数据平台数据平台是存放分析数据的平台,也是支持数据分析和挖掘的底层平台。数据平台包括了我们最为熟悉的传统数据仓库,以及一些“现代化”的多种数据库产品。简化的数据平台架构图如下。
数据平台架构图
现代的数据平台融合了传统的数据仓库、大数据平台、MPP数据库、NoSQL数据库等多种数据产品。
从平台架构视角来看,数据缓冲区属于原始数据层,也叫ODS(Operational Data Store)层或贴源层。ODS层的数据粒度更细,能从微观反映细节的关键数据,例如用户订单交易数据。在数据仓库(Data Warehouse,DW)中又分为基础层、主题层和数据集市层。
1. 基础层也有称DWD(Data Warehouse Detail)层,基础层对ODS层数据进行了清洗、转换(即前面提到的ETL过程),和轻度汇总。产出为数据明细、维度表、事实表等基础数据。例如订单表、商品列表以及一些日志表等。
2. 主题层也有称DWS(Data Warehouse Service)层,主题层对数据按照一定维度或业务逻辑进行高度聚合,生成不同主题下的表。主题层一般已不存在具体的明细数据,所有数据按照主题进行了归集。例如零售行业,可能会根据业务分成用户主题、商品主题、销售主题等。
3. 数据集市数据集市(Data Mart)也有称ADS(Application Data Store),数据集市将主题层和基础层的数据按照各业务的实际需求进行聚合,形成宽表或数据立方体(Cube),可直接供业务部门和数据分析团队使用。
数据集市中主要存在的是事实表(fact)和维度表(dimension)。
事实表中存放着业务的详细数据,例如订单、销售等业务数据。
维度表是围绕事实表建立的,存放着一些维度属性,定义了可以从哪些角度分析事实表,例如时间、地域、操作系统等维度。
数据集市中的数据结构一般有星型结构(star)和雪花结构(snow)。
Copyright © 2018 DEDE97. 织梦97 版权所有 京ICP