《ETL原理及应用》学习笔记 ·002【需求和数据建模】

注:前言、目录见 https://blog.csdn.net/qq_44220418/article/details/108428971

Tips:本节内容偏概念性,做简单了解即可

一、需求

1、业务需求

业务需求是数据仓库最终用户的信息需求。我们使用业务需求这个术语来狭义地表示最终用户作出决策所需的信息内容。其他方面的需求会扩展业务需求的定义,当然这也意味着ETL小组必须引入更多的信息源。

许多情况下,最初对数据源的调查不一定完全反映数据的复杂性和局限性。ETL小组常常要做出重要的判断——原始数据源是否能解决用户的业务需求。当然,ETL小组也常常会发现数据源的额外的能力,从而扩展最终用户的决策支持能力。从更广泛的意义上讲,业务需求和数据源的内容都是不断变化的,需要不断地进行检验和讨论

2、合规需求

近年来,企业上报的数据必须更加准确与完整,绝不允许篡改。当然,像电信这样的行业使用数据仓库来满足日常报表需求已经有很多年。但无论如何,对财务报表的要求已经变得越来越严格。

也许有些财务报表的问题跟数据仓库无关,但其他大部分的问题都能够在数据仓库范围内解决。对数据仓库典型的需求包括:

  • 数据源的归档备份以及随后的数据存储
  • 任何造成数据修改的交易记录的完整性证明
  • 对分配和调整的规则进行完备的文档记录
  • 数据备份的安全性证明,不论是在线还是离线进行

3、安全需求

近年来所有IT领域对安全关注的程度都有极大的提高,但对于大多数数据仓库小组而言,安全问题依然是一个事后的、额外的负担,对安全性的考虑充满争议。数据仓库的目的是为决策者提供广泛的数据,而安全性则要求数据仓库只向用户提供应该访问的数据

这样的安全处理方式对ETL小组最直接的好处在于,不必过多考虑安全性的设计和管理,但是ETL小组仍需要考虑对物理表的读/写权限。ETL小组的开发环境应当是在位于包过滤网关后面的子网内,如果ETL环境位于整个企业内网,那么内网内的任何恶意代码都可能在不知不觉中被安装,从而截获对数据库的管理员口令。

另外,安全的范畴必须扩展到数据的物理备份。如果磁带或硬盘可从物理备份中轻易移走,那么安全性就存在一定的漏洞。

二、数据建模

1、数据评估

数据评估是一个系统的检测过程,对ETL需要使用的数据源的质量、范围和上下文进行检查。从极端意义上讲,一个清洁的数据源是一个维护良好的数据源,只需进行最少量的数据转换和人工干预就可以直接加载到最终的事实表和维表。 但对于脏数据源可能需要如下的步骤进行处理:

  • 完全清除某些输入字段
  • 补入一些遗失的数据,产生特殊的代理键
  • 自动替换掉某些错误数据值
  • 在记录级别上进行人工干预
  • 对数据进行完全规范化的表述

2、数据集成

数据集成对IT人员是一个比较大的题目,因为IT人员的最终目标是将全部系统无缝的集成到一起。“360度的业务视图”就是对数据集成的业务解释。很多情况下,严格意义上的数据集成应当在数据进入数据仓库之前完成,但其实只有极少的时候才如此,除非企业只有一个单一的数据源,比如ERP系统,即使这样,通常情况下某些重要的交易系统也是位于ERP系统之外的。

规格化的事实表意味着在分离的数据库中建立公共业务度量,比如关键绩效指标(KPI)等,以便于通过差值和比率对这些数值进行比较。

ETL系统中,数据集成是数据流程中一个独立的步骤,叫做规格化步骤。物理上讲,此步骤需要为一致性维度实体和事实设置通用名称。

3、水平/垂直方式任务流

水平方式组织任务流是指每个最终的数据库加载相互独立运行因此,如果有订货和配送两项任务,这两项数据库加载任务会相互独立运行。这通常意味着抽取、清洗、转换和提交的步骤在两个工作流之间是非同步的。

垂直方式任务流对多个离散的作业进行同步,这样最终的数据库加载会同步进行尤其是多个系统使用共同的维表时,比如客户或供应商等,之前的步骤一定要同步。这样,如果之前的步骤没有全部执行完,后面的步骤,比如转换或提交等就不会往下运行。

4、调度自动化

另一个架构方面的选择是,在多大程度上使用自动化调度技术控制整个ETL系统。

一种极端的方式是,每一个作业都是由输入一个命令行或者点击某个图标发起。

另一种极端的方式是,有一个主调度工具管理全部的作业,判断作业是否成功运行,查看各种系统状态是否满足要求,处理人机交互,比如输出警报和作业流状态报告。

5、异常处理

异常处理不是在文件中放置一些随机的少量的警告和注释,而应当是系统地、统一地将整个ETL过程中抛出的全部异常事件放置在数据库中,包括进程的名称,发生异常的时间,诊断的严重性,应当采取的动作,以及异常的最终状态等等。因此,每个作业都需要向数据库写入异常报告的记录。

6、恢复与重启

从一开始建立ETL系统的时候,就应当考虑如何保证系统从非正常结束状态下的恢复和重启能力。

比如有一个ETL作业是从全部的产品种类中抽取某个品牌产品的销售业绩,这样的任务不允许执行两次。在设计每一个ETL作业时都需要这样来考虑问题,因为每个作业迟早都会出现非正常终止或者错误地执行多次的情况。无论如何,必须想办法防止发生这种情况。

7、元数据

来自于关系型数据库表和数据模型设计工具的元数据比较容易获取,但这些元数据可能只占系统全部元数据的25%。还有25%的元数据会在数据清洗过程中产生。对于ETL小组而言,最大的元数据难题是在哪里以及以何种方式存储流程信息。ETL工具的一个重要的优势在于它们能够自动维护流程元数据。

8、数据管理

准备数据,通常也叫做数据管理,是指获取数据并将数据转化成信息,最终将这些信息提交到前端的查询界面。

后台不提供查询服务。我们的数据仓库方法论假设在后台数据访问是被严格禁止的,这是前台的唯一目的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

God-Excious

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值