CN114730312A - 从异构数据源创建的受管物化视图 - Google Patents

从异构数据源创建的受管物化视图 Download PDF

Info

Publication number
CN114730312A
CN114730312A CN202080082628.4A CN202080082628A CN114730312A CN 114730312 A CN114730312 A CN 114730312A CN 202080082628 A CN202080082628 A CN 202080082628A CN 114730312 A CN114730312 A CN 114730312A
Authority
CN
China
Prior art keywords
materialized view
data
target
materialized
view
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080082628.4A
Other languages
English (en)
Inventor
R·德什潘德
Y·帕帕康斯坦蒂努
O·A·扎基
K·G·S·巴拉蒂
R·杜加
S·R·乌门塔拉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/699,486 external-priority patent/US11113273B2/en
Priority claimed from US16/699,530 external-priority patent/US11899659B2/en
Priority claimed from US16/699,547 external-priority patent/US11544286B2/en
Priority claimed from US16/699,512 external-priority patent/US11308079B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN114730312A publication Critical patent/CN114730312A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2393Updating materialised views
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

可以从跨越异构数据源生成受管物化视图。要创建物化视图的请求可以由物化视图管理平台接收和执行,所述物化视图管理平台可以从不同数据源获得和生成所述物化视图并且将所述物化视图存储在目标系统中。可以在所述物化视图管理平台处获得对所述数据源的变更并且可以确定对所述物化视图的更新。可以更新所述目标系统中的所述物化视图。

Description

从异构数据源创建的受管物化视图
背景技术
随着组织创建、跟踪和保留信息的技术能力持续增长,已经开发出用于管理和存储高涨的信息浪潮的各种不同技术。例如,数据库系统给客户端提供许多不同专门或定制的硬件和软件配置来管理存储的信息。然而,组织必须存储和管理的渐增量的数据常常对应地增加用于执行诸如利用数据库系统的特征、对象暂存器和数据流的各种操作和服务的数据存储和管理技术的数量、大小和复杂性两者,这进而使维护信息的成本逐步升高。此外,随着不同的数据存储技术提供不同的性能益处和特征,使数据的位置适应为该数据提供性能和分析益处的数据存储技术可以导致不同的数据集遍布许多不同位置和类型的存储系统。虽然针对个别数据集利用这样的部署策略向个别数据集提供一些益处,但是一些系统或应用可能需要访问多个不同的数据集才能工作,这考虑到当访问多个数据存储系统时发生的各种接口、语言和其他技术障碍可以是有挑战性的。因此,对于使用来自根本不同的存储系统的数据的系统或应用能够从根本不同的数据存储系统获得并共同定位数据而不从它们优化的源存储位置移除数据的技术可能是高度所希望的。
附图说明
图1图示根据一些实施例的图示从异构数据源创建的受管物化视图的逻辑框图。
图2是图示根据一些实施例的提供物化视图管理平台以及包括各种数据存储和处理服务的各种服务的提供商网络的逻辑框图。
图3是图示根据一些实施例的实现从异构数据源创建的受管物化视图的物化视图管理平台的逻辑框图。
图4是图示根据一些实施例的由物化视图管理平台管理的物化视图的创建和维护阶段的交互的顺序图。
图5是图示根据一些实施例的物化视图创建的逻辑框图。
图6是图示根据一些实施例的物化视图维护的逻辑框图。
图7是图示根据各种实施例的维护计划优化器的逻辑框图。
图8是图示根据一些实a施例的用于执行维护计划的优化器的逻辑框图。
图9是图示根据一些实施例的对用于物化视图的目标数据暂存器执行更新的逻辑框图。
图10是图示根据一些实施例的对用于物化视图的目标数据暂存器执行更新的逻辑框图。
图11是图示根据一些实施例的用于对物化视图执行更新的控制平面执行调整的逻辑框图。
图12是图示根据一些实施例的由用于物化视图管理平台的示例接口支持的交互的逻辑框图。
图13是图示根据一些实施例的实现从异构数据源创建的受管物化视图的各种方法和技术的高级流程图。
图14是图示根据一些实施例的更新用于更新目标数据暂存器中的物化视图的物化视图的内部版本的各种方法和技术的高级流程图。
图15是图示根据一些实施例的从异构数据源创建受管物化视图的各种方法和技术的高级流程图。
图16图示根据一些实施例的图示维护数据流历史以用于生成物化视图的逻辑框图。
图17是图示根据一些实施例的实现维护数据流历史以用于生成物化视图的各种方法和技术的高级流程图。
图18是图示根据一些实施例的存储数据流以用于生成物化视图的各种方法和技术的高级流程图。
图19是图示根据一些实施例的调整物化视图维护的执行的逻辑框图。
图20是图示根据一些实施例的调整物化视图维护的执行的各种方法和技术的高级流程图。
图21是图示根据一些实施例的重写维护计划以优化物化视图维护的执行的各种方法和技术的高级流程图。
图22是图示根据一些实施例的跨越异构目标系统复制物化视图的逻辑框图。
图23是图示根据一些实施例的多目标管理的逻辑框图。
图24是图示根据一些实施例的图示跨越异构目标系统复制物化视图的各种方法和技术的高级流程图。
图25是图示根据一些实施例的从物化视图添加目标数据暂存器的各种方法和技术的高级流程图。
图26是图示根据一些实施例的从物化视图移除目标数据暂存器的各种方法和技术的高级流程图。
图27图示根据一些实施例的被配置为实现本文描述的各种方法、技术和系统的示例系统。
尽管本文通过示例的方式针对若干实施例和说明性附图描述了实施例,但是本领域技术人员将认识到,实施例不限于所描述的实施例或附图。应该理解的是,附图和对其的详细描述不旨在将实施例限于所公开的特定形式,而相反,意图是涵盖落入如由所附权利要求限定的精神和范围内的所有修改、等同物和替代方案。本文所使用的标题只是出于组织目的,而不意在用于限制本说明书或权利要求的范围。如在本申请中自始至终使用的,单词“可以(may)”在允许意义(即,意指有可能)而不是强制意义(即,意指必须)上使用。类似地,单词“包含(include)”、“包含有(including)”和“包括(includes)”意指包含有但不限于。
还应理解的是,尽管术语第一、第二等可以在本文中用于描述各种元件,但是这些元件不应该受这些术语限制。这些术语仅用于区分一个元件和另一元件。例如,在不脱离本发明的范围的情况下,第一联系人可能被称为第二联系人,并且类似地,第二联系人可能被称为第一联系人。第一联系人和第二联系人都是联系人,但是它们不是同一联系人。
具体实施方式
本文描述从异构数据源创建的受管物化视图的各种技术。不同的系统、应用或服务将数据存储在多个专用数据库或其他数据存储或处理技术中以确保它们对于手头的工作使用正确的工具。然而,存在组合来自多个此类数据库、数据暂存器或其他类型的数据源的数据的许多用例。例如,实现在线多玩家游戏的应用可能需要跟踪玩家简档数据、玩家行为,并且提供游戏内促销。应用可能将玩家简档数据保持在低时延非关系(例如,NoSQL)数据库中,将游戏事件保持在索引服务中,将玩家行为分析保持在数据仓库服务中,并且将促销目录保持在文档数据库中。为了构建顶级玩家及其游戏活动的仪表板,可能使用提取变换和加载(TEL)服务来设置将来自这些根本不同的系统的数据提取、变换和组合到单个数据暂存器如数据缓存服务中的流水线,以便托管仪表板并且做诸如游戏内促销定向的活动。虽然这样的方法可以适用于分批更新,但是使仪表板保持被几乎实时地更新将不得不依靠编写相当多的定制代码。为复杂的集成和预计算工作流创建定制代码的成本可能增加,因为快速变更的底层数据源会引起进一步细化或变更。在实际上每一行业中存在像上述示例一样的用例和模式,从而降低系统性能并且增加实现方案成本。
在各种实施例中,物化视图管理平台可以通过使创建集成来自多个源的数据的物化视图变得容易、将这些视图存储在指定的目标数据库中、并且随着底层数据变更而几乎实时地使视图保持最新(而不是例如依靠做出基于分批的变更集)来简化操作工作负载。如在下面关于图2-12详细地讨论的,物化视图管理平台能够为客户端应用提供无服务器体验,同时还提供高性能。例如,在各种实施例中,物化视图管理平台能够自动地缩放以摄取大量源数据变更并且执行计算以构造视图。因为物化视图管理平台可以是无服务器的,所以在一些实施例中,客户端应用(或客户端应用的开发者)将不必设置基础设施,供应容量或者配置读取和写入极限。物化视图管理平台可以替代地接收物化视图定义,所述物化视图定义指定数据源、来自不同数据源的数据的集成以及用于存储物化视图的目标(或多个目标)。
图1图示根据一些实施例的图示从异构数据源创建的受管物化视图的逻辑框图。物化视图管理110可以是如在下面关于图2-12讨论的作为提供商网络的一部分实现或者作为专用或驻地网络的一部分实现的物化视图管理平台210。物化视图管理110可以从不同数量和类型的数据源创建物化视图,诸如物化视图132,从而执行源数据捕获112、初始和更新视图计算114以及视图物化116以将物化视图132(以及更新的或新版本160)存储在目标数据暂存器130中。由物化视图管理110创建和更新(或者维护)的物化视图,例如物化视图132,可以是对在物化视图定义中指定给物化视图管理110的数据源的分析的连续地更新的结果集。例如,可以向为物化视图132提供物化视图定义118的物化视图管理110发送要创建受管物化视图102的请求。
在一些实施例中,物化视图管理110能够向物化视图的消费者提供各种性质或保证。例如,物化视图的发布者能够通过定义模式并且键入创建请求和/或物化视图定义118来约束数据。例如,定义可以允许半结构化数据,即,在类型上存在相当大的自由度的数据。例如,发布者指定诸如“SSN属性是字符串或数字”或“附加注释属性允许实现任何类型的(SQL)内容”或“(数据源记录的)维度包括属性传感器id和可能其他未声明属性”的特征。在一些实施例中,物化视图管理110能够指定传入数据源的事务一致性性质。例如,当捕获到变更时,物化视图管理110能够保证变更没有漏洞(遗漏的变更)。在一些实施例中,发布者可以保证去重。在一些实施例中,视图的发布者可以能够保证到达或接近的次序。这些保证可以由物化视图管理110的各种特征(如在下面各种示例实施例中所讨论的)支持。
能够经由查询170使用目标数据暂存器例如目标数据暂存器130来访问物化视图。以这种方式,能够指定期望类型或样式的数据暂存器,例如,以用于集成物化视图。在各种实施例中,由目标数据暂存器130支持的接口可以用于访问物化视图。例如,如果目标数据暂存器130是支持SQL的关系数据库,则可以做出SQL查询来访问物化视图132。然而如果目标数据暂存器132被存储在非关系数据库中,则根据非关系数据库的编程语言或接口的请求可以用于替代地访问物化视图。以这种方式,在一些实施例中,能够将物化视图部署到支持用于分析和访问物化视图的期望特征的目标。
能够以各种方式定义118物化视图。例如,在一些实施例中结构化查询语言(SQL)语句能够用于指定一个或多个数据源,诸如数据源120a、120b和120c,以及目标,诸如目标数据暂存器。在一些实施例中,用户接口或其他类型的接口(例如,应用编程接口(API))能够用于指定物化视图,包括所期望的结果(例如,扫描、取得、联结、聚合等)、源(例如,通过从提供的源的列表中选择数据源)和目标(例如,通过从提供的目标的列表中选择目标)。在一些实施例中,目标数据暂存器130可以是数据源之一(例如,其中视图被存储在不同位置如同一数据库中的不同表中)。
在一些实施例中,数据源120可以是许多不同类型的数据存储、处理和/或管理技术。例如,数据源120可以是各种类型的数据库(包括关系数据库、非关系数据库、图形数据库、文档数据库、时间系列数据库、数据仓库或各种其他类型的数据库)。在另一示例中,数据源120可以包括各种数据流传输平台或服务(例如,用于数据馈源、事件或其他流处理技术的数据流)。在一些实施例中,数据源120可以是消息传递、通知或其他通信服务或平台。可以使用或组合不同的示例数据源的各种组合来创建物化视图(例如,将数据库表与数据流联结的物化视图)。类似地,目标数据暂存器130可以是各种类型的数据存储、处理和/或管理技术,诸如在上面给出的示例。
一旦物化视图管理110在目标数据暂存器130中创建物化视图132,物化视图管理110就还可以维护物化视图132以提供几乎实时的更新。以这种方式,物化视图132可以在查询或被分析时提供最新的变更。例如,当对(或由)数据源120做出不同变更140时,可以在物化视图110中获得150这些变更。可以在物化视图管理110处实现源数据捕获112以处理对数据源的变更的捕获和摄取。例如,如在下面关于图5所讨论的,源数据捕获112可以实现协议或技术来在更新发生在数据源120处时接收或获得更新。
在各种实施例中,物化视图管理110可以实现视图更新计算114。视图更新计算114可以执行各种查询或其他操作以获得(作为所捕获的变更的补充或基于所捕获的变更的)数据(例如,查询以获得要与接收到的变更联结的数据)。可以实现在下面关于图6、图13和图14讨论的技术或组件的视图更新计算114可以执行计划或过程(例如,由联合查询引擎或其他数据处理引擎生成)以向视图物化116提供变更流和/或变更集。视图物化116(例如,在下面关于图13-14讨论的目标连接器)可以重新格式化、包装、封装或以其他方式翻译对物化视图138的变更,并且执行对目标数据暂存器130的一个或多个请求(例如,经由用于访问目标数据暂存器130的接口)以用物化视图的新版本来更新物化视图160。例如,视图物化可以收集或标识变更集作为新快照(例如,物化视图从一时间点时起的状态)以在目标数据暂存器130中更新为物化视图132的新版本。
请注意,对物化视图管理的先前描述是逻辑图示并且因此不应被解释为关于数据源、目标、物化视图或各种其他特征的实施方案为限制性的。可以在各种实施例中实现不同的组合或实施方案。
本说明书从对实现物化视图管理平台的提供商网络的一般描述开始。然后讨论物化视图管理平台的各种示例,所述物化视图管理平台包括可以作为实现物化视图管理平台的一部分采用的不同组件/模块、或组件/模块的布置。然后讨论用于实现从异构数据源创建的受管物化视图的许多不同的方法和技术,其中的一些被图示在所附流程图中。最后,提供可以在其上实现各种组件、模块、系统、装置和/或节点的示例计算系统的描述。在整个说明书中提供各种示例。
图2是图示根据一些实施例的提供物化视图管理平台以及包括各种数据存储和处理服务的各种服务的提供商网络的逻辑框图。在一些实施例中,提供商网络200可以是专用或封闭系统或者可以由诸如公司或公共部门组织的实体建立以向客户端270提供经由因特网和/或其他网络可访问的一种或多种服务(诸如各种类型的基于云的存储)。提供商网络200可以被实现在单个位置中或者可以包括托管各种资源池的众多数据中心,所述资源池如实现并分发由提供商网络200提供的基础设施和存储服务的物理和/或虚拟化计算机服务器、存储装置、联网设备等(例如,在下面关于图27描述的计算系统3000)的集合。在一些实施例中,提供商网络200可以实现各种计算系统、平台、资源或服务,诸如物化视图管理平台210、计算服务220、数据库服务230(例如,关系或非关系(NoSQL)数据库查询引擎、地图缩减处理、数据流处理和/或其他大规模数据处理技术)、数据存储服务240(例如,对象存储服务、基于块的存储服务,或可以存储不同类型的数据以供集中访问的数据存储服务)、数据流和/或事件服务250及其他服务260(任何其他类型的基于网络的服务(其可以包括未图示的各种其他类型的存储、处理、分析、通信、事件处理、可视化和安全服务)。
在各种实施例中,图2所图示的组件可以作为可由计算机硬件(例如,微处理器或计算机系统)直接或间接执行的指令或者使用这些技术的组合被直接实现在计算机硬件内。例如,图2的组件可以由包括许多计算节点(或简称为节点)的系统实现,每一个计算节点可以类似于图27所图示并且在下面描述的计算机系统实施例。在各种实施例中,给定系统或服务组件(例如,数据存储服务230的组件)的功能性可以由特定节点实现或者可以跨越若干节点分布。在一些实施例中,给定节点可以实现不止一个服务系统组件(例如,不止一个数据存储组件)的功能性。
在一些实施例中,计算服务210可以由提供商网络200实现。计算服务210可以根据用于客户端270操作的各种配置来提供实例、容器和/或功能。例如,虚拟计算实例可以包括具有指定的计算能力(其可以通过指示CPU的类型和数目、主存储器大小等来指定)和指定的软件栈(例如,可以进而在管理程序之上运行的操作系统的特定版本)的一个或多个服务器。容器可以提供用于执行或实现应用的虚拟操作系统或其他操作环境。功能可以作为应请求或响应于事件而执行的一个或多个操作被实现,这可以自动地缩放以提供适当数量的计算资源来依照数量请求或事件而执行操作。在不同的实施例中,可以单独地或相结合地使用许多不同类型的计算装置以实现提供商网络200的资源、容器或功能,包括通用或专用计算机服务器、存储装置、网络装置等。在一些实施例中,实例客户端270或其他任何其他用户可以被配置(和/或授权)为将网络业务引导到计算实例。
计算实例、窗口和/或功能可以操作或实现各种不同的平台,诸如应用服务器实例、JavaTM虚拟机(JVM)、通用或专用操作系统、支持诸如Ruby、Perl、Python、C、C++等的各种解译或编译编程语言的平台,或适合于执行客户端270应用而不用例如要求客户端270访问实例的高性能计算平台。应用(或由计算实例操作/实现并且可以由客户端指定的其他软件),诸如定制软件和/或现成软件。
在一些实施例中,计算实例、容器和/或功能具有基于预期正常运行时间比率的不同类型或配置。可以将特定计算实例的正常运行时间比率定义为实例被激活的时间量与实例被保留的总时间量的比率。在一些实施方案中还可以将正常运行时间比率称为利用率。如果客户端预期在实例被保留的相对小部分时间(例如,长年保留的30%-35%)内使用计算实例,则客户端可以决定将实例保留为低正常运行时间比率实例,并且依照相关定价政策支付打折扣的每小时使用费。如果客户端预期具有要求实例在大多数时间内上线的稳态工作负载,则客户端可以保留高运行时间比率实例并且潜在地支付甚至较低的每小时使用费,但是在一些实施例中依照定价政策,可以在保留的整个持续时间内按小时收取费用,而不管实际的使用小时数如何。在一些实施例中还可以支持具有对应定价政策的中等正常运行时间比率实例的选项,其中前期成本和每小时成本落在对应的高运行时间比率与低运行时间比率成本之间。
计算实例配置还可以包括具有一般或特定目的的计算实例和/或功能,诸如用于计算密集型应用的计算工作负载(例如,高业务web应用、广告投放、批处理、视频编码、分布式分析、高能物理、基因组分析和计算流体动力学)、图形密集型工作负载(例如,游戏流传输、3D应用流传输、服务器侧图形工作负载、渲染、金融建模和工程设计)、存储器密集型工作负载(例如,高性能数据库、分布式存储器高速缓存、存储器内分析、基因组汇编和分析)以及存储优化工作负载(例如,数据仓储和集群文件系统)。计算实例、容器和/或功能的大小,诸如特定数量的虚拟CPU核心、存储器、高速缓存、存储和任何其他性能特性。计算实例、容器和/或功能的配置还可以包括其在特定数据中心中的位置、可用性区、地理位置等,以及(在保留计算实例、容器和/或功能的情况下)保留期限长度。
在各种实施例中,数据库服务230可以是对在一些实施例中跨越多个存储位置存储的数据执行通用或专用数据处理功能(例如,分析、大数据查询、时间系列数据、图形数据、文档数据、关系数据、非关系数据、结构化数据、半结构化数据、非结构化数据、或任何其他类型的数据处理操作)的各种类型的数据处理服务。例如,在至少一些实施例中,数据库服务210可以包括用于存储、查询和更新数据的各种类型的数据库服务(例如,关系)。此类服务可以是可缩放且可扩展的企业级数据库系统。如在下面讨论的,查询可以针对跨越多个物理资源分布的数据库服务230中的数据库,并且在一些实施例中,可以在按需基础上按比例放大或按比例缩小数据库系统。在不同的实施例中,数据库系统可以有效地与各种类型和/或组织的数据库模式一起工作。在一些实施例中,客户端/订户可以以许多方式提交查询或其他请求(例如,要添加数据的请求),例如,经由SQL接口以交互方式向数据库系统或经由应用编程接口(API)提交。在其他实施例中,外部应用和程序可以使用开放式数据库连接(ODBC)和/或Java数据库连接(JDBC)驱动程序接口向数据库系统提交查询。
在一些实施例中,数据库服务230可以包括处理对未被存储在全结构化存储装置(例如,非关系或NoSQL数据库)中的数据的请求的服务。在一个实施例中,数据库服务230可以访问在存储装置中半结构化或非结构化的数据,诸如单独数据存储服务中的非结构化或半结构化数据的数据对象。在其他实施例中,数据库服务230可以在本地存储、管理和访问半结构化或非结构化数据。
在一些实施例中,数据库服务220可以是用于执行不同功能的各种类型的数据处理服务(例如,用于执行诸如异常检测、机器学习、数据查找或任何其他类型的数据处理操作的功能的查询或其他处理引擎)。例如,在至少一些实施例中,数据处理服务230可以包括创建对存储在数据存储服务240之一中的数据实现地图缩减功能性的处理节点的集群的地图缩减服务。可以通过数据处理服务230(例如,网格计算、分片、分布式散列等)来实现各种其他分布式处理架构和技术。注意,在一些实施例中,可以将数据处理操作实现为数据存储服务230的一部分(例如,处理对指定数据的请求的查询引擎)。
数据存储服务240可以将用于代表客户端270存储、访问和管理数据的不同类型的数据暂存器实现为基于网络的服务,所述基于网络的服务使得客户端270能够在云或网络计算环境中操作数据存储系统。例如,在一些实施例中,可以将一个数据存储服务230实现为集中式数据暂存器,使得其他数据存储服务可以访问存储在该集中式数据暂存器中的数据以便处理和/或存储在其他数据存储服务中。这样的数据存储服务240可以被实现为基于对象的数据暂存器,并且可以提供对各种各样对象或文件数据暂存器的存储和访问以便放置、更新和取得各种类型、大小或合集的数据对象或文件。可以经由可编程接口(例如,API)或图形用户接口来访问此类数据存储服务230。数据存储服务240可以提供基于虚拟块的存储以用于将数据作为数据卷的一部分来维护,所述数据卷能够类似于基于本地块的存储装置(例如,硬盘驱动器、固态驱动器等)被安装或访问,并且可以利用基于块的数据存储协议或接口如因特网小型计算机接口(iSCSI)来访问。
在各种实施例中,数据流和/或事件服务250可以提供资源来实时地摄取、缓冲和处理流数据。在一些实施例中,数据流和/或事件服务250可以作为用于事件驱动系统或服务的事件总线或其他通信/通知(例如,在提供商网络200服务上和/或在驻地系统或应用上发生的事件)。
一般地说,客户端270可以包含可配置为经由网络280向提供商网络200提交基于网络的请求的任何类型的客户端,所述请求包括对物化视图管理平台210的请求(例如,要从其他提供商网络服务的不同数据源创建物化视图并且将一个或多个数据源标识为目标数据源的请求)。例如,给定客户端270可以包括合适版本的web浏览器,或者可以包括可以作为由web浏览器提供的执行环境的扩展或在该执行环境内执行的插件模块或其他类型的代码模块。可替代地,客户端270可以包含应用,诸如数据库应用(或其用户接口)、媒体应用、办公应用、或可以利用提供商网络200中的资源来实现各种特征、系统或应用的任何其他应用。(例如,以存储和/或访问数据以实现各种应用。在一些实施例中,这样的应用可以包括足够的协议支持(例如,用于合适版本的超文本转移协议(HTTP))以用于生成并处理基于网络的服务请求,而不必实现对所有类型的基于网络的数据的完全浏览器支持。也就是说,客户端270可以是可以直接与提供商网络200交互的应用。在一些实施例中,客户端270可以根据代表性状态转移(REST)样式的基于网络的服务架构、基于文档或消息的基于网络的服务架构、或另一合适的基于网络的服务架构来生成基于网络的服务请求。
在一些实施例中,客户端270可以以对其他应用透明的方式向那些应用提供对提供商网络200的访问。例如,客户端270可以与操作系统或文件系统集成以在数据存储服务240之一(例如,基于块的存储服务)上提供存储。然而,操作系统或文件系统可以向应用呈现不同的存储接口,诸如文件、目录和/或文件夹的常规文件系统层次。在这样的实施例中,可能不需要修改应用来利用存储系统服务模型。相反,对接到数据存储服务240的细节可以由客户端270和操作系统或文件系统代表在操作系统环境内执行的应用来协调。
客户端270可以经由网络280将基于网络的服务请求(例如,物化视图创建请求)传达给提供商网络200并且从其接收响应。在各种实施例中,网络280可以包含在客户端270与提供商网络200之间建立基于网络的通信所必需的联网硬件和协议的任何合适的组合。例如,网络280可以通常包含共同地实现因特网的各种电信网络和服务提供商。网络280还可以包括专用网络,诸如局域网(LAN)或广域网(WAN)以及公用或专用无线网络。例如,给定客户端270和提供商网络200都可以分别在具有它们自己的内部网络的企业内提供。在这样的实施例中,网络280可以包括在给定客户端270与因特网之间以及在因特网与提供商网络200之间建立联网链路所必需的硬件(例如,调制解调器、路由器、交换机、负载平衡器、代理服务器等)和软件(例如,协议栈、会计软件、防火墙/安全软件等)。注意,在一些实施例中,客户端270可以使用专用网络而不是公用因特网来与提供商网络200进行通信。
图3是图示根据一些实施例的实现从异构数据源创建的受管物化视图的物化视图管理平台的逻辑框图。客户端302(其可以类似于以上图2中的客户端270或其他类型的客户端系统、服务或应用)。客户端302可以经由接口310访问物化视图管理平台210。接口310可以是图形用户接口(例如,被实现为网站的控制台或其他图形控制视图)。在一些实施例中,可以将接口310实现为命令行接口。可以将接口310实现为一个或多个可编程接口(例如,一个或多个API)。如关于图4-12所讨论的,可以经由接口310接收和/或发送各种类型的请求和/或响应。
物化视图管理平台210可以实现控制平面320。控制平面320可以实现用于管理用于创建并维护物化视图的资源和操作的各种特征。例如,控制平面320可以实现各种访问控制机制或认证技术以确保要创建物化视图的请求是按适当授权而做出的(例如,以创建或删除物化视图)。控制平面320可以实现各种健康或其他系统监测特征以确保物化视图管理平台的各种特征或组件正确地起作用、被修理或替换。例如,控制平面320可以监测用于实现图5中的视图创建处理节点530和图6中的视图维护处理节点620的许多节点或实例,诸如可以被收集在实例池或组中,并且替换、增加或减少节点或实例的数量以便满足需求或处理故障。
如图3所指示的,在一些实施例中,控制平面320可以实现视图执行监测322以便监测创建并维护物化视图的执行。例如,视图执行监测322可以收集或请求用于变更数据捕获、视图计算和视图物化的性能度量以将结果发送到目标数据暂存器,并且确定是否已经满足视图的性能准则。例如,性能准则可以包括用于当在源处发生变更时与当在对目标做出的更新中包括变更时之间的时间的滞后时间或其他指示符。如果滞后时间超过阈值时间量(例如,10分钟),则可以触发要减少滞后时间的调整事件。其他性能准则可以包括作为变更接收的数据量(例如,有多少记录、项目或对象或数据的大小,诸如5兆字节)。性能准则可以包括由用户、所有者、开发者或操作者经由视图接口310为物化视图指定的准则。在一些实施例中,所指定的要求可以包括对一些资源的利用率的限制或其他限定(例如,关于对数据源或目标施加的读取或写入负载量的极限)。
控制平面320可以实现视图执行调整324以动态地缩放与创建并维护物化视图相关联的资源。以这种方式,能够提供无服务器体验,因为资源的供应、管理、分配可以由物化视图管理平台210(而不是由手动地指定要为物化视图实现的资源量的用户)处理。视图执行调整324可以根据视图执行监测322(例如,根据检测到的事件的数量和/或类型)来确定用于调整物化视图创建和执行的响应动作。例如,视图执行调整324可以增加(或减少)指配给视图维护处理的节点的数量以便跟上从数据源接收的增加数量的变更。
在各种实施例中,控制平面320可以维护、更新和/或访问受管视图状态326。受管视图状态326可以将各种物化视图的状态指示为如在下面关于图4所讨论的创建阶段与维护阶段之间的进度,以及告知代表物化视图执行的操作或工作流的其他状态信息。例如,受管视图状态可以在物化视图的状态信息中指示用于更新物化视图的最后维护操作的目标发生在10分钟前并且应该针对更新执行另一检查。受管视图状态326可以标识和/或提供用于物化视图创建340和物化视图维护350的各种特征的信息,如在下面关于图4-12详细地讨论的。
在各种实施例中,可以将数据暂存器330实现为物化视图管理平台210的一部分。例如,物化视图管理平台332可以实现受管视图目录332。受管视图目录332可以存储与物化视图相关的信息,包括名称、定义、访问控制或配置、维护和/或其他历史信息以指示物化视图的进度或执行(例如,最后更新时间)。在一些实施例中,数据暂存器330可以提供视图数据和计算存储334。例如,可以在334生成和存储包括最终内部版本的各种中间表或数据。在一些实施例中,存储334可以提供用于执行维护操作(例如,存储用于执行联结的数据或其他信息)的存储空间。
在各种实施例中,物化视图管理平台210可以实现数据源连接器360。如在下面关于图5详细地讨论的,数据源连接器360可以与数据源304进行通信并且从所述数据源获得变更。在一些实施例中,数据源连接器360可以针对数据源304中的对应一个方便用于特定类型的数据暂存器的变更捕获协议或接口(例如,MySQL连接器、数据流连接器、对象存储连接器)。如在上面讨论的,数据源304可以是提供商网络200的各种服务(或托管在服务内的资源)。
在各种实施例中,物化视图管理平台210可以实现目标连接器370。目标连接器370可以连接到目标并与目标交互以获得物化视图,如在下面关于图9-10详细地讨论的。类似于数据源连接器360,能够分别为不同类型的目标(例如,用于数据仓库的目标连接器或用于NoSQL数据库的目标连接器)实现目标连接器370。如在上面讨论的,物化视图目标306可以是提供商网络200的各种服务(或托管在服务内的资源)。在一些实施例中,数据源304和/或物化视图目标306可以被部分地或完全地实现在提供商网络200外部(例如,在驻地网络处或在另一提供商服务网络处)。在一些实施例中,物化视图管理平台210可以允许提供定制或用户实现的目标或源连接器(例如,经由接口上传并且针对请求的物化视图部署)以定制变更数据捕获或物化视图导出(例如,来自驻地或定制数据源或目标)。
物化视图管理平台210可以在不同阶段中操作以获得物化视图。图4是图示根据一些实施例的由物化视图管理平台管理的物化视图的创建和维护阶段的交互的顺序图。例如,创建阶段402可以从创建在物化视图210处接收(例如,经由接口310)的物化视图430的请求开始。在一些实施例中,创建请求430可以包括或指定物化视图将提供的数据源、数据目标和结果定义。在一些实施例中,创建请求可以提供访问凭证(例如,用户id、密码等)或其他许可以允许物化视图的创建和目标中的物化视图的更新。在一些实施例中,身份和访问管理服务可以协调物化视图管理平台的认证以及用于创建和维护物化视图的其他服务。
在一些实施例中,图形接口可以提供可选数据源的选项、要执行以确定来自可选数据源的结果的操作、以及物化视图管理平台210能够访问的可选目标。一旦选择了各种物化视图定义参数,就可以选择创建用户接口元素,它们触发“创建受管物化视图请求430”(使用所选择的参数和结果定义)。或者,可以利用API,从而允许查询语言或其他表示法(例如,JSON、ION等)指定数据源、目标和结果定义。类似的参数或输入能够经由命令行接口通过命令来提供。
物化视图管理平台210可以接收请求430并且调用视图创建过程或工作流的各种特征,如在下面关于图5和图15更详细地讨论的。例如,物化视图管理平台210可以发送要从数据源410取得源数据的一个或多个请求432。可以根据由相应数据源实现的语言、协议和/或接口来格式化这些源请求。在一些实施例中,数据源可以将数据(例如,数据流)推送到物化视图管理平台210。或者,一些数据源可以允许物化视图管理平台210查询或发送要访问期望数据以获得物化视图的请求(例如,根据物化视图的结果集定义)。在各种实施例中,物化视图管理平台210执行要将物化视图434存储在数据目标420中的一个或多个请求。例如,物化视图管理平台210可以访问(或创建)表,所述表用于物化视图将物化视图的记录作为表中的行插入。
要取得源数据432并且存储数据434的请求可以继续直到物化视图被创建为止。然后,物化视图可以开始维护阶段404。维护阶段404可以允许物化视图管理平台210取得452对数据源(例如,附加数据、移除的数据、修改的数据等)的变更或者以其他方式对这些变更做出响应,以便计算或以其他方式确定对物化视图的更新。例如,如果物化视图提供聚合功能(例如,汇总、平均、计数、偏差等),则物化视图管理平台210可以加、除、减、并、联结或其他执行各种其他操作来确定与所获得的变更相对应的更新值。物化视图管理平台210然后可以执行一个或多个请求以更新物化视图454的新版本以在目标420处包括那些变更。
如在上面关于图3所讨论的,物化视图管理平台可以实现物化视图创建340以处理操作或工作流来创建物化视图的第一实例(其能够被随后更新)。图5是图示根据一些实施例的物化视图创建的逻辑框图。在各种实施例中,物化视图创建证实340可以实现视图创建证实510。当接收到创建请求例如创建请求502时,创建作业证实510可以应用一个(或多个证实)规则来确定要创建和维护的物化视图的各种特征是否有效。例如,视图创建证实510可以证实指定的数据源和目标的存在和名称/标识符(例如,根据对源/目标的验证请求,或者根据为潜在源/目标维护的内部元数据)。视图创建证实510可以证实在物化视图的结果集定义中指定的语法或特征(例如,什么类型的联结、插入、布尔表达式、合并、更新等)被允许/支持。在一些实施例中,可以为无效的创建请求提供错误指示504(例如,指定证实错误的类型)。在一些实施例中,视图创建证实510可以存储物化视图定义516以供在受管视图目录332中随后访问。在一些实施例中,视图创建证实510还可以向控制平面320提供标识要创建的新视图522的指示。
在各种实施例中,控制平面320可以执行一个或多个请求524以引导视图创建。例如,控制平面320可以向一个或多个视图创建处理节点530分派要开始物化视图创建的指令,所述一个或多个视图创建处理节点可以从要专用于物化视图的创建的可用视图创建处理节点的群或池中供应。视图创建处理节点530可以从受管视图目录332取得物化视图定义542。视图创建处理节点530可以实现创建引擎532以根据来自数据源的物化视图的定义来生成结果集。例如,创建引擎532可以是能够处理来自多个源的大量数据、将计算(例如联结和聚合)推送到能够高效地执行此类计算的源、在源(例如,结构化、半结构化、非结构化)上通过多个模式工作(或不强加模式要求)的查询处理器。在一些实施例中,创建引擎可以包括查询处理器之前的重写处理器,所述重写处理器能够将用于物化视图定义的结果集的定义查询重写成将被分派给源的子查询。在一些实施例中,视图创建处理节点然后可以执行源查询并取回其结果。在其他实施例中,源连接器(在下面关于图6讨论的)可以执行源查询。在一些实施例中,创建引擎532能够根据查询的功能并且根据用户提供的显式强制转换推断出创建引擎对无模式源(例如,半结构化或非结构化源)的操作所需的最小必要模式。为了附加易用性,仅“通过”物化视图管理平台(例如,没有更改或操作)的物化视图的数据的一些属性或部分,例如在不作为谓词和函数的变元的情况下,可以被以无模式格式例如ION编码。可以物化视图创建引擎532的结果存储554到指定目标554中的物化视图。
如在下面详细地讨论的,在一些实例中,视图创建处理节点530可以创建中间表和/或内部物化视图版本(如在544指示的)并且将其存储在中间数据存储装置334中。在一些实施例中,视图创建处理节点530可以实现维护计划创建534。维护计划创建534可以生成要在接收到变更时(例如,当对表做出更新时、当接收到流中的新项目时等)对物化视图执行维护的计划(例如,查询计划)。例如,维护计划创建534还可以是能够确定需要什么查询或操作来在获得对一个或多个数据源的变更时从如物化视图中指定的源获得结果集的联合查询引擎或其他类型的查询处理器。维护计划创建534可以存储维护计划,如在546指示的,以供后续使用,以在执行更新以维护物化视图时节省计算时间(例如,因为更新可以频繁地发生并且被以几乎连续的方式做出以在目标处提供被几乎实时地更新的物化视图)。
视图创建处理节点530可以向控制平面320报告视图创建状态526。在一些实施例中,性能信息或其他提供的信息可以允许控制平面320在资源方面做出调整(例如,增加或减少视图创建处理节点)。
一旦物化视图创建完成,控制平面320就可以开始物化视图的维护阶段。在一些实施例中,维护阶段可以通过在获得变更时连续地更新物化视图来为物化视图提供几乎实时的更新。尽管在源与物化视图之间可能发生一些滞后,但是可以执行各种技术来调整物化视图维护350的组件的性能以减少滞后。图6是图示根据一些实施例的物化视图维护的逻辑框图。
控制平面320可以分派或以其他方式引导受管视图612的维护。例如,控制平面320可以指配612一个或多个连接器612来开始从物化视图的对应源获得变更。连接器610可以是实现用于与数据源交互或通信的协议、接口或其他支持的节点或资源的单独群。或者,在一些实施例中,视图维护处理节点620可以实现连接器610的一些或所有特征。
连接器622可以实现变更数据捕获特征622以支持从数据源获得变更。例如,变更数据捕获622可以启用由源数据库支持的变更数据捕获流,并且注册为接收者、授权读者、或能够获得对该源的更新作为变更流602的其他组件。在一些实施例中,数据源可以是数据流,并且因此连接器610可以注册或请求成为数据流的接收者。在一些实施例中,变更数据捕获可以轮询源变更,如在604指示的。例如,连接器610可以记录或维护从源先前接收到的变更的状态(例如,通过时间戳、版本标识符等)并且使用该状态来请求自最后接收到的状态以来发生的变更。在一些实施例中,可以将变更直接发送到视图维护处理节点620。在一些实施例中,可以将所捕获的变更写入到对应于数据源的增量表633。
如在614指示的,连接器610可以向控制平面320报告源进度或执行信息。以这种方式,在一些实施例中,控制平面320能够做出执行确定以调整连接器的执行。
如在616指示的,控制平面320可以将受管视图的维护引导到一个或多个视图维护处理节点620。例如,可以将维护任务指配给视图维护处理节点,这使视图维护处理节点620获得维护计划631(或者替代地视图维护处理节点620可以生成视图维护处理计划)。视图维护处理节点620可以接收新更新的指示或者可以周期性地轮询数据,例如增量表633,以确定何时已经接收到变更。在一些实施例中,视图维护处理节点620可以根据使物化视图处理节点620检查是否有来自增量表的附加变更的维护事件或刷新速率来执行维护。或者,从连接器610接收新变更可以是触发维护计划的执行以更新物化视图的维护事件。
在一些实施例中,视图维护处理节点620可以生成用于更新创建的物化视图的维护计划631或者可以获得先前创建的维护计划。维护计划可以描述用于组合对各种数据源的变更以提供更新的视图而不用重新生成整个物化视图(例如,通过重新查询所有源以获得所有物化视图信息)的各种操作。在一些实施例中,视图维护处理节点620可以实现维护计划优化632以重写或者利用各种特征,诸如存储在中间表635中的中间结果和/或利用本地计算能力和存储,诸如维护计算数据637(而不是使用源计算存储和/或能力)。以这种方式,视图维护处理节点620能够适应数据源的能力(例如,支持或不支持的处理操作,诸如支持或不支持联结、聚合等)或对数据源的限制(例如,对数据源的读取或写入限制)。
视图维护处理节点620可以实现维护计划执行634。在一些实施例中,视图维护计划执行可以是能够执行维护计划以获得经变更的数据(以及做出更新所需要的其他数据)的查询引擎或处理器。例如,如果变更是对与其他数据源联结的值的变更,则即使其他数据源未变更,该变更也可能仍需要与来自未变更的源的数据联结,如此可以执行查询(如在662指示的)以从数据源获得未变更的数据(或者在它被存储为维护计算637的一部分的情况下,能够利用本地副本)。在一些实施例中,可以生成物化视图的内部版本,其能够用于标识或指示要对物化视图做出的变更,如在639指示的,或者在一些实施例中,可以流传输或发送物化视图更新,如在660指示的,以便导出到目标。
在一些实施例中,视图维护处理节点620可以依靠外部计算资源(例如,计算服务220的如在上面关于图2所讨论的计算功能资源),所述外部计算资源可以执行操作或者确定用作更新物化视图的一部分的值。类似地,一些数据或查询操作能够通过数据源资源来执行,因此查询如查询662可以作为确定对物化视图的更新的一部分被执行。
视图维护处理节点620可以向控制平面320报告进度和执行信息618。以这种方式,控制平面320能够评价操作的性能以确定更新并且做出调整以缩放分配来维护物化视图的资源以满足性能准则。例如,指导受管视图616的维护可以包括用于添加或移除数字视图维护处理节点620或者修改用于执行像维护计划优化632一样的特征的准则或参数的操作(例如,指配本地或远程操作以优化速度,这可能引发更高的成本,或者以优化成本,这可能引发更慢的速度)。
可以在不同的实施例中实现不同的维护计划优化器,如在下面关于图7和图8所讨论的。图7是图示根据各种实施例的维护计划优化器的逻辑框图。维护计划优化器632可以接收被做出来更新视图的变更,如在702指示的。例如,如果更新是到表中或从流接收的新项目或插入物、在表或其他源中修改的项目或值,或者从表或其他源中删除,则可以接收这些变更。维护计划优化632可以实现远程/本地操作指配710以确定操作是否能够在本地执行(例如,由视图维护处理节点620在本地执行或者由数据源或外部计算源远程地执行)。维护计划优化632还可以接收如上所述要执行的维护计划,其可以包括各种操作以并入变更并且生成更新的物化视图。
可以应用各种重写规则和技术。如在上面关于图1所讨论的,在一些实施例中,可以利用数据流作为用于物化视图的源。一些(或所有)数据流可以被缓冲或存储为本地数据流部分735,其可以用于执行对物化视图的更新。远程位置操作指配710可以应用一个或多个重写规则来识别何时可能需要使用本地数据流部分735来创建物化视图的更新,然后重写计划以向在本地数据流部分735的数据源数据位置731中指定的位置(例如,在维护计算数据存储装置637或其他存储位置中)发出查询。可以针对缓冲本地数据表部分更佳的场景应用类似的重写技术,如在737指示的。例如,如果数据源具有非常慢的查询响应时间,则存储用于创建物化视图的本地数据表部分737可能性能更好。
然后可以将操作选择706提供给计划重写器720。计划重写器720可以取视图704的维护计划并且根据操作选择重写,包括查询为流735和/或本地数据表部分737存储的本地部分的操作。然后可以提供经优化的维护计划706以供在维护计划执行634处执行。
关于图8图示和讨论优化器的另一示例。在各种实施例中,维护计划优化632可以接收用于更新视图802的变更和针对视图804的维护计划。维护计划优化632可以实现远程或本地操作指配810以说明在确定对物化视图的更新时涉及的不同组件的能力和条件。例如,远程/本地操作指配810可以应用各种重写规则来检测本地或远程操作何时被允许和/或性能更好和/或更低或更昂贵的场景。例如,远程/本地操作指配810可以考虑数据源计算能力833。例如,如果数据源不能执行某些操作(例如,联结、聚合或其他数据计算操作),则即使这样的操作可能被下推到远程数据源,指配810也将做出本地操作指配。
在另一示例中,远程/本地操作指配810可以考虑数据源计算性能835。例如,如果数据源具有某种操作类型的高性能或低性能(例如,快速单项目查找、慢速扫描、低单项目查找、快速扫描等),则可以在重写时考虑这些性能属性835以提高维护的速度或性能。(例如,通过在本地指配慢速远程操作或远程地指配快速远程操作)。在另一示例中,可以考虑数据源利用限制839。例如,如果将超过(或很可能超过)远程数据源的读取极限,则可以在本地(尽可能多地)指配操作。例如,数据源数据位置831可以指示本地数据何时能够为维护计划服务而不是远程查询该数据的数据源。在一些实施例中,还可以在执行重写时考虑更新性能准则837。例如,如果目标数据系统接受更新的带宽有限,则可以利用不太昂贵的性能操作。
在各种实施例中,可以执行一些优化来选取是否利用本地计算数据存储,作为用于计算视图计算的“便签本”而不是远程查询。例如,如果远程地执行聚合的成本非常慢或者在数据源上利用了太多的计算容量,则可以指配本地操作并且利用的本地存储存储组成要使用的聚合值的值。以这种方式,本地计算存储能够用于调整独立于远程数据源的远程数据源的容量和/或能力(例如,通过不仅依赖于远程数据源的能力来创建物化视图)。例如,如果包括在查询中的唯一数据源不能执行联结(例如,两个流数据源),则可以存储执行联结所需要的数据以用于在物化视图管理平台处计算物化视图中的联结。在各种实施例中,此类技术增强超出数据源所提供的那些的物化视图生成能力。
操作选择806可以连同针对视图804的维护计划一起被提供给计划重写器820。在一些实施例中,计划重写器820然后可以重写计划并且提供经优化的维护计划806以供执行。
一旦已根据数据源的变更计算了对物化视图的变更,则对物化视图的变更可以由物化视图管理平台210物化。可以在不同的实施例中实现用于对目标数据暂存器执行更新的不同技术,如图9和图10所讨论的。图9是图示根据一些实施例的对用于物化视图的目标数据暂存器执行更新的逻辑框图。如图3所指出的,可以实现目标连接器910来与目标交互以获得物化视图。目标连接器910可以由控制平面320指配、分派或以其他方式引导,如在912指示的。例如,目标连接器910可以是实现用于与目标交互或通信的协议、接口或其他支持的节点或资源的单独群。或者,在一些实施例中,视图维护处理节点620可以实现目标910的一些或所有特征。
在各种实施例中,目标连接器910可以获得要对物化视图做出的变更。例如,可以像由虚拟维护处理节点620计算的那样发送物化视图更新660。在一些实施例中,可以读取物化视图639的内部版本以标识物化视图的新或变更的部分以在目标处更新。在一些实施例中,对物化视图的更新可以被分组或与快照相关联,以便指示物化视图的什么版本应该包括什么变更。当执行诸如更新请求930的更新时,目标连接器910可以记录针对特定快照做出更新的进度(例如,通过提交检查点指示或其他进度标记)。例如,目标连接器910可以在推进进度信息(例如,推进检查点)之前等待接收对更新请求930的成功确认940。如果相反接收到失败响应940,则目标连接器910可以重试更新请求930。
在各种实施例中,目标连接器910可以实现目标指定的更新翻译920。例如,目标特定的更新翻译可以执行数据类型转换、操作转换和/或生成执行更新请求930所需要的请求参数以根据目标系统的接口在物化视图中做出对应变更。在一些实施例中,目标连接器910可以实施排序约束。例如,在执行更新请求930之前,目标连接器910接收与快照相关联的更新并且按次序执行更新。在一些实施例中,目标连接器910可以确保在较早的快照之前不应用较晚的快照。在一些实施例中,目标连接器910可以执行去重以防止重复更新被执行。例如,目标连接器910可以跟踪成功地执行的更新(如在上面讨论的)以便防止故障导致已经执行的更新被重新执行。
一旦已根据数据源的变更计算了对物化视图的变更,则对物化视图的变更可以由物化视图管理平台210物化。图10是图示根据一些实施例的对用于物化视图的目标数据暂存器执行更新的逻辑框图。如图3所指出的,可以实现目标连接器1010来与目标交互以获得物化视图。目标连接器1010可以由控制平面320指配、分派或以其他方式引导,如在1012指示的。例如,目标连接器1010可以是实现用于与目标交互或通信的协议、接口或其他支持的节点或资源的单独群。或者,在一些实施例中,视图维护处理节点620可以实现目标1010的一些或所有特征。
在各种实施例中,目标连接器1010可以获得要对物化视图做出的变更。例如,可以像由虚拟维护处理节点620计算的那样发送物化视图更新660。在一些实施例中,可以读取物化视图639的内部版本以标识物化视图的新或变更的部分以在目标处更新。在一些实施例中,对物化视图的更新可以被分组或与快照相关联,以便指示物化视图的什么版本应该包括什么变更。当执行诸如更新请求1030的更新时,目标连接器1010可以记录针对特定快照做出更新的进度(例如,通过提交检查点指示或其他进度标记)。例如,目标连接器1010可以在推进进度信息(例如,推进检查点)之前等待接收对更新请求1030的成功确认1040。如果相反接收到失败响应1040,则目标连接器1010可以重试更新请求1030。在一些实施例中,目标执行调整1030可以跟踪或处理成功或响应失败(或来自目标系统的其他反馈)的数量以调整执行更新请求1030的速率。
在各种实施例中,目标连接器1010可以实现目标指定的更新翻译1020。例如,目标特定的更新翻译可以执行数据类型转换、操作转换和/或生成执行更新请求1030所需要的请求参数以根据目标系统的接口在物化视图中做出对应变更。在一些实施例中,目标连接器1010可以实施排序约束。例如,在执行更新请求1030之前,目标连接器1010接收与快照相关联的更新并且按次序执行更新。在一些实施例中,目标连接器1010可以确保在较早的快照之前不应用较晚的快照。在一些实施例中,目标连接器1010可以执行去重以防止重复更新被执行。例如,目标连接器1010可以跟踪成功地执行的更新(如在上面讨论的)以便防止故障导致已经执行的更新被重新执行。
图11是图示根据一些实施例的用于对物化视图执行更新的控制平面执行调整的逻辑框图。如在上面讨论的,视图执行监测322可以针对各种性能条件或准则执行监测并且调整物化视图维护的各个部分的执行。例如,如在1112指示的,视图执行监测1112可以检测目标数据系统的不可用性(例如,响应于接收到的针对同样存储在目标数据系统处的另一物化视图的错误指示)。视图执行调整324可以指示用于该物化视图的目标连接器1110开始存储或缓冲1114更新。以这种方式,当目标系统再次变得可用时,目标连接器能够从最后执行的更新开始并且完成要做出的更新。
在一些实施例中,视图执行监测322可以检测目标更新率何时高于或低于阈值,如在1122指示的。例如,在一些实施例中,目标系统可以具有用于执行更新的指定极限,所述指定极限可以由系统它本身(或由不想过度利用目标中的资源仅用于更新物化视图的用户)指定。因此视图执行监测322能够检测阈值何时被超过并且请求降低对目标连接器1110的更新速率1124。还能够指示源连接器1140降低变更捕获速率,如在1126指示的。在一些实施例中,用于目标更新的最小阈值(例如,以满足滞后目标或充分地利用目标系统处的专用资源)可以被评价并且在一些实施例中,使指令分别增加目标连接器1110的目标更新速率和/或增加源连接器1140处的变更捕获速率。
在一些实施例中,视图执行监测322可以检测接收到的变更的速率的增加或降低。视图执行调整324然后可以发送指令或者在到视图维护处理节点1130的维护出口1134中引起增加或减少。在一些实施例中,视图执行调整324可以根据接收到的变更的速率的增加或减小来增加视图维护处理节点1130的数量(或者减少它们)。以这种方式,视图管理平台能够动态地对在上面指出的各种事件或条件做出响应并且相应地响应。
可以支持与物化视图管理平台的各种请求或交互以配置物化视图的创建和维护和/或获得物化视图的信息。图12是图示根据一些实施例的由用于物化视图管理平台的示例接口支持的交互的逻辑框图。
如在1210指示的,在一些实施例中,可以接收要查看物化视图定义1210的请求。以这种方式,能够检查或分析定义以理解物化视图被如何实现(例如,如果从不是请求了创建物化视图的发布应用的另一系统或应用接收到)。如在1212指示的,在一些实施例中,可以接收要丢弃物化视图的请求,这可以使物化视图管理平台210停止获得变更,释放或重新指配用于执行维护的资源,删除任何内部数据和/或删除目标处的物化视图。
如在1220指示的,可以接收要配置视图访问控制的请求。在一些实施例中,此类请求1220可以启用或禁用不同应用或系统的访问权限以接收物化视图。例如,可以为由物化视图管理平台210生成的物化视图实现发布者/订阅者模型,这可以允许发布实体指定或允许哪些目标系统接收物化视图。在一些实施例中,发布者然后能够修改配置以禁用或添加订阅者。
如在1230指示的,可以接收要配置性能缩放1230的请求。例如,可以将最小性能要求(例如,最大允许滞后时间、维护事件的频率等)指定为请求1230,其可以用作用于调整动作缩放由物化视图管理平台210分配给物化视图的资源以被调整大小来满足最小性能要求的触发器。在一些实施例中,用于维护物化视图的成本限制和/或在利用数据源时的上界也可以用于配置性能缩放。在一些实施例中,可以为物化视图配置触发事件,如在1240指示的,诸如更新的通知或者在一些实施例中,在另一服务处(例如,在功能计算资源处)执行数据的进一步处理。
在一些实施例中,如在1250指示的,请求取得仍然尚未被存储到目标系统中的物化视图的未决变更1250。例如,能够访问视图数据/计算存储334以确定这些变更(或者它们可以由目标连接器、视图维护处理节点或其他组件确定)。在一些实施例中,可以在由物化视图管理平台维护(若维护了任何此类内部版本的话)的各个处理阶段之间区分请求1250,所述各个阶段诸如能够返回视图的仍然尚未被提交给目标的部分的示例“GetPendingCommits()”调用、能够返回在提交给目标的外部视图中反映的最新源事务id或源时间戳的“GetTargetCommits()”调用和/或能够返回在内部视图中反映的最新源事务id或源时间戳的“GetMVPlatformCommits()”。
尽管已经在实现物化视图管理平台的提供商网络的上下文中描述和图示了图2-12,但是在图2-12中图示和描述的各种组件可以被容易地应用于管理对跨越不同源和目标的物化视图的创建和管理的其他物化视图管理技术、系统或装置。因此,图2-12不旨在关于可以实现受管查询执行的系统的其他实施例为限制性的。图13是图示根据一些实施例的实现从异构数据源创建的受管物化视图的各种方法和技术的高级流程图。
各种不同的系统和装置可以单独地或一起工作地实现在下面描述的各种方法和技术。例如,诸如在上面关于图2-12描述的物化视图管理平台可以实现各种方法。或者,不同的系统和装置的组合可以实现这些方法。因此,以上示例和或被引用为执行所图示的方法的任何其他系统或装置不旨在关于其他不同的组件、模块、系统、或系统和装置的配置为限制性的。
如在1310指示的,在一些实施例中,可以获得在被指定为存储在目标数据暂存器中的物化视图的定义中的源的不同类型的数据源处做出的相应变更,所述目标数据暂存器也被指定在物化视图的定义中。例如,如在上面讨论的,可以接收指定要为物化视图获得的结果的物化视图定义。视图定义能够指定物化视图管理平台例如在上面讨论的物化视图管理110或物化视图管理210或其他物化视图管理平台可以能够与之进行通信以便获得相应变更的不同数据源中的一个或多个。在一些实施例中,可以实现轮询技术以请求最近的变更(或自最后请求以来的变更)。在一些实施例中,可以接收变更作为源的复制协议或技术的一部分(例如,由数据库生成的变更数据捕获流)。在一些实施例中,数据源它本身可以是它自己的变更,诸如数据流源,它可以将数据流中的每个项目视为新项目,因此是变更。可以针对相同的物化视图实现用于从数据源获得数据的不同技术(例如,可以轮询一个数据源以获得变更,然而同一视图的另一数据源可以是接收到的变更的流)。
如在1320指示的,根据从不同类型的数据源获得的相应变更,可以确定满足物化视图定义的物化视图的新版本。例如,可以评价物化视图的结果集或其他定义以确定要执行来更新物化视图的值或特征的一个或多个操作。例如,物化视图可以提供联结到特定记录(例如,用户id)的一组值的平均值。相应变更可以是当影响平均值的新输入数据作为变更被接收(但是特定记录可能尚未变更)时更新平均值。在一些实施例中,可以创建和/或执行维护计划。例如,如在上面讨论的,可以指定用于将变更组合到更新的物化视图中的不同操作,然后在接收到变更时执行它们。在一些实施例中,新版本可以与物化视图的新快照相关联。
如在1330指示的,在一些实施例中,可以经由用于目标数据暂存器的接口将存储在目标数据暂存器中的物化视图的现有版本更新为物化视图的新版本。例如,一个或多个变更可以被翻译成由目标系统支持的API请求并且发送到目标系统以被执行。在一些实施例中,可以实现更新跟踪以便在一些实施例中确保在已经成功地对目标中的物化视图做出更新的情况下不重复更新。在一些实施例中,可以以流方式应用更新(例如,如在1320确定的)以便在目标处提供物化视图的实时或几乎实时的体验。
可以实现用于处理变更的各种技术来更新物化视图。在一些实施例中,可以以流方式处理更新,其中每个变更被评价并且对物化视图生成对应更新以供在目标的物化视图处执行。然而,在一些场景(例如,复杂操作和分析)中物化视图的中间数据结构和内部版本可以用于提供更新。图14是图示根据一些实施例的更新用于更新目标数据暂存器中的物化视图的物化视图的内部版本的各种方法和技术的高级流程图。
如在1410指示的,在一些实施例中,可以从物化视图的数据源接收变更。例如,如在上面关于图5所讨论的源连接器可以在数据源处接收变更。如在1420指示的,在一些实施例中,可以更新用于存储所接收到的变更1420的增量表。例如,可以为每个数据源维护增量表。在其他实施例中,可以不维护增量表,因此在一些技术中可以不执行元素1420。
如在1430指示的,在一些实施例中,可以执行要将变更和附加数据包括在物化视图的内部版本中的维护计划。例如,维护计划可以描述要执行的操作、中间表或结果集和/或内部版本更新。例如,可以连同对内部版本的合并操作一起执行对在内部维护的表或中间结果的不同联结操作以包括变更。
如在1450指示的,根据一些实施例,可以确定要对目标数据暂存器中的物化视图执行的更新以与物化视图的内部版本匹配。例如,可以做出内部视图的扫描以标识要自针对物化视图的最后更新以来做出的变更。如在1460指示的,根据一些实施例,可以执行所确定的对目标数据暂存器中的物化视图的更新。例如,发送到目标数据暂存器的更新请求可以使得对目标系统中的物化视图执行相同的更新。
与对物化视图执行维护一样,可以执行用于在物化视图管理平台处创建物化视图的不同技术。虽然一些创建技术可以能够处理操作以执行将物化视图直接创建到目标系统中,但是其他技术可以创建各种工件以帮助执行后续维护操作。图15是图示根据一些实施例的从异构数据源创建受管物化视图的各种方法和技术的高级流程图。
如在1510指示的,在一些实施例中,可以根据物化视图定义从不同类型的数据源接收要在目标数据暂存器中创建物化视图的请求。如在1520指示的,可以根据定义来生成并执行物化视图创建计划。例如,联合查询引擎可以能够标识和排序操作以从源数据的不同类型和位置处的源获得源数据,然后相应地生成计划。在一些实施例中,创建计划可以查询数据源以获得物化视图的数据,如在1530指示的。在一些实施例中,计划可以包括创建中间表以生成物化视图的内部版本,如在1540指示的。例如,在一些实施例中,可以生成来自不同子查询的中间结果或用于组合子查询的操作,以便确定作为物化视图的内部版本的最终物化视图。如在1550指示的,在一些实施例中,然后可以从中间表生成物化视图的内部版本。
如在1560指示的,在一些实施例中,可以将表的内部版本翻译成用于目标数据暂存器的目标特定格式。例如,可以执行数据类型转换、字段的不同排序、或定界符的包括或移除。如在1570指示的,在一些实施例中,目标特定格式可以作为物化视图被存储在目标数据暂存器中。
如在1580指示的,在一些实施例中,可以创建维护计划来根据物化视图定义更新中间表和物化视图的内部版本。如在上面讨论的,在一些实施例中,可以不创建内部表和/或物化视图的内部版本。在此类实施例中,可以创建维护计划(但是在一些其他实施例中可以不创建维护计划)。
本文描述了维护数据流历史以用于生成物化视图的各种技术。不同的系统、应用或服务将数据存储在多个专用数据库或其他数据存储或处理技术中以确保它们对于手头的工作使用正确的工具。然而,存在组合来自多个此类数据库、数据暂存器或其他类型的数据源的数据的许多用例。例如,实现在线多玩家游戏的应用可能需要跟踪玩家简档数据、玩家行为,并且提供游戏内促销。应用可能将玩家简档数据保持在低时延非关系(例如,NoSQL)数据库中,将游戏事件保持在索引服务中,将玩家行为分析保持在数据仓库服务中,并且将促销目录保持在文档数据库中。为了构建顶级玩家及其游戏活动的仪表板,可能使用提取变换和加载(TEL)服务来设置将来自这些根本不同的系统的数据提取、变换和组合到单个数据暂存器如数据缓存服务中的流水线,以便托管仪表板并且做诸如游戏内促销定向的活动。虽然这样的方法可以适用于分批更新,但是使仪表板保持被几乎实时地更新将不得不依靠编写相当多的定制代码。为复杂的集成和预计算工作流创建定制代码的成本可能增加,因为快速变更的底层数据源会引起进一步细化或变更。在实际上每一行业中存在像上述示例一样的用例和模式,从而降低系统性能并且增加实现方案成本。
在各种实施例中,物化视图管理平台可以通过使创建集成来自多个源的数据的物化视图变得容易、将这些视图存储在指定的目标数据库中、并且随着底层数据变更而几乎实时地使视图保持最新(而不是例如依靠做出基于分批的变更集)来简化操作工作负载。如在上面关于图2-12详细地讨论的,物化视图管理平台能够为客户端应用提供无服务器体验,同时还提供高性能。例如,在各种实施例中,物化视图管理平台能够自动地缩放以摄取大量源数据变更并且执行计算以构造视图。因为物化视图管理平台可以是无服务器的,所以在一些实施例中,客户端应用(或客户端应用的开发者)将不必设置基础设施,供应容量或者配置读取和写入极限。物化视图管理平台可以替代地接收物化视图定义,所述物化视图定义指定数据源、来自不同数据源的数据的集成以及用于存储物化视图的目标(或多个目标)。
图16图示根据一些实施例的图示维护数据流历史以用于生成物化视图的逻辑框图。物化视图管理1610可以是如在下面关于图2-12讨论的作为提供商网络的一部分实现或者作为专用或驻地网络的一部分实现的物化视图管理平台210。物化视图管理1610可以从不同数量和类型的数据源创建物化视图,诸如物化视图1632,从而执行源数据捕获、初始和更新视图计算1612以及视图物化以将物化视图1632(以及更新的或新版本1660)存储在目标数据暂存器1630中。由物化视图管理1610创建和更新(或者维护)的物化视图,例如物化视图1632,可以是对在物化视图定义中指定给物化视图管理1610的数据源的分析的连续地更新的结果集。例如,可以向为物化视图1632提供物化视图定义的物化视图管理1610发送要创建受管物化视图的请求。
在一些实施例中,物化视图管理1610能够向物化视图的消费者提供各种性质或保证。例如,物化视图的发布者能够通过定义模式并且键入创建请求和/或物化视图定义来约束数据。例如,定义可以允许半结构化数据,即,在类型上存在相当大的自由度的数据。例如,发布者指定诸如“SSN属性是字符串或数字”或“附加注释属性允许实现任何类型的(SQL)内容”或“(数据源记录的)维度包括属性传感器id和可能其他未声明属性”的特征。在一些实施例中,物化视图管理1610能够指定传入数据源的事务一致性性质。例如,当捕获到变更时,物化视图管理1610能够保证变更没有漏洞(遗漏的变更)。在一些实施例中,发布者可以保证去重。在一些实施例中,视图的发布者可以能够保证到达或接近的次序。这些保证可以由物化视图管理1610的各种特征(如在下面各种示例实施例中所讨论的)支持。
能够使用目标数据暂存器例如目标数据暂存器1630经由目标数据暂存器1630所支持的查询或其他交互来访问物化视图。以这种方式,能够指定期望类型或样式的数据暂存器,例如,以用于集成物化视图。在各种实施例中,由目标数据暂存器1630支持的接口可以用于访问物化视图。例如,如果目标数据暂存器1630是支持SQL的关系数据库,则可以做出SQL查询来访问物化视图1632。然而如果目标数据暂存器1632被存储在非关系数据库中,则根据非关系数据库的编程语言或接口的请求可以用于替代地访问物化视图。以这种方式,在一些实施例中,能够将物化视图部署到支持用于分析和访问物化视图的期望特征的目标。
能够以各种方式定义1632物化视图。例如,在一些实施例中结构化查询语言(SQL)语句能够用于指定一个或多个数据源,诸如数据源1620a和1620b,以及目标,诸如目标数据暂存器1630。在一些实施例中,用户接口或其他类型的接口(例如,应用编程接口(API))能够用于指定物化视图,包括所期望的结果(例如,扫描、取得、联结、聚合等)、源(例如,通过从提供的源的列表中选择数据源)和目标(例如,通过从提供的目标的列表中选择目标)。在一些实施例中,目标数据暂存器1630可以是数据源之一(例如,其中视图被存储在不同位置如同一数据库中的不同表中)。
在一些实施例中,数据源1620可以是许多不同类型的数据存储、处理和/或管理技术。例如,数据源1620可以是各种类型的数据库(包括关系数据库、非关系数据库、图形数据库、文档数据库、时间系列数据库、数据仓库或各种其他类型的数据库)。在另一示例中,数据源1620可以包括各种数据流传输平台或服务(例如,用于数据馈源、事件或其他流处理技术的数据流)。在一些实施例中,数据源1620可以是消息传递、通知或其他通信服务或平台。可以使用或组合不同的示例数据源的各种组合来创建物化视图(例如,将数据库表与数据流联结的物化视图)。例如,如图16所图示的,数据源1620a可以与流数据源1620b联结(但是在一些实施例中,数据源1620a也可能是数据流)。类似地,目标数据暂存器1630可以是各种类型的数据存储、处理和/或管理技术,诸如在上面给出的示例。
一旦物化视图管理1610在目标数据暂存器1630中创建物化视图1632,物化视图管理1610就还可以维护物化视图1632以提供几乎实时的更新。以这种方式,物化视图1632可以在查询或被分析时提供最新的变更。例如,当对(或由)数据源1620a做出不同变更1640,例如对数据源做出变更1640时,可以在物化视图管理1610处获得这些变更。
在各种实施例中,物化视图管理1610可以实现视图更新计算1612。视图更新计算1612可以执行各种查询或其他操作以获得(作为所捕获的变更的补充或基于所捕获的变更的)数据(例如,查询以获得要与接收到的变更联结的数据)。可以实现在上面且在下面关于图17讨论的技术或组件的视图更新计算1612可以执行计划或过程(例如,由联合查询引擎或其他数据处理引擎生成)以向更新物化视图1632提供变更流和/或变更集。
在各种实施例中,维护用于生成物化视图的数据流历史能够在流数据之上提供实时物化视图。例如,在各种场景中,流数据源,例如源1620b,可以提供用其他类型的数据增强数据流的机会,或者利用其他类型的数据来执行操作。例如,能够通过将数据流与用户标识符或其他个人信息的过滤集联结来增强点击流以擦净或移除个人标识信息以便排除与过滤集中的项目之一匹配的那些数据记录。然而,当将数据联结到数据流时,为了完成物化视图操作可能需要数据流中来自过去的数据。
考虑具有带联结键“J”以及其他属性“A”和“B”的数据源“Stream Left”和“StreamRight”的示例物化视图,所述数据源是两个仅附加流((“Stream Left(J,A,…)”和“StreamRight(J,B,…)”))。可以将物化视图描述为“Materialized View(A,B,J)=project_{A,B}Left JOIN Right ON Left.J=Right.J”。当“Stream Left”的新数据到达时,为了计算物化视图的新版本,物化视图更新计算1612可能需要对“Stream Right”发出查询以找到“Stream Right”的什么数据与“Steam Left”的新数据匹配。因为物化视图管理可以存储流的一部分,所以“Stream Right”被保留以便找到匹配数据。因为通常不在流源处保存流线型数据,所以存储流式数据以生成物化视图允许物化视图管理用更新物化视图可能需要的信息来更新视图。物化视图管理1610可以将流源识别为可能需要存储的数据源(例如,因为它是与来自右流的数据匹配的联结点)。
图16提供维护数据流历史以用于创建数据流的示例图示。物化视图管理1610可以评价物化视图定义以识别可能需要存储数据流1620b的部分,诸如部分1614,以便在接收到变更1640时执行对物化视图的更新。视图补偿然后能够访问1650所存储的部分以找到所对应的项目作为确定物化视图的新版本的一部分,如在下面和在下面关于图17-18详细地讨论的。
物化视图管理1610可以重新格式化、包装、封装或以其他方式翻译对物化视图1638的变更,并且执行对目标数据暂存器1630的一个或多个请求(例如,经由用于访问目标数据暂存器1630的接口)以用物化视图的新版本更新物化视图1660。例如,视图物化可以收集或标识变更集作为新快照(例如,物化视图从一时间点时起的状态)以在目标数据暂存器1630中更新为物化视图1632的新版本。
如在上面讨论的,可以响应于要从指定数据源创建物化视图的请求而创建物化视图并且将其存储在目标系统中。一旦被创建,就可以根据物化视图定义来更新物化视图以更新通过物化视图存储的结果集。在各种实施例中,维护事件可以引起物化视图的更新。例如,维护事件可能是接收到新变更。在另一示例中,维护事件可以以固定速率或周期性间隔—其可以被设置来确保目标系统中的物化视图不会滞后于对数据源做出的变更超过阈值量—发生。
请注意,对物化视图管理的先前描述是逻辑图示并且因此不应被解释为关于数据源、目标、物化视图或各种其他特征的实施方案为限制性的。可以在各种实施例中实现不同的组合或实施方案。
图17是图示根据一些实施例的实现维护数据流历史以用于生成物化视图的各种方法和技术的高级流程图。如在1710指示的,可以针对存储在目标数据暂存器处的物化视图检测维护事件,其中物化视图指定作为数据流的第一数据源和用于创建物化视图的第二数据源。在各种实施例中,物化视图管理平台的维护视图处理节点、控制平面、连接器或其他组件可以检测维护事件。例如,当执行增量表的扫描来确定附加变更时,可以触发维护事件。在另一示例中,数据连接器可以将变更提供给维护视图处理节点,这可以触发维护事件。
如在1720指示的,在一些实施例中,可以访问数据流的存储的部分以将该存储的部分中的一个或多个项目与对第二数据源的变更的数据联结。例如,联结操作可以利用第二数据源和数据流所共有的联结键来标识要从所存储的部分获得的项目(例如,其中存储的部分联结键=变更联结键的查询)。如在1730指示的,在一些实施例中,然后可以更新物化视图,从而存储根据联结确定的物化视图的新版本。
在各种实施例中,处理不同数据源可以涉及确定并执行用于从数据源摄取数据的相应过程。如在上面讨论的数据连接器或其他物化视图管理平台组件可以在各种实施例中实现用于针对数据源识别并执行适当摄取技术的技术。如在上面关于图16所讨论的,数据流的存储的部分可以提供在不必从源查询或获得数据流中的过去项目的情况下生成对物化视图的变更的机会。在数据流源不维护数据流的历史的场景中,这样的技术可以提供生成物化视图所需要的信息的唯一副本。图18是图示根据一些实施例的存储数据流以用于生成物化视图的各种方法和技术的高级流程图。
如在1810指示的,在一些实施例中,可以接收来自作为物化视图的源的流的新项目。在一些实施例中,可以在源连接器处接收数据流,或者可以直接接收数据流以便在视图创建节点或维护创建节点处处理。可以将数据流识别或标识为可以针对其执行缓冲或存储流的部分以进行物化视图创建的数据流。例如,为物化视图流创建的维护视图计划可以指定或标识当接收到数据流的项目时应该存储物化视图流。在一些实施例中,可以存储所有数据流(至少持续一段时间),而在其他实施例中,可以存储仅识别或标识的过去的流数据将用于创建物化视图的数据流。
如在1820指示的,在一些实施例中,数据流的新项目可以被格式化或者附加为针对数据流维护的仅附加表中的条目。例如,可以在支持仅附加表特征的关系数据库中分配在上面关于图6讨论的计算存储空间。当接收到新项目时,可以用新项目插入仅附加表。以这种方式,数据库可以在尝试执行联结时自动地索引流中的项目以进行搜索,如在上面关于1720所讨论的。
在一些实施例中,可以维护数据位置映射(例如,索引)以用于在计算对物化视图的更新时执行诸如重写或其他技术的操作来定位数据。如在1830指示的,在一些实施例中,可以更新用于执行维护计划中的操作的数据位置映射以指示仅附加表中的新项目。
本文描述从异构数据源创建的受管物化视图的各种技术。不同的系统、应用或服务将数据存储在多个专用数据库或其他数据存储或处理技术中以确保它们对于手头的工作使用正确的工具。然而,存在组合来自多个此类数据库、数据暂存器或其他类型的数据源的数据的许多用例。例如,实现在线多玩家游戏的应用可能需要跟踪玩家简档数据、玩家行为,并且提供游戏内促销。应用可能将玩家简档数据保持在低时延非关系(例如,NoSQL)数据库中,将游戏事件保持在索引服务中,将玩家行为分析保持在数据仓库服务中,并且将促销目录保持在文档数据库中。为了构建顶级玩家及其游戏活动的仪表板,可能使用提取变换和加载(TEL)服务来设置将来自这些根本不同的系统的数据提取、变换和组合到单个数据暂存器如数据缓存服务中的流水线,以便托管仪表板并且做诸如游戏内促销定向的活动。虽然这样的方法可以适用于分批更新,但是使仪表板保持被几乎实时地更新将不得不依靠编写相当多的定制代码。为复杂的集成和预计算工作流创建定制代码的成本可能增加,因为快速变更的底层数据源会引起进一步细化或变更。在实际上每一行业中存在像上述示例一样的用例和模式,从而降低系统性能并且增加实现方案成本。
在各种实施例中,物化视图管理平台可以通过使创建集成来自多个源的数据的物化视图变得容易、将这些视图存储在指定的目标数据库中、并且随着底层数据变更而几乎实时地使视图保持最新(而不是例如依靠做出基于分批的变更集)来简化操作工作负载。如在上面关于图2-12详细地讨论的,物化视图管理平台能够为客户端应用提供无服务器体验,同时还提供高性能。例如,在各种实施例中,物化视图管理平台能够自动地缩放以摄取大量源数据变更并且执行计算以构造视图。因为物化视图管理平台可以是无服务器的,所以在一些实施例中,客户端应用(或客户端应用的开发者)将不必设置基础设施,供应容量或者配置读取和写入极限。物化视图管理平台可以替代地接收物化视图定义,所述物化视图定义指定数据源、来自不同数据源的数据的集成以及用于存储物化视图的目标(或多个目标)。
图19图示根据一些实施例的图示调整物化视图维护的执行的逻辑框图。物化视图管理1910可以是如在上面关于图2-12讨论的作为提供商网络的一部分实现或者作为专用或驻地网络的一部分实现的物化视图管理平台210。物化视图管理1910可以从不同数量和类型的数据源创建物化视图,诸如物化视图1932,从而执行源数据捕获1912、初始和更新视图计算1914以及视图物化1916以将物化视图1932(以及更新的或新版本1960)存储在目标数据暂存器1930中。由物化视图管理1910创建和更新(或者维护)的物化视图,例如物化视图1932,可以是对在物化视图定义中指定给物化视图管理1910的数据源的分析的连续地更新的结果集。例如,可以向为物化视图1932提供物化视图定义1918的物化视图管理1910发送要创建受管物化视图1902的请求。
在一些实施例中,物化视图管理1910能够向物化视图的消费者提供各种性质或保证。例如,物化视图的发布者能够通过定义模式并且键入创建请求和/或物化视图定义1918来约束数据。例如,定义可以允许半结构化数据,即,在类型上存在相当大的自由度的数据。例如,发布者指定诸如“SSN属性是字符串或数字”或“附加注释属性允许实现任何类型的(SQL)内容”或“(数据源记录的)维度包括属性传感器id和可能其他未声明属性”的特征。在一些实施例中,物化视图管理1910能够指定传入数据源的事务一致性性质。例如,当捕获到变更时,物化视图管理1910能够保证变更没有漏洞(遗漏的变更)。在一些实施例中,发布者可以保证去重。在一些实施例中,视图的发布者可以能够保证到达或接近的次序。这些保证可以由物化视图管理1910的各种特征(如在下面各种示例实施例中所讨论的)支持。
能够使用目标数据暂存器例如目标数据暂存器1930经由查询或其他目标数据暂存器访问接口来访问物化视图。以这种方式,能够指定期望类型或样式的数据暂存器,例如,以用于集成物化视图。在各种实施例中,由目标数据暂存器1930支持的接口可以用于访问物化视图。例如,如果目标数据暂存器1930是支持SQL的关系数据库,则可以做出SQL查询来访问物化视图1932。然而如果目标数据暂存器1932被存储在非关系数据库中,则根据非关系数据库的编程语言或接口的请求可以用于替代地访问物化视图。以这种方式,在一些实施例中,能够将物化视图部署到支持用于分析和访问物化视图的期望特征的目标。
能够以各种方式定义1932物化视图。例如,在一些实施例中结构化查询语言(SQL)语句能够用于指定一个或多个数据源,诸如数据源1920a至1920n,以及目标,诸如目标数据暂存器1930。在一些实施例中,用户接口或其他类型的接口(例如,应用编程接口(API))能够用于指定物化视图,包括所期望的结果(例如,扫描、取得、联结、聚合等)、源(例如,通过从提供的源的列表中选择数据源)和目标(例如,通过从提供的目标的列表中选择目标)。在一些实施例中,目标数据暂存器1930可以是数据源之一(例如,其中视图被存储在不同位置如同一数据库中的不同表中)。
在一些实施例中,数据源1920可以是许多不同类型的数据存储、处理和/或管理技术。例如,数据源1920可以是各种类型的数据库(包括关系数据库、非关系数据库、图形数据库、文档数据库、时间系列数据库、数据仓库或各种其他类型的数据库)。在另一示例中,数据源1920可以包括各种数据流传输平台或服务(例如,用于数据馈源、事件或其他流处理技术的数据流)。在一些实施例中,数据源1920可以是消息传递、通知或其他通信服务或平台。可以使用或组合不同的示例数据源的各种组合来创建物化视图(例如,将数据库表与数据流联结的物化视图)。类似地,目标数据暂存器1930可以是各种类型的数据存储、处理和/或管理技术,诸如在上面给出的示例。
一旦物化视图管理1910在目标数据暂存器1930中创建物化视图1932,物化视图管理1910就还可以维护物化视图1932以提供几乎实时的更新。以这种方式,物化视图1932可以在查询或被分析时提供最新的变更。例如,当对(或由)数据源1920做出不同变更时,可以在物化视图1910中获得1950这些变更。可以在物化视图管理1910处实现源数据捕获1912以处理对数据源的变更的捕获和摄取。例如,如在下面关于图5所讨论的,源数据捕获1912可以实现协议或技术来在更新发生在数据源1920处时接收或获得更新。
在各种实施例中,物化视图管理1910可以实现视图更新计算1914。视图更新计算1914可以执行各种查询或其他操作以获得(作为所捕获的变更的补充或基于所捕获的变更的)数据(例如,查询以获得要与接收到的变更联结的数据)。可以实现在下面关于图6讨论的技术或组件的视图更新计算1914可以执行计划或过程(例如,由联合查询引擎或其他数据处理引擎生成)以向视图物化1916提供变更流和/或变更集。视图物化1916(例如,在上面关于图9-10讨论的目标连接器)可以重新格式化、包装、封装或以其他方式翻译对物化视图1938的变更,并且执行对目标数据暂存器1930的一个或多个请求(例如,经由用于访问目标数据暂存器1930的接口)以用物化视图的新版本来更新物化视图1960。例如,视图物化可以收集或标识变更集作为新快照(例如,物化视图从一时间点时起的状态)以在目标数据暂存器1930中更新为物化视图1932的新版本。
物化视图管理1910可以监测物化视图维护的各个阶段的更新性能1940。例如,可以测量有关源数据捕获1912(或数据源1920处的变更的执行)与视图物化1916之间的维护吞吐量(例如,滞后时间)的各种性能准则。类似地,可以将以之执行个别阶段的速度与个别阶段上的负载进行比较(例如,与接收到的变更的速率相比源数据捕获1912摄取更新有多快)。物化视图管理1910可以对捕获1942、计算1944和物化1946做出各种调整,如在下面关于图20详细地讨论的。
请注意,对物化视图管理的先前描述是逻辑图示并且因此不应被解释为关于数据源、目标、物化视图或各种其他特征的实施方案为限制性的。可以在各种实施例中实现不同的组合或实施方案。
图20是图示根据一些实施例的调整物化视图维护的执行的各种方法和技术的高级流程图。如在2010指示的,根据一些实施例,对目标数据暂存器中的物化视图的更新的执行作为来自不同数据源的变更的结果被接收。例如,用于物化视图维护的性能准则可以由用户指定(例如,作为物化视图定义的一部分或者单独地由在上面关于图12所讨论的一个或多个请求指定)。性能准则可以包括维护物化视图的各种计算性能方面,诸如与吞吐量相关的准则(例如,对物化视图的更新与数据源处的更新的初始变更之间的滞后、成本(例如,需求放置的数据源或目标)或维护物化视图的其他性能影响。可以触发一些事件以满足内部性能保证或服务级别协定,诸如确保对物化视图的更新可能不超过10分钟的滞后最大值。其他检测到的事件可以包括来自数据源或背压或丢弃请求的变更的传入速率的变更以从目标数据暂存器执行更新。可以将这些性能信息中的各种性能信息与性能准则进行比较以检测将维护的性能返回到期望或指定性能的边界内的物化视图的调整。
如在2020指示的,可以连续地执行对执行的监测,如果未检测到事件则监测可以继续。此外,从通过从2030退出指示的,如果做出了调整,则监测可以继续。以这种方式,可以动态地调整物化视图更新以补偿随时间的执行变更,即对物化视图管理平台的内部变更以及在数据源或数据目标处或者由数据源或数据目标经历的外部变更两者。
如在上面关于图9、图12和图19所讨论的,可以对工作流的不同部分做出各种各样的调整以便维护物化视图。例如,在一些实施例中可以对从数据源获得变更的执行做出调整。变更的轮询速率以及在轮询请求中要求的数据量可能增加。在一些实施例中,数据连接器或其他摄取组件可以增加以之执行摄取处理的速率(例如,在发送变更的通知或更新增量表之前减小批大小)。在一些实施例中,可以执行对数据源的请求以增加发送变更的速率(例如,频率)。在一些实施例中,可以使用类似的技术来减少、压制或以其他方式减慢变更的获得。
在一些实施例中,可以对确定更新的执行做出调整。例如,使更新计算继续进行的维护事件可能增加(或减少)。在一些实施例中,可以添加或移除附加资源,诸如附加或更少的视图维护处理节点。
在一些实施例中,可以对目标数据暂存器中的物化视图的更新的执行做出调整。例如,以之发送请求的速率可能增加或减少。在一些实施例中,在目标数据暂存器发生故障的情况下,变更可以被缓冲、排队或以其他方式存储,直到目标数据暂存器再次变得可用为止。
如在上面讨论的,还可以中计算对物化视图的更新时做出调整。图21是图示根据一些实施例的重写维护计划以优化物化视图维护的执行的各种方法和技术的高级流程图。如在2110指示的,可以为物化视图接收来自数据源的变更。在一些实施例中,可以执行为本地或远程执行指配操作的确定来更新物化视图以包括变更,如在2120指示的。然后,如在2130指示的,在一些实施例中,可以基于操作指配来重写维护计划。如在2140指示的,在各种实施例中,可以执行所重写的维护计划以将变更包括在物化视图的内部版本中。
本文描述了跨越异构目标系统复制物化视图的各种技术。不同的系统、应用或服务将数据存储在多个专用数据库或其他数据存储或处理技术中以确保它们对于手头的工作使用正确的工具。然而,存在组合来自多个此类数据库、数据暂存器或其他类型的数据源的数据的许多用例。例如,实现在线多玩家游戏的应用可能需要跟踪玩家简档数据、玩家行为,并且提供游戏内促销。应用可能将玩家简档数据保持在低时延非关系(例如,NoSQL)数据库中,将游戏事件保持在索引服务中,将玩家行为分析保持在数据仓库服务中,并且将促销目录保持在文档数据库中。为了构建顶级玩家及其游戏活动的仪表板,可能使用提取变换和加载(TEL)服务来设置将来自这些根本不同的系统的数据提取、变换和组合到单个数据暂存器如数据缓存服务中的流水线,以便托管仪表板并且做诸如游戏内促销定向的活动。虽然这样的方法可以适用于分批更新,但是使仪表板保持被几乎实时地更新将不得不依靠编写相当多的定制代码。为复杂的集成和预计算工作流创建定制代码的成本可能增加,因为快速变更的底层数据源会引起进一步细化或变更。在实际上每一行业中存在像上述示例一样的用例和模式,从而降低系统性能并且增加实现方案成本。
在各种实施例中,物化视图管理平台可以通过使创建集成来自多个源的数据的物化视图变得容易、将这些视图存储在指定的目标数据库中、并且随着底层数据变更而几乎实时地使视图保持最新(而不是例如依靠做出基于分批的变更集)来简化操作工作负载。如在下面关于图2-12详细地讨论的,物化视图管理平台能够为客户端应用提供无服务器体验,同时还提供高性能。例如,在各种实施例中,物化视图管理平台能够自动地缩放以摄取大量源数据变更并且执行计算以构造视图。因为物化视图管理平台可以是无服务器的,所以在一些实施例中,客户端应用(或客户端应用的开发者)将不必设置基础设施,供应容量或者配置读取和写入极限。物化视图管理平台可以替代地接收物化视图定义,所述物化视图定义指定数据源、来自不同数据源的数据的集成以及用于存储物化视图的目标(或多个目标)。
图22图示根据一些实施例的跨越异构目标系统复制物化视图的逻辑框图。物化视图管理2210可以是如在上面关于图2-12讨论的作为提供商网络的一部分实现或者作为专用或驻地网络的一部分实现的物化视图管理平台210。物化视图管理2210可以从不同数量和类型的数据源创建物化视图,诸如物化视图2232a、2232b和2232c,从而执行源数据捕获、初始和更新视图计算2214以及视图物化2216以将物化视图2232(以及更新的或新版本2260)存储在多个目标数据暂存器2230a、2230b和2230c中。由物化视图管理2210创建和更新(或者维护)的物化视图,例如物化视图2232,可以是对在物化视图定义中指定给物化视图管理2210的数据源的分析的连续地更新的结果集。例如,可以向为物化视图2232提供物化视图定义2218的物化视图管理2210发送要创建受管物化视图2202的请求。
在一些实施例中,物化视图管理2210能够向物化视图的消费者提供各种性质或保证。例如,物化视图的发布者能够通过定义模式并且键入创建请求和/或物化视图定义2218来约束数据。例如,定义可以允许半结构化数据,即,在类型上存在相当大的自由度的数据。例如,发布者指定诸如“SSN属性是字符串或数字”或“附加注释属性允许实现任何类型的(SQL)内容”或“(数据源记录的)维度包括属性传感器id和可能其他未声明属性”的特征。在一些实施例中,物化视图管理2210能够指定传入数据源的事务一致性性质。例如,当捕获到变更时,物化视图管理2210能够保证变更没有漏洞(遗漏的变更)。在一些实施例中,发布者可以保证去重。在一些实施例中,视图的发布者可以能够保证到达或接近的次序。这些保证可以由物化视图管理2210的各种特征(如在下面各种示例实施例中所讨论的)支持。
能够使用目标数据暂存器例如目标数据暂存器2230经由查询或其他接口来访问物化视图。以这种方式,能够指定期望类型或样式的数据暂存器,例如,以用于集成物化视图。在各种实施例中,由目标数据暂存器2230支持的接口可以用于访问物化视图。例如,如果目标数据暂存器2230是支持SQL的关系数据库,则可以做出SQL查询来访问物化视图2232。然而如果目标数据暂存器2232被存储在非关系数据库中,则根据非关系数据库的编程语言或接口的请求可以用于替代地访问物化视图。以这种方式,在一些实施例中,能够将物化视图部署到支持用于分析和访问物化视图的期望特征的目标。
如图22所图示的,多个目标数据暂存器2230a、2230b和2230c可以各自接收同一物化视图,但是以不同的相应目标特定格式存储。以这种方式,能够通过缩放目标以与物化视图的目的地的期望数量匹配来增强物化视图的可缩放性,如在下面关于图24-26详细地讨论的。
能够以各种方式定义2218物化视图。例如,在一些实施例中结构化查询语言(SQL)语句能够用于指定一个或多个数据源,诸如数据源2220a、2220b和2220c,以及目标,诸如目标数据暂存器。在一些实施例中,用户接口或其他类型的接口(例如,应用编程接口(API))能够用于指定物化视图,包括所期望的结果(例如,扫描、取得、联结、聚合等)、源(例如,通过从提供的源的列表中选择数据源)和目标(例如,通过从提供的目标的列表中选择目标)。在一些实施例中,目标数据暂存器2230可以是数据源之一(例如,其中视图被存储在不同位置如同一数据库中的不同表中)。
在一些实施例中,数据源2220可以是许多不同类型的数据存储、处理和/或管理技术。例如,数据源2220可以是各种类型的数据库(包括关系数据库、非关系数据库、图形数据库、文档数据库、时间系列数据库、数据仓库或各种其他类型的数据库)。在另一示例中,数据源2220可以包括各种数据流传输平台或服务(例如,用于数据馈源、事件或其他流处理技术的数据流)。在一些实施例中,数据源2220可以是消息传递、通知或其他通信服务或平台。可以使用或组合不同的示例数据源的各种组合来创建物化视图(例如,将数据库表与数据流联结的物化视图)。类似地,目标数据暂存器2230可以是各种类型的数据存储、处理和/或管理技术,诸如在上面给出的示例。
一旦物化视图管理2210在目标数据暂存器2230中创建目标特定的物化视图2232,物化视图管理2210就还可以维护物化视图2232以提供几乎实时的更新。以这种方式,物化视图2232可以在使用不同的相应目标数据暂存器所支持的不同的相应接口或协议来在不同的目标暂存器处查询或分析时提供最新的变更。例如,当对(或由)数据源2220做出不同变更2240时,可以在物化视图2210中获得2250这些变更。可以在物化视图管理2210处实现源数据捕获2212以处理对数据源的变更的捕获和摄取。例如,如在下面关于图5所讨论的,源数据捕获2212可以实现协议或技术来在更新发生在数据源2220处时接收或获得更新。
在各种实施例中,物化视图管理2210可以实现视图更新计算2214。视图更新计算2214可以执行各种查询或其他操作以获得(作为所捕获的变更的补充或基于所捕获的变更的)数据(例如,查询以获得要与接收到的变更联结的数据)。可以实现在上面讨论的技术或组件的视图更新计算2214可以执行计划或过程(例如,由联合查询引擎或其他数据处理引擎生成)以向视图物化2216提供变更流和/或变更集。视图物化2216(例如,在上面关于图9-10讨论的目标连接器)可以重新格式化、包装、封装或以其他方式翻译对物化视图2238的变更,并且执行对目标数据暂存器2230的一个或多个请求(例如,经由用于访问目标数据暂存器2230的接口)以用物化视图的新版本更新物化视图2250。例如,视图物化2216可以收集或标识变更集作为新快照(例如,物化视图从一时间点时起的状态)以在目标数据暂存器2230中更新为物化视图2232的新版本。
请注意,对物化视图管理的先前描述是逻辑图示并且因此不应被解释为关于数据源、目标、物化视图或各种其他特征的实施方案为限制性的。可以在各种实施例中实现不同的组合或实施方案。
多目标管理328可以支持用于跨越多个目标系统将更新复制到物化视图的不同的管理方案。例如,可以在创建物化视图时指定目标系统的初始数量。多目标管理328可以执行在下面关于图24和图25讨论的各种技术来添加或移除目标系统。以这种方式,多目标管理328允许物化视图管理平台210作为使订阅者的添加和移除自动化的发布平台。可以实现用于在多个目标处管理物化视图的进一步特征。图23是图示根据一些实施例的多目标管理的逻辑框图。
例如,在一些实施例中,物化视图管理328可以作为对请求做出响应以启用或禁用视图更新的授权平台。例如,一些系统可以在某些时段或某些场景(例如,周末)期间关闭或不需要物化视图。因此,多目标管理328可以允许实现手动请求以对某些目标启用或禁用视图。在一些实施例中,多目标管理328可以实现物化视图更新的启用或禁用的自动化。例如,物化视图管理328可以在诸如时间段(例如,周末对工作日、在另一目标数据暂存器上增加或减少物化视图的读取容量的业务条件、故障转移场景或各种其他条件)的各种条件或场景中触发启用或禁用请求。在一些实施例中,能够经由接口310指定条件。
图23图示示例场景。可以经由不同的目标连接器2320a、2320b、2320c和2320n接收用于对不同目标执行的物化视图更新2310。如在2322a、2322b、2322c和2322n指示的,多目标管理328可以自动地(或响应于请求)启用或禁用相应更新。例如,可以启用目标连接器2320a和2320n来执行视图更新,如在2324a和2324n指示的,同时可以禁用剩余的目标连接器2320b和2320c。以这种方式,可以为物化视图指定和实现用于使向订户目标系统发布更新自动化的细粒度控制。
图24是图示根据一些实施例的图示跨越异构目标系统复制物化视图的各种方法和技术的高级流程图。各种不同的系统和装置可以单独地或一起工作地实现在下面描述的各种方法和技术。例如,诸如在上面关于图2-12描述的物化视图管理平台可以实现各种方法。或者,不同的系统和装置的组合可以实现这些方法。因此,以上示例和或被引用为执行所图示的方法的任何其他系统或装置不旨在关于其他不同的组件、模块、系统、或系统和装置的配置为限制性的。
如在2410指示的,在各种实施例中,可以根据在物化视图管理平台处接收到的定义来接收来自数据源的对物化视图的变更。例如,如在上面讨论的,可以接收指定要为物化视图获得的结果的物化视图定义。视图定义能够指定物化视图管理平台例如在上面讨论的物化视图管理110或物化视图管理210或其他物化视图管理平台可以能够与之进行通信以便获得相应变更的不同数据源中的一个或多个。在一些实施例中,可以实现轮询技术以请求最近的变更(或自最后请求以来的变更)。在一些实施例中,可以接收变更作为源的复制协议或技术的一部分(例如,由数据库生成的变更数据捕获流)。在一些实施例中,数据源它本身可以是它自己的变更,诸如数据流源,它可以将数据流中的每个项目视为新项目,因此是变更。可以针对相同的物化视图实现用于从数据源获得数据的不同技术(例如,可以轮询一个数据源以获得变更,然而同一视图的另一数据源可以是接收到的变更的流)。
如在2420指示的,在一些实施例中,可以标识不同的目标数据暂存器以用于接收针对物化视图的更新。例如,不同的相应目标连接器可以注册来侦听更新流,如在上面关于图9-10所讨论的。在一些实施例中,指配给用于物化视图的不同的目标数据暂存器的不同的相应目标连接器可以被轮询或查询物化视图的内部版本以获得更新。在一些实施例中,启用/禁用列表可以指定哪些连接的目标数据暂存器已启用了更新,如在上面关于图12所讨论的。在一些实施例中,可以接收要启用或禁用对目标数据暂存器的更新的性能的请求,该请求可以作为用户请求被发送或者通过各种自动启用禁用条件来触发。
如在2430指示的,在一些实施例中,可以将根据变更确定的物化视图的相应目标特定版本存储到不同的目标数据暂存器。例如,可以评价物化视图的结果集或其他定义以确定要执行来更新物化视图的值或特征的一个或多个操作。例如,物化视图可以提供联结到特定记录(例如,用户id)的一组值的平均值。相应变更可以是当影响平均值的新输入数据作为变更被接收(但是特定记录可能尚未变更)时更新平均值。在一些实施例中,可以创建和/或执行维护计划。例如,如在上面讨论的,可以指定用于将变更组合到更新的物化视图中的不同操作,然后在接收到变更时执行它们。在一些实施例中,新版本可以与物化视图的新快照相关联。
在一些实施例中,可以经由用于目标数据暂存器的接口将存储在目标数据暂存器中的物化视图的现有版本更新为物化视图的新版本。例如,一个或多个变更可以被翻译成由目标系统支持的API请求并且发送到目标系统以被执行。在一些实施例中,可以实现更新跟踪以便在一些实施例中确保在已经成功地对目标中的物化视图做出更新的情况下不重复更新。在一些实施例中,可以以流方式应用更新以便在目标处提供物化视图的实时或几乎实时的体验。
图25是图示根据一些实施例的从物化视图添加目标数据暂存器的各种方法和技术的高级流程图。如在2510指示的,在一些实施例中,可以接收要为物化视图添加目标数据暂存器的请求。例如,请求可以指定物化视图的标识以及要连接到目标数据暂存器的各种信息,诸如访问凭证、物化视图存储位置等。在一些实施例中,请求可以生成要发送到目标数据暂存器的所有者或操作者以在一些实施例中验证开始创建物化视图的许可的请求。如在2520指示的,在一些实施例中,可以向目标数据暂存器指配目标连接器。例如,在一些实施例中可以维护具有不同的目标连接器能力的目标连接器的不同池。当指配目标连接器时,在一些实施例中,可以指配可从被配置为连接到目标数据暂存器类型的目标连接器的池获得的目标连接器。
如在2530指示的,在各种实施例中,可以在目标数据暂存器中存储物化视图的版本。例如,在一些实施例中,可以执行用于执行查询并且获得物化视图的基础或初始版本(从执行创建计划时起)的创建计划或其他过程,以生成要存储在目标数据暂存器中的版本。在其他实施例中,(如在上面关于图6-8所讨论的那样)已经创建的物化视图的内部版本可以用于翻译版本并且将其存储在目标数据暂存器中。一旦被最初存储,就可以启用由所指配的目标连接器对物化视图进行的更新的执行,如在2540指示的。然后,例如,目标连接器可以开始在所添加的目标数据暂存器处接收、翻译和执行对物化视图的更新。
图26是图示根据一些实施例的从物化视图移除目标数据暂存器的各种方法和技术的高级流程图。如在2610指示的,在一些实施例中,可以接收要从物化视图中移除目标数据暂存器的请求。该请求可以例如指定定时(或立即)移除。在一些实施例中,可以禁用对物化视图的更新的执行,如在2620指示的。例如,可以向指配给物化视图的目标连接器发送指示更新停止命令的指令。在一些实施例中,指令可以指定更新何时将停止。
在一些实施例中,存储物化视图的目标数据暂存器可以被留有物化视图的最后提供的版本。在一些实施例中,物化视图应该不再是可访问的,并且因此如在2630指示的,可以在目标数据暂存器处删除物化视图。例如,可以向目标连接器发送指令以执行丢弃表命令、删除对象或表、暂停流、或用于在目标数据暂存器处结束并移除物化视图的其他技术。在一些实施例中,可以向目标数据暂存器的所有者或操作者发送要删除物化视图的请求,或对删除物化视图的许可的请求(不可以在没有许可的情况下执行这个)。如在2640所指示,在一些实施例中,目标连接器可以与目标数据暂存器断开。
本文描述的方法在各种实施例中可以通过硬件和软件的任何组合来实施。例如,在一个实施例中,方法可以由计算机系统(例如,如在图27中一样的计算机系统)实现,所述计算机系统包括执行存储在耦合到处理器的计算机可读存储介质上的程序指令的一个或多个处理器。程序指令可以被配置为实现本文描述的功能性(例如,实现本文描述的基于网络的虚拟计算资源提供商的各种服务器和其他组件的功能性)。如图中图示和本文描述的各种方法表示方法的示例实施例。可变更任何方法的顺序,并且可添加、重新排序、组合、省略、修改等各种元件。
可以在一个或多个计算机系统上执行如本文所描述的维护数据流历史以用于生成物化视图的从异构数据源创建的受管物化视图的实施例,所述计算机系统可以与各种其他装置交互。一个这种计算机系统由图27图示。在不同的实施例中,计算机系统3000可以是各种类型的装置中的任一种,包括但不限于个人计算机系统、台式计算机、膝上型电脑、笔记本或上网本计算机、大型计算机系统、手持计算机、工作站、网络计算机、相机、机顶盒、移动装置、消费者装置、视频游戏控制台、手持视频游戏装置、应用服务器、存储装置、外围装置(诸如交换机、调制解调器、路由器)或通常任何类型的计算装置、计算节点(computingnode)、计算节点(compute node)、计算系统(computing system)、计算系统(computesystem)或电子装置。
在所图示的实施例中,计算机系统3000包括经由输入/输出(I/O)接口3030耦合到系统存储器3020的一个或多个处理器3010。计算机系统3000还包括耦合到I/O接口3030的网络接口3040,以及一个或多个输入/输出装置3050,诸如光标控制装置3060、键盘3070和显示器3080。显示器3080可以包括标准计算机监视器和/或其他显示系统、技术或装置。在至少一些实施方式中,输入/输出装置3050还可以包括触摸或多触摸使能装置,诸如平板或平板电脑,用户通过所述触摸或多触摸使能装置经由触控笔型装置和/或一个或多个手指来键入输入。在一些实施例中,设想了可以使用计算机系统3000的单个实例来实现实施例,然而在其他实施例中,多个此类系统或组成计算机系统3000的多个节点可以托管实施例的不同部分或实例。例如,在一个实施例中可以经由计算机系统3000的一个或多个节点来实现一些元件,所述一个或多个节点不同于实现其他元件的那些节点。
在各种实施例中,计算机系统3000可以是包括一个处理器3010的单处理器系统,或包括若干处理器3010(例如,两个、四个、八个或另一合适的数量)的多处理器系统。处理器3010可以为能够执行指令的任何合适的处理器。例如,在各种实施例中,处理器3010可以是实现各种指令集架构(ISA)中的任一种如x86、PowerPC、SPARC或MIPS ISA、或任何其他合适的ISA的通用或嵌入式处理器。在多处理器系统中,处理器3010中的每一个处理器可以通常但不一定实现同一ISA。
在一些实施例中,至少一个处理器3010可以是图形处理单元。图形处理单元或GPU可以被认为是用于个人计算机、工作站、游戏控制台或其他计算或电子装置的专用图形渲染装置。现代GPU在操纵和显示计算机图形方面可非常有效,并且它们高度并行的结构可使它们比一系列复杂图形算法的典型CPU更有效。例如,图形处理器可以以比用主机中央处理单元(CPU)直接绘制到屏幕上更快地执行它们的方式实现许多图形基元操作。在各种实施例中,图形渲染可至少部分地由配置用于在这类GPU中的一个上执行或在这类GPU中的两个或更多个上并行执行的程序指令来实施。GPU可以实现允许程序员调用GPU的功能性的一个或多个应用程序员接口(API)。合适的GPU可以从诸如英伟达公司(NVIDIA Corporation)、冶天科技公司(AMD)等的供应商商购获得。
系统存储器3020可以存储可由处理器3010访问的程序指令和/或数据。在各种实施例中,系统存储器3020可以使用任何合适的存储器技术如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器或任何其他类型的存储器来实现。在所图示的实施例中,实现如在上面描述的那些的期望功能的程序指令和数据被示出为分别作为程序指令3025和数据存储3035存储在系统存储器3020中。在其他实施例中,可以在不同类型的计算机可访问介质上或在与系统存储器3020或计算机系统3000分离的类似介质上接收、发送或存储程序指令和/或数据。一般而言,非暂时性计算机可读存储介质可以包括存储介质或存储器介质,诸如磁性或光学介质,例如经由I/O接口3030耦合到计算机系统3000的磁盘或CD/DVD-ROM。经由计算机可读介质存储的程序指令和数据可以通过传送介质或信号(诸如电信号、电磁信号或数字信号)来传送,所述信号可以经由诸如网络和/或无线链路的通信介质传达,诸如可以经由网络接口3040实现。
在一个实施例中,I/O接口3030可以协调处理器3010、系统存储器3020和装置中的任何外围装置(包括网络接口3040或其他外围接口,诸如输入/输出装置3050)之间的I/O业务。在一些实施例中,I/O接口3030可以执行任何必要的协议、定时或其他数据转换,以将来自一个组件(例如,系统存储器3020)的数据信号转换成适合于由另一组件(例如,处理器3010)使用的格式。在一些实施例中,例如,I/O接口3030可以包括对通过各种类型的外围总线(诸如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变体)所附接的设备的支持。在一些实施例中,I/O接口3030的功能可以被分成两个或更多个单独的组件,诸如例如北桥和南桥。另外,在一些实施例中,I/O接口3030的一些或全部功能性,诸如到系统存储器3020的接口可以直接并入到处理器3010中。
网络接口3040可以允许在计算机系统3000与附接到网络的其他装置(诸如其他计算机系统)之间或在计算机系统3000的节点之间交换数据。在各种实施例中,网络接口3040可以支持经由有线或无线通用数据网络(诸如任何合适类型的以太网);经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络);经由存储区域网络(诸如光纤通道SAN)或经由任何其他合适类型的网络和/或协议的通信。
在一些实施例中,输入/输出装置3050可以包括一个或多个显示终端、键盘、小键盘、触摸板、扫描装置、语音或光学辨别装置,或适合于通过一个或多个计算机系统3000键入或检索数据的任何其他装置。多个输入/输出装置3050可以存在于计算机系统3000中,或者可以分布在计算机系统3000的各个节点上。在一些实施例中,类似的输入/输出装置可以与计算机系统3000分离,并且可以通过有线或无线连接(诸如通过网络接口3040)与计算机系统3000的一个或多个节点交互。
如图27所示,存储器3020可以包括程序指令3025和数据存储3035,所述程序指令可以实现如本文所描述的各种方法和技术,所述数据存储包括可通过程序指令3025访问的各种数据。在一个实施例中,程序指令3025可以包括如本文所描述并如图中所图示的实施例的软件元件。数据存储3035可以包括可以在实施例中使用的数据。在其他实施例中,可以包括其他或不同的软件元素和数据。
本领域技术人员将理解,计算机系统3000仅为说明性的,并不旨在限制如本文所描述的技术的范围。特别地,计算机系统和装置可以包括能够执行所指示的功能的硬件或软件的任何组合,包括计算机、个人计算机系统、台式计算机、膝上型电脑、笔记本或上网本计算机、大型计算机系统、手持式计算机、工作站、网络计算机、相机、机顶盒、移动装置、网络装置、因特网器具、PDA、无线电话、寻呼机、消费者装置、视频游戏控制台、手持视频游戏装置、应用服务器、存储装置、外围装置(诸如交换机、调制解调器、路由器)或通常任何类型的计算或电子装置。计算机系统3000还可以连接到未图示的其他装置,或者代替地可以作为独立系统操作。另外,在一些实施方案中,由所示出的部件提供的功能可组合在更少的部件中或分布在附加部件中。类似地,在一些实施方案中,可不提供所示出的部件中的一些部件的功能,并且/或者可使用其他附加功能。
本领域技术人员还将理解,虽然各种项目被说明为在使用时存储在存储器中或存储设备上,但是为了存储器管理和数据完整性的目的,这些项目或它们的一部分可在存储器和其他存储装置之间传输。可替代地,在其他实施方案中,软件组件中的一些或全部可在另一装置上的存储器中执行,并且经由计算机间通信与所示出的计算机系统通信。系统组件或数据结构中的一些或全部也可以被存储(例如,作为指令或结构化数据)在计算机可访问介质或便携式制品上,以由适当的驱动器读取,其各种示例在上面进行描述。在一些实施例中,存储在与计算机系统3000分离的非暂时性计算机可访问介质上的指令可以经由传送介质或经由通信介质(诸如网络和/或无线链路)传达的信号(诸如电信号、电磁信号或数字信号)传送到计算机系统3000。各个实施例还可以包括在计算机可访问介质上接收、发送或存储根据前述描述而实施的指令和/或数据。因此,可以用其他计算机系统配置来实践本发明。
应注意,本文描述的分布式系统实施例中的任一个或它们的组件中的任一个可被实施为一个或多个web服务。例如,数据仓库系统内的领导节点可以将数据存储服务和/或数据库服务作为基于网络的服务呈现给客户端。在一些实施例中,基于网络的服务可由被设计成支持网络上的可互操作的机器到机器交互的软件和/或硬件系统来实施。基于网络的服务可以具有以机器可处理格式(如Web服务描述语言(WSDL))描述的接口。其他系统可以以基于网络的服务的接口的描述所规定的方式与web服务交互。例如,基于网络的服务可以定义其他系统可调用的各种操作,并且可以定义特定应用编程接口(API),当请求各种操作时,可以预期其他系统符合所述特定应用编程接口。
在各种实施例中,可通过使用包含与基于网络的服务请求相关联的参数和/或数据的消息来请求或调用基于网络的服务。可以根据诸如可扩展标记语言(XML)的特定标记语言来格式化这样的消息,并且/或者可以使用诸如简单对象访问协议(SOAP)的协议来封装这样的消息。为了执行web服务请求,基于网络的服务客户端可以使用基于因特网的应用层转移协议(诸如超文本转移协议(HTTP))来汇编包括该请求的消息并且将该消息传达到对应于web服务的可寻址端点(例如,统一资源定位符(URL))。
在一些实施例中,可以使用代表性状态转移(“RESTful”)技术而不是基于消息的技术来实现web服务。例如,可以通过包括在HTTP方法(诸如PUT、GET或DELETE)内而不是封装在SOAP消息内的参数来调用根据RESTful技术实现的web服务。
能够鉴于以下条款描述本公开的实施例:
条款1.一种系统,包括:
至少一个处理器;以及
存储器,所述存储器存储程序指令,当由所述至少一个处理器执行时,所述程序指令使所述至少一个处理器实现物化视图管理平台,所述物化视图管理平台被配置为:
从在物化视图的定义中指定为源的一个或多个数据源创建物化视图,其中所述物化视图管理平台能够从多个不同类型的数据源创建所述物化视图,并且其中所述物化视图由所述物化视图管理平台存储在目标数据暂存器中,所述目标数据暂存器也被指定在所述物化视图的所述定义中;
对于所述一个或多个数据源中的至少一个,获得在所述至少一个数据源处做出的相应的一个或多个变更;
根据从所述至少一个数据源获得的所述相应的一个或多个变更来确定满足所述物化视图的所述定义的所述物化视图的新版本;以及
经由用于所述目标数据暂存器的接口发送要将存储在所述目标数据暂存器中的所述物化视图的现有版本更新为所述物化视图的所述新版本的一个或多个请求。
条款2.根据条款1所述的系统,其中为了根据从所述至少一个数据源获得的所述相应的一个或多个变更来确定满足所述物化视图的所述定义的所述物化视图的新版本,所述物化视图管理平台被配置为随着从所述一个或多个数据源获得所述变更而生成要对所述物化视图执行的更新流。
条款3.根据条款1-2中任一项所述的系统,其中为了获得在所述至少一个数据源处做出的所述相应的一个或多个变更,所述物化视图管理平台被配置为使得能够从所述至少一个数据源接收变更数据捕获流。
条款4.根据条款1-3中任一项所述的系统,其中所述物化视图管理平台作为提供商网络的一部分被提供,其中所述一个或多个数据源中的至少一个或所述目标是由所述提供商网络提供的另一服务。
条款5.一种方法,包括:
由物化视图管理平台获得在物化视图的定义中指定为源的一个或多个数据源处做出的相应的一个或多个变更,其中所述物化视图管理平台能够从多个不同类型的数据源创建所述物化视图,并且其中所述物化视图由所述物化视图管理平台存储在目标数据暂存器中,所述目标数据暂存器也被指定在所述物化视图的所述定义中;
由所述物化视图管理平台根据从所述一个或多个数据源获得的所述相应的一个或多个变更来确定满足所述物化视图的所述定义的所述物化视图的新版本;以及
由所述物化视图管理平台经由用于所述目标数据暂存器的接口将存储在所述目标数据暂存器中的所述物化视图的现有版本更新为所述物化视图的所述新版本。
条款6.根据条款5所述的方法,进一步包括:
接收要创建所述物化视图的请求,所述请求包括所述物化视图的所述定义;
响应于接收到所述请求:
根据所述定义来生成创建计划,所述创建计划包括指令以:
查询所述一个或多个数据源以获得所述物化视图的数据;
创建一个或多个中间表以生成所述物化视图的内部版本;以及
从所述一个或多个中间表生成所述物化视图的所述内部版本。
条款7.根据条款6所述的方法,进一步包括:
进一步响应于接收到要创建所述物化视图的所述请求,根据所述定义来为所述物化视图生成和存储维护计划,其中所述维护计划包括要用从所述一个或多个数据源接收到的变更来更新所述一个或多个中间表和所述物化视图的所述内部版本的操作。
条款8.根据条款5-7中任一项所述的方法,其中根据从所述一个或多个数据源获得的所述相应的一个或多个变更来确定满足所述物化视图定义的所述物化视图的所述新版本包括执行为所述物化视图生成的所述维护计划,所述维护计划包括中间表中的所述变更和所述物化视图的内部版本。
条款9.根据条款8所述的方法,其中经由用于所述目标数据暂存器的所述接口将存储在所述目标数据暂存器中的所述物化视图的所述现有版本更新为所述物化视图的所述新版本包括:
根据所述物化视图的所述内部版本来确定要对所述目标数据暂存器中的所述物化视图执行的一个或多个更新以与所述物化视图的所述内部版本匹配;以及
经由所述接口向所述目标数据暂存器发送一个或多个请求以执行所述确定的对所述目标数据暂存器中的所述物化视图的一个或多个更新。
条款10.根据条款5-9中任一项所述的方法,其中获得在所述多个不同类型的数据源处做出的所述相应的一个或多个变更包括:
对于所述不同数据源中的至少一个,使得能够从所述至少一个数据源接收变更数据捕获流。
条款11.根据条款5-10中任一项所述的方法,其中获得在所述多个不同类型的数据源处做出的所述相应的一个或多个变更包括:
对于所述不同数据源中的至少一个:
在要获得变更的先前请求之后发送要获得在所述一个数据源处发生的那些变更的请求;以及
从所述一个数据源接收在所述一个数据源处做出的所述相应的一个或多个变更。
条款12.根据条款5所述的方法,其中获得在所述多个不同类型的数据源处做出的所述相应的一个或多个变更包括查询所述不同数据源的相应增量表以获得在所述多个不同类型的数据源处做出的所述相应的一个或多个变更,其由用于所述不同类型的数据源的相应连接器存储到所述相应增量表中。
条款13.根据条款5-12中任一项所述的方法,其中所述目标数据暂存器是所述一个或多个数据源之一。
条款14.一种或多种非暂时性计算机可读存储介质,存储程序指令,当在一个或多个计算装置上或跨越一个或多个计算装置执行时,所述程序指令使所述一个或多个计算装置实现物化视图管理平台,所述物化视图管理平台实现:
获得在物化视图的定义中指定为源的一个或多个数据源处做出的相应的一个或多个变更,其中所述物化视图管理平台能够从多个不同类型的数据源创建所述物化视图,并且其中所述物化视图由所述物化视图管理平台存储在目标数据暂存器中,所述目标数据暂存器也被指定在所述物化视图的所述定义中;
根据从所述一个或多个数据源获得的所述相应的一个或多个变更来确定满足所述物化视图的所述定义的所述物化视图的新版本;以及
经由用于所述目标数据暂存器的接口发送要将存储在所述目标数据暂存器中的所述物化视图的现有版本更新为所述物化视图的所述新版本的一个或多个请求。
条款15.根据条款14所述的一种或多种非暂时性计算机可读存储介质,其中所述一种或多种非暂时性计算机可读存储媒体存储另外的程序指令,当在所述一个或多个计算装置上或跨越所述一个或多个计算装置执行时,所述另外的程序指令使所述物化视图管理平台进一步实现:
接收要创建所述物化视图的请求,所述请求包括所述物化视图的所述定义;
响应于接收到所述请求:
根据所述定义来生成创建计划,所述创建计划包括指令以:
查询所述一个或多个数据源以获得所述物化视图的数据。
条款16.根据条款15所述的一种或多种非暂时性计算机可读存储介质,其中所述一种或多种非暂时性计算机可读存储媒体存储另外的程序指令,当在所述一个或多个计算装置上或跨越所述一个或多个计算装置执行时,所述另外的程序指令使所述物化视图管理平台进一步实现:
进一步响应于接收到要创建所述物化视图的所述请求,根据所述定义来为所述物化视图生成和存储维护计划,其中所述维护计划包括要用从所述一个或多个数据源接收到的变更来更新所述一个或多个中间表和所述物化视图的所述内部版本的操作。
条款17.根据条款14-16中任一项所述的一种或多种非暂时性计算机可读存储介质,其中,在获得在所述物化视图的所述定义中指定为源的所述一个或多个数据源处做出的所述相应的一个或多个变更时,所述程序指令使所述物化视图管理平台实现:
使用第一技术来从所述一个或多个数据源中的第一数据源获得变更;以及
使用第一技术来从所述一个或多个数据源中的第一数据源获得变更。
条款18.根据条款14-17中任一项所述的一种或多种非暂时性计算机可读存储介质,其中,在根据从所述一个或多个数据源获得的所述相应的一个或多个变更来确定满足所述物化视图定义的所述物化视图的所述新版本时,所述程序指令使所述物化视图管理平台实现执行为所述物化视图生成的所述维护计划,所述维护计划包括一个或多个中间表中的所述变更和所述物化视图的内部版本。
条款19.根据条款14-17中任一项所述的一种或多种非暂时性计算机可读存储介质,其中,在根据从所述一个或多个数据源获得的所述相应的一个或多个变更来确定满足所述物化视图定义的所述物化视图的所述新版本时,所述程序指令使所述物化视图管理平台实现随着从所述一个或多个数据源获得所述变更而生成要对所述物化视图执行的更新流。
条款20.根据条款14-19中任一项所述的一种或多种非暂时性计算机可读存储介质,其中所述物化视图管理平台作为提供商网络的一部分被提供,其中所述一个或多个数据源中的至少一个或所述目标是由所述提供商网络提供的另一服务。
能够进一步鉴于以下条款描述本公开的实施例:
条款21.一种系统,包括:
至少一个处理器;以及
存储器,所述存储器存储程序指令,当由所述至少一个处理器执行时,所述程序指令使所述至少一个处理器实现物化视图管理平台,所述物化视图管理平台被配置为:
根据接收到的物化数据暂存器的定义来从作为数据流的第一数据源和第二数据源创建存储在所述目标数据暂存器处的物化视图;
检测所述物化视图的维护事件;
响应于检测到所述维护事件:
执行一个或多个查询以搜索所述数据流的存储的部分以将所述存储的部分中的至少一个或多个项目与对满足所述物化视图的所述定义的所述第二数据源的变更的数据联结;
根据所述一个或多个项目与所述变更的所述数据的联结来确定所述物化视图的新版本;以及
将存储在所述目标数据暂存器中的所述物化视图更新为所述物化视图的所述新版本。
条款22.根据条款21所述的系统,其中所述存储的部分是仅附加表,并且其中所述物化视图管理平台被进一步配置为:
接收一个或多个新项目作为所述数据流的一部分;以及
将所述一个或多个新项目附加到所述仅附加表。
条款23.根据条款21-22中任一项所述的系统,其中为了检测所述物化数据暂存器的所述维护事件,所述物化视图管理平台被配置为接收所述第二数据源的所述变更。
条款24.根据条款21-23中任一项所述的系统,其中所述物化视图管理平台作为提供商网络的一部分被提供,并且其中所述目标数据暂存器是由所述提供商网络提供的另一服务。
条款25.一种方法,包括:
检测存储在目标数据暂存器处的物化视图的维护事件,其中所述物化视图是根据从作为数据流的第一数据源和第二数据源创建所述物化视图的定义来指定的;
响应于检测到所述维护事件:
访问所述数据流的存储的部分以将所述存储的部分中的至少一个或多个项目与对所述第二数据源的变更的数据联结以确定所述物化视图的新版本;以及
将存储在所述目标数据暂存器中的所述物化视图更新为所述物化视图的所述新版本。
条款26.根据条款25所述的方法,其中所述存储的部分是仅附加表,并且其中所述方法进一步包括:
接收一个或多个新项目作为所述数据流的一部分;以及
将所述一个或多个新项目附加到所述仅附加表。
条款27.根据条款26所述的方法,其中所述访问所述数据流的所述存储的部分以将所述存储的部分中的至少一个或多个项目与对所述第二数据源的所述变更的数据联结以确定所述物化视图的所述新版本作为执行为所述物化视图创建的维护计划的一部分被执行,并且其中所述方法进一步包括:
更新用于执行所述维护计划中的操作以在所述仅附加表中指示所述新项目的索引。
条款28.根据条款27所述的方法,进一步包括:
进一步响应于检测到所述维护事件:
基于对用于执行所述维护计划中的操作的所述索引的评价,重写所述维护计划以包括要引起所述访问所述数据流的所述存储的部分以将所述存储的部分中的至少一个或多个项目与对所述第二数据源的所述变更的数据联结以确定所述物化视图的所述新版本的操作。
条款29.根据条款25-28中任一项所述的方法,进一步包括:
进一步响应于检测到所述维护事件:
访问作为所述物化视图的第三数据源的数据表的存储的部分以将数据库的所述存储的部分中的至少一个或多个项目与对所述第二数据源的所述变更的所述数据联结以确定所述物化视图的所述新版本。
条款30.根据条款25-29中任一项所述的方法,其中所述第二数据源是第二数据流。
条款31.根据条款25-30中任一项所述的方法,进一步包括:
响应于在所述物化视图管理平台处接收到要创建所述物化视图的请求而根据所述物化视图的所述定义来从所述目标数据暂存器中的所述第一数据源和所述第二数据源创建所述物化视图。
条款32.根据条款31所述的方法,进一步包括为所述物化视图生成维护计划,所述维护计划指示存储所述数据流的所述部分以用于对所述物化视图执行更新。
条款33.根据条款25-32中任一项所述的方法,其中检测存储在所述目标数据暂存器处的所述物化视图的所述维护事件,所述程序指令使所述物化视图管理平台进一步实现接收所述第二数据源的所述变更。
条款34.一种或多种非暂时性计算机可读存储介质,存储程序指令,当在一个或多个计算装置上或跨越一个或多个计算装置执行时,所述程序指令使所述一个或多个计算装置实现物化视图管理平台,所述物化视图管理平台实现:
检测存储在目标数据暂存器处的物化视图的维护事件,其中所述物化视图是根据从作为数据流的第一数据源和第二数据源创建所述物化视图的定义来指定的;
响应于检测到所述维护事件:
执行一个或多个查询以搜索所述数据流的存储的部分以将所述存储的部分中的至少一个或多个项目与对满足所述物化视图的所述定义的所述第二数据源的变更的数据联结;
根据所述一个或多个项目与所述变更的所述数据的联结来确定所述物化视图的新版本;以及
将存储在所述目标数据暂存器中的所述物化视图更新为所述物化视图的所述新版本。
条款35.根据条款34所述的一种或多种非暂时性计算机可读存储介质,其中所述一种或多种非暂时性计算机可读存储媒体存储另外的程序指令,当在所述一个或多个计算装置上或跨越所述一个或多个计算装置执行时,所述另外的程序指令使所述物化视图管理平台进一步实现:
接收一个或多个新项目作为所述数据流的一部分;以及
将所述一个或多个新项目插入到数据库中的仅附加表中。
条款36.根据条款35所述的一种或多种非暂时性计算机可读存储介质,其中,在执行所述一个或多个查询以搜索所述数据流的存储的部分时,所述程序指令使所述物化视图管理平台进一步实现:
将所述一个或多个查询发送到所述数据库;以及
在来自所述数据库的结果中接收所述一个或多个项目。
条款37.根据条款35所述的一种或多种非暂时性计算机可读存储介质,其中所述执行所述一个或多个查询以搜索所述数据流的存储的部分作为执行为所述物化视图创建的维护计划的一部分被执行,并且其中所述一个或多个非暂时性计算机可读存储介质存储另外的程序指令,当在所述一个或多个计算装置上或跨越所述一个或多个计算装置执行时,所述另外的程序指令使所述物化视图管理平台进一步实现:
更新用于执行所述维护计划中的操作以在所述仅附加表中指示所述新项目的数据位置映射。
条款38.根据条款37所述的一种或多种非暂时性计算机可读存储介质,其中所述一种或多种非暂时性计算机可读存储媒体存储附加程序指令,当在所述一个或多个计算装置上或跨越所述一个或多个计算装置执行时,所述附加程序指令使所述物化视图管理平台进一步实现:
进一步响应于检测到所述维护事件:
基于对用于执行所述维护计划中的操作的所述索引的评价,重写所述维护计划以包括要引起所述访问所述数据流的所述存储的部分以将所述存储的部分中的至少一个或多个项目与对所述第二数据源的所述变更的数据联结以确定所述物化视图的所述新版本的操作。
条款39.根据条款34-38中任一项所述的一种或多种非暂时性计算机可读存储介质,其中,在检测到存储在所述目标数据暂存器处的所述物化视图的所述维护事件时,所述程序指令使所述物化视图管理平台进一步实现接收所述第二数据源的所述变更。
条款40.根据条款34-39中任一项所述的一种或多种非暂时性计算机可读存储介质,其中所述物化视图管理平台作为提供商网络的一部分被提供,并且其中所述目标数据暂存器是由所述提供商网络提供的另一服务。
能够进一步鉴于以下条款描述本公开的实施例:
条款41.一种系统,包括:
至少一个处理器;以及
存储器,所述存储器存储程序指令,当由所述至少一个处理器执行时,所述程序指令使所述至少一个处理器实现物化视图管理平台,所述物化视图管理平台被配置为:
根据物化视图的定义来从所述物化视图管理平台能够访问以将所述物化视图存储在目标数据暂存器中的多个不同的数据暂存器中的一个或多个创建所述物化视图;
监测对所述目标数据暂存器中的所述物化视图的更新的执行以检测要调整对所述物化视图的更新的执行的事件;
响应于检测到所述事件:
基于所述检测到的事件来调整对所述物化视图的更新的执行,其中所述调整是以下各项中的至少一个:
从所述不同数据源获得所述物化视图的变更;
确定要对所述物化视图做出的所述更新;或者
对所述目标数据暂存器中的所述物化视图做出所述更新。
条款42.根据条款41所述的系统,其中所述检测到的要调整对所述物化视图的更新的执行的事件指示所述目标数据暂存器不可用,并且其中对所述目标数据暂存器中的所述物化视图做出所述更新的调整包括指示用于所述目标数据暂存器的目标连接器缓冲接收到的对所述物化视图的更新。
条款43.根据条款41-42中任一项所述的系统,其中对所述目标数据暂存器中的所述物化视图做出所述更新的调整包括增加或降低用于对所述目标数据暂存器中的所述物化视图执行更新的更新速率。
条款44.根据条款41-43中任一项所述的系统,其中所述物化视图管理平台作为提供商网络的一部分被提供,并且其中所述不同数据源中的至少一个是由所述提供商网络提供的另一服务。
条款45.一种方法,包括:
监测从用于创建所述物化视图的多个不同数据源中的一个或多个接收到的对目标数据暂存器中的物化视图的更新的执行以检测要调整对所述物化视图的更新的执行的事件;
响应于检测到所述事件:
基于所述检测到的事件来调整对所述物化视图的更新的执行,其中所述调整是以下各项中的至少一个:
从所述不同数据源获得所述物化视图的变更;
确定要对所述物化视图做出的所述更新;或者
对所述目标数据暂存器中的所述物化视图做出所述更新。
条款46.根据条款45所述的方法,其中对从所述不同数据源获得所述物化视图的所述变更的调整包括增加或降低所述不同数据源中的一个或多个的变更捕获速率。
条款47.根据条款45-46中任一项所述的方法,其中对所述目标数据暂存器中的所述物化视图做出所述更新的调整包括增加或降低用于对所述目标数据暂存器中的所述物化视图执行更新的更新速率。
条款48.根据条款45-47中任一项所述的方法,其中所述检测到的要调整对所述物化视图的更新的执行的事件指示所述目标数据暂存器不可用,并且其中对所述目标数据暂存器中的所述物化视图做出所述更新的调整包括指示用于所述目标数据暂存器的目标连接器缓冲接收到的对所述物化视图的更新。
条款49.根据条款45-48中任一项所述的方法,其中确定要对所述物化视图做出的所述更新的调整包括增加或减少用于对所述目标数据暂存器中的所述物化视图执行更新的维护事件。
条款50.根据条款45-49中任一项所述的方法,其中确定要对所述物化视图做出所述更新的调整包括将操作的执行指配给视图维护处理节点而不是被执行来确定要对所述物化视图做出的所述更新的维护计划中的所述数据源之一。
条款51.根据条款50所述的方法,其中所述检测到的要调整对所述物化视图的更新的执行的事件指示所述一个数据源的使用超过利用率极限。
条款52.根据条款45-51中任一项所述的方法,其中所述检测到的要调整对所述物化视图的更新的执行的事件指示对所述物化视图的更新与所述数据源处的变更之间的滞后超过阈值。
条款53.根据条款45-52中任一项所述的方法,其中所述事件是根据一个或多个性能准则来检测的,并且其中所述方法进一步包括接收指定所述一个或多个性能准则的请求。
条款54.一种或多种非暂时性计算机可读存储介质,存储程序指令,当在一个或多个计算装置上或跨越一个或多个计算装置执行时,所述程序指令使所述一个或多个计算装置实现物化视图管理平台,所述物化视图管理平台实现:
监测从用于创建所述物化视图的多个不同数据源接收到的对目标数据暂存器中的物化视图的更新的执行以检测要调整对所述物化视图的更新的执行的事件;
响应于检测到所述事件:
基于所述检测到的事件来调整对所述物化视图的更新的执行,其中所述调整是以下各项中的至少一个:
从所述不同数据源获得所述物化视图的变更;
确定要对所述物化视图做出的所述更新;或者
对所述目标数据暂存器中的所述物化视图做出所述更新。
条款55.根据条款54所述的一种或多种非暂时性计算机可读存储介质,其中对从所述不同数据源获得所述物化视图的所述变更的调整包括增加或降低所述不同数据源中的一个或多个的变更捕获速率。
条款56.根据条款54-55中任一项所述的一种或多种非暂时性计算机可读存储介质,其中对所述目标数据暂存器中的所述物化视图做出所述更新的调整包括增加或降低用于对所述目标数据暂存器中的所述物化视图执行更新的更新速率。
条款57.根据条款54-56中任一项所述的一种或多种非暂时性计算机可读存储介质,其中所述检测到的要调整对所述物化视图的更新的执行的事件指示所述目标数据暂存器不可用,并且其中对所述目标数据暂存器中的所述物化视图做出所述更新的调整包括指示用于所述目标数据暂存器的目标连接器缓冲接收到的对所述物化视图的更新。
条款58.根据条款54-57中任一项所述的一种或多种非暂时性计算机可读存储介质,其中确定要对所述物化视图做出的所述更新的调整包括增加或减少用于对所述目标数据暂存器中的所述物化视图执行更新的维护事件。
条款59.根据条款54-58中任一项所述的一种或多种非暂时性计算机可读存储介质,其中确定要对所述物化视图做出所述更新的调整包括将操作的执行指配给视图维护处理节点而不是被执行来确定要对所述物化视图做出的所述更新的维护计划中的所述数据源之一。
条款60.根据条款54-59中任一项所述的一种或多种非暂时性计算机可读存储介质,其中所述物化视图管理平台作为提供商网络的一部分被提供,并且其中所述目标数据暂存器是由所述提供商网络提供的另一服务。
能够进一步鉴于以下条款描述本公开的实施例:
条款61.一种系统,包括:
至少一个处理器;以及
存储器,所述存储器存储程序指令,当由所述至少一个处理器执行时,所述程序指令使所述至少一个处理器实现物化视图管理平台:
根据作为要在多个不同的目标数据暂存器处创建物化视图的请求的一部分接收的定义来从一个或多个数据源创建所述物化视图,所述请求在所述物化视图管理平台处被接收;
在所述不同的目标数据暂存器处创建所述物化视图之后:
根据在所述物化视图管理平台处接收到的定义来确定来自一个或多个数据源的对物化视图的变更;以及
发送根据用于所述不同的目标数据暂存器的相应接口格式化的一个或多个请求以将所述物化视图的相应的目标特定版本存储到根据对所述物化视图的所述变更确定的所述多个不同的目标数据暂存器。
条款62.根据条款61所述的系统,其中所述物化视图管理平台被进一步配置为确定所述多个不同的目标数据暂存器中的哪些目标数据暂存器已在发送所述一个或多个请求之前启用了对所述物化视图的更新的执行。
条款63.根据条款61-62中任一项所述的系统,其中所述物化视图管理平台被进一步配置为:
接收要向用于所述物化视图的所述多个不同的目标数据暂存器添加目标数据暂存器的请求;
向所述目标数据暂存器指配目标连接器;
在所述目标数据暂存器中存储所述物化视图的版本;以及
通过所述指配的目标连接器来启用对所述物化视图的更新的执行。
条款64.根据条款61-63中任一项所述的系统,其中所述物化视图管理平台作为提供商网络的一部分被提供,并且其中所述多个目标数据源中的至少一个被实现在所述提供商网络外部。
条款65.一种方法,包括:
由物化视图管理平台根据在所述物化视图管理平台处接收到的定义来确定来自一个或多个数据源的对物化视图的变更;
由所述物化视图管理平台标识用于所述物化视图的多个不同的目标数据暂存器;以及
由所述物化视图管理平台将所述物化视图的相应的目标特定版本存储到根据对所述物化视图的所述变更确定的所述多个不同的目标数据暂存器。
条款66.根据条款65所述的方法,其中确定来自一个或多个数据源的对所述物化视图的所述变更基于在所述物化视图管理平台处生成的所述物化视图的内部视图。
条款67.根据条款66所述的方法,进一步包括:
由所述物化视图管理平台检测要禁用对所述目标数据暂存器之一的更新的执行的事件;以及
由所述物化视图管理平台在指配给所述一个目标数据暂存器的目标连接器处禁用对所述一个目标数据暂存器的更新的执行。
条款68.根据条款65-67中任一项所述的方法,进一步包括:
由所述物化视图管理平台检测要启用对所述目标数据暂存器之一的更新的执行的事件;以及
由所述物化视图管理平台在指配给所述一个目标数据暂存器的目标连接器处启用对所述一个目标数据暂存器的更新的执行。
条款69.根据条款65-68中任一项所述的方法,进一步包括:
接收要为所述物化视图添加目标数据暂存器的请求;
向所述目标数据暂存器指配目标连接器;
在所述目标数据暂存器中存储所述物化视图的版本;以及
通过所述指配的目标连接器来启用对所述物化视图的更新的执行。
条款70.根据条款65-69中任一项所述的方法,进一步包括:
接收要从所述物化视图中移除所述不同的目标数据暂存器之一的请求;
对所述一个目标数据暂存器禁用对所述物化视图的更新的执行;以及
在所述一个目标数据暂存器处删除所述物化视图。
条款71.根据条款65-70中任一项所述的方法,进一步包括:
由所述物化视图管理平台接收要禁用对所述目标数据暂存器之一的更新的执行的请求;以及
由所述物化视图管理平台在指配给所述一个目标数据暂存器的目标连接器处禁用对所述一个目标数据暂存器的更新的执行。
条款72.根据条款65-71中任一项所述的方法,进一步包括:
由所述物化视图管理平台接收要启用对所述目标数据暂存器之一的更新的执行的请求;以及
由所述物化视图管理平台在指配给所述一个目标数据暂存器的目标连接器处启用对所述一个目标数据暂存器的更新的执行。
条款73.根据条款65-72中任一项所述的方法,进一步包括响应于要创建所述物化视图的请求而在所述多个不同的数据暂存器处创建所述物化视图,所述请求包括指定所述多个不同的数据暂存器的所述定义。
条款74.一种或多种非暂时性计算机可读存储介质,存储程序指令,当在一个或多个计算装置上或跨越一个或多个计算装置执行时,所述程序指令使所述一个或多个计算装置实现物化视图管理平台,所述物化视图管理平台实现:
根据在所述物化视图管理平台处接收到的定义来确定来自一个或多个数据源的对物化视图的变更;
标识用于所述物化视图的多个不同的目标数据暂存器;以及
发送根据用于所述不同的目标数据暂存器的相应接口格式化的一个或多个请求以将所述物化视图的相应的目标特定版本存储到根据对所述物化视图的所述变更确定的所述多个不同的目标数据暂存器。
条款75.根据条款74所述的一种或多种非暂时性计算机可读存储介质,其中,在标识用于所述物化视图的多个不同的目标数据暂存器时,所述程序指令使物化视图管理平台实现确定所述多个不同的目标数据暂存器中的哪些目标数据暂存器已在发送所述一个或多个请求之前启用了对所述物化视图的更新的执行。
条款76.根据条款74-75中任一项所述的一种或多种非暂时性计算机可读存储介质,其中所述一种或多种非暂时性计算机可读存储媒体存储另外的程序指令,当在所述至少一个或多个计算装置上或跨越所述至少一个或多个计算装置执行时,所述另外的程序指令使所述物化视图管理平台进一步实现:
接收要为所述物化视图添加目标数据暂存器的请求;
向所述目标数据暂存器指配目标连接器;
在所述目标数据暂存器中存储所述物化视图的版本;以及
通过所述指配的目标连接器来启用对所述物化视图的更新的执行。
条款77.根据条款74-76中任一项所述的一种或多种非暂时性计算机可读存储介质,其中所述一种或多种非暂时性计算机可读存储媒体存储另外的程序指令,当在所述至少一个或多个计算装置上或跨越所述至少一个或多个计算装置执行时,所述另外的程序指令使所述物化视图管理平台进一步实现:
由所述物化视图管理平台检测要禁用对所述目标数据暂存器之一的更新的执行的事件;以及
由所述物化视图管理平台在指配给所述一个目标数据暂存器的目标连接器处禁用对所述一个目标数据暂存器的更新的执行。
条款78.根据条款74-77中任一项所述的一种或多种非暂时性计算机可读存储介质,其中所述一种或多种非暂时性计算机可读存储媒体存储另外的程序指令,当在所述至少一个或多个计算装置上或跨越所述至少一个或多个计算装置执行时,所述另外的程序指令使所述物化视图管理平台进一步实现:
由所述物化视图管理平台接收要启用对所述目标数据暂存器之一的更新的执行的请求;以及
由所述物化视图管理平台在指配给所述一个目标数据暂存器的目标连接器处启用对所述一个目标数据暂存器的更新的执行。
条款79.根据条款74-78中任一项所述的一种或多种非暂时性计算机可读存储介质,其中所述一种或多种非暂时性计算机可读存储媒体存储另外的程序指令,当在所述至少一个或多个计算装置上或跨越所述至少一个或多个计算装置执行时,所述另外的程序指令使所述物化视图管理平台进一步实现:
接收要从所述物化视图中移除所述不同的目标数据暂存器之一的请求;以及
对所述一个目标数据暂存器禁用对所述物化视图的更新的执行。
条款80.根据条款74-79中任一项所述的一种或多种非暂时性计算机可读存储介质,其中所述物化视图管理平台作为提供商网络的一部分被提供,并且其中所述多个目标数据源中的至少一个被实现在所述提供商网络外部。
如图中图示和本文描述的各种方法表示方法的示例实施例。所述方法可在软件、硬件或其组合中实施。可以变更方法的顺序,并且可以添加、重新排序、组合、省略、修改等各种元素。
可进行各种修改和变更,这对于受益于本公开的本领域技术人员来说是显而易见的。本发明旨在包涵所有这类修改和变更,并且因此,以上描述被认视为说明性的而不是限制性的。

Claims (15)

1.一种系统,包括:
至少一个处理器;以及
存储器,所述存储器存储程序指令,当由所述至少一个处理器执行时,所述程序指令使所述至少一个处理器实现物化视图管理平台,所述物化视图管理平台被配置为:
从在物化视图的定义中指定为源的一个或多个数据源创建物化视图,其中所述物化视图管理平台能够从多个不同类型的数据源创建所述物化视图,并且其中所述物化视图由所述物化视图管理平台存储在目标数据暂存器中,所述目标数据暂存器也被指定在所述物化视图的所述定义中;
对于所述一个或多个数据源中的至少一个,获得在所述至少一个数据源处做出的相应的一个或多个变更;
根据从所述至少一个数据源获得的所述相应的一个或多个变更来确定满足所述物化视图的所述定义的所述物化视图的新版本;以及
经由用于所述目标数据暂存器的接口发送要将存储在所述目标数据暂存器中的所述物化视图的现有版本更新为所述物化视图的所述新版本的一个或多个请求。
2.根据权利要求1所述的系统,其中为了根据从所述至少一个数据源获得的所述相应的一个或多个变更来确定满足所述物化视图的所述定义的所述物化视图的新版本,所述物化视图管理平台被配置为随着从所述一个或多个数据源获得所述变更而生成要对所述物化视图执行的更新流。
3.根据权利要求1所述的系统,其中为了获得在所述至少一个数据源处做出的所述相应的一个或多个变更,所述物化视图管理平台被配置为使得能够从所述至少一个数据源接收变更数据捕获流。
4.根据权利要求1所述的系统,其中所述物化视图管理平台作为提供商网络的一部分被提供,其中所述一个或多个数据源中的至少一个或所述目标是由所述提供商网络提供的另一服务。
5.一种方法,包括:
由物化视图管理平台获得在物化视图的定义中指定为源的一个或多个数据源处做出的相应的一个或多个变更,其中所述物化视图管理平台能够从多个不同类型的数据源创建所述物化视图,并且其中所述物化视图由所述物化视图管理平台存储在目标数据暂存器中,所述目标数据暂存器也被指定在所述物化视图的所述定义中;
由所述物化视图管理平台根据从所述一个或多个数据源获得的所述相应的一个或多个变更来确定满足所述物化视图的所述定义的所述物化视图的新版本;以及
由所述物化视图管理平台经由用于所述目标数据暂存器的接口将存储在所述目标数据暂存器中的所述物化视图的现有版本更新为所述物化视图的所述新版本。
6.根据权利要求5所述的方法,进一步包括:
接收要创建所述物化视图的请求,所述请求包括所述物化视图的所述定义;
响应于接收到所述请求:
根据所述定义来生成创建计划,所述创建计划包括指令以:
查询所述一个或多个数据源以获得所述物化视图的数据;
创建一个或多个中间表以生成所述物化视图的内部版本;以及
从所述一个或多个中间表生成所述物化视图的所述内部版本。
7.根据权利要求6所述的方法,进一步包括:
进一步响应于接收到要创建所述物化视图的所述请求,根据所述定义来为所述物化视图生成和存储维护计划,其中所述维护计划包括要用从所述一个或多个数据源接收到的变更来更新所述一个或多个中间表和所述物化视图的所述内部版本的操作。
8.根据权利要求5所述的方法,其中根据从所述一个或多个数据源获得的所述相应的一个或多个变更来确定满足所述物化视图定义的所述物化视图的所述新版本包括执行为所述物化视图生成的所述维护计划,所述维护计划包括中间表中的所述变更和所述物化视图的内部版本。
9.根据权利要求8所述的方法,其中经由用于所述目标数据暂存器的所述接口将存储在所述目标数据暂存器中的所述物化视图的所述现有版本更新为所述物化视图的所述新版本包括:
根据所述物化视图的所述内部版本来确定要对所述目标数据暂存器中的所述物化视图执行的一个或多个更新以与所述物化视图的所述内部版本匹配;以及
经由所述接口向所述目标数据暂存器发送一个或多个请求以执行所述确定的对所述目标数据暂存器中的所述物化视图的一个或多个更新。
10.根据权利要求5所述的方法,其中获得在所述多个不同类型的数据源处做出的所述相应的一个或多个变更包括:
对于所述不同数据源中的至少一个,使得能够从所述至少一个数据源接收变更数据捕获流。
11.根据权利要求5所述的方法,其中获得在所述多个不同类型的数据源处做出的所述相应的一个或多个变更包括:
对于所述不同数据源中的至少一个:
在要获得变更的先前请求之后发送要获得在所述一个数据源处发生的那些变更的请求;以及
从所述一个数据源接收在所述一个数据源处做出的所述相应的一个或多个变更。
12.根据权利要求5所述的方法,其中获得在所述多个不同类型的数据源处做出的所述相应的一个或多个变更包括查询所述不同数据源的相应增量表以获得在所述多个不同类型的数据源处做出的所述相应的一个或多个变更,其由用于所述不同类型的数据源的相应连接器存储到所述相应增量表中。
13.根据权利要求5所述的方法,其中所述目标数据暂存器是所述一个或多个数据源之一。
14.一种或多种非暂时性计算机可读存储介质,存储程序指令,当在一个或多个计算装置上或跨越一个或多个计算装置执行时,所述程序指令使所述一个或多个计算装置实现物化视图管理平台,所述物化视图管理平台实现:
获得在物化视图的定义中指定为源的一个或多个数据源处做出的相应的一个或多个变更,其中所述物化视图管理平台能够从多个不同类型的数据源创建所述物化视图,并且其中所述物化视图由所述物化视图管理平台存储在目标数据暂存器中,所述目标数据暂存器也被指定在所述物化视图的所述定义中;
根据从所述一个或多个数据源获得的所述相应的一个或多个变更来确定满足所述物化视图的所述定义的所述物化视图的新版本;以及
经由用于所述目标数据暂存器的接口发送要将存储在所述目标数据暂存器中的所述物化视图的现有版本更新为所述物化视图的所述新版本的一个或多个请求。
15.根据权利要求14所述的一种或多种非暂时性计算机可读存储介质,其中所述一种或多种非暂时性计算机可读存储媒体存储另外的程序指令,当在所述一个或多个计算装置上或跨越所述一个或多个计算装置执行时,所述另外的程序指令使所述物化视图管理平台进一步实现:
接收要创建所述物化视图的请求,所述请求包括所述物化视图的所述定义;
响应于接收到所述请求:
根据所述定义来生成创建计划,所述创建计划包括指令以:
查询所述一个或多个数据源以获得所述物化视图的数据。
CN202080082628.4A 2019-11-29 2020-11-25 从异构数据源创建的受管物化视图 Pending CN114730312A (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US16/699,486 US11113273B2 (en) 2019-11-29 2019-11-29 Managed materialized views created from heterogeneous data sources
US16/699,547 2019-11-29
US16/699,530 US11899659B2 (en) 2019-11-29 2019-11-29 Dynamically adjusting performance of materialized view maintenance
US16/699,547 US11544286B2 (en) 2019-11-29 2019-11-29 Replicating materialized views across heterogeneous target systems
US16/699,530 2019-11-29
US16/699,486 2019-11-29
US16/699,512 2019-11-29
US16/699,512 US11308079B2 (en) 2019-11-29 2019-11-29 Maintaining data stream history for generating materialized views
PCT/US2020/062265 WO2021108582A1 (en) 2019-11-29 2020-11-25 Managed materialized views created from heterogeneous data sources

Publications (1)

Publication Number Publication Date
CN114730312A true CN114730312A (zh) 2022-07-08

Family

ID=73854959

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080082628.4A Pending CN114730312A (zh) 2019-11-29 2020-11-25 从异构数据源创建的受管物化视图

Country Status (3)

Country Link
EP (1) EP4066128A1 (zh)
CN (1) CN114730312A (zh)
WO (1) WO2021108582A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11308079B2 (en) 2019-11-29 2022-04-19 Amazon Technologies, Inc. Maintaining data stream history for generating materialized views
US11113273B2 (en) 2019-11-29 2021-09-07 Amazon Technologies, Inc. Managed materialized views created from heterogeneous data sources
US11797518B2 (en) * 2021-06-29 2023-10-24 Amazon Technologies, Inc. Registering additional type systems using a hub data model for data processing
US20230393845A1 (en) * 2022-06-07 2023-12-07 Sap Se Consolidation spaces providing access to multiple instances of application content

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10789242B2 (en) * 2018-04-25 2020-09-29 Microsoft Technology Licensing, Llc Managing materialized views in eventually consistent distributed data stores

Also Published As

Publication number Publication date
EP4066128A1 (en) 2022-10-05
WO2021108582A1 (en) 2021-06-03
WO2021108582A9 (en) 2022-03-17

Similar Documents

Publication Publication Date Title
US11874828B2 (en) Managed materialized views created from heterogenous data sources
US11934389B2 (en) Maintaining data stream history for generating materialized views
US20220171759A1 (en) Detecting schema incompatibilities for generating views at target data stores
US11461330B2 (en) Managed query service
JP7273045B2 (ja) Sqlクエリプランを最適化するための次元コンテキスト伝搬技術
CN110023923B (zh) 生成数据变换工作流
CN109997126B (zh) 事件驱动提取、变换、加载(etl)处理
US10509696B1 (en) Error detection and mitigation during data migrations
US11544286B2 (en) Replicating materialized views across heterogeneous target systems
CN110168522B (zh) 维护数据沿袭以检测数据事件
US11899659B2 (en) Dynamically adjusting performance of materialized view maintenance
US11055352B1 (en) Engine independent query plan optimization
CN114730312A (zh) 从异构数据源创建的受管物化视图
US10970303B1 (en) Selecting resources hosted in different networks to perform queries according to available capacity
US10909114B1 (en) Predicting partitions of a database table for processing a database query
US20230359627A1 (en) Sharing compiled code for executing queries across query engines
US20240143576A1 (en) Registering additional type systems using a hub data model for data processing
US11899685B1 (en) Dividing authorization between a control plane and a data plane for sharing database data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination