精华内容
下载资源
问答
  • 自从1991 年数据仓库之父Bill Inmon 提出了数据仓库概念以来,数据仓库已从早期的探索走向实用阶段,进入了一快速发展阶段。在此期间,全球经济急速发展,激烈的竞争、企业间频繁的兼并重组,使企业对信息的需求...

          自从1991 年数据仓库之父Bill Inmon 提出了数据仓库概念以来,数据仓库已从早期的探索走向实用阶段,进入了一个快速发展阶段。在此期间,全球经济急速发展,激烈的竞争、企业间频繁的兼并重组,使企业对信息的需求大大加剧,这是数据仓库发展的根本原因。当越来越多的企业开始重视数据资产的价值时,数据仓库也就成为必然的选择。
         目前企业面对经济增长减缓和竞争日益激烈的双重压力,为继续保持经济的高速稳定增长,大量的企业面临着减员增效、股份制改造等各种变革,准确、全面的信息是企业变革制胜的法宝。随着经营策略从以产品为中心转变为以顾客为中心,数据的潜在价值正在得到越来越多的关注,企业已经认识到充分地利用信息是应对挑战的关键,数据仓库正成为IT 领域中被关注的热点技术。
        信息技术的广泛应用使企业的运营更加高效、灵活,但同时也带来了“数据爆炸”的问题,许多遗留下来的历史数据被束之高阁人们面对浩如烟海的数据显得手足无措,如何有效地组织和存储数据,把其内部隐藏的信息转化为商业价值,为企业效益提供服务成为决策者们迫切关心的问题。数据仓库作为高效集成、管理数据的技术,为各级决策者洞察企业的经营管理状况,及时发现问题,为提高决策水平提供了基础。目前数据仓库逐渐被越来越多的企业应用。


    3.1 从数据库到数据仓库
         企业的数据处理大致分为两类。一类是操作型处理,也叫联机事务处理(OnLine Transaction Processing,OLTP),它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。另一类是分析型处理一般针对某些主题的历史数据进行分析,支持管理决策

         企业经过数年的信息化建设,数据库中都会积累大量的日常业务数据,传统的决策支持系统(DSS)直接建立在这种事务处理环境上。然而传统的数据库对分析处理的支持一直不能令人满意,这是因为操作型处理和分析型处理具有不同的特征,主要体现在以下几个方面。
    1)处理性能。日常业务涉及频繁、简单的数据存取,因此对操作型处理的性能要求较高,需要数据库在很短时间内做出响应。与操作型处理不同,分析型处理对系统的响应并不要求那么苛刻。有的分析甚至可能需要几个小时,耗费大量的系统资源。
    (2)数据集成。企业的操作型处理通常较为分散,传统数据库面向应用的特性使数据集成困难。数据分散,缺乏一致性,外部数据和非结构化数据的存在使得很难得到全面、准确的数据;而分析型处理是面向主题的,经过加工和集成后的数据全面、准确,可以有效支持分析。
    (3)数据更新。操作型处理主要由原子事务组成,数据更新频繁,需要并行控制和恢复机制。但分析型处理包含复杂的查询,大部分是只读操作。过时的数据往往会导致错误的决策,因此对分析型处理数据需要定期刷新。
    (4)数据时限。操作型处理主要服务于日常的业务操作,因此只关注当前的数据。而对于决策分析而言,对历史数据的分析处理则是必要的,这样才能准确把握企业的发展趋势,从而制定正确的决策。
    (5)数据综合。操作型处理系统通常只有简单的统计功能。操作型处理积累了大量的细节数据,对这些数据进行不同程度的汇总和聚集有助于以后的分析处理。
    总的来说,操作型处理与分析型处理系统中数据的结构、内容和处理都不相同。Bill Inmon 归纳了操作型处理与分析型处理的区别,如表3.1 所示。
          2011060914114627.jpg

          从以上分析可见,操作型数据库是面向企业日常的数据处理,用户是企业的业务人员,难以支持复杂的数据分析;而分析型处理是面向分析、支持决策的,用户多是企业的各级管理人员,通过对企业运营的历史数据进行分析,得到信息、知识辅助决策。

    3.2 数据仓库的概念
         从本质上讲,设计数据仓库的初衷是为操作型系统过渡到决策支持系统提供一种工具或整个企业范围内的数据集成环境,并尝试解决数据流相关的各种问题。这些问题包括如何从传统的操作型处理系统中提取与决策主题相关的数据,如何经过转换把分散的、不一致的业务数据转换成集成的、低噪声的数据等。
    Bill Inmon 认为数据仓库就是面向主题的(Subject-Oriented )、集成的(Integrated)、非易失的(Non-Volatile)和时变的(Time-Variant )数据集合,用以支持管理决策 。数据仓库不是可以买到的产品,而是一种面向分析的数据存储方案。对于数据仓库的概念可以从两个层次理解:首先,数据仓库用于支持决策,面向分析型数据处理,不同于提高业务效率的操作型数据库;其次,数据仓库对分布在企业中的多个异构数据源集成,按照决策主题选择数据并以新的数据模型存储。此外,存储在数据仓库中的数据一般不能修改。
    数据仓库主要有以下特征。

     
    1.面向主题
          在操作型数据库中,各个业务系统可能是相互分离的。而数据仓库是面向主题的。逻辑意义上,每一个商业主题对应于企业决策包含的分析对象。从图3.1 中可以看出,一个保险公司的数据仓库的主题可能有顾客、政策、保险金和索赔等。

          2011060914164716.jpg
          操作型处理对数据的划分并不适用于决策分析。而基于主题组织的数据则不同,它们被划分为各自独立的领域,每个领域有各自的逻辑内涵但互不交叉,在抽象层次上对数据进行完整、一致和准确的描述。一些主题相关的数据通常分布在多个操作型系统中。


    2.集成性
          不同操作型系统之间的数据一般是相互独立、异构的。而数据仓库中的数据是对分散的数据进行抽取、清理、转换和汇总后得到的这样保证了数据仓库内的数据关于整个企业的一致性。图3.2 说明一个保险公司综合数据的简单处理过程,其中数据仓库中与“保险”主题有关的数据来自于多个不同的操作型系统。这些系统内部数据的命名可能不同,数据格式也可能不同。把不同来源的数据存储到数据仓库之前,需要去除这些不一致。

          2011060914175919.jpg
    3.数据的非易失性
          操作型数据库主要服务于日常的业务操作,使得数据库需要不断地对数据实时更新,以便迅速获得当前最新数据,不至于影响正常的业务运作。在数据仓库中只要保存过去的业务数据,不需要每一笔业务都实时更新数据仓库,而是根据商业需要每隔一段时间把一批较新的数据导入数据仓库。事实上,在一个典型的数据仓库中,通常不同类型数据的更新发生的频率是不同的。例如产品属性的变化通常每个星期更新一次,地理位置上的变化通常一个月更新一次,销售数据每天更新一次。
    数据非易失性主要是针对应用而言。数据仓库的用户对数据的操作大多是数据查询或比较复杂的挖掘,一旦数据进入数据仓库以后,一般情况下被较长时间保留。数据仓库中一般有大量的查询操作,但修改和删除操作很少。因此,数据经加工和集成进入数据仓库后是极少更新的,通常只需要定期的加载和更新。

    4.数据的时变性
          数据仓库包含各种粒度的历史数据。数据仓库中的数据可能与某个特定日期、星期、月份、季度或者年份有关。数据仓库的目的是通过分析企业过去一段时间业务的经营状况,挖掘其中隐藏的模式。虽然数据仓库的用户不能修改数据,但并不是说数据仓库的数据是永远不变的。分析的结果只能反映过去的情况,当业务变化后,挖掘出的模式会失去时效性。因此数据仓库的数据需要更新,以适应决策的需要。从这个角度讲,数据仓库建设是一个项目,更是一个过程 。数据仓库的数据随时间的变化表现在以下几个方面。
    (1)数据仓库的数据时限一般要远远长于操作型数据的数据时限。
    (2)操作型系统存储的是当前数据,而数据仓库中的数据是历史数据。
    (3)数据仓库中的数据是按照时间顺序追加的,它们都带有时间属性。
      数据仓库主要包括数据的提取、转换与装载(ETL )、元数据、数据集市和操作数据存储等部分,常用的数据仓库结构如图3.3 所示。


             2011060914191879.jpg

     

    3.3 数据集市
          人们在早期开发企业级数据仓库时,一般是先建立一个全局的数据仓库,然后在此基础上建立各种应用,即“自顶向下”的方法。但在开发的过程中会出现以下问题。
    (1)如果按“自顶向下”的方法建立企业级数据仓库,建设规模往往较大,建设周期长,投资大。
    (2)在数据仓库建好后,随着使用数据仓库的部门增多,对数据仓库资源的竞争将成为企业面临的一个难题。
    (3)各个部门希望能定制数据仓库中的数据,但数据仓库是面向企业的。为解决上述问题,人们提出了数据集市的概念,如图3.4 所示。数据集市支持某一业务单元或部门特定的商业需求,其中的数据可以来自数据仓库。数据集市可以在数据仓库的基础上进行设计(见图3.4(a), 也可像数据仓库一样直接设计(见图3.4(b))。数据集市中的数据具有数据仓库中数据的特点,只不过数据集市专为某一部门或某个特定商业需求定制,而不是根据数据容量命名。


    2011060914212279.jpg

          数据集市面向部门、业务单元或特定应用,因而规模较小,便于快速实现,且成本较低,短期内即可获得明显效果。数据集市的应用不仅满足了部门的数据处理需求,而且作为数据仓库的子集有助于构建完整的企业级数据仓库。


    3.4 元数据
        当需要了解某地企业及其提供的服务时,电话黄页的重要性就体现出来了。元数据(Metadata)类似于这样的电话黄页。
    1.元数据的定义
          数据仓库的元数据是关于数据仓库中数据的数据。它的作用类似于数据库管理系统的数据字典,保存了逻辑数据结构、文件、地址和索引等信息。广义上讲,在数据仓库中,元数据描述了数据仓库内数据的结构和建立方法的数据。
          元数据是数据仓库管理系统的重要组成部分,元数据管理器是企业级数据仓库中的关键组件,贯穿数据仓库构建的整个过程,直接影响着数据仓库的构建、使用和维护。
    (1)构建数据仓库的主要步骤之一是ETL。这时元数据将发挥重要的作用,它定义了源数据系统到数据仓库的映射、数据转换的规则、数据仓库的逻辑结构、数据更新的规则、数据导入历史记录以及装载周期等相关内容。数据抽取和转换的专家以及数据仓库管理员正是通过元数据高效地构建数据仓库。
    (2)用户在使用数据仓库时,通过元数据访问数据,明确数据项的含义以及定制报表。
    (3)数据仓库的规模及其复杂性离不开正确的元数据管理,包括增加或移除外部数据源,改变数据清洗方法,控制出错的查询以及安排备份等。
          元数据可分为技术元数据和业务元数据。技术元数据为开发和管理数据仓库的IT 人员使用,它描述了与数据仓库开发、管理和维护相关的数据,包括数据源信息、数据转换描述、数据仓库模型、数据清洗与更新规则、数据映射和访问权限等。而业务元数据为管理层和业务分析人员服务,从业务角度描述数据,包括商务术语、数据仓库中有什么数据、数据的位置和数据的可用性等,帮助业务人员更好地理解数据仓库中哪些数据是可用的以及如何使用。
    由上可见,元数据不仅定义了数据仓库中数据的模式、来源、抽取和转换规则等,而且是整个数据仓库系统运行的基础,元数据把数据仓库系统中各个松散的组件联系起来,组成了一个有机的整体,如图3.5 所示

              2011060914231094.jpg

    2.元数据的存储方式
         元数据有两种常见存储方式:一种是以数据集为基础,每一个数据集有对应的元数据文件,每一个元数据文件包含对应数据集的元数据内容;另一种存储方式是以数据库为基础,即元数据库。其中元数据文件由若干项组成,每一项表示元数据的一个要素,每条记录为数据集的元数据内容。上述存储方式各有优缺点,第一种存储方式的优点是调用数据时相应的元数据也作为一个独立的文件被传输,相对数据库有较强的独立性,在对元数据进行检索时可以利用数据库的功能实现,也可以把元数据文件调到其他数据库系统中操作;不足是如果每一数据集都对应一个元数据文档,在规模巨大的数据库中则会有大量的元数据文件,管理不方便。第二种存储方式下,元数据库中只有一个元数据文件,管理比较方便,添加或删除数据集,只要在该文件中添加或删除相应的记录项即可。在获取某数据集的元数据时,因为实际得到的只是关系表格数据的一条记录,所以要求用户系统可以接受这种特定形式的数据。因此推荐使用元数据库的方式。
          元数据库用于存储元数据,因此元数据库最好选用主流的关系数据库管理系统。元数据库还包含用于操作和查询元数据的机制。建立元数据库的主要好处是提供统一的数据结构和业务规则,易于把企业内部的多个数据集市有机地集成起来。目前,一些企业倾向建立多个数据集市,而不是一个集中的数据仓库,这时可以考虑在建立数据仓库(或数据集市)之前,先建立一个用于描述数据、服务应用集成的元数据库,做好数据仓库实施的初期支持工作,对后续开发和维护有很大的帮助。元数据库保证了数据仓库数据的一致性和准确性,为企业进行数据质量管理提供基础。

    3.元数据的作用
          在数据仓库中,元数据的主要作用如下。
    (1)描述哪些数据在数据仓库中,帮助决策分析者对数据仓库的内容定位。
    (2)定义数据进入数据仓库的方式,作为数据汇总、映射和清洗的指南。
    (3)记录业务事件发生而随之进行的数据抽取工作时间安排。
    (4)记录并检测系统数据一致性的要求和执行情况。
    (5)评估数据质量。


    4.粒度
          粒度反映了数据仓库按照不同的层次组织数据,根据不同的查询需要,存储不同细节的数据。在数据仓库中,粒度越小,数据越细,查询范围就越广泛。相反,粒度级别越高,表示细节程度越低,查询范围越小。例如,当信用卡发行商查询数据仓库时,首先了解某个地区信用卡的总体使用情况,然后检查不同类别用户的信用卡消费记录,这就涉及不同细节的数据。数据仓库中包含的数据冗余程度较高,批量载入和查询会影响到数据管理和查询效率,因此数据仓库采用数据分区存储技术以改善数据仓库的可维护性,提升查询速度和加载性能,解决从数据仓库中删除旧数据时造成的数据修剪等问题,把数据划分成多个小的单元。
    根据粒度的不同,可以把数据划分为早期细节级、当前细节级、轻度综合级和高度综合级等[6] 。ETL 后的源数据首先进入当前细节级,并根据需要进一步进入轻度综合级乃至高度综合级。一旦数据过期,当前数据粒度的具体划分会直接影响到数据仓库中的数据量以及查询质量。图3.6 显示了典型数据仓库的粒度结构。
    2011060914243113.jpg

        数据仓库数据的多粒度化为用户使用数据提供了一定的灵活性,例如家用电器销售数据可以同时满足市场、财务和销售等部门的需要,财务部若要了解某地区的销售收入,只需改变相关数据的粒度即可。


    3.5 ETL
          数据仓库并不只是数据的简单累积,而是经过一系列的抽取、转换和装载的过程,简称ETL。ETL 是构建数据仓库的重要环节,对数据仓库的后续环节影响比较大。目前市场上主流的ETL 工具有Informatica 公司的Power Center 、IBM 公司的Data Stage 、Oracle 公司的Warehouse Builder 以及Microsoft 公司的SQL Server IS 等。下面简要介绍ETL 的主要功能。

    1.数据抽取
    数据仓库是面向主题的,并非源数据库的所有数据都是有用的,所以在把源数据库中
    的相关数据导入数据仓库之前,需要先确定该数据库中哪些数据是与决策相关的,数据抽
    取的过程大致如下。
    (1)确认数据源的数据及其含义。
    (2)抽取。确定访问源数据库中的哪些文件或表,需要提取其中哪些字段。
    (3)抽取频率。需要定期更新数据仓库的数据,因此对于不同的数据源,需要确定数据抽取的频率,例如每天、每星期、每月或每季度等。
    (4)输出。数据输出的目的地和输出的格式。
    (5)异常处理。当需要的数据无法抽取时如何处理。


    2.数据转换
          数据仓库的数据来自多种数据源。不同的数据源可能由不同的平台开发,使用不同的
    数据库管理系统,数据格式也可能不同。源数据在被装载到数据仓库之前,需要进行一定
    的数据转换。数据转换的主要任务是对数据粒度以及不一致的数据进行转换。
    (1)不一致数据转换。数据不一致包括同一数据源内部的不一致和多个数据源之间的数据不一致等类别,例如在一个应用系统中,BJ 表示北京,SH 表示上海,GZ 表示广州。而在另一个应用系统中,对应的代码分别为1、2 和3。此外,不同业务系统的数量单位、编码或值域需要统一,例如某供应商在结算系统的编码是990001,而在CRM 中编码是YY0001 ,这时就需要抽取后统一转换编码。
    (2)数据粒度的转换。业务系统一般存储细粒度的事务型数据,而数据仓库中的数据是用于查询、分析的,因此需要多种不同粒度的数据。这些不同粒度的数据可以通过对细粒度的事务型数据聚集(合)(aggregation )产生。


    3.数据清洗
          数据源中数据的质量是非常重要的,低劣的“脏”数据容易导致低质量的决策甚至是错误的决策。此外,这些“脏”数据或不可用数据也可能造成报表的不一致等问题。因此有必要全面校验数据源的数据质量,尽量减少差错,此过程是数据清洗(Data Cleaning ),也叫数据的标准化。目前一些商务智能企业提供数据质量防火墙,例如Business Objects(SAP)的Firstlogic,它能够解决数据的噪声。清洗后的数据经过业务主管确认并修正后再进行抽取。数据清洗能处理数据源中的各种噪音数据,主要的数据质量问题有以下几种。
    (1)缺失(Missing )数据。即数据值的缺失,这在顾客相关的数据中经常出现,例如顾客输入个人信息时遗漏了所在区域。
    (2)错误数据。常见的错误数据包括字段的虚假值、异常取值等。例如在教学选课系统中,选修某门课程的人数不能够超过该课程所在教室的座位数。这些错误数据产生的主要原因是由于业务系统在数据输入后不能进行正确性判断而被录入数据库。错误数据需要被及时找出并限期修正。
    (3)数据重复。数据重复是反复录入同样的数据记录导致的,这类数据会增加数据分析的开销。
    (4)数据冲突。源数据中一些相关字段的值必须是兼容的,数据冲突包括同一数据源内部的数据冲突和多个数据源之间的数据冲突。例如一个顾客记录中省份字段使用SH(上海),而此顾客的邮政编码字段使用100000(北京地区的邮政编码)。冲突的数据也需要及时修正。


    4.数据装载
    数据转换、清洗结束后需要把数据装载到数据仓库中,数据装载通常分为以下几种方式。
    (1)初始装载。一次对整个数据仓库进行装载。
    (2)增量装载。在数据仓库中,增量装载可以保证数据仓库与源数据变化的同期性。

    转载于:https://www.cnblogs.com/eva_2010/archive/2011/06/09/2076392.html

    展开全文
  • 几个不错的网站(仓库,资源)

    千次阅读 2018-06-13 18:22:46
    runboob的工具集合,我常用它的正则测试(并且下方包含常用的正则,非常好用且使用):点击打开链接 mvnRepository(maven... ... Stack Overflow(学习,改错的网站,几乎涵盖各编程语言):点击打开链接 Java API ...

    runboob的工具集合,我常用它的正则测试(并且下方包含常用的正则,非常好用且使用):点击打开链接

    mvnRepository(maven构建组件链接):点击打开链接

    Sonatype Nexus basic aliyun(阿里公司的maven构建组件链接,功能同上) :点击打开链接

    Stack Overflow(学习,改错的网站,几乎涵盖各门编程语言):点击打开链接

    Java API Example(外国网站,速度较慢,例子很多):点击打开链接

     

    展开全文
  • 一篇文章搞懂数据仓库:数据仓库的8发展阶段

    万次阅读 多人点赞 2020-07-16 16:53:26
    但是BillInmon一直很旗帜鲜明:“你可以打到万吨的小鱼小虾,但是这些小鱼小虾加起来不是大鲸鱼” 七 合并(1998-2001) 经过多翻争吵,证明one-size-fits-all是不可能的,你需要不同的BI架构来满足不同的业务...

    目录

    一 概念阶段(1978-1988)

    二 萌芽阶段

    三 集成阶段

    四 确立阶段(1991)

    五 数据集市(1994-1996)

    六 争吵与混乱(1996-1997)

    七 合并(1998-2001)

    八 未来


    一 概念阶段(1978-1988)

    数据仓库最早的概念可以追溯到20世纪70年代MIT的一项研究,该研究致力于开发一种优化的技术架构并提出这些架构的指导性意见。第一次,MIT的研究员将业务系统和分析系统分开,将业务处理和分析处理分成不同的层次,并采用单独的数据存储和完全不同的设计准则。同时,MIT的研究成果与80年代提出的信息中心(InformationCenter)相吻合:即把那些新出现的、不可以预测的、但是大量存在的分析型的负载从业务处理系统中剥离出来。但是限于当时的信息处理和数据存储能力,该研究只是确立了一个论点:这两种信息处理的方式差别如此之大,以至于它们只能采用完全不同的架构和设计方法。

    二 萌芽阶段

    在80年代中后期,作为当时技术最先进的公司,DEC已经开始采用分布式网络架构来支持其业务应用,并且DEC公司首先将业务系统移植到其自身的RDBMS产品:RdB。并且,DEC公司从工程部、销售部、财务部以及信息技术部抽调了不同的人员组建了新的小组,不仅研究新的分析系统架构,并要求将其应用到其全球的财务系统中。该小组结合MIT的研究结论,建立了TA2(TechnicalArchitecture2)规范,该规范定义了分析系统的四个组成部分:

    • 数据获取
    • 数据访问
    • 目录
    • 用户服务

    其中的数据获取和数据访问目前大家都很清楚,而目录服务是用于帮助用户在网络中找到他们想要的信息,类似于业务元数据管理;用户服务用以支持对数据的直接交互,包含了其他服务的所有人机交互界面,这是系统架构的一个非常大的转变,第一次将交互界面作为单独的组件提出来

    三 集成阶段

    全企业集成(EnterpriseIntergration,1988)同时,IBM也在处理信息管理不同方面的问题,其最烦人的问题是不断增加的信息孤岛,IBM的很多客户要面对很多分立系统的数据集成问题,而这些系统有不同的编码方式和数据格式。1988年,为解决全企业集成问题,IBM爱尔兰公司的BarryDevlin和PaulMurphy第一次提出了“信息仓库(InformationWarehouse)”的概念,将其定义为:“一个结构化的环境,能支持最终用户管理其全部的业务,并支持信息技术部门保证数据质量”,并在1991年在DECTA2的基础上把信息仓库的概念包含进去,并称之为VITAL规范(virtuallyintegratedtechnicalarchitecturelifecycle),将PC、图形化界面、面向对象的组件以及局域网都包含在VITAL里,并定义了85种信息仓库的组件,包括数据抽取、转换、有效性验证、加载、Cube开发和图形化查询工具等。但是IBM只是将这种领先的概念用于市场宣传,而没有付诸实际的架构设计。这是IBM有一个领域上创新后停止不前导致丧失其领先地位。因此,在90年代初期,数据仓库的基本原理、框架架构,以及分析系统的主要原则都已经确定,主要的技术,包括关系型数据存取、网络、C/S架构和图形化界面均已具备,只欠东风了。同时,在1988年-1991年,一些前沿的公司已经开始建立数据仓库。

    四 确立阶段(1991)

    企业级数据仓库(EDW,1991)1991年,BillInmon出版了其有关数据仓库的第一本书,这本书不仅仅说明为什么要建数据仓库、数据仓库能给你带来什么,更重要的是,Inmon第一次提供了如何建设数据仓库的指导性意见,该书定义了数据仓库非常具体的原则,包括:数据仓库是面向主题的(Subject-Oriented)、集成的(Integrated)、包含历史的(Time-variant)、相对稳定的(Nonvolatile)、面向决策支持的(DecisionSupport)面向全企业的(EnterpriseScope)最明细的数据存(AtomicDetail)数据快照式的数据获取(SnapShotCapture)这些原则到现在仍然是指导数据仓库建设的最基本原则,虽然中间的一些原则引发一些争论,并导致一些分歧和数据仓库变体的产生。

    但是,BillInmon凭借其这本书奠定了其在数据仓库建设的位置,被称之为“数据仓库之父”。


    五 数据集市(1994-1996)

    数据仓库发展的第一明显分歧是数据集市概念的产生。由于企业级数据仓库的设计、实施很困难,使得最早吃数据仓库螃蟹的公司遭到大面积的失败,因此数据仓库的建设者和分析师开始考虑只建设企业级数据仓库的一部分,然后再逐步添加,但是这有背于BillInmon的原则:各个实施部分的数据抽取、清洗、转换和加载是独立,导致了数据的混乱与不一致性。而且部分实施的项目也有很多失败,除了常见的业务需求定义不清、项目执行不力之外,很重要的原因是因为其数据模型设计,在企业级数据仓库中,Inmon推荐采用3范式进行数据建模,但是不排除其他的方法,但是Inmon的追随者固守OLTP系统的3范式设计,从而无法支持DSS系统的性能和数据易访问性的要求。这时,RalphKimball出现了,他的第一本书“TheDataWarehouseToolkit”掀起了数据集市的狂潮,这本书提供了如何为分析进行数据模型优化详细指导意见,从DimensionalModeling大行其道,也为传统的关系型数据模型和多维OLAP之间建立了很好的桥梁。从此,数据集市在很多地方冒了出来,并获得很大成功,而企业级数据仓库已逐渐被人所淡忘。

    六 争吵与混乱(1996-1997)

    企业级数据仓库还是部门级数据集市?关系型还是多维?BillInmon和RalphKimball一开始就争论不休,其各自的追随者也唇舌相向,形成相对立的两派:Inmon派和Kimball派(有点象少林和武当,呵呵)。在初期,数据集市的快速实施和较高的成功率让Kimball派占了上风,但是很快,他们也发现自己陷入了某种困境:企业中存在6-7个不同的数据集市,分别有不同的ETL,相互之间的数据也不完全一致。同时,各个项目实施中也任意侵犯了Inmon开始定下的准则:把数据集市当成众多OLTP系统之后的有一个系统,而不是一个基础性的集成性的东西,为保证数据的准确性和实时性,有的甚至可以由OLTP系统直接修改数据集市里面的数据,为了保证系统的性能,有的数据集市删除了历史数据。等等,不一而足。当然,这导致了一些新的应用的出现,例如ODS,但是人们对DataWarehouse、DataMart、ODS的概念非常的模糊,经常混为一谈。有人说OLAP就是数据仓库,也有人说我要ODS和DataMart,不要Datawarehouse,也有人说,我DataMart建多了,自然就有DataWarehouse了。但是BillInmon一直很旗帜鲜明:“你可以打到几万吨的小鱼小虾,但是这些小鱼小虾加起来不是大鲸鱼”

    七 合并(1998-2001)

    经过多翻争吵,证明one-size-fits-all是不可能的,你需要不同的BI架构来满足不同的业务需求。BillInmon也推出了新的BI架构CIF(Corporationinformationfactory),把Kimball的数据集市也包容进来了,第一次,Kimball承认了Inmon,但是仍然还有很多人在争论是自顶向下,还是自底向上。

    八 未来

    实时即未来。

     

    数仓系列传送门:https://blog.csdn.net/weixin_39032019/category_8871528.html


     

    展开全文
  • 数据仓库

    2020-07-17 17:37:24
    数据仓库(Data Warehouse)是一面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。 面向主题:数据仓库中的数据...

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrate)、稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。

    • 面向主题:数据仓库侧重于数据分析工作,所以数据仓库中的数据是按照一定的主题进行组织和存储。
    • 集成:对原有分散的数据库数据经过系统加工、整理,消除源数据中的不一致性。
    • 稳定:数据进入数据仓库以后只需要定期的加载、刷新,不需要频繁修改。
    • 反映历史变化:出于决策的需要,数据仓库中的数据都要标明时间属性。通过这些数据信息,对企业的发展历程和未来趋势做出定量分析预测。

    数据库与数据仓库的区别

    数据库和数据仓库其实很相似,都是通过数据库管理系统,来组织、存储和管理数据。
    它们的不同之处在于:
    数据库是存放原始数据的集合,主要存储业务流程中的事务性数据,如银行交易、订单记录等。
    数据仓库是数据库概念的升级,是存放加工处理后的数据集合,主要存储从数据库中整合、汇总后的数据,用于针对某些主题的历史数据进行分析,侧重决策支持。

    单从概念上讲有些晦涩,任何技术都是为应用服务的,结合应用可以很容易地理解。以银行业务为例,数据库是银行事务系统的数据平台,客户在银行做的每笔交易都会写入数据库,被记录下来。数据仓库是分析系统的数据平台,它从事务数据库获取数据,并做汇总、加工,为决策者提供决策的依据。比如,某银行某分行一个月发生多少交易,该分行当前存款余额是多少。如果存款又多,消费交易又多,那么该地区就有必要加设ATM了。
    显然,银行的交易量是巨大的,通常以百万甚至千万次来计算。事务系统是要求时效性的,客户存取一笔钱等待几十秒是无法忍受的,这就要求数据库实时响应。而分析系统是事后的,它要提供关注时间段内所有的有效数据。这些数据是海量的,汇总计算起来也要慢一些,但是,只要能够提供有效的分析结果就达到目的了。

    数据库与数据仓库的区别,实际上就是OLTP与OLAP的区别。

    • 操作型处理,叫联机事务处理OLTP(On-Line Transaction Processing),也可以称面向交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发的支持用户数等问题。传统的数据库作为数据管理的主要手段,主要用于操作型处理。
    • 分析型处理,叫联机分析处理OLAP(On-Line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
      在这里插入图片描述
      基本每个企业都会经历从数据库到数据仓库的阶段,以电商行业为例:
    • 电商行业早期入行门槛低,找个外包团队,做一个网页前端 + 几台服务器 + 一个MySQL,就能开门迎客了。
    • 第二阶段,流量来了,客户和订单都多起来了,这个时候就需要升级架构变成多台服务器和多个业务数据库(分布式存储),这个阶段的业务数据和指标还可以勉强从业务数据库里查询。
      在这里插入图片描述
    • 第三个阶段,随着业务的发展数据量呈指数级增长,面临的业务问题越来越复杂。领导者关心的问题,从最初非常粗放的:“昨天的收入是多少”、“上个月的 PV、UV 是多少”,逐渐演化到非常精细化和具体的用户消费行为分析,如“20~30岁女性用户在过去五年的第一季度化妆品类商品的购买行为在促销活动方案中的表现”。
      这类非常具体且能够对公司决策起到关键性作用的数据,很难从业务数据库从调取出来。原因在于:
      1、业务数据库中的数据结构是为了完成交易而设计的,不是为了查询和分析的便利设计的。
      2、业务数据库大多是读写优化的,即又要读(查看相关的商品信息),也要写(产生订单,完成支付)。因此对于大批量的数据读取(复杂的查询指标)是支持不足的。
      为了解决此类问题就需要建立数据仓库,它的作用在于:
      1、数据结构为了分析和查询的便利而设计。
      2、只读优化的数据库,即不需要它写入速度多么快,只要做大量数据的复杂查询的速度足够快就行了。

    在这里插入图片描述
    在这里插入图片描述

    ETL

    数据仓库中的数据通常从多个数据源中提取,整合、汇总后成为数据仓库中的历史记录。多个数据源(内部业务数据库、外部文件、爬虫、第三方API等等)的数据存储方式不同,所以需要经过抽取、清洗、转换。
    数据从数据库到数据仓库的处理过程就是ETL(Extract-Transform-Load):

    • Extract:数据抽取,就是把数据从多个数据源读出来
    • Transform:数据转换,就是把数据转换为统一的格式
    • Load:数据加载,把处理后的数据加载到数据仓库
      在这里插入图片描述

    常用的ETL工具:Datastage、Informatica、Kettle

    数据仓库的分层存储

    一般来说数据仓库会至少分为ODS、DSA、EDW三个层级,当然层级的名称每个公司可能不同,这里主要是在作用上进行区分解释。
    在这里插入图片描述

    • ODS层存储的是业务数据库在一个时间范围内新增或更新的数据,它的存储是线性增长的,有数据发生变化,ODS才会存储数据,相当于是业务数据库的一个拷贝。
    • DSA层是经由ODS层抽取、清洗、转换后的数据。
    • EDW层是对DSA层进行业务模型的抽象之后的合并层,将一些冗余的库表简化,做成比较利于数据抽取的库表。

    数据仓库的输入就是各种各样的数据源,最终的输出是用来为企业做数据分析、数据挖掘和数据报表。

    常用的数据仓库

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    Hive是基于Hadoop的数据仓库工具,可以对存储在HDFS上的文件数据集进行查询和分析处理。Hive对外提供了类似于SQL语言的查询语言 HiveSQL,在做查询时将HiveSQL语句转换成MapReduce任务,在Hadoop层进行执行。
    在这里插入图片描述
    HDFS是Hadoop的分布式文件系统,在这里作为数据仓库的存储层。图中的Data Node就是HDFS的众多工作节点。
    MapReduce是一种针对海量数据的并行计算模型,可以简单理解为对多个数据分片的数据转换和合并。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    Teradata数据仓库配备性能最高、最可靠的大规模并行处理 (MPP) 平台,能够高速处理海量数据,其性能远远高于Hive。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 数据仓库基本知识

    万次阅读 多人点赞 2017-10-31 17:35:04
    数据仓库是什么 根据统计,每企业的数据量每2~3年时间就会成倍增长,这些数据蕴含着巨大的商业价值,而企业所关注的通常只占在总数据量的2%~4%左右。 因此,企业仍然没有最大化地利用已存在的数据资源,以...
  • 数据仓库理论

    2020-12-15 15:12:34
    文章目录前言一、数据仓库1.1 什么是数据仓库1.2数据仓库四大特征1.3数据仓库作用1.4数据仓库与数据库的区别1.5数据集市二.数据仓库建模方法2.1 ER模型2.2维度模型三....数据仓库(DataWarehouse)是一面向主题的
  • 我们主要讲报表自动化,但在这之前我们需要有“大量的数据”支持,多次提到“大量的数据”,这些数据就是指我们各种产品在使用、运行过程中存到数据库的数据,当然也包括日志中的数据,这些数据在我们产品运行过程中...
  • 浅谈数据仓库

    千次阅读 2016-09-04 21:18:07
    由于数据本身的类型多样,具有异构性和多维度、复杂等特性,需要一种有组织的、高效的数据存取结构,集成存储,所以诞生了数据仓库。 一 数据库和数据仓库 名称 数据特点 技术 应用 ...
  • 仓库供第三课程中的“移动开发”学科的实验室使用 入门 要运行该应用程序并查看整个功能,您应该下载并安装该应用程序的下一.apk文件: 每分支代表着一些针对自己的实验室: 主要-所有实验室工作的最终结果...
  • 我们主要讲报表自动化,但在这之前我们需要有“大量的数据”支持,多次提到“大量的数据”,这些数据就是指我们各种产品在使用、运行过程中存到数据库的数据,当然也包括日志中的数据,这些数据在我们产品运行过程中...
  • 所以就想着怎么给我这粗劣的小玩意儿加点高大上的东西,经过身边同事的提醒,我发现自己做的这个仓库只有一房间,但是一般来讲厂房内可能会有多个仓库,或者说同一个仓库也有可能会有好层。 所以开发一场景...
  • 数据集市与数据仓库

    2018-12-06 14:52:39
    其中,数据仓库和数据集市是最常见的两术语了。各个供应商术语定义不统一、销售策略不一样,这往往会给企业带来很大的混淆。最典型的问题是:到底是先上一企业级的数据仓库呢?还是先上一部门级的数据集市? ...
  • 数据库和数据仓库

    2017-05-22 10:30:46
    数据仓库:数据仓库系统的主要应用主要是OLAP(On-Line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。作者:陈诚 链接:...
  •  和 Java 开发以来,经历了几个阶段: 闭门造轮子 > 使用别人的轮子 > 开门造轮子 > 分享轮子 在使用、创造、分享轮子的过程中,maven 仓库的使用可谓必备技能。 相信各位使用 Android Studio,...
  • 下面小编将带领大家盘一盘数据仓库有哪些规范,从中挑选几个重点细说: 设计规范 逻辑架构、技术架构、分层设计、主题划分、方法论 命名规范 各层级命名、任务命名、表命名、字段命名、指标命名等 模型规范 建模...
  • 数据仓库知识点汇总

    千次阅读 多人点赞 2019-10-09 15:04:01
    数据仓库形象解释 业务场景如下图 ...猥琐男想出一馊主意,打造出枚拥有魔力的戒指,免费送给不同种族的领袖,让他们可以更好地统治各自的族人。当各个种族的领袖美滋滋地戴上各自的魔戒,走上...
  • 在学习和使用Hive的时候,把Hive定义为数据仓库而不是数据库。都是用于数据存储的地方,为什么把hive定义为数据仓库,而不是数据库呢?那数据库和数据仓库有什么区别呢? 数据库: 主要是用于系统业务数据的存储,且...
  • 数据仓库基本理论

    千次阅读 2019-08-01 10:58:36
    1、关系模式范式 1.1 范式理论概述 关系型数据库设计时,遵照一定的...范式的标准定义是:符合某一种级别的关系模式的集合,表示一关系内部各属性之间的联系的合理化程度。通俗地讲,范式可以理解为一张数据表的...
  • Maven 仓库使用与私有仓库搭建

    千次阅读 2016-01-29 11:40:56
    笔者从事 Android 和 Java 开发以来,经历了几个阶段: 闭门造轮子 > 使用别人的轮子 > 开门造轮子 > 分享轮子 在使用、创造、分享轮子的过程中,maven 仓库的使用可谓必备技能。 相信各位使用 ...
  • 数据库:传统的关系型数据库的主要应用,主要是基本的、日常的...基本每家电商公司都会经历,从只需要业务数据库到要数据仓库的阶段。 电商早期启动非常容易,入行门槛低。找外包团队,做了一可以下单的网页前端
  • (给技术最前线加星标,每天看技术热点)原创:技术最前线(id:TopITNews)阿波罗11号代码仓库被灌水,仓库作者正式回应正好是到了登月 50 周年的纪念日。阿波罗 ...
  • 本文回顾了(数据/信息)仓库的发展历史,算是一科普文。1. 信息的起源 人类的发展,离不开信息的积累。从原始社会的口口相传,到需要将信息记录下来。那么如何记载信息呢?于是有了最...
  • 仓库管理概况

    千次阅读 2010-04-12 14:23:00
    仓库总体运作流程一、仓库总体运作流程图二、物料收货控制程序(受控)1、目的对本公司进料的数量进行控制,确保进料的数量符合物控要求,及时满足生产需要。2、适用范围适用于本公司对外采购的物料、发外加工的半...
  • 本文为“拥抱Android Studio”系列第四篇。...使用 Android Studio,必然要与 maven 仓库频繁打交道,在创造和分享自己打造的 Android library 的时候,maven 仓库的知识更是必不可少。本章将为开发者系统梳理这...
  • 数据仓库和数据集市的区别

    千次阅读 2016-04-03 13:14:47
    源:上海复旦德软件有限公司朱建秋博士    企业从事数据仓库项目时,往往会遇到多数据仓库软件供应商。各供应商除了推销相 关的软件工具外,同时会向企业灌输许多概念,其中,数据仓库和数据集市是最常见的。...
  • 数据库 与 数据仓库 数据库:传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。 数据仓库:数据仓库系统的主要应用主要是OLAP(On-Line...举最常见的例子,拿电商行业来说好了。 基...
  • 数据仓库:数据仓库系统的主要应用主要是OLAP(On-Line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。我尝试着再补充些具体的事例来说明,这样更可以帮助大家更好理解...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,562
精华内容 6,624
关键字:

仓库需要几个门