收藏,数据仓库建设与框架终于有人给讲明白了

07-10 1013阅读

收藏,数据仓库建设与框架终于有人给讲明白了

收藏,数据仓库建设与框架终于有人给讲明白了

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

通过数据仓库建设的发展阶段,我们能够看出,数据仓库的建设和数据集市的建设的重要区别就在于数据模型的支持。因此,数据模型的建设,对于我们数据仓库的建设,有着决定性的意义。

2.数据仓库组成

  • 多种多样的数据源
  • 数据抽取、转换、导入(ETL)
  • 操作型的数据和分析型的数据
  • 主题模型
  • 数据集市
  • 报表、查询、EIS工具(主管信息系统—服务于组织的高层经理的一类特殊的信息系统能够迅速、方便、直观(用图形)地提供综合信息)
  • OLAP工具
  • 数据挖掘工具
  • 元数据
  • 数据质量管理
  • 数据标准化
  • 信息发布

    3.数据仓库的特点和建设的原则

    数仓仓库的既然本质是给企业存储计算各种数据源数据融合分析的。首先如果企业数据规模小,数据源单一,则无所谓,数仓仓库怎么搞都行。但是如果企业数据源及其多而复杂,数据体量及其庞大,如PB规模的数据,同时数据仓库的使用人员成千上万,那么如何管理这些海量的数据,如何设计数据的存储,如何管理这些人员的使用等等,都是一个难题。

    就像一个小公司一样,几十人,上百人时可以通过人情事故管理,灵活高效氛围好。但是一个几万人,几十万人的公司再去靠人情管理就不太现实了,这个时候怎么办?就要靠规章制度去约束规范大家,靠KPI考核大家了。同样,数据仓库的管理也是这样,海量数据存储计算的数据仓库建设,也有一些原则和规范给大家参考。

    1.数据仓库的数据是面向主题的

    什么是主题呢?首先,主题是一个抽象的概念,是较高层次上企业信息系统中的数据综合、归类并进行分析利用的抽象。在逻辑意义上,它是对应企业中某一宏观分析领域所涉及的分析对象。面向主题的数据组织方式,就是在较高层次上对分析对象的数据的一个完整、一致的描述,能完整、统一地刻划各个分析对象所涉及的企业的各项数据,以及数据之间的联系。所谓较高层次是相对面向应用的数据组织方式而言的,是指按照主题进行数据组织的方式具有更高的数据抽象级别。

    说人话,就是企业数据仓库中数据是分主题域的,比如以电商上行业为例,数据仓库建设的主题分为:会员信息主题域(会员信息相关所有数据),订单主题域,商家主题域,商品主题域等等。这些牵涉到数据建模的选型,为啥要这样建设成主题,这是很多企业历年经验总结的,具体好处原因后面数仓建模模块时详细分析。

    2.数据仓库的数据是集成的

    数据仓库的数据是从原有的分散的数据库数据抽取来的。操作型数据与DSS分析型数据之间差别甚大。

    第一,数据仓库的每一个主题所对应的源数据在原有的各分散数据库中有许多重复和不一致的地方,且来源于不同的联机系统的数据都和不同的应用逻辑捆绑在一起;

    第二,数据仓库中的综合数据不能从原有的数据库系统直接得到。因此在数据进入数据仓库之前,必然要经过统一与综合,这一步是数据仓库建设中最关键、最复杂的一步,所要完成的工作有:(1)要统一源数据中所有矛盾之处,如字段的同名异义、异名同义、单位不统一、字长不一致,等等。 (2)进行数据综合和计算。数据仓库中的数据综合工作可以在从原有数据库抽取数据时生成,但许多是在数据仓库内部生成的,即进入数据仓库以后进行综合生成的。

    简单点来说:就是数据仓库中数据是很多数据源数据融合后加工的,跟原来业务系统的数据差别会很大,比如数据根据各中国源数据汇总统计的,或者通过特定算法ETL加工处理后得来的。所以叫集成的。

    如下,公司各个保险业务库的数据,在数仓里,集成为一个保险主体的数据,既有明细数据也有各种汇总,统计,挖掘数据。

    收藏,数据仓库建设与框架终于有人给讲明白了

    3. 数据仓库的数据是不可更新的(相对稳定的)

    数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一般情况下并不进行修改操作。

    数据仓库的数据反映的是一段相当长的时间内历史数据的内容,是不同时点的数据库快照的集合,以及基于这些快照进行统计、综合和重组的导出数据,而不是联机处理的数据。数据库中进行联机处理的数据经过集成输入到数据仓库中,一旦数据仓库存放的数据已经超过数据仓库的数据存储期限,这些数据将从当前的数据仓库中删去。因为数据仓库只进行数据查询操作,所以数据仓库管理系统相比数据库管理系统而言要简单得多。

    数据库管理系统中许多技术难点,如完整性保护、并发控制等等,在数据仓库的管理中几乎可以省去。但是由于数据仓库的查询数据量往往很大,所以就对数据查询提出了更高的要求,它要求采用各种复杂的索引技术;同时由于数据仓库面向的是商业企业的高层管理者,他们会对数据查询的界面友好性和数据表示提出更高的要求。

    简单总结一下就是:数据仓库中保存的数据是一系列企业数据的历史快照,不建议被修改(实际分析会有数据回补的情况)。用户只能通过分析工具进行查询和分析。

    4.数据仓库的数据是随时间不断变化的(时变性)

    数据仓库中的数据不可更新是针对应用来说的,也就是说,数据仓库的用户进行分析处理时是不进行数据更新操作的。但并不是说,在从数据集成输入数据仓库开始到最终被删除的整个数据生存周期中,所有的数据仓库数据都是永远不变的。

        数据仓库的数据是随时间的变化而不断变化的,这是数据仓库数据的第四个特征。这一特征表现在以下3方面:

        (1)数据仓库随时间变化不断增加新的数据内容。数据仓库系统必须不断捕捉OLTP数据库中变化的数据,追加到数据仓库中去,也就是要不断地生成OLTP数据库的快照,经统一集成后增加到数据仓库中去;但对于确实不再变化的数据库快照,如果捕捉到新的变化数据,则只生成一个新的数据库快照增加进去,而不会对原有的数据库快照进行修改。

        (2)数据仓库随时间变化不断删去旧的数据内容。数据仓库的数据也有存储期限,一旦超过了这一期限,过期数据就要被删除。只是数据仓库内的数据时限要远远长于操作型环境中的数据时限。在操作型环境中一般只保存有6090天的数据,而在数据仓库中则需要保存较长时限的数据(如510年),以适应DSS进行趋势分析的要求。

        (3)数据仓库中包含有大量的综合数据,这些综合数据中很多跟时间有关,如数据经常按照时间段进行综合,或隔一定的时间片进行抽样等等。这些数据要随着时间的变化不断地进行重新综合。因此,数据仓库的数据特征都包含时间项,以标明数据的历史时期。

    4.数据仓库的分层架构原因与分层原则

    1.数据仓库要不要分层?

    数据仓库既然是数据存储计算的地方,那么为什么需要分层呢?同样也是数据规模,业务场景决定。可以说很多公司数据仓库建设刚起步时,大部分的数据都是经过粗暴的数据接入,进行ETL后就直接对接业务,生成报表或者导入业务系统直接使用。

    **后来随着公司业务的发展,数据的沉淀,数据仓库发展到一定阶段,发现数据的使用杂乱无章,各种业务都是从原始数据直接计算而得。**造成各种重复计算(可能两张表只差了几个字段,但每个人都跑了一次),严重浪费了计算资源和存储资源,企业负担成本极大。这个时候大家就要想着如何规范化存储和计算了,如何最大化降低企业成本。尤其数据规模越大的公司,需求越强烈。

    当然你公司数据规模小,非不分层可不可以,当然可以。也没必要搞那么规范,规范的不好之处就是要付出很大的人力成本去实施规范,监督规范的实施。最终的选择要结合你们企业的成本去考量,一切都要结合实际。

    2.数仓分层的好处有哪些?

    历史血的教训,各大厂总结了下数仓分层的好处:

    1. 清晰数据结构:每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
    2. 数据血缘追踪:简单来讲可以这样理解,我们最终给业务诚信的是一能直接使用的张业务表,但是它的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,并清楚它的危害范围。
    3. 减少重复开发:规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。
    4. 把复杂问题简单化。讲一个复杂的任务分解成多个步骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
    5. 屏蔽原始数据的异常。不必改一次业务就需要重新接入数据,或者业务改了数据,也不一定对现在有影响
    6. 屏蔽业务的影响,不必改一次业务就需要重新接入数据。
    3.数据仓库该如何分层及如何设计分层?

    数仓的分层好处有那么多?那么该如何分层?一切其实还是结合企业的实际情况,业务场景,数据规模,可以粗放型,也可以丰富更多的细节。

    具体数仓的分层设计,如何结合业务对企业数据仓库分层?主流大厂的数仓分层架构情况,设计原则等,分层如何命名?这些内容太多了,后面详细一章节结合案例分析。也可以先参考:数据仓库的四个层次设计

    5.数据仓库建模的选型与建模原则

    前面聊过数据仓库发展到规范化建设需要分层架构。那么每一层的数据建模的原则应该是什么样的呢?以及为什么需要数据建模?数据建模有哪些选型?

    收藏,数据仓库建设与框架终于有人给讲明白了

    收藏,数据仓库建设与框架终于有人给讲明白了

    网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

    需要这份系统化资料的朋友,可以戳这里获取

    一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

    ](https://bbs.csdn.net/topics/618545628)**

    一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]