GE的Predix使用了图形数据库作为Asset存储,用以解决传统RDBMS系统中扩展性差,不支持行的动态定义问题。

对于实体,或者Asset来说,由如下几个方面表述:
  • ID: Ties everythings happens to asset together
  • Structure:How the Asset data is stored (RDBMS, etc)
  • Repressentation:How the Asset data is logically expressed(JSON, XML, etc)
GE认为大多数项目失败在于它们将这个概念融合起来了,而GE则将其清晰的分割。
  • ID:Globally unique identifier
  • Structure:Graph database
  • Repressentation:JSON
通过将Asset使用图形数据库建模和存储,解决了如下问题:
  • Overcome mathematical scale problems
  • Queries and operations as path expressions
 
传统数据库在关系处理能力上大大弱与图形数据库。
 
Predix也有类型和分类的概念。
 
如:
Classification: 来源于 类型理论,将Asset进行分类,  "is a"
Groups and tags: 来源于 集合理论,将Asset进行分组"is a member of"
Catalog: 自定义组织规则并且通过catalog分享
 
Knowledgy Graph :
在IOT领域内,资产(实体)是不断增长和变化的,传统的asset建模使用预先定义好的schema,由此导致结构和关系不能扩展并很难响应变化和需求。knowledge graph在IOT领域内得到了很好的应用。Knowledge graph不需要预先定义的sehema和预先设计。可以通过当前的理解进行建模,并提供面向内容的视角。
 
如:
找出电力缺乏的资产
找出在某一地理范围内的资产
找出由最优供应商提供部件的资产
 
总结:
Predix提供了IOT领域建模的另外一种思路,与我们现有的只使用图形数据库保存关系不同,Predix走的更远,其不进行预先的schema定义,而是通过knowledge graph层进行业务含义上的抽象。因此其对于模型的变化和响应具有最大的适应性。
 
另外,classification, groups and tags 以及catalog应该是定义在关系数据库中的。
 
也即predix是关系型数据库与图形数据库的结合,但将Asset下放至图形数据库中保存,从而提供了更好的可扩展能力。
 

 
 

Predix中模型设计的更多相关文章

  1. PowerDesigner 中模型设计导出Excel表格

    今天项目做设计,客户要看数据设计,需要到处Excel表格.去网上搜索下,把使用总结如下: 已经完成设计的pd设计 打开pd,快捷键Ctrl + Shift + X或者Tools>Exectue ...

  2. 数据仓库专题(2)-Kimball维度建模四步骤

    一.前言 四步过程维度建模由Kimball提出,可以做为业务梳理.数据梳理后进行多维数据模型设计的指导流程,但是不能作为数据仓库系统建设的指导流程.本文就相关流程及核心问题进行解读. 二.数据仓库建设 ...

  3. EF基础知识小记二

    1.EF的常用使用场景 (1).维护一个已经存在的数据库,VS提供了工具帮助我们把数据库中的表和视图等对象导入到实体框架.        [数据库=>模型(Database First)] (2 ...

  4. Python开源框架

    info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...

  5. 软件project文档中的数据库模型设计

    背景:软件project文档之<数据库设计说明书>的结构设计部分要明白规划出数据库的概念结构设计.逻辑结构设计.物理结构设计,就是设计数据库的概念模型.逻辑模型.物理模型.那么.何为数据库 ...

  6. ASP.NET Core框架揭秘(持续更新中…)

    之前写了一系列关于.NET Core/ASP.NET Core的文章,但是大都是针对RC版本.到了正式的RTM,很多地方都发生了改变,所以我会将之前发布的文章针对正式版本的.NET Core 1.0进 ...

  7. Entity Framework 6 Recipes 2nd Edition(10-6)译 -> TPT继承模型中使用存储过程

    10-6. TPT继承模型中使用存储过程 问题 想在一个TPT继承模型中使用存储过程 解决方案 假设已有如Figure 10-6所示模型. 在模型里, Magazine(杂志) and DVD继承于基 ...

  8. Entity Framework 6 Recipes 2nd Edition(10-9)译 -> 在多对多关系中为插入和删除使用存储过程

    10-9. 在多对多关系中为插入和删除使用存储过程 问题 想要在一个无载荷的多对多关系中使用存储过程(存储过程只影响关系的连接表) 解决方案 假设有一个多对多关系的作者( Author)表和书籍( B ...

  9. Apworks框架实战(五):EasyMemo的领域模型设计

    在上一讲中,我们已经新建了一个聚合根对象Account,并已经可以开始设计领域模型了.在这一讲中,我们会着重介绍EasyMemo领域模型的分析和设计,并引入Visual Studio Ultimate ...

随机推荐

  1. HDU 2521 反素数(数论,比较)

    #include<iostream> #include<cstring> #include<cmath> #include<cstdio> using ...

  2. 复制对象 copy 与mutable copy

      转载 :  http://blog.csdn.net/u010962810/article/details/18887841   通过copy方法可以创建可变对象或不可变对象的不可变副本,对于不可 ...

  3. (转) 网络GET、POST方法

    在iOS中,常见的发送HTTP请求(GET和POST)的解决方案有 苹果原生(自带) NSURLConnection:用法简单,最古老最直接的一种方案 NSURLSession:iOS7新出的技术,功 ...

  4. 【二分答案】【哈希表】【字符串哈希】bzoj2946 [Poi2000]公共串

    二分答案,然后搞出hash值扔到哈希表里.期望复杂度O(n*log(n)). <法一>next数组版哈希表 #include<cstdio> #include<cstri ...

  5. python中的else子句

    在一般的语言中else子句一般是紧跟在if 子句后面,但是python语言中else子句可以不跟在if子句后面,请看下面代码: >>> for n in range(2, 10): ...

  6. Linux下使用split按行数进行切割

    说明:一般来说split按行数切割多数用在日志文件上. 实例: 将一个大文件分成若干个小文件方法: 例如将一个BLM.txt文件分成前缀为BLM_ 的1000个小文件,后缀为系数形式,且后缀为4位数字 ...

  7. Synergy – 教你在局域网中用一套键盘/鼠标控制多台电脑

    想必很多人都拥有多台电脑,譬如台式机+笔记本,很多时候我们都会同时打开它们工作.可是你有没发现,如果桌子上摆放着多台电脑多套键盘鼠标,不停来回切换使用是否很累呢?如果说现在可以只用一套键鼠,就能同时控 ...

  8. SVN安装中遇到的问题

    新的版本:1.9.5 必须使用Apache Portable Runtime Utility 1.5.4 Released没有安装的话需要先安装 需要安装apr.apr-util sqlite zli ...

  9. 【k8s】了解一下k8s

    了解一下k8s 地址: https://www.kubernetes.org.cn/doc-11

  10. Coherence的集群成员的离开和加入机制研究

    最近在客户那里环境中coherence集群不稳定,所以找出一些文档,需要搞清楚Coherence内部的一些机制 1.集群成员的离开 关于状态的检测,官方的说法是: Death detection is ...