精华内容
下载资源
问答
  • 标准星型模型是 数据仓库中一种常用的组织信息和数据的多维数据模型。它由中心的一个事实表(Fact Table)和一些围绕它的维度表(Dimensional Table)组成。事实(Fact)着眼于商业活动中的分析数据,通常回答诸如...

    标准星型模型是

    数据仓库中一种常用的组织信息和数据的多维数据模型。它由中心的一个事实表(Fact Table)和一些围绕它的维度表(Dimensional Table)组成。 2011061615072767.gif

    事实(Fact)着眼于商业活动中的分析数据,通常回答诸如这个产品多贵?卖了多少?之类的问题。事实数据存储在事实表里面。事实表可以分为两部分:一部分是指向所有维度表主键的外键字段,另一部分是度量字段(通常叫做Measure,BW中叫做Key Figure)。 
    2011061617062357.gif

    维度(Dimension)是对商业活动某个考察角度的文字性描述,通常回答诸如谁?买了什么东西?什么时候?在哪里?之类的问题。维度数据存储在维度表里面。维度表也可以分为两部分:一部分是作为主键的ID,另一部分是该维度的一组特征字段(Characteristics)。例如顾客维度包含了唯一的顾客ID,顾客的姓名,居住城市,所在区域等。 

    2011061617063539.gif

    SAP  BW星型模型 SAP在标准星型模型基础上做了一些改进,将维度表中的主数据(Master Data)分离出去,独立建表,并通过SID Table和维度表关联起来。SAP将主数据分为3类:属性(Attributes),文字描述(Text),层级结构(Hierarchy)。以Material维度为例,材料的名字放入text 表中,材料所属的类别放入attributes表中,材料的层级信息放入hierarchy表中。 

    2011061617065422.gif

    事实表和与之相关联的维度表构建了BW分析的核心模型InfoCube. InfoCube是一个独立完整的数据集,从多个维度描述了一个商业应用。 

    2011061617070634.gif

    这里需要注意的是Master Data 并不是InfoCube的一部分,因此Master Data可以在多个InfoCube中共享。这是BW将Master Data从维度表分离出来的主要原因之一。我们知道MOLAP数据仓库为了提高Aggregation的效率,需要事先把这些Aggregation的值计算好,而不是在每次请求的时候才计算。这些预先计算好的Aggregation值当然也需要以cube的形式保存起来。如果是用标准星型模型,那么有两种方法来存储:一种是将Aggregation值和facts一起保存在原始cube的事实表中,这样事实表就会更加庞大,查询效率肯定不高。另一种是为不同的Aggregation建立独立的aggregation cube,存在这写新的cube中,但这样会造成维度表的冗余,每个aggregation cube都会重复一份它所需要的维度表中的所有信息。现在BW将Master Data从维度表分离出来使得维度表变成一张简单的关系表,就解决了Master Data的冗余问题。同时由于Master Data不是和维度表绑在一起而是通过SID Table查询得到,使得多语言支持非常方便。可以为每种语言建立独立的主数据表并根据查询时的语言信息动态绑定到不同语言的主数据表。 
    2011061617072120.gif

    转载于:https://www.cnblogs.com/spmxlBlog/archive/2011/06/16/2082727.html

    展开全文
  • 运维体系框架标准模型简介

    千次阅读 2018-02-01 11:05:49
    形成统一的对象模型后,各方在统一的认识下展开有效协作,然后针对不同的运维对象,再抽取出它们所对应的运维场景,接下来才是运维场景的自动化实现。 这有点像我们学的面向对象编程的思想,其实我们就是需要遵循...

    为什么要做标准化?

    标准化的过程实际上就是对运维对象的识别和建模过程。形成统一的对象模型后,各方在统一的认识下展开有效协作,然后针对不同的运维对象,再抽取出它们所对应的运维场景,接下来才是运维场景的自动化实现。

    这有点像我们学的面向对象编程的思想,其实我们就是需要遵循这样一个思路,我们面对的就是一个个实体和逻辑运维对象。

    在标准化的过程中,先识别出各个运维对象,然后我们日常做的所有运维工作,都应该是针对这些对象的运维。如果运维操作脱离了对象,那就没有任何意义。同样,没有理清楚对象,运维自然不得章法。

    比如我们说扩容,那就要先确定这里到底是服务器的扩容,还是应用的扩容,还是其它对象的扩容。你会发现,对象不同,扩容这个场景所实施的动作是完全不一样的。

    如果把服务器的扩容套用到应用的扩容上去,必然会导致流程错乱。同时对于对象理解上的不一致,也会徒增无谓的沟通成本,造成效率低下。自然地,这种情况下的运维自动化不但不能提升效率,还会越自动越混乱。

    这就是为什么我每次都会连续强调三遍“标准先行”的原因。虽然这个事情比较枯燥和繁琐,但是于纷繁复杂中抽象出标准规范的东西,是我们后续一系列自动化和稳定性保障的基础。万丈高楼平地起,所以请你一定不要忽略这个工作。

    好,总结一下标准化的套路:

    • 第一步,识别对象
    • 第二步,识别对象属性
    • 第三步,识别对象关系
    • 第四步,识别对象场景

    接下来我们就按照上面这个思路,一起来分析从基础设施层面和应用层面应该识别出哪些运维对象。

    基础设施层面的标准化

    基础设施层面的运维对象应该不难识别,因为都是一个个物理存在的实体,我们可以进行如下分析。

    • 第一步,识别实体对象,主要有服务器、网络、IDC、机柜、存储、配件等。
    • 第二步,识别对象的属性,比如服务器就会有 SN 序列号、IP 地址、厂商、硬件配置(如 CPU、内存、硬盘、网卡、PCIE、BIOS)、维保信息等;网络设备如交换机也会有厂商、型号、带宽等信息。
    • 第三步,识别对象之间的关联关系,比如服务器所在的机柜,虚拟机所在的宿主机、机柜所在 IDC 等简单关系;复杂一点就会有核心交换机、汇聚交换机、接入交换机以及机柜和服务器之间的级联关系等,这些相对复杂一些,也就是我们常说的网络拓扑关系

    把以上信息梳理清楚,通过 ER 建模工具进行数据建模,再将以上的信息固化到 DB 中,一个资源层面的信息管理平台就基本成型了。

    以服务器为例简单展示一下,我们的视角就是下面这样的:

    但是,信息固化不是目的,也没有价值,只有信息动态流转起来才有价值。接下来我们需要做的事情,就是识别出针对运维对象所实施的日常运维操作有哪些,也就是识别出运维场景是什么

    • 第四步,还是以服务器为例,我们针对服务器的日常操作有采购、入库、安装、配置、上线、下线、维修等等。另外,可能还会有可视化和查询的场景,如拓扑关系的可视化和动态展示,交换机与服务器之间的级联关系、状态(正常 or 故障)的展示等,这样可以很直观地关注到资源节点的状态。

    完成了这些工作,接下来才是对上述运维场景的自动化开发。所以你看,在真正执行去做工具和自动化平台之前,其实是需要先做好大量的基础准备工作的。我要再次强调这一点,一定不能忽视。

    应用层面的标准化

    下面我们再一起看一个逻辑上的对象,就是我们前面经常提到的运维的核心:应用。对这个逻辑对象的建模会相对复杂一些,不过我们依然可以按照上面的套路来。

    • 第一步,识别对象。

    我们前面讲过,这个识别过程是在做微服务架构设计或拆分的时候就确定下来的。所以严格地讲,它不应该是运维阶段才被识别出来的,而是在之前设计阶段就被识别和确认下来,然后延伸到运维这里才对。

    • 第二步,识别对象属性。

    一个应用是业务的抽象逻辑,所以会有业务和运维两个维度的属性。业务属性在业务架构时确定,这主要是需要业务架构师去识别的,但是它的运维属性就应该由运维来识别了。

    下面我们一起来看一下,一个应用应该具备哪些基本的运维属性。

    * 应用的元数据属性,也就是简单直接地描述一个应用的信息,如应用名、应用 Owner、所属业务、是否核心链路应用以及应用功能说明等,这里的关键是应用名;

    * 应用代码属性,主要是编程语言及版本(决定了后续的构建方式),GitLab 地址;

    * 应用部署模式,涉及到基础软件包,如语言包 Java、C++、Go 等;容器如 Tomcat、JBoss 等;

    * 应用目录信息,如运维脚本目录、日志目录、应用包目录、临时目录等;

    * 应用运行脚本,如启停脚本、健康监测脚本;

    * 应用运行时的参数配置,如运行端口、Java 的 JVM 参数 GC 方式、新生代、老生代、永生代的堆内存大小配置等。

    从应用属性的视角,应该是下面这样一个视图(简单示例,不完整):

    • 第三步,识别对象关系。

    也就是应用与外部的关系,概括起来有三大类:

    第一类是应用与基础设施的关系,包括应用与资源、应用与 VIP、应用与 DNS 等等的关系;

    第二类是平行层面的应用与应用之间的关系,这里再细分下去就是应用服务或 API 与其它应用服务和 API 的依赖关系。如果你有相关的经验,应该会联想到全链路这样的工具平台了,没错,这样的平台就是用来处理应用间关系管理的。

    第三类是应用与各类基础组件之间的关系,比如应用与缓存,应用与消息、应用与 DB 等等之间的关系。

    • 第四步,识别应用的运维场景。

    这个就会比较多了,比如应用创建、持续集成、持续发布、扩容、缩容、监控等;再复杂点的比如容量评估、压测、限流降级等。

    好,这里我们先收一下,聚焦到标准化的层面,通过基础设施和应用层面标准化的示例,我想你应该可以掌握基本的建模思路了,这样的思路可以应用到其它的运维对象上 。

    同时,通过上面这些内容,你应该可以比较清晰地看到,我们的每一个运维操作都是针对某个运维对象的,这一点在规划运维体系时非常重要。

    而在这些对象中,应用又是重中之重,是微服务架构下的核心运维对象

    从应用标准化的过程中我们也可以看到,针对应用的识别和建模,明显复杂很多。所以,后面我还会从理论和实践的角度来继续强化和分析这个概念。

    今天,我继续跟你聊基础架构标准化的问题,但是今天我计划不谈如何进行架构标准化的细节,而是想强调一下基础架构标准化的重要性,因为从我个人的经历和我实际观察到的情况来看,这块的问题会更普遍一些,而这一部分又影响着后续一系列效率和稳定性平台的建设方案。

    同时,如果说上次我们讲的基础设施和应用标准化是运维团队职责的话,那今天的内容就是架构、开发和运维共同的职责。

    常见的分布式基础架构组件

    让我们先一起列一下,微服务的分布式架构下,涉及到的主要基础架构组件有哪些。

    • 分布式服务化框架 ,业界开源产品比如Dubbo、Spring Cloud这样的框架;
    • 分布式缓存及框架 ,业界如Redis、Memcache,框架如Codis和Redis Cluster;
    • 数据库及分布式数据库框架 ,这两者是密不可分的,数据库如MySQL,MariaDB等,中间件如淘宝TDDL(现在叫DRDS)、Sharding-JDBC等。当前非常火热的TiDB,就直接实现了分布式数据库的功能,不再额外选择中间件框架;
    • 分布式的消息中间件 ,业界如Kafka、RabbitMQ、ActiveMQ以及RocketMQ等;
    • 前端接入层部分 ,如四层负载LVS,七层负载Nginx或Apache,再比如硬件负载F5等。

    上面是几类主要的基础架构组件,为了便于理解我以开源产品举例。但在实际场景中,很多公司为了满足业务上的个性化需求,会自己研发一些基础组件,比如服务化框架、消息中间件等,这个情况在有一定技术实力的公司里比较常见。不过大部分情况下,我们会基于这些开源产品做一些封装或局部的改造,以适应我们的业务。

    基础架构组件的选型问题

    关于基础架构组件,业界可供我们选择的解决方案和产品是非常多的,但是选择多了就容易挑花眼,反而不知道从何入手。我们大概都会遇到同样的问题,是自研还是选择开源产品?有这么多的开源产品到底该选哪一个?

    按正常的思路,一定是先组织选型调研,然后进行方案验证和对比,最后确认统一的解决方案。

    但是,由于开源产品的便利性,以及开发同学对技术探索的好奇心,实际情况往往是,整个大的技术团队中,不同的开发团队,甚至不同的开发人员,会根据开发的需要或个人喜好,选择不同的开源产品,在没有严格限制的情况下,甚至会尝试去自研。

    按照我的观察, 这个问题特别容易出现在微服务架构引入初 期。在这个阶段,团队组织架构按照业务领域进行切分,产生一个个与业务架构匹配的小规模技术团队。每个小团队所负责的业务相对独立,自主权就会变大,如果这个时候整个团队中没有一个强有力的架构师角色去做端到端的约束,就极其容易出现上面的这个问题,并且会一直扩散蔓延下去。

    相比之下,成规模的大公司在这一点上做得就相对严格一些,当然也可能是因为之前尝过苦头,所以后来变得越来越规范了。所以这一点也是每个技术团队在引入微服务架构时要提前关注的。

    我们以分布式服务化框架为例,我之前遇到的一个实际情况就是,整个大的技术团队选型时以Java技术栈为主,毕竟这块有很多的业界经验和产品可以借鉴参考。但是有的团队对PHP特别精通熟悉,就想用PHP去做微服务,有的团队对Go感兴趣,就想尝试Go的微服务。

    从单纯的技术选型上来看,选择什么语言并没有严格的标准。而且在技术团队中,我们也应该鼓励技术多样性和尝试新技术。不过这里要有个度,我暂时先不细说这个度在哪里,我们先来看看,假设没有统一标准的约束会带来什么问题。

    技术的应用,一般都会随着应用场景的逐步深入和业务体量的增长,逐步暴露出各种各样的问题,我们分两个层面来看。


    展开全文
  • 模型简介

    千次阅读 2018-08-07 20:40:26
    1. 盒模型的简介 ...盒模型被分为两种:第一种是W3C的标准模型;第二种是IE的怪异盒模型。 为了搞清楚这两种盒模型之间的差异,我们首先看一张结构图: 对于一个盒子来说它由四个部分组成: mar...

    1. 盒模型的简介

    本文简单的总结了一些基本概念,知识点以及细节问题

    在我们编写HTML时,网页上的内容几乎都是被包在一个个元素(当然也可以叫做标签)中的,最常见的有div、span、a、img等等。虽然标签的个数很多样,但是总的来说可以把元素分为三种
    * 块状(block)元素
    * 行内(inline)元素
    * 行内块(inline-block)元素

    在具体讲总结盒模型前,先简单的介绍一下这几种元素各自的特性。

    在CSS中我们经常听到的一个词叫做“文档流”,那么到底什么是文档流呢?“流”实际上就是CSS中的一种基本的定位和布局机制。上述所说的三种元素当然要遵守一定的布局机制啦,具体来说:

    块状元素: 典型代表div
    * 在默认情况下宽度会自动铺满于父元素,也就是一个块级元素会独占一行,而且它后面的元素会另起一行显示。
    * 宽(width)、高(height)、内边距(padding)、外边距(margin)是可以进行具体设置的

    行内元素: 典型代表span
    * 行内元素不会独占一行,相邻的行内元素会依次排列,不足则换行。
    * 宽高是无法指定的,其大小是由里面的内容撑开决定。
    * 虽然宽高无法指定,但是水平方向上的内边距(padding)、外边距(margin)是可以进行设置的。

    当对一个文档进行布局的时候,浏览器渲染引擎会根据CSS-Box模型将所有元素表示为一个矩形盒子,在CSS中会通过盒模型去描述这些矩形盒子————元素所占空间的内容。

    那么盒子里到底有什么呢,如下图所示:

    对于一个盒子来说它由四个部分组成:其中margin叫做外边距,border叫做边框,padding叫做内边距,content叫做内容区域

    细分一点,margin它可以分为margin-left,margin-right,margin-top和margin-bottom。同理border和padding也有这样的属性。

    盒子出来了,自然要计算它的大小,但是但是,又有幺蛾子了,在计算大小的时候有两套不同的标准,
    也就是有两种盒模型
    * 第一种是W3C的标准模型
    * 第二种是IE的怪异盒模型

    自然不同的盒子模型会有不同的计算方式

    2. 尺寸计算

    在W3C标准模式下:一个盒子的空间占有宽度=content width + padding + border + margin

    在IE怪异盒模型:一个盒子的空间占有宽度=width(padding和border被包含在内了) + margin

    高度可以同理计算


    由于存在以上的计算方法:

    在CSS的标准盒模型中,width和height指的是内容区域的宽度和高度。
    增加内边距、边框和外边距不会影响内容区域的尺寸,但是会增加整个盒子的大小。这个特点其实有的时候有点讨厌的————我们可以通过设置box-sizing(CSS3新增属性)来改变盒子被撑大。

    3. box-sizing(在IE8+浏览器中)

    box-sizing属性的默认值为content-box,也就是标准盒模型。

    box-sizing另外一个属性值border-box指的就是IE盒模型。

    了解盒模型的计算方式是非常重要的,现在的网页,尤其是移动端的页面,需要适应于不同的屏幕大小。

    此外,如果在ie6,7,8中DOCTYPE缺失也会触发IE模式。


    参考文献:

    1.张鑫旭-鑫空间-鑫生活

    2.MDN-web技术文档

    展开全文
  • 盒子模型简介

    千次阅读 2016-07-24 11:41:53
    一、W3C标准的盒子模型      二、IE盒子模型    三、两种模型的区别  W3C标准盒子模型:  外盒模型  元素空间宽度 =

    一、W3C标准的盒子模型                             

     

     

    二、IE盒子模型                                  

     

    三、两种模型的区别                                        

    W3C标准盒子模型:

      外盒模型

           元素空间宽度 = content width + padding + border + margin的宽度

           元素空间高度 = content width + padding + border + margin的高度

      内盒模型

      元素宽度 = content height + padding + border的宽度

           元素高度 = content height + padding + border的高度

     IE盒子模型:

      外盒模型

           元素空间宽度 = content width + margin的宽度

           元素空间高度 = content height + margin的高度

      内盒模型

      元素宽度 = content width

         元素高度 = content height

    当IE6~8处于怪异模式下就会使用IE盒子模型,否则将使用W3C标准盒子模型。

     

    四、CSS3规则——box-sizing                           

    box-sizing有三个值,默认是content-box(表示元素使用W3C盒子模型),而border-box(表示元素使用IE盒子模型),inherit(从父元素上继承)

    浏览器支持:IE8开始支持

    复制代码
    Element{
      -moz-box-sizing: border-box; // FireFox3.5+
      -o-box-sizing: border-box; // Opera9.6(Presto内核)
      -webkit-box-sizing: border-box; // Safari3.2+
      -ms-box-sizing: border-box; // IE8
      box-sizing: border-box; // IE9+,Chrome10.0+,Safari5.1+,Opera10.6
    }
    展开全文
  • 计算机网络模型简介

    2020-06-16 21:06:24
    计算机网络模型简介OSI/RM模型数据传输网络协议TCP/IP协议体系 OSI/RM模型 数据传输 数据从计算机A到计算机B的传输过程描述: 网络协议 数据交换遵守约定规则,而制定的这些规则、标准或约定即网络协议(network ...
  • 一种基于CUDA标准的异构并行编程模型开发简介 目录一、绪论1.1研究背景及意义1.2目标平台体系结构简介二、HPPA基本组成结构三、编译工具链开发3.1 拆分工具HPCufe开发3.2 HPfrontend3.3 device端工具链开发3.4 start...
  • IBIS模型简介

    千次阅读 2017-06-13 14:03:12
    IBIS(Input/Output Buffer Information Specification)模型是一种基于V/I曲线的对I/O BUFFER快速准确建模的方法,是反映芯片驱动和接收电气特性的一种国际标准,它提供一种标准的文件格式来记录如驱动源输出阻抗...
  • 网络OSI模型简介

    2020-08-04 09:47:24
    [OSI模型](Open System Interconnection Reference Model,缩写为OSI),全名“开放式系统互联通信参考模型”,是一个试图使各种计算机在全世界范围内互联为网络的标准框架。1983年,国际标准组织(ISO)发布了著名...
  • 分布式模型简介

    2017-02-23 15:02:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • JavaScript文档对象模型简介:当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。HTML DOM 定义了用于 HTML 的一系列标准的对象,以及访问和处理 HTML 文档的标准方法。通过 DOM,你可以...
  • Select 模型简介

    2015-11-30 18:05:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • OSI参考模型简介

    千次阅读 2016-10-23 11:28:11
    OSI(Open System Interconnect)参考模型最初是在1983年由国际标准化组织出版的,它只是一个行业建议标准,协议开发者并不需要严格地遵守它 OSI模型将网络通信过程分为7个不同的层次,由高到低分别为:应用层、...
  • grid lstm模型简介

    千次阅读 2018-08-21 18:26:39
    理论介绍 主要通过论文《Grid Long short-Term Memory》。 grid LSTM沿着任何或所有维度(包括网络深度)部署cell。 一个Grid LSTM网络的block有N个hidden vector...标准的lstm模型的计算公式如下: 源码介绍...
  • OSI七层模型简介

    2019-05-12 21:11:00
    OSI简介 OSI是定义良好的协议规范,并由许多可选部分完成类似的任务,它定义了开放系统的层次结构, 层次之间的相互关系以及各...OSI参考模型并不是一个标准,而是一个在指定标准时所使用的概念性框架。 ...
  • @[TOC]两阶段随机规划模型简介 两阶段随机规划模型简介 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新...
  • XML(可扩展标记语言)在 20 世纪 90 年代后期登上舞台后,就一直是众多活动和狂热思索的焦点。XML 只是基于普通文本,但却提供了几乎可以在任何两个应用程序间共享...DOM 是 W3C(万维网联盟)的标准。DOM 定义了访...
  • 简介盒子模型

    2018-04-01 12:43:50
    css的盒子模型有两种:IE盒子模型标准的W3C盒子模型模型:内容,内边距,外边距,边框
  • 网页制作Webjx文章简介:盒子模型是CSS中一个重要的概念,理解了盒子模型才能更好的排版。其实盒子模型有两种,分别是 IE 盒子模型标准 W3C 盒子模型。 盒子模型是CSS中一个重要的概念,理解了盒子模型才能更好的...
  • 专门操作操作浏览器窗口的API——没有统一标准,但存在兼容性问题。 浏览器对象模型中常用的方法: 方法 作用 window 代表整个窗口 history 封装当前窗口打开后成功访问过的url记录 navigator 封装...
  • DOM文档对象模型简介

    2018-06-18 11:44:00
    DOM是W3C(万维网联盟)的标准 "W3C文档对象模型DOM是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构、样式".W3C DOM标准分为3个不同部分 HTML DOM 定义了所有HTML元素的对象...
  • 支持向量机模型简介

    2021-04-29 11:36:59
     本学期上了一门支持向量机的课程,其中自己讲了一种支持向量机模型—拉格朗日支持向量机,该算法主要是提升标准SVM算法的运行效率.其实一般来讲,现在SVM算法已经在libsvm和Python中都有很好的实现了,一般使用SVM算法...
  • 虚拟机内存模型简介

    2017-05-20 10:42:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • CSS基本框模型简介

    2018-12-09 11:05:00
    在布置文档时,浏览器的渲染引擎根据标准CSS基本框模型将每个元素表示为矩形框。CSS确定这些框的大小,位置和属性(颜色,背景,边框大小等)。 每个框由四个部分(或区域)组成,由它们各自的边界定义:内容边缘,...
  • 开放系统互连模型(通常称为OSI模型)是一种网络映射,最初是作为用于创建网络的通用标准而开发的。但是,OSI模型不再用作在全球范围内使用的已达成共识的协议的模型,而是成为一种教学工具,该工具显示了应如何处理...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,460
精华内容 1,384
关键字:

标准模型简介