1.模型设计
1.1 维度建模或实体关系建模
1.2 星形模型和雪花模型
1.3 数据分层
1.4 数据库层
1.5 数据中间层
1.6 数据集市层
2. 数据架构
2.1 数据整合
2.2 数据服务化
2.3 建筑设计中的一些实用要点
3. 数据治理
3.1 数据质量
3.2 数据生命周期管理
随着互联网规模的不断扩大,数据也呈爆发式增长,产生了各种结构化、半结构化、非结构化数据。 越来越多的企业开始在大数据平台下处理数据。 本文主要从总体思路、模型设计、数据架构、数据治理四个方面介绍如何利用大数据平台的特点来构建更适合大数据应用的数据仓库。
新环境下的数据应用具有业务变化快、数据源多、系统耦合多、应用深度深等特点。 那么基于这些特点,如何构建数据仓库呢? 我觉得应该从稳定、可信、丰富、透明这四个关键词入手。 其中,稳定性要求数据的输出稳定且有保障; 可信度意味着数据的质量必须足够高; 丰富性是指数据所覆盖的业务层面必须足够丰富; 透明性要求数据合成处理系统透明,让用户放心使用。
我们之所以选择基于大数据平台构建数据仓库,是由大数据平台丰富的特性决定的:
仓库架构设计原则包括四点:一是自下而上与自上而下相结合,保证数据采集的全面性; 第二,容错能力高。 随着系统耦合度的增加,任何系统出现任何问题都会引发问题。 数据仓库服务是有影响的,所以在构建数据仓库时,高容错能力是一个必不可少的因素; 第三,数据质量监控需要贯穿整个数据流程。 毫不夸张地说,数据质量监控所消耗的资源可以相当于仓库建设的数据资源; 第四,无需担心数据冗余,充分利用存储,方便使用。
1.模型设计
构建数据仓库的第一步是模型设计。
1.1 维度建模或实体关系建模
常见的模型设计思想包括维度建模和实体关系建模。 维度建模实现简单,便于实时数据分析,适合业务分析报告和BI。 实体关系建模结构复杂,但有利于主题数据的连接,适合复杂数据内容的深度挖掘。
每个企业在建设自己的数据仓库时,应该根据自己的业务形态和需求场景选择合适的建模方法。 对于应用复杂的企业,可以采用多种建模方法。 例如,在基础层使用维度建模,使维度更加清晰; 中间层采用实体关系建模,使中间层更容易被上层应用程序使用。 。
1.2 星形模型和雪花模型
除了建模方式之外,用户在选择星星模型和雪花模型时也可能会陷入两难的境地。 事实上,这两种模型是共存的,星星是雪花模型的一种。 理论上,真实数据的模型都是雪花模型; 在实际的数据仓库中,两种模型并存。
由于星型模式结构相对简单,我们可以利用数据中间层的数据冗余,将雪花模型转换为星型模式,有利于数据应用,减少计算资源消耗。
1.3 数据分层
确定建模思路和模型类型后,下一步就是数据分层。 数据分层可以让数据构建体系更加清晰,方便数据使用者快速定位数据; 同时,数据分层还可以简化数据处理过程,降低计算复杂度。
我们常用的数据仓库的数据分层通常分为三层:市场层、中间层、基础数据层。 将传统的多层结构缩减为上下三层结构的目的是为了压缩整个数据处理过程的长度。 同时,扁平化的数据处理流程有利于数据质量控制和数据运维。
在三层结构的右侧,我们添加了流数据,并将其添加为数据系统的一部分。 这是因为当前数据应用的方向会越来越注重数据的时效性。 数据越实时,其价值就越高。
但由于流数据集的采集、处理和管理成本较高,一般采用需求驱动的方式构建; 另外,考虑到成本因素,流数据系统的结构比较扁平,通常不设计中间层。 。
让我们仔细看看每一层的作用。
1.4 数据库层
数据库层完成的主要任务包括以下几点:
1.5 数据中间层
数据中间层最重要的目标是连接同一实体的不同来源的数据。 这是因为在当前的业务模式下,同一实体的数据可能分散在不同的系统和来源中,并且这些数据对于同一实体可能具有不同的标识符。 。 此外,数据中间层可以从行为中抽象出关系。 从行为中抽象出来的基本关系将是未来上层应用非常重要的数据依赖。 例如,兴趣、偏好、习惯等抽象的关系数据是推荐和个性化的基本生产材料。
在中间层,往往会进行适当的数据冗余,以保证主题的完整性或提高数据的可用性。 例如,某个事实数据与两个主题相关,但尚未成为独立主题,则将其放入两个主题库中; 为了提高单个数据表的复用性,减少计算相关性,通常在事实表中进行冗余。 部分尺寸信息。
1.6 数据集市层
数据集市层是三层架构的顶层。 它通常由需求场景驱动构建,并在各个市场之间垂直构建。 在数据集市层,我们可以深度挖掘数据的价值。 值得注意的是,数据集市层需要能够快速试错。
2. 数据架构
数据架构包括数据集成、数据系统、数据服务三部分。 其中,数据集成可分为结构化、半结构化和非结构化三类。
2.1 数据整合
结构化数据采集可以细分为三类:全量采集、增量采集、实时采集。 三种采集方式各自的特点及适用场合如上图所示。 其中,全收集法是最简单的; 实时采集的采集质量是最难控制的。
传统架构中,日志的结构化处理是放在数据仓库系统之外的。 在大数据平台仓库架构中,日志在收集到平台之前并没有结构化;
在大数据平台上,每条日志按行字符划分,整个日志存储在一个数据表字段中; 随后通过UDF或MR计算框架对日志进行结构化。
我们认为,日志结构越标准化,解析成本就越低。 在日志结构化的过程中,不需要将数据内容完全扁平化,只需要对重要的公共字段进行结构化; 同时,为了保证可扩展性,我们可以利用数据冗余来保存原有的匹配字段(如)。
非结构化数据需要先结构化才能使用。 非结构化数据特征提取包括语音转文本、图像识别、自然语言处理、图像合规、视频识别等方法。 虽然目前的数据仓库架构体系不包含非结构化数据特征提取操作,但在未来,这将成为可能。
2.2 数据服务化
数据服务化包括统计服务、分析服务和标签服务:
2.3 建筑设计中的一些实用要点
建筑设计中有一些实用的要点。 让我与您分享:
首先,通过巧妙利用虚拟节点,实现多系统数据源同步,实现跨系统数据传输,实现多个应用之间的数据交互。 通过虚拟节点的巧妙运用,降低实际问题发生时运维人员的运维成本。
其次,使用强制分区,对所有表添加时间分区。 通过分区,保证每个任务可以独立重新运行,不会造成数据质量问题,降低数据修复成本; 另外,通过分区剪枝,还可以降低计算成本。
第三,应用计算框架完成了日志结构化等操作以及类似的数据计算过程,减轻了开发人员的负担,让维护变得更容易。
第四,优化关键路径。 优化关键路径中最长的任务是保证数据生产时间的最有效方法。
3. 数据治理
数据治理并不是独立于系统的保障。 它应该贯穿数据仓库架构和数据处理过程。
3.1 数据质量
为了确保数据质量,您可以在活动之前、期间和之后开始。
事先我们可以针对每一条数据制定数据质量监控规则。 数据越重要,对应的监控规则就越多; 在此过程中,通过对数据生产过程的监控和影响,我们可以对不符合质量要求的数据进行干预,使其不影响下游数据的质量; 之后,通过对数据质量进行分析和打分,将一些不足和改进的地方反馈到数据监控系统,促进整体数据质量的提升。
3.2 数据生命周期管理
由于成本等因素,我们仍然需要对大数据平台上的数据生命周期进行管理。 数据根据使用频率分为四类:冰、冷、温、热。 合理的数据生命周期管理必须保证热点数据占整个数据系统的大部分; 同时,为了保证数据资产的完整性,重要的基础数据将长期保留。 对于中间数据计算过程的数据,缩短数据保留期限将有助于降低存储成本,同时保证大多数应用程序可以访问历史数据。 最后一点值得注意的是,冷备份已经成为过去。 在大数据平台下不需要单独的冷备设备。