云计算设计模式(十四)——实体化视图模式

简介: 云计算设计模式(十四)——实体化视图模式 产生过在一个或多个数据存储中的数据预填充的观点时,数据被格式化以不利于所需的查询操作的一种方式。这种模式可以帮助支持高效的查询和提取数据,并提高应用程序的性能。

云计算设计模式(十四)——实体化视图模式


产生一个或多个数据存储中的数据预填充的观点时,数据被格式化以不利于所需的查询操作的一种方式。这种模式可以帮助支持高效的查询和提取数据并提高应用程序的性能

背景和问题


何时存储数据时,优先级为开发者和数据管理员经常集中在如何将数据存储,而不是它是如何读出。所选择的存储格式通常是密切相关的数据用于管理数据的大小和数据的完整性,并且使用的那种存储要求的格式。例如,使用的NoSQL文献商店,该数据通常被表示为一系列的聚集体,其每一个包含了所有信息,该实体

然而,这可能对查询产生负面影响。当查询需要一些实体,如订单几个客户没有所有顺序的信息的汇总数据的一个子集,它必须提取所有的相关实体数据,以获得所需的信息。

解决方案


以支持高效的查询,一个常见的解决方案是生成预先,即物化数据最适合所要求的结果的格式的图。其中源数据不是一个格式适合于查询,在那里产生一个合适的查询中的实体化视图模式描述产生数据预先填充的观点环境中是困难的,或者其中的查询性能差,由于该数据性质数据存储区。

这些实例化视图其中只包含一个查询所需的数据以便应用程序能够快速获得他们需要的信息除了连接表组合的数据实体,物化视图可以包括计算列数据项的指定作为查询的一部分的当前值组合值或数据项执行的转换的结果,和值。物化视图甚至可以就某一个单一的查询优化。

关键的一点是,一个实体化视图,它包含的数据完全是一次性的,因为它可以完全从源数据存储重建。实例化视图不能直接更新的应用程序,因此它实际上是一个专门的缓存。

何时该视图更改源数据,视图必须被更新以包括新的信息这可以在适当的日程自动发生在系统检测到变化到原始数据的时候其他情况下,可能需要手动重新生成视图

图1示出如何实体化视图图案可能被使用的例子

图1  - 实体化视图模式

问题和注意事项


在决定如何实现这个模式时,请考虑以下几点
•考虑如何以及何时该视图将被更新理想的情况下,将被再生响应于一个事件,指示改变到所述数据,尽管在某些情况下,这可能导致过度的开销,如果源数据发生急剧的变化或者,考虑使用计划任务外部触发手动操作来启动该视图再生。
在某些系统中使用事件采购图案保持修改的数据事件存储区,例如,实体化视图可能是必要的通过检查所有事件,以确定当前状态预先填充的观点可以得到事件存储信息的唯一方式。使用事件采购其它情况下,有必要测量的优点是物化视图可以提供物化视图往往是专门针对一个少数的查询如果许多查询必须被使用,维护实例化视图可能会导致不可接受的存储容量的要求和存储成本
生成视图和更新视图,如果这发生在一个日程表考虑数据一致性的影响。如果源数据发生了变化,生成视图该视图中的数据的复制可能会与原来的数据完全一致。
•考虑在那里你将存储视图。认为不必位于同一商店或分区的原始数据它可能是几个不同的分区合并的一个子集。
如果视图短暂的,仅仅是用来通过反映该数据的当前状态来提高查询性能提高扩展性,可被存储在高速缓存中或者一个较不可靠的位置可以的,如果失去了重建。
当定义一个实体化视图中,在数据项或列的基础上计算的或现有的数据项的转换视图在查询传递的值或者对这些值,其中,这是适当的组合发挥其最大价值
存储机制支持它考虑索引实体化视图,以进一步提高性能。大多数关系型数据库支持索引意见因为这样做是基于Apache Hadoop的大数据解决方案

何时使用这个模式


这种模式非常适合于
•创建实例化视图以上数据是难以直接查询,或者查询必须以提取存储在归一化半结构化或非结构化的方式数据非常复杂
•创建临时视图,可以显着提高查询性能可直接充当UI源视图或数据传输对象DTO的进行报告进行显示。
支持偶尔连接断开连接的情况,其中连接到数据存储并不总是可用的该视图可能这种情况下被本地缓存
•简化查询和不需要源数据格式知识的方式曝光数据用于实验例如,通过一个或多个数据库NoSQL的存储的一个或多个结构域结合不同的表,然后格式化数据,以满足它的最终用途
提供访问源数据的特定子集,出于安全隐私原因不应该是一般访问,公开进行修改或者完全暴露给用户。
使用基于他们的个人能力不同的数据存储弥合脱节例如通过使用存储中是有效率的用于写入作为基准数据存储,能提供良好的查询读取性能保持实例化视图的关系数据库。

这种模式可能不适合下列情况
•源数据简单,便于查询
•源数据非常迅速的变化,或者可以在不使用视图来访问。创建视图处理开销可能会避免在这些情况下
一致性是一个高优先级的意见可能并不总是与原始数据完全一致。

例子


图2示出了使用实体化视图模式的一个例子。在订单订单项数据并在微软的Azure存储帐户单独的分区的客户相结合,生成包含电子类别中的每个产品销售总额的视图客户是谁的采购数量的计数在一起每个项目

图2 - 使用实体化视图模式产生销售的总结


创建这个实例化视图需要复杂的查询。然而,通过将查询结果作为实体化视图用户可以轻松获得的结果和直接使用它们,或将其纳入另一个查询观点很可能在一个报告系统或仪表板中使用,所以可以更新计划的基础上,如每周一次

注意:

虽然这个例子使用的Azure表存储许多关系数据库管理系统还提供了实例化视图的原生支持

本文翻译自MSDN:http://msdn.microsoft.com/en-us/library/dn589782.aspx

目录
相关文章
|
7天前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
2月前
|
存储 安全 JavaScript
云计算浪潮中的网络安全之舵探索Node.js中的异步编程模式
【8月更文挑战第27天】在数字化时代的风帆下,云计算如同一片广阔的海洋,承载着企业与个人的数据梦想。然而,这片海洋并非总是风平浪静。随着网络攻击的波涛汹涌,如何确保航行的安全成为了每一个船员必须面对的挑战。本文将探索云计算环境下的网络安全策略,从云服务的本质出发,深入信息安全的核心,揭示如何在云海中找到安全的灯塔。
|
21天前
|
设计模式 算法 安全
设计模式——模板模式
模板方法模式、钩子方法、Spring源码AbstractApplicationContext类用到的模板方法
设计模式——模板模式
|
14天前
|
设计模式 数据库连接 PHP
PHP中的设计模式:如何提高代码的可维护性与扩展性在软件开发领域,PHP 是一种广泛使用的服务器端脚本语言。随着项目规模的扩大和复杂性的增加,保持代码的可维护性和可扩展性变得越来越重要。本文将探讨 PHP 中的设计模式,并通过实例展示如何应用这些模式来提高代码质量。
设计模式是经过验证的解决软件设计问题的方法。它们不是具体的代码,而是一种编码和设计经验的总结。在PHP开发中,合理地使用设计模式可以显著提高代码的可维护性、复用性和扩展性。本文将介绍几种常见的设计模式,包括单例模式、工厂模式和观察者模式,并通过具体的例子展示如何在PHP项目中应用这些模式。
|
11天前
|
设计模式 Java Spring
spring源码设计模式分析-代理设计模式(二)
spring源码设计模式分析-代理设计模式(二)
|
9天前
|
设计模式 Java
Java设计模式-工厂方法模式(4)
Java设计模式-工厂方法模式(4)
|
2月前
|
设计模式
设计模式-单一职责模式
设计模式-单一职责模式
|
2月前
|
设计模式 XML 存储
【二】设计模式~~~创建型模式~~~工厂方法模式(Java)
文章详细介绍了工厂方法模式(Factory Method Pattern),这是一种创建型设计模式,用于将对象的创建过程委托给多个工厂子类中的某一个,以实现对象创建的封装和扩展性。文章通过日志记录器的实例,展示了工厂方法模式的结构、角色、时序图、代码实现、优点、缺点以及适用环境,并探讨了如何通过配置文件和Java反射机制实现工厂的动态创建。
【二】设计模式~~~创建型模式~~~工厂方法模式(Java)
|
2月前
|
设计模式 XML Java
【一】设计模式~~~创建型模式~~~简单工厂模式(Java)
文章详细介绍了简单工厂模式(Simple Factory Pattern),这是一种创建型设计模式,用于根据输入参数的不同返回不同类的实例,而客户端不需要知道具体类名。文章通过图表类的实例,展示了简单工厂模式的结构、时序图、代码实现、优缺点以及适用环境,并提供了Java代码示例和扩展应用,如通过配置文件读取参数来实现对象的创建。
【一】设计模式~~~创建型模式~~~简单工厂模式(Java)
|
2月前
|
设计模式 uml C语言
设计模式----------工厂模式之简单工厂模式(创建型)
这篇文章详细介绍了简单工厂模式,包括其定义、应用场景、UML类图、通用代码实现、运行结果、实际应用例子,以及如何通过反射机制实现对象创建,从而提高代码的扩展性和维护性。
设计模式----------工厂模式之简单工厂模式(创建型)
下一篇
无影云桌面