精华内容
下载资源
问答
  • 有关不同智能域(尤其是智能城市和智能农业食品)的统一数据模型的。 允许公开对不同应用有用的不同协调数据集的代码。 目前,此类数据集是通过和/或 API(查询) 。 这项工作与项目的结果保持一致。 该项目正在...
  • dubbo统一数据模型URL

    2019-04-27 12:03:48
    ,dubbo也使用类似的URL,用于在扩展点之间传递数据,组成此URL对象的具体参数如下:  protocol:一般是dubbo中的各种协议 如:dubbo thrift http zk 等等  username password:用户名 密码  host port:主机 ...

     URL相信大家都非常熟悉,一般在HTTP协议中,使用URL请求服务器资源,形如:http://192.168.0.112:8080/user/login.do?name=xxx&id=xxx,这个URL可以简化成:protocol://host:port/path?param1=value1&param1=value1&,dubbo也使用类似的URL,用于在扩展点之间传递数据,组成此URL对象的具体参数如下:
     protocol:一般是dubbo中的各种协议 如:dubbo thrift http zk 等等
     username password:用户名 密码
     host port:主机 端口
     path:接口名称
     parameters:参数 key value键值对
    最终形成的URL对象如下:
    dubbo://192.168.1.7:9090/com.alibaba.service1?param1=value1&param2=value2
    下面是此URL对象的构造参数:
    com.alibaba.dubbo.common.URL

    public URL(String protocol, String username, String password, String host, int port, String path, Map<String, String> parameters) {
            if ((username == null || username.length() == 0) 
                    && password != null && password.length() > 0) {
                throw new IllegalArgumentException("Invalid url, password without username!");
            }
            this.protocol = protocol;
            this.username = username;
            this.password = password;
            this.host = host;
            this.port = (port < 0 ? 0 : port);
            // trim the beginning "/"
            while(path != null && path.startsWith("/")) {
                path = path.substring(1);
            }
            this.path = path;
            if (parameters == null) {
                parameters = new HashMap<String, String>();
            } else {
                parameters = new HashMap<String, String>(parameters);
            }
            this.parameters = Collections.unmodifiableMap(parameters);
        }
    

      dubbo扩展点的实现方法都包含URL对象,这样扩展点可以从URL拿到配置信息,所有的扩展点自己定好配置的Key后,配置信息从URL上从最外层传入。URL在配置传递上即是一条总线。URL中定义各种方法用于获取配置信息,如获取参数的getParameter(String key, long defaultValue)、将字符串转成URL对象的valueOf(String url)、设置参数的setxxx()方法,在扩展点适配类中需要根据接口对象方法上的@Adpative注解中的value值,将其作为key从URL对象中获取具体的值,从文件中加载具体的扩展点实现。

     

    展开全文
  • 企业的多渠道整合架构及统一数据模型需求 随着企业业务的增长,企业的系统也在不断增长中。这些系统有的是提供给内部用户使用,有的是为外部客户使用,通过多种渠道访问企业的业务,形成了如下架构图中的多渠道的...

    企业的多渠道整合架构及统一数据模型需求

    随着企业业务的增长,企业的系统也在不断增长中。这些系统有的是提供给内部用户使用,有的是为外部客户使用,通过多种渠道访问企业的业务,形成了如下架构图中的多渠道的企业架构。如银行的多渠道架构,客户可以通过浏览器的网上银行,手机银行,高柜,低柜台,电话银行,ATM 服务等等来进行银行业务办理。


    图 1. 企业前端渠道应用的特点 – 多渠道、以客户为中心
    图 1. 企业前端渠道应用的特点 – 多渠道、以客户为中心

    在企业的业务系统增长中,由于不同的业务系统构建时间不一样,业务目标侧重点也不一样,更重要的是企业没有站在企业架构的层次来统一的考虑供多渠道的企业的统一数据字典,使得企业的各个业务系统中数字字典混乱,甚至互相冲突。这造成了诸多的弊端,如:

    1. 不同业务系统重复定义数字字典,不便于重用,并增加开发部门的开发工作量
    2. 没有统一的数据字典,不便于后期统一维护(修改,更新,删除)。
    3. 没有统一的数据字典,不便于数据集成。如客户在银行网点已经填写了一系列的客户信息,当过几天去申请信用卡的时候,用户被同样的要求输入几天前刚提供的信息。给终端用户也造成了诸多不便。
    4. 没有统一的数据字典,造成不同的业务系统的数据规范不同意,如向同一个用户在不同的业务系统中要相同的数据。如客户在某银行申请了储蓄卡账号,被要求输入了一系列的客户信息,其中包括职业一项。当该用户信用卡申请表单中也被要求输入一些列信息,也包括职业一栏目。但是这两项的填写选项,输入格式完全不一样。造成了同样的信息在不同的业务系统中规范完全不统一的问题。

    企业需要一个通用的数据字典在企业架构层次被所有的业务系统所重用。本文介绍的基于 XML 的数字字典方案—— Context 数字字典可以为企业的多渠道系统提供统一的数据字典,包括类型定义,数据结构定义,校验规则,转换规则等。基于 XML 的统一数据字典,解决了上面的所有缺点。另外还提供了下面这些优点:

    1. 基于 XML 语言,支持多平台、多渠道,容易被各个业务系统所重用。
    2. 学习曲线快,不懂技术的业务人员也可以编辑企业数字字典。对高级技能程序员的依赖减少。本案在土耳其有个客户,利用 Context 数据字典工具,聘请了一些高中生就可以使用工具进行开发。
    3. 缩短开发周期。XML 简单易读,可以手工编辑或者借助一些 XML 编辑工具快速编辑。
    4. 便于格式转换,容易与第三方或合作伙伴企业之间进行通讯和业务调用。

    根据上面的分析,我们知道企业多渠道 统一数据字典能够解决企业当前碰到的一些问题,具备商业可行性。接下来的篇幅将介绍 Context 数据字典的架构、设计、以及应用实例。

     

     

    统一数据模型的架构

    企业统一的基于 XML 的 Context 数据模型是构建在上下文 (Context) 基础上的。Context 是针对某一上下文操作定义的包含企业数据和服务的对象。不同的 Context 可以通过父子链接组成一个 Context 树。


    图 2. Context 树状结构实例
    图 2. Context 树状结构实例

    基于 XML 的 Context 统一数据模型在架构设计上具有以下特性:

    1. 支持数据的层次化存取

      Context 数据模型最为独特的特性就是通过 Context 树支持数据的层次化。在 Context 树里不同层次的 Context 存放着不同层次和级别的数据和服务。每个子 Context 可以访问它的父 Context 和祖先 Context 的数据和服务。同时通过根上下文(Root Context)可以对整个 Context 树进行遍历和管理。

    2. 完全基于 XML 的统一定义和工具支持

      在 Context 数据字典里,Context 树的定义,包括 Context 里包含的数据和服务的定义,以及数据类型的定义,都是完全基于 XML 的。 同时有一系列工具支持数据字典的创建和编辑。这一切都大大提高了数据字典的开发和维护效率。

    3. 支持企业业务数据共享

      通过 Context tree, 父 Context 的数据可以被子 Context 所共享。比如,对于企业服务端的多渠道应用,一些跨渠道的共享数据可以放在 root context 中被各渠道不同交易的 Context 所共享。再比如,对于网上银行的应用,每个登录用户的用户信息可以放到每个用户单独的 session context 中,此 session context 被此用户执行的不同交易的 context 共享。

    4. 统一的数据访问接口

      Context 数据字典提供了对外的统一的访问接口,不同的数据类型和持久化模式的数据都可以通过统一的接口进行操作。

    5. 支持数据持久化

      Context 数据模型按是否支持持久化可以分为 Local Context 和 remote context。Local Context 不能被持久化且只能在同一个 JVM 里被访问和共享。Remote Context 可以被持久化到数据库中,并可以被跨 JVM 访问。

    6. 多平台、可扩展

      Context 数据字典的底层实现是基于 java 的,因此也具有跨平台的可移植性。同时 Context 数据字典的数据项和类型都支持被用户扩展, 平且用户可以设定自定义的数据校验器和转换器。

    统一数据模型的元素  

    数据类型 Type 定义

    企业数据类型可包含 Type 类型和 Generic 类型。Type 数据元素代表业务对象,如日期(Date)、帐户列表(AccountList)、金额(Money)。它与非 Type 数据元素的主要区别是:Type 数据包含业务类型和业务规则信息,其中业务规则信息可包括数据显示格式、数据值域等等。Type 包含一个或者多个 Property Descriptors 来存储业务规则信息,而非 Type 类型则没有。一个典型的 Type 定义如下:


    清单 1. 典型类型定义实例

    				
     <type id="Money" implClass="com.ibm.btt.base.DataField"> 
     <Descriptor id="typeDefault" 
    		 implClass="com.ibm.btt.base.types.ext.FloatDescriptor"> 
      <Converter convTypes="default" 
     implClass="com.ibm.btt.base.types.ext.FloatConverter"/> 
      <Validator implClass="com.ibm.btt.base.types.ext.FloatValidator" 
      lowerLimit="0"/> 
     </Descriptor > 
     </type> 
    

    Money 使用 Validator 确保了它的最小值为 0,Converter 将数据元素转化为字符串(String)类型。

    现实世界中的数据分为两类:简单型和复合型。姓名(Name)属于一个简单型,而个人信息 { 姓名,住址,资产 } 则属于复合型。 同理 Type 也分为 Simple 型和 Compound 型,Simple Type 仅包含一个 Property Descriptor,或者说该 Type 仅由一个 Property Descriptor 描述。Compound Type 含有多个 Property Descriptor:一个默认的 Property Descriptor,多个指向其他子 Type 的 Property Descriptor。


    清单 2. 带有校验的类型定义实例

    				
     <type id="String" implClass="com.ibm.btt.base.DataField"> 
      <descriptor id="typeDefault" 
     implClass="com.ibm.btt.base.types.ext.StringPropertyDescriptor"> 
     <Converter convTypes="default,host" 
     implClass="com.ibm.btt.base.types.ext.StringConverter"/> 
      <Validator implClass="com.ibm.btt.base.types.ext.StringValidator"/> 
      </descriptor> 
     </type> 
    
     <type id="PersonInfo" implClass="com.ibm.btt.base.KeyedCollection"> 
      <descriptor id="typeDefault"
             implClass="com.ibm.btt.base.types.KCollPropertyDescriptor"/> 
      <dataDescriptor id="name"     refType="String"/> 
      <dataDescriptor id="address" refType="String"/> 
      <dataDescriptor id="asset" refType="Money"/> 
     </type> 
    

    用户可以通过如下方法使用 PersonInfo 数据类型:


    清单 3. 使用 PersonInfo 数据类型实例

    				
     KeyedCollection info = (KeyedCollection)DSEType.readObject("PersonInfo"); 
     info.setValueAt("name", "Tom"); 
     info.setValueAt("address", "ZhongShan Road, Xian"); 
     info.setValueAt("asset", new Float(5000)); 
    
    

    数据及复杂数据项 Data 定义

    统一企业数据模型中使用 XML 描述数据字典,XML 的层次结构与现实世界数据对象结构天衣无缝的映射。用户无需做概念抽象,可以非常简单实现从设计到代码的转换。为了适应现实中的层次数据结构,统一数据模型引入组合设计模式(Composite Pattern)描述数据对象关系。如图所示:


    图 3. 数据类型层次图
    图 3. 数据类型层次图

    数据模型的最顶端为抽象类 Data Element,它定义了数据元素或者集合类的共有信息 ID 和描述信息。一个数据元素可以是单值或者是集合,这在最大程度上实现了代码重用。DataField 是统一数据模型中唯一可赋值的单元数据,在内存中每个 Field 包含一个值(Value)实例用来存储数据值。DataField 定义示例如下:

    				 <field id="field1" description="This is an example"/> 
     Keyed Collection 是一个有序的数据集合,使用数据名称来访问其中的数据元素,
    所以出现在同一个 Keyed Collection 的数据名称必须唯一。可以简单的把 Keyed Collection 
    想象为字典(Dictionary),内部的数据元素被组织为键值对(Key-value pairs),如下所示:
     <kColl id="coll1"> 
      <field id="field1"/> 
      <field id="field2"/> 
     </kColl> 
     Indexed Collection 类似数组,使用位置(Position)访问其内部元素,
    所有内部元素为同一种类型。如图所示。如需访问 customer 中的街道信息,
    可以使用组合键:
    customerListData.2.address.street。
    


    图 4. 复杂数据类型实例
    图 4. 复杂数据类型实例

    若很多个数据元素均包含一些相同数据元素,为了避免重复代码,使用引用标签代替这些重复定义。


    清单 4. 引用标签实例

    				
     <kColl id="coll1"> 
      <field id="field1"/> 
      <field id="field2"/> 
     </kColl> 
    
     <iColl id="icoll1" size="2"> 
      <refData refId="coll1"/> 
     </iColl> 
    

    数据结构 Context 定义

    Context 定义了一个操作或者业务实体的资源集合(数据和服务)。Context 作为基本资源模型将应用系统中各 Operation 松散的耦合在一起,Operation 交互只需要将 Context 中数据格式化后双向传递。

    Context 被组织成为树状结构,顶层是通用资源,底层为专用资源。Context 树在系统中有且只有一个,因此所有的用户操作可以共享 Context 树中的资源。例如,一个用户 Context 包含用户级信息,同时它含有几个子 Context,分别包含一些操作信息。Context 采用职责链模式,当 Operation 请求一些数据或者服务时,但在当前的 Operation Context 中无法找到这些资源信息,会自动从 Parent context 中查找,直到找到资源为止。一个典型的 Context 定义如下所示:


    清单 5. Context 定义实例

    				
     <context id="myWorkstation" type="workstation" parent="myBranch"> 
      <refKColl refId="myWorkstationData" /> 
      <refService refId="msreService" type="service" alias="msre"/> 
     </context> 
    

    如前所述,Context 为所有 Operation 所共享,当位于多个线程中 Operation 同时访问同一个资源时,系统会自动将访问所有 Context Tree 上的请求串行化,这样可以确保资源(数据)访问的有效性和正确性。

    程序是由算法和数据构成,算法在执行的过程中会用到其他辅助的服务资源,例如记录日志,访问数据库,连接服务器等服务资源。在统一企业数据模型中,将算法定义为 Operation,

    数据和资源均被定义在 Context 中,而 Context 中包含数据(Data)和辅助资源(Service)。如前所述,Context 采用职责链模式,设计 Context 层次结构时需按照物理意义指明每个 Context 的责任。例如,在银行柜员(Teller)系统中,如果某个数据是被在同一支行(Branch)服务器所管辖的所有工作占共享,那么将该数据定义在支行层次(branch-level)的 Context 中。若工作站 Context (Workstation Context)是 Branch Context 的孩子,那么 Branch Context 的资源对于 WorkStation Context 是可见的。在 Context 内部每个资源都有一个名字,但在 Context 树中可以存在相同名字的资源,访问 Context 内部资源时,由底至上找到第一个同名的资源即可。

    企业统一数据模型实例

    在这里介绍使用 Context 数据模型实现多渠道银行应用的一个实例。此银行实现柜员桌面富客户端和网上银行的多渠道整合,并重用服务端的业务逻辑如账户查询、转账等。在这里假设富客户端通过 Java Client 渠道,网上银行通过 HTML Client 渠道接入服务端。在服务端我们定义 Context 数据模型如下:


    图 5. 服务器端的 Context 树状结构实例
    图 5. 服务器端的 Context 树状结构实例

    这里 BranchServerCtx 被定义为 Root Context, 它包含跨渠道的数据和服务, 如后端连接,日志服务等。Java Channel Context 和 Html Channel Context 被定义为 BranchServerCtx 的子 Context, 它们包含渠道连接特性的数据如客户端类型数据。在各自渠道 Context 下,分别下挂 Session Context。它们包含的是和用户会话相关的共用数据,如客户信息,账户信息等。在通过各渠道执行交易的时候,系统在运行时动态创建交易操作的 Operation Context, 并链接到 Session Context 上。各交易的 Operation Context 如 AccountQueryCtx 和 TransferCtx 都能共享 Session Context 的数据。并通过 Session Context 共享 Channel Context 和 BranchServerCtx 的数据。

    首先定义的是 branchServer Context,它是 Root Context,它包含共享的银行数据和服务资源,如下所示:


    清单 6. 企业数据字典定义实例

    				
     <context id="branchServer" parent="nil" type="branch"> 
      <refKColl refId="branchData"/> 
      <refService alias="CSServer" refId="realCSServer" type="cs"/> 
      <refService refId="CommunicationsPool" alias="pool" type="pool"/> 
     </context> 
    
     <kColl id="branchData"> 
      <refData refId="BranchId"/> 
     </kColl> 
    
     // 然后定义渠道上下文 Channel Context, 它是父 Context 是 branchServer Context。
     <context id="javaChannelCtx" parent="branchServer" type="op"> 
     <refKColl refId="javaChannelData"/> 
     </context> 
    
     <kColl id="javaChannelData"> 
      <refData refId="clientType"/> 
     </kColl> 
    
     // 接下来定义的是渠道会话 Context,它包含用户登录后的会话上下文操作所用到的数据如用户 ID、
    客户信息、账户信息等。Session Context 在用户登录后会被创建并链接为 Channel Context
     的子 Context。为了简洁起见,下面只列出了 Java 渠道的 Session Context 定义。
     <context id="javaSessionCtx" type="op"> 
     <refKColl refId="javaSessionData"/> 
     </context> 
    
     // 在上面会话上下文包含的是一个集合数据 javaSessionData, 它被定义为一个 
    KeyedCollection 如下:
     <kColl id="javaSessionData"> 
      <refData refId="TID"/> 
      <refData refId="UserId"/> 
     <refData refId="CustomerId"/> 
      <refData refId="CustomerName"/> 
      <refData refId="AccountList "/> 
      <refData refId="HostBuff"/> 
      <refData refId="sessionID"/> 
     </kColl> 
    
     // 在其中包含的账户信息被定义为一个账户类型数据的数组 (Indexed Collection)。
     <iColl id="AccountList"> 
      <refData refId="account "/> 
     </iColl> 
    
      <data id="account" refType="Account"/> 
    
     // 账户类型定义如下:
     <type id="Account" implClass="com.ibm.dse.base.KeyedCollection"> 
     <descriptor id="typeDefault" 
     implClass="com.ibm.dse.base.types.KCollPropertyDescriptor"/> 
      <dataDescriptor id="Name" refType="String"/> 
      <dataDescriptor id="Type" refType="String"/> 
      <dataDescriptor id="AccountNumber" refType="String"/> 
      <dataDescriptor id="Balance" refType="Amount"/> 
      </type> 
    
     // 最后我们需要针对交易操作定义 Operation Context, 如针对转账交易定义 
    transferOperationCtx。转账交易 Context 是 Session Context 的子 Context,
    能共享上层链路上所有 Context 的数据。
     <context id="transferOperationCtx" type="oper"> 
      <refKColl refId="accountTransferData"/> 
     </context> 
    
     <kColl id="accountTransferData"> 
     <data id="acctFrom" refType="String"> 
      <param id="isMandatory" value="true" /> 
      </data> 
      <data id="acctTo" refType="String"> 
      <param id="isMandatory" value="true" /> 
      </data> 
      <data id="amount" refType="String"> 
      <param id="isMandatory" value="true" /> 
      </data> 
      < data id="AccountBalance" refType="Money"/> 
      <field id="outcome" /> 
      <field id="TrxReplyCode" /> 
      <field id="TrxErrorMessage" /> 
      </kColl> 
    
    

    通过以上的 Context 数据模型定义实例,可以看到对于企业复杂数据结构和类型的支持非常充分,并且各个层次的数据定义在逻辑上很清晰,能很好的支持数据共享,减少数据冗余,并且支持不同业务渠道的数据整合。

    总结

    随着企业应用复杂度增加,使用基于 XML 中间语言的统一数据模型能够降低企业数据字典的建立、维护的复杂性,为企业带来技术价值和业务价值。

    文章作者根据在行业应用框架中间件的工作经验,抽象和介绍了基于 XML 中间语言的统一数据模型 Context 的架构、组件、设计原理、以及使用实例。

    原文:http://www.ibm.com/developerworks/cn/xml/x-1009chenxm/index.html?ca=drs-

    展开全文
  • 能够针对目前各种购物平台和测评网站给出的复杂信息,建立一套适用于各种不同类型商品...统一数据模型是通过多张表能够描述各种类型商品的基本属性,而不需要针对每种商品建立不同的存储表。这个有什么好的办法实现?
  • 回顾基于Scala的Web框架Lift,David Pollak宣布了自己的下一步计划——Goat Rodeo,旨在管理好应用中的大量数据:\我们需要一个统一模型来构建实时的交互性Web应用,该模型来自于持久层,经由消息层及业务逻辑层...

    回顾基于Scala的Web框架LiftDavid Pollak宣布了自己的下一步计划——Goat Rodeo,旨在管理好应用中的大量数据:

    \
    我们需要一个统一的模型来构建实时的交互性Web应用,该模型来自于持久层,经由消息层及业务逻辑层传递到最终的用户。Lift加上Goat Rodeo可以完美的解决这个问题。
    \

    “Goat Rodeo”会利用到很多Apache项目及一些边缘概念(edge concept):

    \

    Goat Rodeo中的基本数据结构就是Q's——量子信息,编译器会检查该信息,同时能够处理JSON的任何语言都可以使用该信息。

    \

    David对该系统的愿景就是让数据可以在不同层以及过程之间自由流动:

    \
    \
    • 可伸缩的存储\
    • 分布式\
    • 通过长时存储同步浏览器的数据及数据模型(目标是让其与Lee的jsync协同工作)\
    • 统一的进程间通信,即便是跨越不同种类的进程\
    • 我相信Goat Rodeo能成为一个可伸缩性极强的系统,这样社交网络及其他交互式Web应用就能构建于其上了。\
    \

    目前Goat Rodeo仍处在最初阶段,但David希望到夏末的时候能对其进行一些试验。

    \

    查看英文原文:Goat Rodeo: A Unified Data Model for Web Applications

    展开全文
  • 统一数据模型cwm

    2020-08-15 20:37:47
    对CWM模型进行了一次完全整理,便于元数据开发人员构建企业级元数据模型,附件含erwin模型,CWM [1] (CommonWarehouseMetamodel公共仓库元模型)是OMG组织在数据仓库系统中定义了一套完整的元模型体系结构,用于...
  • Teradata金融行业数据模型,属于其统一数据模型的一个部分
  • 在突破了统一资源建模遇到的“硬建模”、“物理和逻辑顶层分类”等束缚的基础上,提出了“大类+元数据”、“按几何形态分类”等方法,设计了融合资源模型的总体视图,同时给出了“统一硬件模型”、“统一链路模型”...
  • 空间数据通常以栅格与矢量两种数据模型进行表达,但由于各自的不同特性,一般采用不同的访问方式。如何采用一致的方式进行多源空间数据访问是当前空间数据共享和互操作的难点之一。基于OGC SFS规范,从实现层次上考虑...
  • 数据模型

    2020-03-20 11:23:57
    数据仓库数据模型是指使用实体、属性及其关系对企业运营和逻辑规则进行统一的定义、编码和命名;是业务人员和开发人员之间沟通的一套语言。 2. 数据仓库数据模型的作用: 统一企业的数据视图; ...

    关于数据仓库的概念,这里不再累赘。先看下面的图(数据仓库建设的7个主要环节):

    dw

    本文,主要针对第三块数据仓库模型设计来讨论交流,尤其是互联网行业。

    一、关于数据仓库数据模型

    20180111-3.jpguploading.4e448015.gif转存失败重新上传取消dw1. 数据仓库数据模型是指使用实体、属性及其关系对企业运营和逻辑规则进行统一的定义、编码和命名;是业务人员和开发人员之间沟通的一套语言。

    2. 数据仓库数据模型的作用:

    • 统一企业的数据视图;
    • 定义业务部门对于数据信息的需求;
    • 是构建数据仓库原子层的基础;
    • 支持数据仓库的发展规划;
    • 初始化业务数据的归属;

     

    3. 数据仓库数据模型与业务系统数据模型设计的区别:

    dw4. 数据仓库数据模型设计的先后次序

    • 概念模型设计(业务模型):界定系统边界;确定主要的主题域及其内容;
    • 逻辑模型设计:维度建模方法(事实表、维度表);以星型和雪花型来组织数据;
    • 物理模型设计:将数据仓库的逻辑模型物理化到数据库的过程;

    二、关于维度模型和关系模型

    dw

    关系建模又叫ER建模,是数据仓库之父Inmon推崇的,其从全企业的高度设计一个3NF模型的方法,用实体加关系描述的数据模型描述企业业务架构,在范式理论上符合3NF,其是站在企业角度进行面向主题的抽象,而不是针对某个具体业务流程的,它更多是面向数据的整合和一致性治理,正如Inmon所希望达到的“single version of the truth”。

    dw

    维度模型则是数据仓库领域另一位大师Ralph Kimball 所倡导的。维度建模以分析决策的需求为出发点构建模型,一般有较好的大规模复杂查询的响应性能,更直接面向业务,典型的代表是我们比较熟知的星形模型,以及在一些特殊场景下适用的雪花模型。

    20180111-5.jpguploading.4e448015.gif转存失败重新上传取消dw

    两者的主要区别在于灵活性和性能方面。

    20180111-7.jpguploading.4e448015.gif转存失败重新上传取消dw

     

    另外,关系模型要求数据以最细粒度存在,而多维模型则以轻粒度汇总数据存在。

    (记得十年前,某大型保险公司实施EDW项目,采用的就是关系模型,由IBM专门的团队负责建模,好家伙)。

    在我看来,如果不是实施业务相对成熟的EDW,大多数据仓库均会采用维度模型建模;

    三、互联网数据仓库数据模型

    1. 互联网数据仓库的现实状况

    dw2. 我们的模型方法选择

    dw

    在我们的数据仓库中,除了各个主题域下的维度模型,还存在一些宽表模型。所谓宽表模型,是基于维度模型的扩展,采用退化维度的方式,将不同维度的度量放入数据表的不同的列中;它更易于理解,具有更高的查询效率;易于模型扩展;

    dw

    事实证明,在海量数据环境下,对业务查询的支撑,宽表在性能和易用性方面,都达到了比较理想的效果。

    展开全文
  • 数据模型起着至关重要的作用,因为它们定义了统一的表示形式和语义,应用程序将使用它们来消费和发布数据。 FIWARE基金会IUDX和TM论坛以及其他实体的加入,正在领导一项联合协作计划,以支持采用参考架构和兼容的...
  • 为了更好地帮助企业进行大数据治理,笔者在 IBM 数据治理统一流程模型基础上结合在电信、金融、政府等行业进行大数据治理的经验,整理了大数据治理统一流程参考模型,整个参考模型分为必选步骤和可选步骤两部分。
  • 支持数据管理和可用机器学习的统一模型 Towards A Unified Graph Model for Supporting Data Management and Usable Machine Learning 本文载于2017 Bulletin of the IEEE Computer Society Technical Committee ...
  • 统一空间元数据模型在GIS数据库中的应用研究,李分霞,舒新前,为了使昆明市土壤侵蚀数据库实现省-市-县的三级管理模式,即Internet模式,因而要求分散的数据逻辑上统一起来,并保证数据库接口的��
  • 针对配用电数据统一采集与融合的问题,设计了配用电统一数据模型和拓扑方式,并提出以设备类型定义为驱动的数据生成方法,实现配用电设备的统一描述。设计了配用电跨区信息采集方案,为配用电综合应用业务的开展提供...
  • 从中期来看,可能会向Open311社区提出与其他智能数据模型和schema.org保持一致的统一数据模型。 实际上,使用这些数据模型和FINGWARE NGSI版本2或rNGSI-LD实现,实现由Open311提出的API并不容易。 另一个选择是使用...
  • 利用云计算技术协调配电网各应用系统服务,构建了基于模型中心与云计算的统一数据模型应用平台,将配电网主要应用服务系统进行整合并将其部署在云平台上。与传统分散式配电网服务系统相比,智能配电网统一模型云与...
  • 在关系数据模型中将现实世界中的实体以及实体的联系都用表来表达,而层次数据模型中是用记录来表示实体,PCR表示关系,网状数据类型中是用记录来表示实体,系来表示关系,关系型数据模型将两者统一采用表来表达,这...
  • 数据仓库之数据模型

    2018-10-24 11:11:44
    1. 数据仓库数据模型是指使用实体、属性及其关系对企业运营和逻辑规则进行统一的定义、编码和命名;是业务人员和开发人员之间沟通的一套语言。 2. 数据仓库数据模型的作用: 统一企业的数据视图; 定义业务部门...
  • 针对建立统一数据模型的PIP数据中心的需求,提出一种面向管理实体对象的数据基本模型,把工程项目数据按项目全生命周期过程分解为若干个基于工作流的可管理的实体对象,给出了项目工程数据概念层模型,利用该模型...
  • 数据融合matlab代码计算解剖学的统一模型 这是尝试在单个贝叶斯模型统一计算解剖结构中经典使用的不同组件。 该模型以当前(正在进行的工作)形式执行: 图像分割 归因于缺失数据(由于FOV或完全缺失模态) 手动...
  • 并且以不同发电厂的数据类型为例,结合发电集团大数据分析结果模型,提出基于区块链的电力数据统一监管与共享交易模型,设计基于摘要目录树集中式检索的电力数据共享交易第三方平台,形成了区块链下以“弱化第三方...
  • Geodatabase数据模型

    2015-04-07 15:28:15
    Geodatabase数据模型 ...“统一”是指,Geodatabase之前的多个空间数据模型都不能在一个统一的模型框架下对地理空间要素信息进行统一的描述,而Geodatabase做到了这一点;“智能化”是指,在Geoda...

空空如也

空空如也

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

统一数据模型