Q1: 对于数据仓库的理解,数据仓库解决什么问题?
1. 数据仓库可以理解为一个大的数据集合,它的功能是面向数据分析和决策支持;
2. 数据仓库不生产数据,它所有的数据都是同步自业务系统,而众多业务系统数据会面临着分散,异构,多源性等问题,不便于进行数据分析,所以就需要数据仓库来对生产数据进行整合、处理后再对用户进行提供,提升用户对数据的提取效率;
3. 从数据仓库定义来看,它是一个面向主题的,集成的,相对稳定和反应历史变化的数据集合,也较好的说明了数据仓库的特点和对分析场景的支持;
Q2: 数据仓库模型的理解,数据仓库分层设计的好处是什么?
1.从宏观来讲,数据分层是为了更好的组织,管理,使用和维护数据。为了达到以上的目的,采用了数据解耦的方式,而数据分层就是解耦的方式之一。
2.从微观来说,数据分层解决了ETL任务及工作流的组织、数据的流向、读写权限控制、不同场景满足等各类实际问题;越往上的数据模型,聚合程度越高,数据使用越友好,信息量会降低;越偏近底层的数据模型,数据粒度会越低,信息量也会增多,但数据获取和处理成本会增加;
4.另外,数据分层的意义具体可以包含以下几点:
4.1 复杂的问题简单化,通过数据分层,将复杂的业务处理拆解为多层,每一层负责解决处理特定问题,以此来简化复杂业务逻辑;
4.2 公共逻辑沉淀且单一化,一方面减少重复开发和数据冗余,另一方面,也统一了数据口径问题,开发效率也会提升;
4.3 便于进行数据血缘的追踪,当出现问题时,可以较小程度的取解决问题;并且每层数据都有各自明确的作用域和职责,在使用的时候也更方便定位和理解;
4.4 可以更方便的进行权限控制和管理,通过数据分层,针对不同粒度、层级的数据可以有更好的权限控制方式,降低管理复杂度。
Q3: 数据建模考虑的点是什么,针对一个业务场景,数据模型大致怎么设计?
单个数据模型表的设计考虑点比较多,首先要明确要做的是哪一层的数据模型表,不同层级的模型在设计时考虑的点是不一样的;
1.1 如果是底层明细模型,首先它是下游所有数据表的支撑表,在设计时首先要参考和遵守数仓的设计规范,包括数据字段结构,命名等问题,然后需要明确它的数据域、业务过程的划分;然后是它的属性字段需要覆盖全面;其次就是需要关注它的数据质量约束等;
1.2 如果是汇总层模型,首先要考虑通用性,要明确它是什么分析主题,在该主题下是否有冗余的数据表,它要覆盖下游的的那些应用场景,哪些公共处理逻辑可以下沉;同时还要考虑扩展性和维护成本的平衡等;
1.3 如果是应用层模型,需要考虑的是它的用户是谁,需求背景是什么,使用方式是什么(eg. adhoc查询,还是面向报表系统,多维分析等)不同的使用方式可能对应的数据表结构是不一样的;其次要明确它的统计粒度,周期,维度,更新频率是怎样的,它的生命周期是怎样的;最后根据需求的复杂程度,还需要评估是构建一张表还是进行纵向拆分为多个模块等等。
Q4: 对于数据中台的理解,和数据仓库和数据湖的区别
1. 首先,数据中台、数据仓库和数据湖没有直接的关系;
2. 数据中台是一套可持续“让企业的数据用起来”的机制,一种战略选择和组织形式,是依据企业特有的业务模式和组织架构,通过有形的产品和实施方法论支撑,构建一套不断把数据变为资产并服务于业务的机制。数据中台具备4个核心能力:数据汇聚整合、数据转化加工、数据服务可视化、数据价值变现。
3. 数据仓库是一个相对具体的功能概念,是存储和管理一个或多个主题数据的集合,为业务提供分析、决策等功能,可以理解数据仓库是数据中台中的内容资产;
4. 数据湖(DataLake)是一种存储企业的各种原始数据的大型仓库,其中的数据可供存取、处理、分析及传输。数据湖是以自然格式存储的数据的系统或存储库,通常是对象Blob或文件,可以存储时不需要对其进行结构化的定义。它与数据仓库的差异是:数据仓库大多存储的是结构化数据,面向数据分析;而数据湖存储的包含结构化数据(关系型系统数据库中的数据),半结构化数据(CSV,日志,XML,JSON)和二进制数据(图像、音频、视频),主要面向深度学习。
Q5: 谈谈你对元数据管理的理解和数据资产管理的理解
1. 数据资产管理:什么是数据资产?先来看一下资产的概念:“资产是指由企业过去的交易或事项形成的、由企业拥有或控制的、预期会给企业带来经济利益的资源”。而数据资产的表现形式主要有两种形式:可以帮助公司内部产品实现收益的增长;数据本身可以产生价值;而数据资产管理指的是对数据资产的治理、分析和应用的过程。
2. 元数据管理:元数据是有关于数据的描述,是数据的数据。具体包含技术元数据、业务元数据、管理元数据等分类