`
it农民
  • 浏览: 29575 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

可扩展数据架构浅析

阅读更多

上篇讲了一点用mysql架构saas数据库的观点,主要是节点向外扩展的思路,这篇再叨叨一下,主要是针对数据库存储再加以说明,现在大多数解决方案还 是停留在类似阿里的解决方案上,弱化企业的逻辑流程,saas现在还是停留在共性化很强的中小企业应用上,我想saas再发展,她会慢慢的过渡到相对比较 复杂的企业应用。所以做系统有一点就非常的重要,可扩展性,这个词在做并行计算系统和分布式系统的时候,是最重要的衡量参数。
   可扩展不只是tenant可扩展,还要有其他可扩展,这里有这样几个概念:
   第一:界面可扩展;
   这个很容易理解,用户菜单可以定义,这个一般是程序实现和数据库的关系不是很大,如果按照面向界面编程的思路进行下去的话,这个非常简单,在面向界面编程的时候再说明清楚。
   第二:功能可扩展;
   这个主要是soa的思想和跨界迁移,理解起来也不是很复杂,核心是uddi。
   第三:数据表结构可扩展;
   数据表结构可扩展,很多人认为就自定义字段,这个只是表段扩展的初级阶,为什么呢?因为一个信息的属性到底有多少,开发人员是不可预测的,动态改变数据表 结构是一作个非常危险的动,现在很多架构师提出来应该是独享表结构而共享数据库,但是你可以想象,举例:一个租户的两个用户,a用户insert数据,b 用户在alter表结构,这是一个高风险度的操作。所以建议不要这样做,而是采用视图进行行列装换的策略,这个应用最好的算是facebook,给每个被 扩展的数据表,建立扩展数据表,表结构如果下:
被扩展数据表A

 primaryid  name
 1  测试1

这个数据表很容易理解,就是信息的基础数据表,比如name。
数据表A的扩展记录表
A_extend

 primaryid field
 type  length  descript  ......
 1  number  int  10  数量  
 2  addtime  date    上架时间  

这个数据表和基础数据表应该是一一对应的关系,记录扩展信息,简单的应用就是上边的这种,复杂的应用比如产品可能根据不同的分类所扩展的还有所不一样,这个数据表中就可以进行处理。
数据表A的扩展数据表
A_extend_data

 Aid  field  int  varchar  date  ......
 1  number  1234      
 1  addtime      17:49:22  

这 个数据表是该思路的核心,列是field和数据类型的集合,一条扩展信息,根据属性划分成多行,这样避免数据表结构的更改,但是又有一个新的问题就是在这 些扩展属性上进行检索的时候就非常困难,下边的视图解决这个问题。这里还有一个问题就是:为什么不设计成一个混合类型的字段,那样不是更加简单吗?还要按 照类型进行分开存储,实际上每行只有一个存储有效单元,其他都是null,这个主要是为了提供更多的检索条件,因为数字123和字符123存储显然不一样 的,数字123可以用>比较符,而字符123则是无意义的。同理在该表上建立的视图也就有清晰的类型,和应用系统中的类型相匹配,而不在需要转换。 当然你的应用系统如果是php这样的弱类型语言,那就多余了。
在A_extend_data创建视图A_extend_data_view

 primaryid  number  addtime
 1  1234  17:49:22
 2  2342  17:49:25

视图,这个就很清晰了,检索的时候也很方便,和一般的数据表检索是没有什么两样,在创建视图的时候,用一个存储过程,进行行列转换。
就大概说下,有兴趣的可以再进一步交流。

分享到:
评论

相关推荐

    数字运政大数据管理平台功能架构浅析.zip

    大数据存储是平台的关键环节,通常采用分布式存储系统,如Hadoop HDFS,保证数据的高可用性和可扩展性。数据处理则涉及数据清洗、转换、集成,以及利用大数据处理工具(如Spark)进行批处理和流处理,确保数据的准确...

    云端高性能技术架构浅析.pdf

    《云端高性能技术架构浅析》 在当今互联网时代,云端高性能技术架构对于提供高效稳定的服务至关重要。无论是国际巨头Google、Facebook、Amazon,还是国内的Baidu、Taobao等,它们都构建了强大的技术架构来应对高...

    Hadoop+HDFS和MapReduce架构浅析

    ### Hadoop+HDFS和MapReduce架构浅析 #### 摘要 本文旨在深入剖析Hadoop中的两大核心组件——HDFS(Hadoop Distributed File System)和MapReduce的工作原理及其实现机制。首先,我们将介绍Hadoop NameNode与...

    mvp架构浅析

    **MVP架构浅析** MVP(Model-View-Presenter)架构是一种软件设计模式,尤其在Android应用开发中被广泛采用。它旨在提高代码的可测试性和可维护性,通过分离用户界面(View)、业务逻辑(Presenter)和数据模型...

    (hadoop HDFS 和 Mapreduce 架构浅析

    Hadoop的架构设计使得它特别适合于大规模数据分析和存储,它解决了在处理PB级别数据时的可扩展性和成本效率问题。随着云计算的发展,Hadoop的未来应用前景广阔,可以在云平台上提供弹性的存储和计算能力,为企业提供...

    JFinal技术架构浅析.doc

    JFinal 是一个基于Java语言的轻量级Web开发框架,其设计目标是高效、易用、足够小巧。作为入门级的教程,本文档将深入解析JFinal的技术架构,...同时,JFinal的灵活性和可扩展性也使其在大型项目中具有一定的适用性。

    asp.net多频道网站开发架构浅析

    标题与描述均提到了“ASP.NET多频道网站开发架构浅析”,这暗示了文章的核心将围绕ASP.NET框架下的多频道网站开发架构进行探讨。虽然标签部分没有提供额外的信息,但结合标题与描述,我们可以深入挖掘ASP.NET框架下...

    MeeGo架构浅析.pdf

    它包括通信、互联网、视觉服务、多媒体、数据管理、设备服务和个人信息服务等基本平台服务,以及QT UI和应用开发工具。这个层次是MeeGo的核心,它定义了平台的功能和业务能力。 3. **用户体验(UX)层**:设计用于...

    开源云计算平台CloudStack架构浅析.docx

    ### 开源云计算平台CloudStack架构浅析 #### 一、CloudStack概述 CloudStack是一个开源的、具有高可用性和扩展性的云计算平台。该平台能够帮助企业和组织加速搭建高可伸缩性的公共云和私有云(IaaS)环境。通过...

    高并发重负载网站架构浅析.pdf

    通过静态内容分离、应用拆分、存储拆分和缓存机制,可以有效地提升网站的处理能力和响应速度,同时保证系统的可扩展性和容错性。负载均衡作为最后一道防线,确保在流量高峰期间,服务仍然能够正常运行,为用户提供...

    商业银行数据仓库浅析.docx

    - **模型设计原则**:保持简洁性、可扩展性和一致性。 - **模型主题划分**:根据业务领域将数据划分为多个主题区域,便于管理和使用。 - **拉链表**:用于记录数据的历史变化情况。 - **快照表**:保存某一时刻...

    浅析分布式架构下银行多层级对公存款账户体系设计.pdf

    在金融领域,特别是银行行业,分布式架构能够提供更高的性能、可扩展性和可靠性。 对公存款账户体系是指银行针对企业及其他非个人客户的存款账户系统。这些账户不仅记录资金的流动,也是银行获取稳定资金来源的重要...

    高通用可扩展分布式实时信令事件处理平台设计浅析.pdf

    该方案不仅考虑了平台的实时数据处理能力,还涉及了系统的可扩展性、安全性和易用性等多方面因素。通过这样的设计方案,平台能够在满足不同业务系统需求的同时,降低企业的开发成本,并提升企业对市场变化的应对速度...

    浅析基于云计算的物联网数据挖掘技术.pdf

    云计算平台的分布式计算能力和数据存储能力,为物联网中的海量数据提供了可扩展的处理方案。它不仅可以处理大量异构数据,还可以在保证数据安全性和处理效率的同时,提供高可靠性的数据服务。 云计算平台对物联网...

    3层架构&浅析ASP[1][1].NET三层架构.pdf

    三层架构通过将应用程序分为表现层、业务逻辑层和数据访问层三个层次,不仅提高了系统的可维护性和可扩展性,还使得各层之间的职责更加清晰。这种架构模式在实际项目中被广泛应用,并且根据项目的具体需求,还可以...

    浅析BREW的思想和系统架构

    BREW(Binary Runtime Environment for Wireless)是一种专为无线设备设计的应用程序开发平台,它提供了一个高效、安全且可扩展的框架,使得开发者能够为移动设备创建丰富的应用程序。BREW不仅是一个编程环境,还...

    浅析系统架构.rar (mysql开发组的一个资料)

    在《浅析系统架构》中,MySQL开发组可能会详细介绍如何设计和优化数据库系统的架构,以满足高性能、高可用性和可扩展性的需求。 MySQL作为全球广泛使用的开源关系型数据库管理系统,其架构设计至关重要。资料可能...

    浅析数据仓库与数据挖掘的应用.pdf

    但同时,数据仓库潜在的大数据量需要软件具备并行性、执行性能、可扩展性、可用性和可管理性等特性。 ### 数据仓库的基本功能与管理层 数据仓库的基本功能包括数据抽取、筛选、清理以及加载。具体来说,数据抽取...

Global site tag (gtag.js) - Google Analytics