精华内容
下载资源
问答
  • 论文研究-基于改进Fishbone的物流仓库布局优化.pdf, 针对物流仓库内部布局的优化设计问题, 通过在Fishbone布局方法中结合贯通式货架系统的思想, 给出一种改进Fishbone...
  • 数据仓库设计

    2021-03-18 13:49:11
    但是数据仓库的需求只有在已经装载了部分数据并开始使用的时候才能弄清楚,因此,过去很有效的设计方法在设计数据仓库时并不能满足需要。数据仓库是在启发方式下建造的,过程中后一个阶段开发完全依赖于上一个阶段...

    “设计”——暗含了可以预先对组成单元进行规划的意思,“兵马未动,粮草先行”体现了前人在规划事情的聪明才智。但是数据仓库的需求只有在已经装载了部分数据并开始使用的时候才能弄清楚,因此,过去很有效的设计方法在设计数据仓库时并不能满足需要。数据仓库是在启发方式下建造的,过程中后一个阶段开发完全依赖于上一个阶段获得的结果。下面对设计数据仓库的几个主要过程进行分享。

    设计师的手稿

    1.从操作型数据开始

    什么是操作型数据?操作型数据就是企业在生产运行中产生的数据。

    在进行数据仓库设计时首先要考虑的问题是如何将数据放置在数据仓库中。操作型系统在建立的时候并没有考虑数据将来如何进行集成,各个系统都建立了自己的数据结构,在数据集成的时候就会出现各式各样的数据没有统一的标准。这是个复杂而又必须解决问题。
    在这里插入图片描述
    数据各自为政
    1.1.数据集成过程中首先要解决数据编码不一致的问题。假设将旅客服务系统数据和旅客行为系统数据进行关联,发现旅客服务系统中性别是英文简称“m,f”表示,在旅客行为系统中性别是中文“男,女”,这两个系统在表示性别时采用了不同的编码方式。将旅客性别数据集成到数据仓库时,不管采用哪一种编码方式,进入数据仓库的数据需要统一成为同一种编码格式。
    在这里插入图片描述
    统一编码
    1.2.数据集成的过程需要统一度量单位。不同的系统可能在表示同一属性的时候采用了不同的计量单位,进入数据仓库的数据需要转换成同一种计量单位。数据仓库建立是服务于企业所有的系统,将不必要的数据计算开销在数据抽取、装载、清洗过程中完成,节约数据仓库计算资源。在设计数据仓库的时候尽量让清洗的计算在数据抽取的时候就完成,不建议将过多的计算推移到数据仓库中。

    在这里插入图片描述统一度量单位
    1.3.集成过程中要对字段语义进行理解。例如同一个字段在四个应用中有四个不同的名字。为了转换数据使其正确的进入仓库,就必须建立对各个不同源字段到数据仓库字段的映射。
    在这里插入图片描述
    统一字段名称
    将操作数据集成到数据仓库是个非常复杂的过程。在真实过程中除了将数据完整的同步到数据仓库中的需求,在某些需求下集成到数据仓库并非明细数据而是一个汇总数据。我们在后面会具体列出数据集成过程中需要考虑的问题列表。

    2.设计数据仓库的数据模型

    数据仓库起源于数据模型的设计。在企业中所有的数据模型都是建立在操作型数据模型之上,我们可以通过以下步奏设计数据仓库模型。

    2.1.去除纯用于操作型环境中数据。比如去掉控制系统字体大小的样式表内容,因为此类数据对后面的业务支持分析并没有多大的意义。

    2.2.增加时间元素。为加入到数据仓库的数据增加时间元素,标注该数据的时间版本。随着时间增长,企业经营的规模增加,原有数据类型不能符合现有业务的需求,需要进行修改,此时在数据仓库中基于原有字段增加一个新的数据字段,通过时间版本可以快速区分老版本和新版本。

    2.3.在数据仓库中将操作型系统中的数据转变为“人工关系”,也就是建立起数据仓库中表与表之间的关系。数据仓库对外服务的时候,某一查询请求数据可能来自多张表,通过建立起的表间关系可以将多张表的数据串联成为一个集合发送给调用端。

    2.4.对企业数据模型进行稳定性分析(根据各个数据属性是否经常变化的特性将这些属性分组)。比如经常变化的,不时变化的、很少变化的。通过稳定性分析,我们可以根据不同访问频次将数据分开存放,提高数据仓库的响应效率。
    在这里插入图片描述
    稳定性分析
    2.5.数据模型的设计非常重要,通常数据模型通过高层、中层和底层三个层次进行设计。下面详细讲解这三层是如何实现的。

    2.5.1.高层建模即设计ER图,是最高的抽象设计,描述数据仓库范围的主题域,以及描述主题域之间的关系。高层设计通盘考虑整个公司业务环境,站在领导的角度将公司的业务环境划分为不同的主题域。比如可以将公司的业务环境划分为商务、运行、管理等主题域。如果建立的是商务数据中心则可以划分供应商、顾客、商品和仓储等主题域。建立完成主题域之后要明确主题域和主题域之间的连接关系。
    在这里插入图片描述
    高层设计ER图
    2.5.2.中层建模是对高层模型中标识出的每个主题域进行详细设计建模。对每个主题域中包含的具体实体进行设计,并且明确实体与实体之间的对应关系。这个步奏涉及到具体每一个主题域包含了多少实体,这些实体特征和属性,以及实体与实体之间的关系。
    在这里插入图片描述
    中层设计
    2.5.3.底层建模是物理模型建立,建立数据具体存储模型。设计上主要优化数据存储和读取的性能。比如数据库存储的分库分区或者使用集群解决方案,目的是降低单台机器的压力,提升数据仓库对请求的响应效率。

    3.为了性能适度牺牲范式设计

    设计规范化,通常认为的是设计要满足范式,在关系型数据库设计时最低的设计标准是要满足第三范式。

    为什么要规范化数据仓库的设计?总结下来至少有以下四点优点:1.降低数据存储所占有的磁盘空间。2.方便对数据的管理。3.将易变和不易变的数据进行区分管理。4.容易进行修改。

    但是严格遵循规范化设计在应用高频访问大数据量的情况下也会有弊端,至少会造成两个问题:1.数据访问I/O次数多,严重影响数据访问的效率。2.索引建立复杂而且索引数据量庞大。

    解决由于严格遵循规范化导致的性能瓶颈,可以在适当的地方反向规范化。具体可按照以下三个步骤做:

    第一步,将经常同时访问的两个不同表的数据可以进行合并。
    在这里插入图片描述
    创建数据组,将经常同时访问的数据放到一起
    第二步,对于某些经常访问的(不变的)基础数据表可以冗余存放到不同表中,取消基础数据表。
    在这里插入图片描述采用数据冗余
    第三步,对于同一张表中某一个字段访问特别多,可以将该字段抽离出该表。
    在这里插入图片描述分离高频访问字段
    4.使用Zachman方法设计数据仓库

    Zachman框架是一种逻辑结构,它是为信息技术企业提供一种可以理解的信息表述。可以对企业信息按照要求分类并从不同角度进行表示。

    Zachman框架吸收了传统方法中的一些精髓。他根据抽象规则定义企业信息的多个方面。该框架采用六行六列矩阵布局,六行包括范围、企业模式、系统模式、技术模式、组建和功能系统,六列分别为数据(什么?)、功能(怎样?)、网络(哪里?)、角色(谁?)、时间(何时?)和动机(为何?)。Zachman框架的6行6列整理出的表格如下:
    在这里插入图片描述

    Zachman样表
    Zachman在如何使用呢?它的每一个单元格具体填写什么呢?根据下图填写完成里面的内容,可以保证在进行数据仓库建设的时候企业的所有方面都得到了考虑。
    在这里插入图片描述

    Zachman内容填写
    Zachman指导数据仓库的建设。Zachman框架可以挖掘出数据仓库建立的需求内容,然后针对需求内容建立数据模型,最后将业务系统的数据集成到数据仓库的一个完整过程。

    小结

    通过上面的步骤我们一步一步的将业务系统集成到数据仓库中,取得了一些成果。但是我们仅仅分享了数据仓库建设的几个主要步骤,数据仓库建设过程中还有很多细节由于时间我们并没有分享。另外本文还介绍了Zachman分析方法,在数据仓库设计的时候避免遗漏对企业问题的考虑,推荐使用该方法。

    展开全文
  • 02数据仓库设计基础

    2019-12-12 10:40:56
    首先介绍关系数据模型、多维数据模型和 Data Vault 模型这三种常见的数据仓库模型和与之相关的设计方法,然后讨论数据集市的设计问题,最后说明一个数据仓库项目的实施步骤。规划实施过程是整个数据仓库设计的重要组成...

    首先介绍关系数据模型、多维数据模型和 Data Vault 模型这三种常见的数据仓库模型和与之相关的设计方法,然后讨论数据集市的设计问题,最后说明一个数据仓库项目的实施步骤。规划实施过程是整个数据仓库设计的重要组成部分。
    关系模型、多维模型已经有很长的历史,而 Data Vault 模型相对比较新。它们都是流行的数据仓库建模方式,但又有各自的特点和适用场景。读者在了解了本章的内容后,可以根据实际需求选择适合的方法构建自己的数据仓库。

    2.1 关系数据模型

    关系模型是由 E.F.Codd 在 1970 年提出的一种通用数据模型。由于关系数据模型简单明了,并且有坚实的数学理论基础,所以一经推出就受到了业界的高度重视。关系模型被广泛应用于数据处理和数据存储,尤其是在数据库领域,现在主流的数据库管理系统几乎都是以关系数据模型为基础实现的。

    关系数据模型可以提供高性能的数据更新操作,能很好地满足事务型系统的需求,这点毋庸置疑。但是对于查询与分析密集型的数据仓库系统还是否合适呢?对这个问题的争论由来已久,基本可以分为 Inmon 和 Kimball 两大阵营, Inmon 阵营是应用关系数据模型构建数据仓库的支持者。

    关系数据模型与数据仓库

    数据仓库最重要的一个用途是作为坚实的、可靠的、一致的数据基础为后续的报表系统、数据分析、数据挖掘或BI系统服务。数据模型还必须支持为组织建立的业务规则。这就意味着数据模型必须比简单的平面文件功能更强。为此关系数据模型也是最佳选择之一。
    关系数据模型已被证明是可靠的、简单的数据建模方法。应用其规范化规则,将产生一个稳定的、一致的数据模型。该模型支持由组织制定的政策和约定的规则,同时为数据集市分析数据提供了更多的灵活性,使得数据库存储以及数据装载方面也是最有效的。
    当然,任何一种数据模型都不可能是完美无瑕的。关系数据模型的缺点也很明显,它需要额外建立数据集市的存储区,并增加相应的数据装载过程。另外,对数据仓库的使用强烈依赖于对SQL语言的掌握程度。

    2.2 维度数据模型

    维度数据模型简称维度模型( Dimensional modeling, DM ),是一套技术和概念的集合,用于数据仓库设计。不同于关系数据模型,维度模型不一定要引入关系数据库。
    在逻辑上相同的维度模型,可以被用于多种物理形式,比如维度数据库或是简单的平面文件。根据数据仓库大师Kimball的观点,维度模型是一种趋向于支持最终用户对数据仓库进行查询的设计技术,是围绕性能和易理解性构建的。尽管关系模型对于事务处理系统表现非常出色,但它并不是面向最终用户的。

    2.2.1 维度数据模型建模过程

    维度模型通常以一种被称为星型模式的方式构建。所谓星型模式,就是以一个事实表为中心,周围环绕着多个维度表。还有一种模式叫做雪花模式,是对维度做进一步规范化后形成的。

    2.2.2 维度规范化

    与关系模型类似,维度也可以进行规范化。对维度的规范化(又叫雪花化),可以去除冗余属性,是对非规范化维度做的规范化处理,在下面介绍雪花模型时,会看到维度规范化的例子。一个非规范化维度对应一个维度表,规范化后,一个维度会对应多个维度表,维度被严格地以子维度的形式连接在一起。实际上,在很多情况下,维度规范化后的结构等同于一个低范式级别的关系型结构。

    2.2.3 维度数据模型的特点

    • 易理解。相对于规范化的关系模型,维度模型容易理解且更直观。在维度模型中,信息按业务种类或维度进行分组,这会提高信息的可读性,也方便了对于数据含义的解释。简化的模型也让系统以更为高效的方式访问数据库。关系模型中,数据被分布到多个离散的实体中,对于一个简单的业务流程,可能需要很多表联合在一起才能表示。
    • 高性能。维度模型更倾向于非规范化,因为这样可以优化查询的性能。介绍关系模型时多次提到,规范化的实质是减少数据冗余,以优化事务处理或数据更新的性能。
    • 可扩展。维度模型是可扩展的。由于维度模型允许数据冗余,因此当向一个维度表或事实表中添加字段时,不会像关系模型那样产生巨大的影响,带来的结果就
      是更容易容纳不可预料的新增数据。

    2.2.4 星型模式

    星型模式是维度模型最简单的形式,也是数据仓库以及数据集市开发中使用最广泛的形式。星型模式由事实表和维度表组成,一个星型模式中可以有一个或多个事实表,每个事实表引用任意数量的维度表。星型模式的物理模型像一颗星星的形状,中心是一个事实表,围绕在事实表周围的维度表表示星星的放射状分支,这就是星型模式这个名字的由来。

    1. 优点
    • 星型模式是非规范化的,在星型模式的设计开发过程中,不受应用于事务型关系数据库的范式规则的约束。星型模式的优点如下:
    • 简化查询。查询数据时,星型模式的连接逻辑比较简单,而从高度规范化的事务模型查询数据时,往往需要更多的表连接。
    • 简化业务报表逻辑。与高度规范化的模式相比,由于查询更简单,因此星型模式简化了普通的业务报表(如每月报表)逻辑。
    • 获得查询性能。星型模式可以提升只读报表类应用的性能。
    • 快速聚合。基于星型模式的简单查询能够提高聚合操作的性能。
    • 便于向立方体提供数据。星型模式被广泛用于高效地建立 OLAP 立方体,几乎所有的 OLAP 系统都提供 ROLAP模型(关系型OLAP),它可以直接将星型模式中的数据当作数据源,而不用单独建立立方体结构。
    1. 缺点
      星型模式的主要缺点是不能保证数据完整性。一次性地插入或更新操作可能会造成数据异常,而这种情况在规范化模型中是可以避免的。星型模式的数据装载,一般都是以高度受控的方式,用批处理或实时过程执行的,以此来抵消数据保护方面的不足。
      星型模式的另一个缺点是对于分析需求来说不够灵活。它更偏重于为特定目的建造数据视图,因此实际上很难进行全面的数据分析。星型模式不能自然地支持业务实体的多对多关系,需要在维度表和事实表之间建立额外的桥接表。

    2.2.5 雪花模式

    雪花模式是一种多维模型中表的逻辑布局,其实体关系图有类似于雪花的形状,因此得名。与星型模式相同,雪花模式也是由事实表和维度表所组成。所谓
    的 “ 雪花化 ” 就是将星型模式中的维度表进行规范化处理。当所有的维度表完成规范化后,就形成了以事实表为中心的雪花型结构,即雪花模式。

    1. 优点
      雪花模式是和星型模式类似的逻辑模型。实际上,星型模式是雪花模式的一个特例(维度没有多个层级)。某些条件下,雪花模式更具优势:
    • 一些OLAP 多维数据库建模工具专为雪花模型进行了优化。
    • 规范化的维度属性节省存储空间。
    1. 缺点
      雪花模型的主要缺点是维度属性规范化增加了查询的连接操作和复杂度。相对于平面化的单表维度,多表连接的查询性能会有所下降。但雪花模型的查询性能问题近年来随着数据浏览工具的不断优化而得到缓解。
      和具有更高规范化级别的事务型模式相比,雪花模式并不确保数据完整性。向雪花模式的表中装载数据时,一定要有严格的控制和管理,避免数据的异常插入或更
      新。

    2.3 Data Vault 模型

    Data Vault 是一种数据仓库建模方法,用来存储来自多个操作型系统的完整的历史数据。 Data Vault 方法需要跟踪所有数据的来源,因此其中每个数据行都要包含数据来源和装载时间属性,用以审计和跟踪数据值所对应的源系统。 Data Vault不区分数据在业务层面的正确与错误,它保留操作型系统的所有时间的所有数据,装载数据时不做数据验证、清洗等工作,这点明显有别于其他数据仓库建模方法。 Data Vault 建模方法显式地将结构信息和属性信息分离,能够还原业务环境的变化。 Data Vault允许并行数据装载,不需要重新设计就可以实现扩展。

    2.3.1 Data Vault 模型简介

    Data Vault ( DV )模型用于企业级的数据仓库建模,是 Dan Linstedt 在 20 世纪 90 年代提出的。在最近几年, Data Vault 模型获得了很多关注。
    Dan Linstedt 将 Data Vault 模型定义如下:
    Data Vault 是面向细节的,可追踪历史的,一组有连接关系的规范化的表的集合。这些表可以支持一个或多个业务功能。它是一种综合了第三范式( 3NF )和星型模型优点的建模方法。其设计理念是要满足企业对灵活性、可扩展性、一致性和对需求的适应性要求,是一种专为企业级数据仓库量身定制的建模方式。
    从上面的定义可以看出, Data Vault 既是一种数据建模的方法论,又是构建企业数据仓库的一种具体方法。 Data Vault 建模方法论里不仅定义了 Data Vault 的组成部分和组成部分之间的交互方式,还包括了最佳实践来指导构建企业数据仓库。例如,业务规则应该在数据的下游实现,就是说 Data Vault 只按照业务数据的原样保存数据,不做任何解释、过滤、清洗、转换。即使从不同数据源来的数据是自相矛盾的(例如同一个客户有不同的地址), Data Vault 模型不会遵照任何业务的规则,如 “ 以系统 A 的地址为准 ” 。 Data Vault 模型会保存两个不同版本的数据,对数据的解释将推迟到整个架构的后一个阶段(数据集市)。

    2.3.2 Data Vault 模型的组成部分

    Data Vault 模型有中心表( Hub )、链接表( Link )、附属表( Satellite )三个主要组成部分。中心表记录业务主键,链接表记录业务关系,附属表记录业务描述。
    在 DataVault 模型的标准定义里,附属表的主键应该是附属表里参照到中心表或链接表的外键字段和装载时间字段的组合。尽管这个定义是正确的,但从技术角度考
    虑,我们最好还是增加一个代理键。使用只有一列的代理键更易维护。另外,对外键列和装载时间列联合建立唯一索引,也是一个好习惯。

    2.3.3 Data Vault 模型的特点

    一个设计良好的 Data Vault 模型应该具有以下特点:

    • 所有数据都基于时间来存储,即使数据是低质量的,也不能在 ETL 过程中处理掉。
    • 依赖越少越好。
    • 和源系统越独立越好。
    • 设计上适合变化。(源系统中数据的变化。在不改变模型的情况下可扩展。)
    • ETL 作业可以重复执行。
    • 数据完全可追踪。

    2.3.4 Data Vault 模型的构建

    在 Data Vault 模型中,各个实体有着严格、通用的定义与准确、灵活的功能描述,这不但使得 Data Vault 模型能够最直观、最一般地反映数据之间内含的业务规则,同时也为构建 Data Vault 模型提供了一致而普遍的方法。
    Data Vault 模型的建立可以遵循如下步骤:

    1. 设计中心表
      首先要确定企业数据仓库要涵盖的业务范围;其次要将业务范围划分为若干原子业务实体,比如客户、产品等;然后,从各个业务实体中抽象出能够唯一标识该实体的业务主键,该业务主键要在整个业务的生命周期内不会发生变化;最后,由该业务主键生成中心表。

    2. 设计链接表
      链接表体现了中心表之间的业务关联。设计链接表,首先要熟悉各个中心表代表的业务实体之间的业务关系,可能是两个或者多个中心表之间的关系。根据业务需求,这种关系可以是 1 对 1 、 1 对多,或者多对多的。
      然后,从相互之间有业务关系的中心表中,提取出代表各自业务实体的中心表主键,这些主键将被加入到链接表中,组合构成该链接表的主键。同样出于技术的原因,需要增加代理键。
      在生成链接表的同时,要注意如果中心表之间有业务交易数据的话,就需要在链接表中保存交易数据,有两种方法,一是采用加权链接表,二是给链接表加上附属表来处理交易数据。

    3. 设计附属表
      附属表包含了各个业务实体与业务关联的详细的上下文描述信息。设计附属表,首先要收集各个业务实体在提取业务主键后的其他信息,比如客户住址、产品价格等;由于同一业务实体的各个描述信息不具有稳定性,会经常发生变化,所以,在必要的时候,需要将变化频率不同的信息分隔开来,为一个中心表建立几个附属表,然后提取出该中心表的主键,作为描述该中心表的附属表的主键。
      当业务实体之间存在交易数据的时候,需要为没有加权的链接表设计附属表,也可以根据交易数据的不同变化情况设计多个附属表。

    4. 设计必要的 PIT 表
      Point—In—Time 表是由附属表派生而来的。如果一个中心表或者链接表设计有多个附属表的话,而为了访问数据方便,就有用到 PIT 表的可能。
      PIT 表的主键也是由其所归属的中心表提取而来,该中心表有几个附属表, PIT 表就至少应该有几个字段来存放各个附属表的变化对比时间。

    2.4 数据集市

    数据集市是数据仓库的一种简单形式,通常由组织内的业务部门自己建立和控制。一个数据集市面向单一主题域,如销售、财务、市场等。数据集市的数据源可以是操作型系统(独立数据集市),也可以是企业级数据仓库(从属数据集市)。

    2.4.2 数据集市与数据仓库的区别

    不同于数据集市,数据仓库处理整个组织范围内的多个主题域,通常是由组织内的核心单位,如IT部门承建,所以经常被称为中心数据仓库或企业数据仓库。数据仓库需要集成很多操作型源系统中的数据。由于数据集市的复杂度和需要处理的数据都小于数据仓库,因此更容易建立与维护。表 2-19 总结了数据仓库与数据集市的主要区别。
    选区_022.png

    2.4.3 数据集市设计

    数据集市主要用于部门级别的分析型应用,数据大都是经过了汇总和聚合操作,粒度级别较高。数据集市一般采用维度模型设计方法,数据结构使用星型模式或雪花模式。
    正如前面所介绍的,设计维度模型先要确定维度表、事实表和数据粒度级别,下一步是使用主外键定义事实表和维度表之间的关系。数据集市中的主键最好使用系统生成的自增的单列数字型代理键。模型建立好之后,设计 ETL 步骤抽取操作型源系统的数据,经过数据清洗和转换,最终装载进数据集市中的维度表和事实表中。

    2.5 数据仓库实施步骤

    1. 定义范围
      在实施数据仓库前,需要制定一个开发计划。这个计划的关键输入是信息需求和数据仓库用户的优先级。当这些信息被定义和核准后,就可以制作一个交付物列表,并给数据仓库开发团队分配相应的任务。

    2. 确定需求
      数据仓库项目的需求可以分为业务需求和技术需求。

    3. 逻辑设计
      定义了项目的范围和需求,就有了一个基本的概念设计。下面就要进入数据仓库的逻辑设计阶段。逻辑设计过程中,需要定义特定数据的具体内容,数据之间的关系,支持数据仓库的系统环境等,本质是发现逻辑对象之间的关系。

    4. 物理设计
      物理设计指的是将逻辑设计的对象集合,转化为一个物理数据库,包括所有的表、索引、约束、视图等。物理数据库结构需要优化以获得最佳的性能。每种数据库产品都有自己特别的优化方法,这些优化对查询性能有极大的影响。比较通用的数据仓库优化方法有位图索引和表分区。

    5. 装载数据
      这个步骤实际上涉及整个 ETL 过程。需要执行的任务包括:源和目标结构之间建立映射关系;从源系统抽取数据;对数据进行清洗和转换;将数据装载进数据仓库;创建并存储元数据。

    6. 访问数据
      访问步骤是要使数据仓库的数据可以被使用,使用的方式包括:数据查询、数据分析、建立报表图表、数据发布等。根据采用的数据仓库架构,可能会引入数据集市的创建。通常,最终用户会使用图形化的前端工具向数据库提交查询,并显示查询结果。

    7. 管理维护
      这个步骤涵盖在数据仓库整个生命周期里的管理和维护工作。这步需要执行的任务包括:确保对数据的安全访问、管理数据增长、优化系统以获得更好的性能、保证
      系统的可用性和可恢复性等。

    2.6 小结

    • 关系模型、多维模型和 Data Vault 模型是三种常见的数据仓库模型。
    • 数据结构、完整性约束和 SQL 语言是关系模型的三个要素。
    • 规范化是通过应用范式规则实现的。第一范式( 1NF )要求保持数据的原子性、第二范式( 2NF )消除了部分依赖、第三范式( 3NF )消除了传递依赖。关系模型的数据仓库一般要求满足 3NF 。
    • 事实、维度、粒度是维度模型的三个核心概念。
    • 维度模型的四步设计法是选择业务流程、声明粒度、确定维度、确定事实。
    • 星型模式和雪花模式是维度模型的两种逻辑表示。对星型模式进一步规范化,就形成了雪花模式。
    • Data Vault 模型有中心表( Hub )、链接表( Link )、附属表( Satellite )三个主要组成部分。中心表记录业务主键,链接表记录业务关系,附属表记录业务描述。
    • Data Vault 不区分数据在业务层面的正确与错误,它保留操作型系统的所有时间的所有数据,装载数据时不做数据验证、清洗等工作。
    • 数据集市是部门级的、面向单一主题域的数据仓库。
    • )数据集市的复杂度和需要处理的数据都小于数据仓库,因此更容易建立与维护。
    • )实施一个数据仓库项目的主要步骤是:定义范围、确认需求、逻辑设计、物理设计、装载数据、访问数据、管理维护。
    展开全文
  • 编者按选址问题是运筹学中...文章作者:陈立婷,北京航空航天大学电子信息工程学院在读研究生,研究方向:运筹优化算法设计与应用、枢纽选址、空中交通管理顾少英,多伦多大学工业工程与运筹学研究生,研究方向: 应...

    b0acb82a70a9e8b402f5a7aab4b9e0d2.png

    编者按

    选址问题是运筹学中非常经典的问题。该问题是指在确定选址对象,选址目标区,成本函数以及约束条件的前提下,以总物流成本最低或总服务水平最优或社会效益最大化为目标,确定物流系统中物流节点的数量,位置,从而合理规划物流网络结构。

    文章作者:
    陈立婷,北京航空航天大学电子信息工程学院在读研究生,研究方向:运筹优化算法设计与应用、枢纽选址、空中交通管理
    顾少英,多伦多大学工业工程与运筹学研究生,研究方向: 应用统计,随机过程与优化,机器学习
    江镕行,同济大学经济与管理学院硕博连读生,研究方向:优化算法设计及应用、物流与供应链、共享汽车
    责任编辑:顾少英 江镕行 高源
    文章发表于 微信公众号【运筹OR帷幄】:OM | 选址问题模型研究——以悠桦林仓库布局实践为例 欢迎原链接转发,转载请私信@运筹OR帷幄 获取信息,盗版必究。
    敬请关注和扩散本专栏及同名公众号,会邀请 全球知名学者发布运筹学、人工智能中优化理论等相关干货、知乎Live及行业动态
    更多精彩文章,欢迎访问我们的机构号:@运筹OR帷幄

    选址问题在公司实现其经营战略与目标的过程中有着重大的意义。选址的好坏直接影响到生产成本,服务时间,服务质量等等,进而影响公司的利润与其在商业市场上的竞争力,甚至决定了企业的命运。一个好的选址可以减少生产成本,节省顾客购买时间,便利顾客,而差的选址会带来物流中的不便与损失。由于选址是一项长期性投资,一旦确定下来就不能随意更改,因此规划其位置前必须进行深入的调查和周密的考虑。

    1 选址问题基本介绍

    选址问题,旨在选址目标区内确定设施的位置以及数量,并满足一定的约束条件,使得目标最优。选址问题根据规划区域,距离,目标有多种分类。

    (1)规划区域

    连续选址问题:设施可以在全平面内任意范围内选址。当选址区域过大,需考虑地球的球面效应时,规划区域为曲面。

    离散选址问题:设施的候选位置为有限个。

    (2)距离

    f234f33929b0cf2bdace4f4066cc76a6.png

    欧几里得距离:两点间的直线距离;

    方格线距离:两个点上在标准坐标系上的绝对轴距之总和。

    图中绿色线段为两点间的欧几里得距离,黄色线,蓝色线,红色线为方格线距离。方格线距离也称为计程车几何或城市区块距离。

    大圆距离:指的是从球面上两点间的最短距离。

    (3)目标

    单目标选址:总运输成本最低,总费用最低(包含运输成本,配送中心固定费用等),中枢纽数目最少,总服务最优。其中最低成本的目标函数为MiniSum形式,总服务最优的多为MiniMax形式。如应急设施选址时目标为使需求点尽可能快的得到应急服务。

    多目标选址:单目标选址中的多个组合,可通过将多个单目标加权转化为单目标进行求解。

    2 选址问题求解模型综述

    近年来,选址问题在物流管理,交通运输,通信电讯,医疗服务等领域有了广泛的研究和应用。下面介绍下几种常用的模型。

    2.1 重心法选址模型

    重心法适用于选址区域为连续平面,以欧几里得距离作为距离形式,以总运输成本最低为目标函数的选址问题。重心法选址模型来源于解析几何,其将物流网络中的需求点看作一平面内的点,把需求量作为重量,一般选取出这一平面内的需求点的重心点作为枢纽,以达到减少运输成本的目的。

    重心法目标函数为:

    2a8badc04acad58337bc520279ab8e65.png

    2.2 p-中值(p-median)模型

    p-中值问题中,选址区域为有限点组成的集合,距离形式为任意形式,目标函数为总运输成本最低。P-中值问题限制了枢纽个数为p个,每个需求点只能与一个枢纽建立连接,可用以下模型表示:

    9851316de8b1cbdfa6ae354071becb7d.png

    式中,(1)保证了每个需求点仅与一个枢纽节点有连接,(2)保证了备选节点集中只有被选中设为枢纽的节点可与需求点建立连接,(3)保证了枢纽个数为p个。

    2.3 p-中心(p-center)模型

    p-中心问题与p-中值问题的唯一不同点在于目标函数的形式。在p-中心问题中,目标函数为MinMax形式,目标是使每个需求点到最近设施的最大距离最小,通常用于消防站,警察局等应急设施的选址中。如消防站设施选址问题中,目标为使区域内的每个用户都能在某个阈值时间内得到消防服务,在满足约束的条件下,该阈值越小越好。

    c2901e560765f267a10934885327663a.png

    2.4 集合覆盖模型

    集合覆盖模型是指在覆盖所有需求点的前提下,使得总建设费用最低,当每个设施的建设费用相同时,问题简化为枢纽数目最少,该模型可以表示为:

    d81cdf8a5f2c778879fc347e17042f48.png

    3 重心法求解介绍

    下面我们辅以一个简单的例子来详细介绍重心法的求解过程:

    751ab0c5745519734e60fbaa8ae180cb.png

    如图所示,共有五个需求点,其各自对应的V,R,X,Y如表所示,

    2fcfb11f2991f946dc047999a6141f7c.png

    3.1 单设施选址问题:

    单设施选址问题的一般求解使用的是迭代重心法,注意到目标函数的形式为:

    7943ffe568ced413b0524bd330172c95.png

    求偏导数可得:

    33cf24b07503b2ee349354be284d764d.png

    37bacfb18d1c31113ee6f35be2d46de9.png

    2d39686431a9242f7da38f057f578158.png

    则迭代法的整个流程为:

    1) 使用等效重心公式,求得初始等效重心作为初始解,计算花费cost1

    2) 使用迭代重心公式,求得迭代后的解,计算花费cost2

    3) 比较cost1和cost2,如相等或相差小于阈值,迭代结束,此时的解即为最终的解;否则令cost1=cost2,回到步骤2)

    结合例子来看,使用各个需求点的等效重心坐标作为初始解,

    6d285de55d344b86606cde30383a8d0f.png

    在此例子中等效重心坐标为 (12.4167,12.75)(图中黑点所示),此时总费用为11323.90

    44a1ce6796f7b109d410de2d8570462f.png

    要注意,初始解大部分情况下不是最优解。

    举一个简单的例子,如在(0,0)处需求点P 需求量为10,(10,0)点处需求点Q需求量为1,根据直接重心法仓库应选址在(1,0)处,此时花费为19。然而若直接选址在(0, 0)处,总花费仅为10。

    当二十次迭代时,

    753b22b95294dc79f04108c0e34c9e44.png

    可以看到,解趋于稳定,最终的花费为10861.30。

    3.2 多设施选址问题

    多设施选址问题较单设施选址问题复杂得多,一种常用解法是将其看成多个单设施选址问题来解决。对于一个p设施选址问题来说,求解步骤如下:

    1) 随机选择p个初始坐标作为初始解,计算花费cost1

    2) 使用当前解,将每个需求点分配个距离最近的设施,从而得到p个需求点簇,在每个需求点簇内迭代得解,计算花费cost2

    3) 比较cost1和cost2,如相等或相差小于阈值,迭代结束,此时的解即为最终的解;否则令cost1=cost2,令迭代后的解作为当前解,回到步骤2)

    以p=2为例,

    初始解花费为10534:

    181701433ec994677e609b5703c84ae1.png

    迭代二十次后,解已经稳定,此时最终解为9302.43:

    f84102d6d826bd24575af9501b03227d.png

    3.3其他求解方法

    上文介绍了重心法求解单设施选址问题和多设施选址问题,但重心法的应用场景有限,仅适应于约束简单的选址问题,当问题变得复杂,约束条件增加或目标函数改变时就难以适用,本节简单介绍了一些方法求解更复杂的选址问题。

    1.解析解

    求解纯数学模型,获得最优解。然而本文提到的几个选址问题均为NP-Hard问题,在问题规模较小时可通过CPLEX、Gurobi等求解器求解,但随着问题规模扩大,在多项式时间内无法获得解析解。

    2.近似解

    该方法是解析解的改编方法,常见的方式为采用松弛算法将约束吸收到目标函数中,减少求解的复杂程度,减少求解时间,但同样无法应对大规模问题。

    3.启发式算法

    该方法是较为常用的求解NP-Hard问题的方法,如遗传算法、蚁群算法、粒子群算法等,思路是随机产生多个初始解,通过特殊的迭代寻优规则进行优化并更新状态,到达一定迭代次数或者其他终止条件时结束。此类算法在应对大规模问题时往往求解时间短,一般均能得到一个较优的可行解,确点是容易陷入局部最优,无法得到最优解,同时求解过程与问题高度相关,改变问题结构对算法影响很大,难以扩展。

    4.仿真法

    对于大型、复杂的选址问题,可通过仿真的方式重现系统活动。一般而言,采用仿真时需要对现实情况有较好的统计,获取一些关键参数的统计分布,对实践的要求较高。与其他方法相比,仿真方法对计算机的算力要求较小,不需要严格的编程。

    4 悠桦林在仓储选择的实践

    4.1.仓储资源规划与布局项目

    由于业务扩张需求,某公司希望在湖南省内进一步优化当前的供应链仓网布局: 其中几个重要板块包括如何在考虑现有销售信息和仓储布局下,增添新的前置仓库以满足业务的增长需求;如何根据历史订单数据/仓储成本/运输价格,寻找供应链成本最低模型与最优库存策略;如何基于当前仓网布局与其他可获得信息周期性地预测库存与峰值,并可视化,等等。在该项目中,悠桦林基于大规混合整数规划模型,开发客户可视化前端,力图建立全面的仓网规划能力,为仓储网络决策的科学性和精准性提供系统支持。

    81dff0dfbe3c9afb9f1affdadcb5ac1e.png

    4.2.项目背景回顾

    本文着重介绍其中的前置仓库选址问题: 即如何在诸多条件约束下(具体参见下一节),选择数量最少的新前置仓库地址,以满足对整个湖南省的门店的服务支持。同时输出每个门店的具体地理位置。

    14a6fcc1f7b3640c65ab20af37514ffc.png

    4.3. 前置仓选址方案

    该混合整数规划的建模思想为2.4节的集合覆盖模型的加强衍生升级版。这里主要想介绍的是这个项目所特有的若干约束项/前提条件,包括但不限制于

    · 前置仓所选地址的最大范围边界(湖南省)

    · 每个前置仓服务半径为150KM的圆

    · 一个门店仅能被一个前置仓服务且总覆盖率至少达到95%

    · 每个门店所需总量额的范围上下限

    同时设定成本系数,包括但不限制于

    · 仓库存储成本

    · 仓库与门店间的运输成本

    优化目标

    · 最小化仓库数量

    输出结果

    · 仓库数量与每个仓库对应的地理位置

    此外,悠桦林额外在这里为该公司提供了两种可选约束条件下的优化策略与结果:

    · 所有客户一视同仁,至少满足95%客户服务水平,此时优化结果为11仓

    d317ef3ccfc8bfcb51d7b6b735104938.png

    · 更好的服务大客户,至少满足95%需求覆盖率,此时优化结果为8仓

    79e1b0b85c458dc6cb54ad51d487519c.png

    最终,对比两种优化结果,第二种可选约束条件下总仓数更少且总距离最短,以下为两种结果对比:

    7a8e3040c8b8d07c41025c2c27798212.png

    在该项目中,悠桦林基于大规模混合整数规划模型,为该公司提供了最优化的前置仓库选址方案,同时为客户提供了多种可选约束条件,与相应的不同种决策方案。以上仓库选择问题为悠桦林为该公司指定的供应链网络全局规划的一个重要环节,为全网布局预测与优化提供输入。

    参考文献:

    Facility Location and Strategic Supply Chain Management, Prof. Dr. Stefan Nickel, 2008-2009


    更多精彩文章欢迎关注我们的机构号@运筹OR帷幄

    展开全文
  • matlab语言编写flying-V型仓库布局的拣货路径优化方法,主要是遗传算法,模拟退火算法,蚁群算法等,本文主要讲述基于遗传算法结合模拟退火算法进行优化的仿真实验。 仓库布局为flying-V型宽道模式,即不考虑拣货...

    matlab语言编写flying-V型仓库布局的拣货路径优化方法,主要是遗传算法,模拟退火算法,蚁群算法等,本文主要讲述基于遗传算法结合模拟退火算法进行优化的仿真实验。
    仓库布局为flying-V型宽道模式,即不考虑拣货小车本身大小,多辆小车可同时在路径上行走。如下图
    在这里插入图片描述
    两条主干道,4个区。零部件货物坐标表示为[A,x,y],例如[2,3,5]表示该零部件位于第二区第三排的第五列,存取点坐标例外为[0,0,0]。这样设货架长度为L,可计算出两个货物之间的距离。本文是基于Flying-V型仓库探讨拣货小车路径问题,对于多个分散在不同区域的零部件,调用一定数量的车辆,满足一定的约束条件达到路径较短,总成本最低等综合目标,属于经典车辆路径问题(VRP)。本次设计主要讨论在软时间窗条件(允许超出货物被拣规定的时间,根据超出的时间进行惩罚附加额外的成本,硬时间窗则不允许超出时间,需要重新规划路线),车辆数量,车辆装载率以及路线成本下设计各自的成本权重,得出总成本的单目标函数。因此总成本包括车辆的基本费用、路程油耗、时间惩罚成本和车辆载重附加油耗。K辆载重为W的同类型拣货小车,从一个存取点出发负责对N个零部件进行拣货工作,记为节点(i=0,1,2,…,n),每个零部件有各自对应的重量wi,有各自的被拣时间范围[ai,bi],在一定的假设条件下安排车辆数量和每辆车的行驶路线使总成本达到最小。
    在这里插入图片描述
    根据以上条件可列出各个货物的距离矩阵。此时若有一定的小车车队及对应路线则可以根据设定的单位成本计算出总成本。
    在这里插入图片描述
    计算总成本为在这里插入图片描述
    有了总成本的计算方法那么如何得出小车路线是关键的,遗传算法则是根据已设定好的初始种群路线计算对应的成本适应度函数进行选择交叉变异等操作不断进化达到多约束条件下的最优解,即最优路线。
    假设有9个零部件货物,举例如下:1 5 6 9 2 8 3 5 7 4 零部件1-9对应的重量分别为 1 3 5 8 2 2 11 4 9,小车的载重为13,由于w1+w5+w6=5,w1+w5+w6+w9=14>13,故派出第一辆小车负责零部件1 5 6的运送。同理第二辆车负责零部件9 2的运送,第三辆车负责8 3 5的运送,第四辆车只运送零部件7,第五辆车只负责零部件4,因此一共需要5辆小车。根据得到的车辆数目和每辆小车各自负责运送的零部件货物顺序进行下一步的操作。
    每个货物有对应的重量和被拣的时间范围,小车为同种小车有载重重量,小车有行驶速度,本文是设定35个货物零部件,能派出的小车数量不限,初始种群大小为100,每个个体对应一段路线,为自然数编码即根据货物的编号来确定路线。根据载重条件后可得出小车数量和每辆小车各自对应的路线。
    在每一代的更新后与上一代各个个体进行比较进行模拟退火的优化,以便得出最优解。
    产生新的种群后将新种群的适应度与原种群作比较,加入Metropolis接受准则,即以一定概率接受新种群中的较差解,完全接受新种群的更优解。这样便大大的增加了跳出局部最优解的概率。如图当算法陷入局部最优解A时,加入该接受准则可有利于该算法跳出局部最优解,当得到下一个高峰点时,由于附近的解都劣于该解,故大大的增加了得到最优解C的概率。
    在这里插入图片描述
    在这里插入图片描述
    遗传算法中选择采用的是轮盘赌,即个体被选择的概率正比于适应度在这里插入图片描述
    仿真结果如下图:
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    附上源程序,代码较多为rar,注释详细,有利于机器学习的学习,解压后matlab打开可直接浏览运行,如有不明白和意见建议请留言。
    https://download.csdn.net/download/qq_38844099/11968754

    展开全文
  • 仓库结构设计研究

    千次阅读 2010-06-14 09:39:00
    而且仓库内部设计时存货的位置会直接影响到仓库内移动的所有货物的总物料搬运费用。假设仓库的基本规模已定,我们需要决策仓库的最优结构是怎样的,考虑在物料搬运成本和仓容利用率之间取得平衡,并最终使物料搬运...
  • 数据仓库的 RDBMS 性能优化指南

    千次阅读 2004-07-04 22:39:00
    数据仓库的 RDBMS 性能优化指南 本性能优化指南旨在帮助数据库管理员和开发人员配置 Microsoft? SQL Server? 2000,以获得最佳的性能,并帮助找出造成关系数据库(包括用于数据仓库的数据库)性能低下的原因。本指南...
  • 数据仓库-物理模型设计

    千次阅读 2019-07-07 13:13:01
    数据仓库的物理模型就是数据仓库逻辑模型在物理系统中的实现模式。... 为确定数据仓库的物理模型,设计人员必须做这样几方面工作:首先要全面了解所选用的数据库管理系统,特别是存储结构和存取方法;其...
  • 立体仓库货架设计

    万次阅读 2017-11-13 13:28:54
    3 AS/RS货物单元优化设计方法 ------------------------------------------23 3.1货架布局方式--------------------------------------------------23 3.2货位布局方式--------------------------------------...
  • 数据仓库架构及模型设计基础

    千次阅读 多人点赞 2019-06-26 21:58:18
    注:本文所有内容摘自《Hadoop构建数据仓库实践》 1.数仓架构 1.1数据集市架构 数据集市是按主题域组织的数据集合,用于支持部门级的决策。有两种类型的数据集市:独立数据集市和从属数据集市。 独立数据集市集中...
  • 作者 |云祁封图| CSDN下载于视觉中国一、前言作者最近看了《Hadoop构建数据仓库实践》这本书,收获很多,把一些关于数仓实践的心得整理出来,方便大家共同学习。二、数据仓库的定义数...
  • 数据仓库

    2020-04-07 16:17:47
    数据仓库 一、定义 中央存储库 英文名称为Data Warehouse,可简写为DW或DWH 数据仓库是一个面向主题的、集成的、随时间变化的...优化业务流程 三、架构 标准上可以分为四层:ODS(临时存储层)、PDW(数据仓库层)、...
  • 最近看了《Hadoop构建数据仓库实践》这本书,收获很多,把一些关于数仓实践的心得我会写出来分享给大家,希望大家伙儿能互相学习,共同进步,☆⌒(*^-゜)v THX!!
  • 数据仓库理论

    2020-09-13 14:15:26
    数据仓库:英文Data WareHouse,数据仓库是面向主题,为分析数据而设计的,是一个各种数据(包括历史数据和当前数据)的中心存储系统,主要服务于商业智能(也就是BI)和企业决策管理。 商业智能:指用现代数据...
  • 导语大家好,我是智能仓储物流技术研习社的社长,你的老朋友,老K。知识星球*原创电子书*深海社区*微信群工厂企业在开展精益生产时,不可避免的就需要开展工厂规划设计,对原来的生产...
  • 第一章 数据仓库概述 1.1 数据仓库简介 1.1.2 什么是数据仓库? 1.1.3 OLTP 与 OLAP 1.2 数据仓库技术架构 1.3 课程目标 第二章 核心技术框架 2.1 数据仓库周边技术框架 2.1.2 数据采集 Datax Sqoop Datax 与 Sqoop...
  • 数据仓库【建模】

    2020-09-02 19:13:11
    数据仓库建模流程 选择业务流程 声明粒度 确认维度 确认事实 选择业务流程 确认哪些业务处理流程时数据仓库应该覆盖的 例如:了解和分析一个商店的销售情况 ...数据仓库环境中粒度之所以时主要的设计问题,是因为
  • 数据仓库--理论知识

    2020-10-09 16:52:18
    文章目录数据仓库面向主题集成非易失随时间变化数据仓库和数据库的区别OLTP和OLAP的区别1、联机事务处理OLTP2、联机分析处理OLAP数据仓库的架构1、Inmon架构2、Kimball架构3、混合型架构数据仓库的解决方案数据ETL...
  • 数据仓库解释

    千次阅读 2007-05-28 16:10:00
    1.数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的、不可修改的数据集合数据仓库,英文名称为Data Warehouse,可简写为DW。数据仓库之父Bill Inmon在1991年出版的“Building the Data Warehouse”一...
  • 面试问题准备-数据仓库建模篇

    万次阅读 多人点赞 2019-04-06 23:26:51
    1. 什么叫数据仓库?数据仓库的特点? (相信inmon的数据仓库概念的四个特点是最基本的吧,当然需要加上自己的理解) 首先,用于支持决策,面向分析型数据处理,它不同于企业现有的操作型数据库; 其次,对多个异构...
  • 从Oracle的战略收购布局很清晰地看到,Oracle主要在三方面增强:1、IaaS基础设施技术:含虚拟化、网络、存储、安全、身份访问控制等2、CX应用:含营销、营销大数...
  • 1. 背景Apache Hudi将流处理带到大数据,相比传统批处理效率高一个数量级,提供了更新鲜的数据。在数据湖/仓库中,需要在摄取速度和查询性能之间进行权衡,数据摄取通常更喜欢小文件以改...
  • 20120627db2数据库基础、设计优化

    千次阅读 2012-07-01 17:48:23
    商业智能群199567325,2012年6月27号《db2数据库基础、设计优化》,讲解者:赵坚密Jimmy。 讲课方式,YY频道号:85536471 课件材料《大数据量数据整合与查询性能优化(DB2V9& AIXV5.3)v1.2 - 副本.pdf》,可从...
  • 对于给定的自动化立体仓库,其运行效率高低与出入库调度系统的设计好坏有密切关系,文献?1?3?对自动化立体仓库系统优化调度进行了较深入的研究,所采用的方法包括Petri网、时态逻辑、模拟退火、遗传算法、...
  • 备件仓库管理系统

    千次阅读 2017-07-10 10:30:50
    最近做了一个备件仓库管理软件,虽然只是一个不太复杂的仓库管理业务的软件,附带产出一些相关的报表,而且有之前做过的送水管理系统、酒店管理系统等软件的基础及技术储备,不过做起来发现还是有很多细节及新的东西...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,441
精华内容 3,376
关键字:

仓库布局优化设计