CN113875206B - 云数据库的专用虚拟网络复制 - Google Patents

云数据库的专用虚拟网络复制 Download PDF

Info

Publication number
CN113875206B
CN113875206B CN202180001744.3A CN202180001744A CN113875206B CN 113875206 B CN113875206 B CN 113875206B CN 202180001744 A CN202180001744 A CN 202180001744A CN 113875206 B CN113875206 B CN 113875206B
Authority
CN
China
Prior art keywords
database
virtual private
deployment
data
private cloud
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.)
Active
Application number
CN202180001744.3A
Other languages
English (en)
Other versions
CN113875206A (zh
Inventor
罗伯特·本特·贝内迪克特·格恩哈特
米哈伊尔·卡扎米亚卡
埃里克·罗宾逊
罗德尼·韦弗
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.)
Snowflake Co
Original Assignee
Snowflake Computing 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
Application filed by Snowflake Computing Inc filed Critical Snowflake Computing Inc
Publication of CN113875206A publication Critical patent/CN113875206A/zh
Application granted granted Critical
Publication of CN113875206B publication Critical patent/CN113875206B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

网络设备通信系统可以配置网络设备(例如,主数据库和辅助数据库)以通过包括多个专用网络节点的信道发送和接收序列消息,例如复制数据。可以使用一个或更多个密钥对以及更改包装复制密钥来生成和加密消息,以便在不同类型的数据库部署之间发送和接收消息。

Description

云数据库的专用虚拟网络复制
相关申请的交叉引用
本申请要求2020年4月30日提交的美国专利申请序列号16/862,996的优先权,其于2020年12月1日作为美国专利第10,855,660号发布,且其内容通过引用整体结合于此。
技术领域
本公开总体上涉及管理数据库数据的专用机器和对这种变体的改进,以及与用于在通过网络连接的数据库之间传输数据库数据的其他专用机器相比,这种专用机器得到改进的技术。
背景
数据库被用于计算应用中的数据存储和访问。数据库存储的目标是以有组织的方式提供大量信息,以便可以对其进行访问、管理和更新。在数据库中,数据可以组织成行、列和表。不同的数据库存储系统可以用于存储不同类型的内容,诸如书目、全文、数字和/或图像内容。此外,在计算中,可以根据数据库的组织方法对不同的数据库系统进行分类。有许多不同类型的数据库,包括关系数据库、分布式数据库、云数据库和其他数据库。
在某些情况下,在多个位置或多个存储设备上复制数据库数据可能是有益的。复制数据可以防止系统故障,这些故障可能导致数据不可访问、数据丢失或数据永久不可读。虽然不同数据库之间的复制提高了数据的安全性,但数据应该在复制数据库之间安全传输。一些数据库系统使用加密密钥来相互认证,并对不同数据库系统之间发送的数据进行加密。例如,一个数据中心中的数据库实例可以使用加密密钥来认证和接收来自位于不同地理位置的另一个数据中心中的另一个数据库实例的通信。虽然数据库数据的复制和加密密钥提高了数据的安全性,但是在不同的联网数据库系统(例如云数据库)中实现这种方法可能难以以计算高效和安全的方式来执行。
附图简述
各种附图仅示出了本公开的示例性实施例,不应被视为限制其范围。
图1是示出根据一些示例实施例的示例计算环境的框图,其中基于网络的数据仓库系统可以在共享数据库对象上实现流。
图2是示出根据一些示例实施例的计算服务管理器的组件的框图。
图3是示出根据一些示例实施例的执行平台的组件的框图。
图4示出了根据一些示例实施例的用于通过信道(例如,专用信道)传输数据库数据的示例数据库架构。
图5是示出根据一些示例性实施例的用于通过信道在部署之间进行数据传输的示例性消息传递结构的图。
图6是示出根据一些示例实施例的用于在数据库之间传输数据的示例信道架构的图。
图7是示出根据一些示例实施例的用于数据库部署之间的数据传输的示例网络架构的图。
图8示出了根据一些示例实施例的作为在部署之间发送的信道消息的数据传输的方法的流程图。
图9示出了根据一些示例实施例的使用元数据在部署之间传输数据的方法的示例流程图。
图10示出根据本公开一些实施例的以计算机系统形式的机器的示意图表示,用于使机器执行本文所讨论方法中的任何一个或更多个的指令集合可以在该计算机系统内执行。
详细描述
以下描述包括体现本公开的说明性实施例的系统、方法、技术、指令序列和计算机程序产品。在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供对本发明主题的各种实施例的理解。然而,对于本领域技术人员来说,很明显,本发明主题的实施例可以在没有这些具体细节的情况下实施。通常,众所周知的指令实例、协议、结构和技术不一定详细示出。
如上所述,很难安全地管理数据库系统之间发送和接收的数据库流量。示例网络数据库系统包括虚拟私有云部署,该部署使用专用于该部署的云数据存储设备和云计算资源。可以链接不同的部署,并且可以设置信道在部署之间发送和接收数据。例如,部署_A可以是在诸如旧金山的第一区域的部署(例如,在Amazon Web (AWS)虚拟私有云(VPC)内运行的数据库管理系统(DBMS)),而部署_B可以是在诸如纽约市的第二区域的另一部署(例如,不同AWS VPC中的另一DBMS)。部署_A和部署_B可以创建一个链接,通过该链接在部署之间发送数据流,如复制流量。例如,部署_A中主数据库的复制流量可以复制到部署_B中的辅助数据库。
虽然可以将流量从部署_A复制到部署_B,但仍然很难确保数据在两个部署之间传输时采用特定路径或停留在特定区域内。例如,数据库管理员可能要求其数据库中的任何数据都不能通过开放的互联网传输。此外,为了遵守数据治理法律,数据库管理员可能会试图配置他们的数据库,以便数据库网络中的所有数据都位于某个区域内。例如,数据库管理员可以寻求确保在部署_A和部署_B之间传输的所有数据保持在给定的国家(例如,USA)内,此外,当在给定的国家时,数据可能永远不会通过开放的互联网传输(例如,通过互联网在TLS流量中加密)。
此外,许多VPC未配置为在不同VPC之间复制,并且可能收取出口导出费(例如,出口费),即使流量被复制到同一VPC提供者的另一个部署。当在不同类型的数据库部署之间安全地发送数据时,会出现进一步的困难。例如,如果部署_A是来自第一提供者的VPC(例如,AWS VPC),而部署_B是来自第二不同提供者的VPC(例如,谷歌私有云(GPC)),则不同的提供者可能具有不同且潜在不一致的安全机制。例如,部署_B可能实现不允许导入或导出加密密钥的硬件安全模块(HSM),从而大大增加了在部署之间传输数据的难度和实用性。此外,即使不同的部署具有一致的安全机制(例如,每个部署都具有能够导入/导出密钥的HSM),随着复制的数据库数量增加到企业级(例如,在不同的部署中有成千上万的数据库客户,其中每个都将数据复制到其他部署中的其他数据库),也很难以随着网络增长而扩展的安全方式来实现密钥管理。
为了解决这些问题,可以在部署中实现复制管理器和信道管理器,以一种不知道HSM和VPC的各种配置的方式加密流量,并进一步使用部署外部的专用网络节点在部署之间传输流量。例如,专用网络可以是虚拟专用网络(VPN),其实现VPN节点(例如,节点、在第一位置的VPN服务器/节点和在第二位置的另一个VPN服务器/节点)以在虚拟专用网络内传输流量。当部署_A中的一个或更多个数据库向部署_B中的另一个数据库发送数据(例如复制流量)时,信道管理器可以实现云连接(例如由给定VPC提供者提供的托管连接,例如AWS Direct />或者物理连接,例如以太网端口),以将数据从部署_A发送到虚拟专用网络的节点。
虚拟专用网络的每个节点可以被设置和定位在给定的区域内(例如,在一个国家内,或者避开/排除一个特定的国家),从而确保数据不被传送到该区域之外,并且不被暴露或以其他方式通过开放的互联网传送。流量继续通过VPN节点到达部署_B中的目的地数据库。在一些示例实施例中,离部署_B最近的VPN节点然后使用部署_B提供的云连接(例如,云的托管连接,例如AWS Direct Connect;直接端口连接,如Azure Express 将VPN节点连接到部署_B的硬件的物理以太网线缆,等等)将流量导入。
此外,根据一些示例实施例,使用内部消息密钥对流量进行加密,以在不同部署的数据库之间高效地传输流量。在一些示例实施例中,复制管理器可以在数据库应用级别生成消息和密钥,而不需要改变给定的VPC、HSM或VPN节点传输网络。例如,在一些示例实施例中,使用预先配置的密钥加密结构在消息序列中发送流量。在一些示例实施例中,在每个消息中,数据由对称密钥(例如,对该消息唯一的数据加密密钥(DEK))加密。给定消息的数据加密密钥可以通过包装复制密钥(WRK)进一步加密,该密钥可以是由发送部署生成的另一个对称密钥(例如,由部署_A中的HSM定期生成)。在一些示例实施例中,WRK然后由来自密钥对的密钥(例如目的地部署的公钥)加密。在一些示例实施例中,在给定消息中访问DEK的加密WRK也存储在给定消息中。在其他示例实施例中,WRK在消息之间交错,使得给定消息DEK使用先前发送的WRK(例如,在先前接收的消息中发送的WRK)加密。此外,在一些示例实施例中,基于时间到期周期或随机地轮换WRK,以增加数据的安全性。以这种方式,数据库系统的复制管理器和信道管理器(例如,运行在VPN上的数据库应用)可以通过特定路径在应用级别在不同云之间高效且安全地传输数据,即使在云系统不一致或不能定制的情况下也是如此。
图1示出了根据本公开的一些实施例的示例共享数据处理平台100,其中基于网络的数据仓库系统102实现数据库流跟踪(例如,视图流)。为了避免用不必要的细节模糊本发明主题,图中省略了与传达对本发明主题的理解不密切相关的各种功能组件。然而,本领域技术人员将容易认识到,各种附加功能组件可以被包括作为共享数据处理平台100的一部分,以促进本文没有具体描述的附加功能。
如图所示,共享数据处理平台100包括基于网络的数据仓库系统102、云计算存储平台104(例如,存储平台、诸如S3的服务、Microsoft />或Google Cloud)和远程计算设备106。基于网络的数据仓库系统102是基于网络的系统,用于以集成方式存储和访问数据(例如,内部存储数据,访问外部远程数据),以及报告和分析来自一个或更多个不同源(例如,云计算存储平台104)的集成数据。云计算存储平台104包括多个计算机器,并向基于网络的数据仓库系统102按需提供计算机系统资源,如数据存储和计算能力。
远程计算设备106(例如,诸如膝上型计算机的用户设备)包括一个或更多个计算机器(例如,诸如膝上型计算机的用户设备),其执行远程软件组件108(例如,浏览器访问的云服务)以向基于网络的数据仓库系统102的用户提供附加功能。远程软件组件108包括一组机器可读指令(例如,代码),当由远程计算设备106执行时,使得远程计算设备106提供某些功能。远程软件组件108可以对输入数据进行操作,并基于处理、分析或以其他方式转换输入数据来生成结果数据。作为示例,远程软件组件108可以是数据提供者或数据消费者,其实现数据库跟踪过程,例如共享表和视图上的流,如下面进一步详细讨论的。
基于网络的数据仓库系统102包括访问管理系统110、计算服务管理器112、执行平台114和数据库116。访问管理系统110使得管理用户能够管理对基于网络的数据仓库系统102所提供的资源和服务的访问。管理用户可以创建和管理用户、角色和组,并使用许可来允许或拒绝对资源和服务的访问。访问管理系统110可以存储共享数据,该共享数据在基于网络的数据仓库系统102的不同用户之间安全地管理对云计算存储平台104的存储资源的共享访问,如下面进一步详细讨论的。
计算服务管理器112协调和管理基于网络的数据仓库系统102的操作。计算服务管理器112还执行查询优化和编译,以及管理提供计算资源的计算服务集群(例如,虚拟仓库、虚拟机、EC2集群)。计算服务管理器112可以支持任意数量的客户端账户,如提供数据存储和检索请求的终端用户、管理本文描述的系统和方法的系统管理员以及与计算服务管理器112交互的其他组件/设备。
计算服务管理器112还耦合到数据库116,数据库116与存储在共享数据处理平台100上的全部数据相关联。数据库116存储数据,该数据涉及与基于网络的数据仓库系统102及其用户相关联的各种功能和方面。例如,根据一些示例实施例,要通过流跟踪的数据可以在云计算存储平台104(例如,在S3)上存储和访问,或者在基于网络的数据仓库系统102本地的数据库116上存储和访问。
在一些实施例中,数据库116包括存储在远程数据存储系统中的数据以及可从一个或更多个本地高速缓存获得的数据的概要。另外,数据库116可以包括有关在远程数据存储系统和本地高速缓存中如何组织数据的信息。元数据116允许系统和服务确定是否需要访问数据段,而无需从存储设备加载或访问实际数据。计算服务管理器112进一步耦合到执行平台114,执行平台114提供执行各种数据存储和数据检索任务的多个计算资源(例如,虚拟仓库),如下面更详细地讨论的。
执行平台114耦合到作为云计算存储平台104的一部分的多个数据存储设备124-1至124-n。在一些实施例中,数据存储设备124-1到124-n是位于一个或更多个地理位置的基于云的储存设备。例如,数据存储设备124-1到124-n可以是公共云基础设施或私有云基础设施的一部分。数据存储设备124-1到124-n可以包括硬盘驱动(HDD)、固态驱动(SSD)、存储集群、亚马逊(Amazon)S3存储系统或任何其它数据存储技术。另外,云计算存储平台104可以包括分布式文件系统(诸如,Hadoop分布式文件系统(HDFS))、对象存储系统等。
执行平台114包括多个计算节点(例如,虚拟仓库)。计算节点上的进程集合执行由计算服务管理器112编译的查询计划。进程集合可以包括:执行查询计划的第一进程;使用最近最少使用(least recently used,LRU)策略来监视和删除微分区文件,并实现内存不足(OOM)错误缓解进程的第二进程;从进程日志和状态信息提取健康信息以发送回计算服务管理器112的第三进程;在系统引导(boot)之后建立与计算服务管理器112的通信的第四进程;以及第五进程,该第五进程处理与由计算服务管理器112提供的给定作业的计算集群的所有通信,并将信息传送回计算服务管理器112和执行平台114的其他计算节点。
云计算存储平台104还包括访问管理系统118和web代理120。如同访问管理系统110一样,访问管理系统118允许用户创建和管理用户、角色和组,并使用许可来允许或拒绝对云服务和资源的访问。基于网络的数据仓库系统102的访问管理系统110和云计算存储平台104的访问管理系统118可以通信和共享信息,以便能够访问和管理由基于网络的数据仓库系统102和云计算存储平台104的用户共享的资源和服务。web代理120处理涉及接受和处理并发API呼叫的任务,包括流量管理、授权和访问控制、监控和API版本管理。web代理120提供HTTP代理服务,用于创建、发布、维护、保护和监控API(例如,REST API)。
在一些实施例中,共享数据处理平台100的元件之间的通信链路经由一个或更多个数据通信网络来实现。这些数据通信网络可以利用任何通信协议和任何类型的通信介质。在一些实施例中,数据通信网络是彼此耦合的两个或更多个数据通信网络(或子网络)的组合。在替代实施例中,使用任何类型的通信介质和任何通信协议来实现这些通信链路。
如图1所示,数据存储设备124-1至124-N从与执行平台114相关联的计算资源解耦。也就是说,可以在执行平台114中创建和终止新的虚拟仓库,并且可以以独立的方式在云计算存储平台104上创建和终止附加的数据存储设备。该架构支持基于网络的数据仓库系统102基于变化的数据存储/检索需求以及访问共享数据处理平台100的用户和系统的变化需求的动态变化。对动态变化的支持允许基于网络的数据仓库系统102响应于对基于网络的数据仓库系统102内的系统和组件的不断变化的需求而快速变化规模(scale)。计算资源与数据存储设备124的分离支持大量数据的存储,而无需相应的大量计算资源。类似地,资源的这种分离支持在特定时间使用的计算资源的显著增加,而无需相应增加可用数据存储资源。此外,资源的解耦使不同的账户能够处理创建额外的计算资源,以处理由其他用户共享的数据,而不会影响其他用户的系统。例如,数据提供者可以具有三个计算资源,并且与数据消费者共享数据,并且数据消费者可以生成新的计算资源来对共享数据执行查询,其中新的计算资源由数据消费者管理,并且不影响数据提供者的计算资源或者与数据提供者的计算资源交互。
计算服务管理器112、数据库116、执行平台114、云计算存储平台104和远程计算设备106在图1中显示为单独的组件。然而,计算服务管理器112、数据库116、执行平台114、云计算存储平台104和远程计算设备106中的每一个都可以被实现为分布式系统(例如,分布在多个地理位置的多个系统/平台上),其由API连接并访问信息(例如,令牌、登录数据)。此外,计算服务管理器112、数据库116、执行平台114和云计算存储平台104中的每一个都可以根据接收到的请求的变化和共享数据处理平台100的需求的变化而扩大或缩小(彼此独立)。因此,在所描述的实施例中,基于网络的数据仓库系统102是动态的,并且支持频繁变化以满足当前的数据处理需求。
在典型操作期间,基于网络的数据仓库系统102处理由计算服务管理器112确定的多个作业(例如,查询)。这些作业由计算服务管理器112调度和管理,以确定何时以及如何执行该作业。例如,计算服务管理器112可以将作业划分为多个离散任务,并且可以确定需要什么数据来执行多个离散任务中的每个离散任务。计算服务管理器112可以将多个离散任务中的每个离散任务分配给执行平台114的一个或更多个节点以处理任务。计算服务管理器112可以确定需要哪些数据来处理任务,并且进一步确定执行平台114内的哪些节点最适合于处理该任务。一些节点可能已经缓存了处理任务所需的数据(由于节点最近已经从云计算存储平台104下载了用于先前作业的数据),因此可能是处理任务的良好候选。存储在数据库116中的元数据帮助计算服务管理器112确定执行平台114中的哪些节点已经缓存了处理该任务所需的至少一部分数据。执行平台114中的一个或更多个节点使用由节点缓存的数据和从云计算存储平台104检索的数据来处理任务。期望从执行平台114内的高速缓存中检索尽可能多的数据,因为检索速度通常比从云计算存储平台104中检索数据快得多。
如图1所示,共享数据处理平台100将执行平台114与云计算存储平台104分开。在这种布置中,执行平台114中的处理资源和高速缓存资源独立于云计算存储平台104中的数据存储设备124-1到124-n进行操作。因此,计算资源和高速缓存资源不限于具体的数据存储设备124-1至124-n。相反,所有计算资源和所有高速缓存资源可以从存储平台104中的任何数据存储资源检索数据,并将数据存储到其中。
图2是示出根据本公开一些实施例的计算服务管理器112的组件的框图。如图2所示,请求处理服务202管理接收到的数据存储请求和数据检索请求(例如,将对数据库数据执行的作业)。例如,请求处理服务202可以确定处理接收到的查询的数据(例如,数据存储请求或数据检索请求)。数据可以存储在执行平台114内的高速缓存中,或者存储在云计算存储平台104中的数据存储设备中。管理控制台服务204支持管理员和其他系统管理员对各种系统和进程的访问。另外,管理控制台服务204可以接收执行作业并监视系统上的工作负荷的请求。根据一些示例实施例,复制管理器225管理数据库数据的传输,例如将数据库数据复制到一个或更多个辅助数据库。根据一些示例实施例,信道管理器227被配置为通过专用信道(例如虚拟专用网络)发送和接收数据。
计算服务管理器112还包括作业编译器206、作业优化器208和作业执行器210。作业编译器206将作业解析为多个离散任务,并为多个离散任务中的每个离散任务生成执行代码。作业优化器208基于需要处理的数据来确定执行多个离散任务的最佳方法。作业优化器208还处理各种数据修剪操作和其他数据优化技术,以提高执行作业的速度和效率。作业执行器210执行从队列接收的或由计算服务管理器112确定的作业的执行代码。
作业调度器和协调器212将接收到的作业发送到适当的服务或系统,以进行编译、优化并分派到执行平台114。例如,可以按该优先顺序对作业进行优先考虑和处理。在实施例中,作业调度器和协调器212确定由计算服务管理器112与其他“外部”作业(诸如可以由数据库中的其他系统调度但可以利用执行平台114中的相同处理资源的用户查询)调度的内部作业的优先级。在一些实施例中,作业调度器和协调器212识别或分配执行平台114中的特定节点以处理特定任务。虚拟仓库管理器214管理在执行平台114中实现的多个虚拟仓库的操作。如下所述,每个虚拟仓库包括多个执行节点,每个执行节点包括高速缓存和处理器(例如,虚拟机、操作系统级容器执行环境)。
另外,计算服务管理器112包括配置和元数据管理器216,其管理与存储在远程数据存储设备和本地高速缓存(即,执行平台114中的高速缓存)中的数据有关的信息。配置和元数据管理器216使用元数据来确定需要访问哪些数据微分区来检索用于处理特定任务或作业的数据。监视器和工作负荷分析器218监督由计算服务管理器112执行的进程,并管理跨执行平台114中的虚拟仓库和执行节点的任务(例如,工作负荷)的分配。监视器和工作负荷分析器218还根据需要,基于整个基于网络的数据仓库系统102中不断变化的工作负载来重新分配任务,并且还可以基于也可以由执行平台114处理的用户(例如,“外部”)查询工作负载来重新分配任务。配置和元数据管理器216以及监视器和工作负荷分析器218耦合到数据存储设备220。图2中的数据存储设备220表示基于网络的数据仓库系统102中的任何数据存储设备。例如,数据存储设备220可以表示执行平台114中的高速缓存、云计算存储平台104中的存储设备或任何其他存储设备。
图3是示出根据本公开一些实施例的执行平台114的组件的框图。如图3所示,执行平台114包括多个虚拟仓库,它们是计算实例的弹性集群,例如虚拟机。在所示的示例中,虚拟仓库包括虚拟仓库1、虚拟仓库2和虚拟仓库n。每个虚拟仓库(例如,EC2集群)包括多个执行节点(例如,虚拟机),每个执行节点包括数据高速缓存和处理器。虚拟仓库可以通过使用多个执行节点并行执行多个任务。如本文中所讨论的,执行平台114可以基于系统和用户的当前处理需求实时地添加新的虚拟仓库并丢弃现有的虚拟仓库。这种灵活性允许执行平台114在需要时快速部署大量计算资源,而不必在不再需要它们时继续为那些计算资源付费。所有虚拟仓库都可以访问任何数据存储设备(例如,云计算存储平台104中的任何存储设备)中的数据。
尽管图3中所示的每个虚拟仓库包括三个执行节点,但是特定的虚拟仓库可以包括任意数量的执行节点。此外,虚拟仓库中执行节点的数量是动态的,使得在存在额外需求时创建新的执行节点,并在不再需要现有执行节点时将其删除(例如,在查询或作业完成时)。
每个虚拟仓库能够访问图1中所示的数据存储设备124-1至124-n中的任何一个。因此,虚拟仓库没有必要被分配给特定的数据存储设备124-1至124-n,而是可以从云计算存储平台104内的数据存储设备124-1至124-n中的任何一个访问数据。类似地,图3所示的每个执行节点可以从数据存储设备124-1至124-n中的任何一个访问数据。例如,第一用户(例如,提供者账户用户)的存储设备124-1可以与另一用户(例如,消费者账户用户)的虚拟仓库中的工作器节点共享,使得另一用户可以创建数据库(例如,只读数据库)并直接使用存储设备124-1中的数据,而不需要复制数据(例如,将其复制到由消费者帐户用户管理的新磁盘上)。在一些实施例中,可以将特定的虚拟仓库或特定的执行节点临时分配给特定的数据存储设备,但是该虚拟仓库或执行节点可以稍后从任何其他数据存储设备访问数据。
在图3的示例中,虚拟仓库1包括三个执行节点302-1、302-2和302-n。执行节点302-1包括高速缓存304-1和处理器306-1。执行节点302-2包括高速缓存304-2和处理器306-2。执行节点302-n包括高速缓存304-n和处理器306-n。每个执行节点302-1、302-2和302-n与处理一个或更多个数据存储和/或数据检索任务相关联。例如,虚拟仓库可以处理与内部服务(诸如,聚类服务、实例化视图刷新服务、文件压缩服务、存储程序服务或文件升级服务)相关联的数据存储和数据检索任务。在其他实施方式中,特定虚拟仓库可以处理与特定数据存储系统或特定类别的数据相关联的数据存储和数据检索任务。
类似于上面讨论的虚拟仓库1,虚拟仓库2包括三个执行节点312-1、312-2和312-n。执行节点312-1包括高速缓存314-1和处理器316-1。执行节点312-2包括高速缓存314-2和处理器316-2。执行节点312-n包括高速缓存314-n和处理器316-n。另外,虚拟仓库3包括三个执行节点322-1、322-2和322-n。执行节点322-1包括高速缓存324-1和处理器326-1。执行节点322-2包括高速缓存324-2和处理器326-2。执行节点322-n包括高速缓存324-n和处理器326-n。
在一些实施例中,相对于执行节点正在高速缓存的数据,图3所示的执行节点是无状态的。例如,这些执行节点不存储或以其他方式维护有关执行节点的状态信息或由特定执行节点高速缓存的数据。因此,在执行节点发生故障的情况下,可以用另一个节点透明地替换发生故障的节点。由于没有与发生故障的执行节点相关联的状态信息,因此新的(替换)执行节点可以轻松替换发生故障的节点,而无需考虑重新创建特定状态。
尽管图3所示的执行节点各自包括一个数据高速缓存和一个处理器,但是替代实施例可以包括包含任意数量的处理器和任意数量的高速缓存的执行节点。另外,高速缓存的大小在不同执行节点之间可能有所不同。图3所示的高速缓存在本地执行节点(例如,本地磁盘)中存储从云计算存储平台104中的一个或更多个数据存储设备检索的数据(例如,给定节点最近访问的S3对象)。在一些示例实施例中,高速缓存存储文件头和文件的单独列,因为查询仅下载对该查询有用的列。
为了提高高速缓存命中并避免重叠存储在节点高速缓存中的冗余数据,作业优化器208使用一致的散列方案将输入文件集分配给节点,以散列所访问的数据(例如,数据库116或数据库122中的数据)的表文件名。根据一些示例实施例,访问同一表文件的后续或并发查询因此将在同一节点上执行。
如所讨论的,节点和虚拟仓库可以响应于环境条件(例如,灾难场景)、硬件/软件问题(例如,故障)或管理变化(例如,从大集群改变到小集群以降低成本)而动态改变。在一些示例实施例中,当节点集改变时,没有数据被立即重新混洗。相反,实施最近最少使用的替换策略来最终替换多个作业中丢失的缓存内容。因此,高速缓存减小或消除了在从远程存储系统中不断检索数据的平台中出现的瓶颈问题。本文描述的系统和方法不是从远程存储设备重复访问数据,而是从执行节点中的高速缓存访问数据,这明显更快并且避免了上面讨论的瓶颈问题。在一些实施例中,使用提供对高速缓存的数据的快速访问的高速存储器设备来实现高速缓存。每个高速缓存可以存储来自云计算存储平台104中的任何存储设备的数据。
此外,高速缓存资源和计算资源可以在不同的执行节点之间变化。例如,一个执行节点可以包含大量的计算资源和最小的高速缓存资源,使得该执行节点对于利用大量计算资源的任务有用。另一个执行节点可能包含大量缓存资源和最少的计算资源,这使得该执行节点对于可能使用大量数据缓存的任务非常有用。另一个执行节点可以包含高速缓存资源,提供更快的输入输出操作,对于利用大量数据的快速扫描的任务很有用。在一些实施例中,执行平台114实现偏斜处理,以在与特定执行相关联的高速缓存资源和计算资源之间分配工作,其中分配可以进一步基于由执行节点执行的预期任务。例如,如果执行节点执行的任务变得更加处理器密集,则可以为执行节点分配更多的处理资源。类似地,如果执行节点执行的任务可使用更大的高速缓存容量,则可以为执行节点分配更多的高速缓存资源。此外,由于各种问题(例如,虚拟化问题、网络开销),一些节点的执行速度可能比其他节点慢得多。在一些示例实施例中,使用文件窃取方案在扫描级解决不平衡。特别是,每当节点进程完成扫描其输入文件集时,它都会向其他节点请求额外的文件。如果其他节点中的一个接收到这样的请求,则该节点分析其自己的集合(例如,当接收到该请求时,在输入文件集合中还剩多少文件),然后在当前作业(例如,查询)的持续时间内转移一个或更多个剩余文件的所有权。请求节点(例如,文件窃取节点)然后接收数据(例如,头部数据)并从云计算存储平台104(例如,从数据存储设备124-1)下载文件,并且不从传输节点下载文件。这样,滞后节点可以通过文件窃取来传输文件,而不会加重滞后节点的负载。
尽管虚拟仓库1、2和n与同一执行平台114相关联,但是可以使用在多个地理位置处的多个计算系统来实现虚拟仓库。例如,虚拟仓库1可以由第一地理位置处的计算系统来实现,而虚拟仓库2和n由第二地理位置处的另一计算系统来实现。在一些实施例中,这些不同的计算系统是由一个或更多个不同的实体维护的基于云的计算系统。
另外,每个虚拟仓库在图3中被示为具有多个执行节点。可以使用位于多个地理位置处的多个计算系统来实现与每个虚拟仓库相关联的多个执行节点。例如,虚拟仓库1的实例在一个地理位置处的一个计算平台上实现执行节点302-1和302-2,并且在另一个地理位置处的不同计算平台上实现执行节点302-n。选择特定的计算系统以实施执行节点可以取决于各种因素,诸如特定的执行节点所需的资源水平(例如,处理资源要求和高速缓存要求)、特定计算系统处可用的资源、地理位置内或地理位置之间的网络的通信能力以及哪些计算系统已在虚拟仓库中实现其他执行节点。
执行平台114也是容错的。例如,如果一个虚拟仓库发生故障,那么该虚拟仓库将很快被位于不同地理位置处的不同虚拟仓库替换。
特定执行平台114可以包括任意数量的虚拟仓库。另外,特定执行平台中虚拟仓库的数量是动态的,使得在需要附加的处理和/或高速缓存资源时创建新的虚拟仓库。类似地,当不再需要与虚拟仓库关联的资源时,可以删除现有的虚拟仓库。
在一些实施例中,虚拟仓库可以在云计算存储平台104中对相同数据进行操作,但是每个虚拟仓库具有其自己的具有独立处理和高速缓存资源的执行节点。此配置允许对不同虚拟仓库上的请求进行独立处理,并且请求之间不会相互干扰。这种独立的处理与动态添加和移除虚拟仓库的能力相结合,支持为新用户添加新的处理能力,而不会影响现有用户观察到的性能。
图4示出了根据一些示例实施例的用于通过信道(例如,专用信道)传输数据库数据的示例数据库架构400。如上所述,HSM是一个硬件安全模块,它是一个物理计算设备,保护和管理数字密钥以进行强认证。示例HSM可以实现为插件卡或服务器机架模块,其直接连接到在部署的云执行实例中运行的计算机或网络服务(例如,在云平台的VPN中,如AWS)。在一些示例实施例中,给定部署的HSM由云提供者作为网络服务提供,连同所提供的执行单元(例如,Amazon S3、谷歌云、微软Azure各自为其云计算单元(例如,虚拟机)提供HSM服务)。
在一些示例实施例中,加密密钥由每个部署中的HSM生成和管理。如上所述,如果正在连接两个部署(例如,部署的网格),这可以利用从一个部署的HSM导出加密密钥(例如,对称密钥、私有密钥、公共密钥、密钥对),并将密钥数据导入另一个部署的HSM(例如,正被添加到网格的新部署)。例如,为了保护数据,可以复制现有部署,其中创建新部署,将现有部署的数据拷贝或以其他方式复制到新部署,现有部署的HSM导出密钥,新部署的HSM导入密钥。在创建和导出/导入密钥后,新部署可以作为辅助部署或复制部署,存储从现有部署复制的数据,然后作为“主要”或源部署。虽然HSM提供了安全的加密功能,但HSM处理不能很好地扩展,并且随着给定网络系统增加更多部署,会增加处理开销。因此,只要能够安全地执行非HSM处理,就存在尽可能使用非HSM操作的需求。
此外,并非所有HSM都提供密钥导入或导出功能,这抑制了使用此类系统复制部署。
处理HSM扩展问题的一种方法包括创建存储每个部署的公钥的公钥文档,其中新部署将其公钥添加到公钥文档,并用目标部署的公钥加密出站消息(然后目标部署可以通过其私钥对其进行解密)。但是,这种方法的一个问题是,随着部署数量扩展到企业级别,很难以安全的方式管理公钥文档。
此外,即使给定的部署知道目标部署的公钥,也不能确保目标部署就是它所说的那个部署。也就是说,例如,目标部署可以是通过向网格中的其他合法部署提供受损害/恶意部署的公钥来试图拦截数据的受损害或其他方式的恶意部署。此外,使用公钥文档执行密钥轮换是不切实际的(其中密钥轮换是当每个公钥被新的公钥替换时发生的),至少部分是因为每个部署将同时轮换它们的密钥,这在实践中很难做到,并且容易出错。
为了解决这些问题,复制管理器225可以实现非对称密钥和一个或更多个对称密钥来在数据库之间传输数据,例如在源部署(例如,VPN中的主数据库应用)和目标部署(例如,另一VPN云中的一个或更多个辅助或复制数据库)之间传输数据。在一些示例实施例中,每个部署生成用于发送和接收加密数据的复制非对称密钥对(RAK),以及用于认证给定部署的认证非对称密钥对(AAK)。在一些示例实施例中,每个部署还生成对称密钥以加密/解密发送的每个数据文件(例如,数据加密密钥(DEK))和对称包装复制密钥(WRK),该对称包装复制密钥包装DEK,其中WRK可以跨消息交错,并不断改变以进一步保护发送的数据)。复制管理器可以在认证过程和消息传递协议中使用这些密钥,在部署之间安全地发送和接收数据,而不依赖于从HSM导入/导出密钥。
通常,示例非对称密钥对包括PKI(公钥基础设施)密钥,该密钥包括私钥和相应的公钥。PKI密钥由HSM使用基于数学问题的加密算法生成,以产生单向函数。
密钥对可用于安全发送数据,也可用于认证给定设备。为了使用非对称密钥对安全地发送/接收数据,公钥可以被广泛传播,而私钥对于该部署是私有的。在这样的系统中,任何发送部署都可以使用目标部署的公钥加密消息,但是加密的消息只能用目标部署的私钥解密。
为了使用密钥对作为签名或认证机制,签名设备使用私钥来“签名”给定的数据项,并且可以访问公钥的其他设备可以认证数据项上的签名是可信的,因为只有签名设备具有私钥,并且在这样的系统中,伪造签名目前在数学上是不切实际的。
一般来说,对称密钥是在发送方和接收方之间共享的共享秘密,其中共享秘密(例如,对称密钥)用于加密消息以及解密消息。示例对称密钥方案包括高级加密标准(AES)256,它可以由HSM生成;额外的对称密钥方案包括Twofish、Blowfish、snake、DES和其他。
在图4所示的示例中,部署_A405和部署_B 430是图1的共享数据处理平台100的单独实例,为了清楚起见,省略了图1-3中讨论的各种组件。也就是说,例如,部署_A是安装在第一地理位置的第一VPC(例如,托管在旧金山的AWS虚拟私有云)内的共享数据处理平台100的第一实例,部署_B是安装并托管在第二地理位置的第二VPC(例如,托管在纽约市的不同AWS虚拟私有云)内的共享数据处理平台100的第二不同实例。虽然这里仅讨论了两个部署作为示例,但是应当理解,每个位置可以在同一VPC或其他VPC内实现多个部署。例如,托管部署_A405的VPC可以具有其他部署,每个部署运行它们自己的共享数据处理平台100的实例。此外,虽然部署被讨论为在地理上是分开的,但是应当理解,部署可以位于相同的地理区域内,尽管在不同的云系统上(例如,部署_A405是共享数据处理平台100的西海岸AWSVPN实例,部署_B 430是共享数据处理平台100的谷歌云实例),或者在相同地理位置的单个云站点的不同子网内(例如,两个部署都在西海岸AWS虚拟私有云上,但是在不同的分区子网上)。
在图示的示例中,部署_A405包括复制管理器415,该复制管理器415管理该部署与其他部署(例如,部署_B 430和/或具有部署_A405和部署_B430的网格中的其他部署)的认证。部署_A405还包括全局服务420,其是整合的或代表性的子系统,包括图2中显示的202、204、206、208、210、212和214的实例。部署_A405还包括基础数据库425(FoundationDB,“FDB”),它是包括实例216、218和220的另一个代表性子系统。部署_A405还包括HSM 410,如所讨论的,它是硬件安全模块,可以为部署_A405生成和管理加密密钥。此外,部署_A包括信道管理器433,该信道管理器433管理通过信道470去往和来自其他部署的数据传输,如下面参考图6-8进一步详细讨论的。
部署_B 430是位于第二地理位置(例如,纽约市)的共享数据处理平台100的示例部署。如图所示,部署_B 430包括复制管理器440,该复制管理器440管理该部署与其他部署(例如,部署_A405和/或具有部署_A405和部署_B 430的网格中的其他部署)的认证。部署_B430还包括全局服务445,其是包括图2中显示的202、204、206、208、210、212和214的实例的整合或代表性子系统。部署_B 430还包括FDB 450,FDB 450是包括216、218和220实例的另一个组成的或代表性的子系统。此外,根据一些示例实施例,部署_B 430包括信道管理器477,该信道管理器477管理在信道470上去往和来自其他部署的数据传输(例如,经由到专用网络的一个或更多个托管连接)。
根据一些示例实施例,数据库架构400还包括全局部署安全系统455。如图所示,全局部署安全系统455包括全局HSM 460,其生成包括全局公钥和全局私钥的非对称密钥对。全局公钥被广泛分发(例如,到网格中的所有部署),并且可以被部署用来检查数据项(例如,未知部署的公钥)是否实际上由全局部署安全系统455的全局签名密钥签名(例如,使用上面讨论的PKI签名操作)。
在下面的例子中,部署_A 405是主数据库,并试图向部署_B 430发送复制流量,尽管可以理解,在相反的过程中,架构400可以被实现为从部署_B 430向部署_A 405发送流量。
在一些示例实施例中,为了认证部署_A 405,全局部署安全系统455用全局签名密钥对部署_A405的认证公钥进行签名,从而向其他部署指示部署_A405是它声称的部署(例如,即,经过认证的部署,而不是恶意或受危害的部署)。
在一些示例实施例中,为了启动信道470,部署_A405向部署_B 430发送部署_A405的认证公钥,该公钥已经由全局部署安全系统455的全局签名密钥签名。根据一些示例性实施例,在一些示例性实施例中,建立通信通过VPN节点发送,而在其他实施例中,建立通信通过互联网(例如,加密流量)传输到目的地部署,其中建立通信可以包括不是复制数据的密钥或认证数据。
部署_B 430接收密钥数据,并且如果密钥没有被全局部署安全系统455签名,则部署_B 430拒绝来自部署_A405的进一步通信。假设接收到的公钥由全局部署安全系统455签名,部署_B 430保存网络地址数据(例如,URL)和描述部署_A405的其他数据(例如,任务/功能)用于进一步通信。
在一些示例实施例中,在建立信道470之后,部署_A405可以向部署_B 430发送加密数据,例如来自一个或更多个部署_A 405的数据库(例如,连接到部署_A 405的执行单元的数据存储设备124)的复制文件。如下面参考图6-8进一步详细讨论的,信道470的消息通过虚拟专用网络的一个或更多个节点或联网服务器来传输。
在一些示例实施例中,为了加密和解密通过信道470发送的数据,HSM 410为部署_A 405生成复制非对称密钥对,HSM 435为部署_B 430生成复制非对称密钥对,其中来自每个部署的公钥可以被广泛传播并用于加密发送到目的地部署的数据。
例如,部署_A 405可以发送一个用部署_B 430的公钥加密的数据文件,这样只有部署_B 430可以解密该文件。此外,每个数据消息最初可以使用数据加密密钥(DEK)加密,并使用包装复制密钥(例如,不同于DEK的对称密钥)进一步加密,该密钥可以包括在发送到目的地部署(例如,部署_B430)的文件中。
虽然在上述示例中,为部署A生成了两个不同的非对称密钥对——一个用于认证,一个用于发送数据库数据——但是在一些示例实施例中,使用单个非对称密钥对来认证部署和发送加密数据。例如,可以为部署_A 405生成密钥对,并且密钥对的公钥可以由来自全局部署安全系统455的全局私钥签名。在公钥对被签名之后,部署_A 405可以将签名的公钥发送到部署_B 430,以认证部署_A 405,并且稍后将流量发送到部署_A 405。也就是说,例如,部署_B 430接收签名的公钥,并且知道它可以信任部署_A 405,因为公钥是签名的全局私钥,只有全局部署安全系统455可以访问它(例如,由全局HSM 460管理)。此外,部署_B430可以使用签名的公钥来加密数据并将数据发送回部署_A 405,其中保证只有部署_A405可以解密数据,因为只有部署_A 405具有相应的私钥。以这种方式,并且根据一些示例实施例,单个非对称密钥对被用于向给定部署认证和发送数据。
图5示出了根据一些示例实施例的用于通过信道在部署之间进行数据传输的示例消息传递结构500。在图5的例子中,WRK是交错的,以增加在部署之间发送的文件的安全性。在下面的描述中,“-1”表示先前的项目,例如先前发送的文件或先前发送的WRK密钥,而“+1”表示后续的项目,例如在初始或先前文件之后创建和将要发送的文件
在该示例中,消息传递结构500可以是从部署_A 405发送到部署_B430的复制数据库项目流。作为示例,文件503是生成然后发送到目的地的第一个数据库数据项,随后是文件505,该文件被创建然后发送到目的地,随后是文件510,该文件是图5的示例中生成并发送到目的地(例如,部署_B 430、服务器、虚拟机等)的最后一个文件。在高层次上,每个文件是交错的,因为在文件中加密的数据是通过在另一个文件(如先前发送的文件)中发送的加密密钥来访问的。例如,文件503指定用于访问文件505中的数据的WRK,文件505指定用于访问文件510中的数据的WRK(例如,在部分505C中),等等。当目的地设备接收到文件503时,它存储文件503中的WRK,用于解密下一个文件(即文件505)中的文件,以此类推。
特别地,根据一些示例实施例,如文件505中所示,文件结构可以包括可以对应于文件505的不同部分的字节(例如,字节流),包括部分505A、部分505B和部分505C。
在一些示例实施例中,部分505A和部分505B对应于消息或文件的主体,并且存储复制数据(例如,部分505A中的“数据”,例如数据库值)以及交错的WRK数据(例如,下一个文件的WRK密钥),并且部分505C是文件的头部结构的一部分。在其他示例实施例中,部分505A-505C中的每一个都是消息主体的一部分,并且头部存储ID数据,WRK密钥和公钥用于该消息在密钥旋转之后识别正确的密钥。
在消息结构500中,每个文件的数据由DEK加密。例如,如部分505A所示,该数据已经被该文件505的DEK加密。在一些示例实施例中,发送的每个文件的数据由不同的DEK加密。也就是说,例如,前一文件503中的数据由不同的DEK解密,后一文件510中的数据由不同的DEK解密,并且每个文件使用唯一的DEK加密。
如部分505B所示,文件505的DEK由在先前文件503中接收的WRK加密。也就是说,用于加密文件505中的DEK的WRK先前在文件503中被接收。如部分505C所示,下一个文件的WRK(“WRK+1”)、文件510(“文件N+1”)由目的地部署例如部署_B 430的公钥加密。在一些示例实施例中,加密的WRK被缓存在一个或更多个发送部署中,使得要发送到目的地部署的一个或更多个消息可以使用缓存的加密WRK。
因此,WRK是交错的,给定文件中包含的WRK是要接收的下一个文件的WRK。以这种方式,如果文件505被恶意截取,则该文件的DEK不能被访问,因为DEK用在先前消息(例如,文件503)中发送的WRK加密。
例如,在接收到文件503时,目的地部署使用其私钥来访问下一个文件,即文件505。当目的地部署接收文件505时,它使用来自文件503的先前存储的WRK来访问部分505B中的DEK,然后使用DEK来访问文件505的数据(例如,在部分505A中)。
在一些示例实施例中,每个WRK存储在消息内部,并用于访问该给定消息的数据(例如,访问数据的DEK)。也就是说,例如,尽管在图5所示的示例中,每个WRK用于另一个消息DEK,但是在一些示例实施例中,给定消息的DEK由WRK加密,然后WRK由公钥加密并包括在该消息中,使得每个消息包括用于访问该给定消息中的数据的对称密钥。例如,接收到消息后,目的地部署使用其私钥解密消息中的WRK,然后使用新未加密的WRK解密同一消息中的DEK,最后使用DEK解密访问数据。另外,在一些示例实施例中,WRK由发送部署的HSM周期性地或响应于事件触发而改变或重新生成。例如,WRK可以由发送部署的HSM每十五分钟或每小时重新生成一次,其中新的新生成的WRK由目的地部署在消息本身中接收(例如,新消息包括新的WRK,其将用于下一时间段的下一接收的消息,直到新的WRK生成)。
图6示出了根据一些示例实施例的用于在数据库之间传输数据的示例信道架构600。在图示的示例中,根据一些示例实施例,除了示例存储组件(包括存储平台615和存储平台645)之外,在部署_A 405和部署_B 430内显示不同的组件。
除了复制管理器415和信道管理器433之外,部署_A 405包括代理服务器605,其接收从网络流量负载平衡器管理器610(例如,AWS弹性负载平衡器)分发的流量。在一些示例实施例中,平衡器管理器610与云桥620对接,用于从部署的云中发送和接收流量,例如,到私有或其他外部网络。例如,如果部署_A 405由AWS虚拟私有云(例如,AWS VPC子网)托管,则云桥620可以是来自AWS的连接到专用网络的多个托管连接(例如,AWS Direct Connect,托管连接由AWS或AWS的服务提供者提供)。
在图示的例子中,信道470包括节点网络625中节点的虚拟专用网络。例如,虚拟专用网络可以包括企业提供的虚拟专用网(AT&T NetBond)的多个企业节点。作为另外的例子,节点网络625可以包括被配置为单个虚拟专用网络的一部分的多个服务器(例如,在旧金山的一个房屋处的服务器和在纽约市的另一个房屋处的另一个服务器,其中服务器被连接为单个虚拟专用网络的节点)。然后,使用节点网络625在虚拟专用网上向云桥630传输流量,云桥630是由部署_B 430的VPC提供者(例如,AWS、Azure、GPC)提供的专用网络连接(例如,Direct Connect、Azure Express Route)。然后,使用平衡器管理器635将由云桥630接收的流量分配给部署_B 430的代理服务器640,平衡器管理器635是负载平衡器,例如AWS弹性负载平衡器,其然后处理数据并将其存储在存储平台645中。
图7示出了根据一些示例实施例的用于数据库部署之间的数据传输的示例网络架构700。如图所示,架构包括三个虚拟私有云,包括ACME云东705和ACME云西730,它们是相同VPC提供者(例如AWS)的不同云,并且还包括Smith云,其是不同提供者(例如Azure)的虚拟私有云。ACME云东705是托管部署715(例如,共享数据处理平台100的示例实例)的虚拟私有云,部署715将数据存储在存储桶720(例如,数据存储设备124的示例实例)中,并通过ACME云桥710连接到节点725A、725B和725C的虚拟专用网络725。
ACME云西730是托管部署740(例如,共享数据处理平台100的另一示例实例)的另一虚拟私有云,其将数据存储在存储桶745(例如,数据存储设备124的示例实例)中,并通过ACME云桥735连接到节点725A、725B和725C的虚拟专用网络725。
Smith云是托管部署760(例如,共享数据处理平台100的另一个附加实例)的不同虚拟私有云(例如,来自使用不同云架构的不同提供者),部署760将数据存储在存储桶765(例如,数据存储设备124的示例实例)中,并通过ACME云桥755连接到节点725A、725B和725C的虚拟专用网络725。
如上所述,在部署715、740、760之间发送和接收数据(例如,复制数据)可能由于不同的原因而变得困难,包括传输路径中缺乏确定性、出口费用和安全模块限制。为了解决这些问题,虚拟专用网725的节点725A-725C可以被配置在不同的地理位置,以通过虚拟专用网725传输数据。
在一些示例实施例中,哪些数据通过虚拟专用网络725发送是使用由每个部署中的信道管理器管理的共享元组元数据(tuple metadata)来配置的,其中每个数据保持元组数据的完整共享记录。例如,部署715中的信道管理器(图7中未示出)可以存储一个或更多个元组,用于何时通过节点725A-725C发送流量。元组元数据可以包括发送部署的第一值和指定目的地部署的第二值,例如[部署715,部署740],其中如果流量被发送到目的地部署,则使用节点725A和725B(经由相应的云桥710和735的托管连接)在虚拟专用网上代理流量,每个云桥使用到节点的托管连接(例如,“10X10GE托管的”)和连接到相应部署的专用虚拟接口(“专用VIFS”)来对接。
在一些示例实施例中,指定通过节点725A-725C发送哪些流量的元组元数据可以在账户级别、部署级别、VPC级别或VPC之外的网络的特定外部地址进行配置。例如,如果元组元数据可以指定来自特定用户账户的数据共享的复制流量被复制到任何数据库管理的部署740,例如[账户_1,部署740]。在该示例实施例中,如果流量来自账户_1并被发送到部署740,则它作为加密消息(例如,交错的WRK消息)通过虚拟专用网络发送。
作为附加示例,如果元组元数据是:[部署715,账户123](其中账户123在部署760内运行),则从部署715到部署760的特定用户账户(“账户123”)的任何流量应该经由节点725A-725B发送,但是其他流量不发送到特定账户。例如,如果主数据库与部署715中的账户123共享数据,则流量在专用网络725上被代理;而如果相同的主数据库向另一个账户(例如部署760中的账户456)或云750中的服务器777发送流量,则该流量(例如加密的互联网流量)可以通过开放的互联网路径751发送。
图8示出了根据一些示例实施例的方法800的流程图,该方法800用于在部署之间发送作为信道消息的数据传输。在操作805,信道管理器433配置托管部署数据库系统(例如,部署_A 405)的虚拟私有云的云连接。例如,在操作805,云桥620的一个或更多个托管连接(例如,AWS Direct Connect)被公开并与信道管理器433对接。另外,根据一些示例实施例,在操作805,其他部署中的附加信道管理器被配置成通过它们各自的云桥(例如,AWSDirect Connect、Azure Express Route、以太网)连接到虚拟专用网络。
在操作810,复制管理器415生成或以其他方式识别用于传输的数据。例如,部署_A405中的复制管理器415识别从部署_A 405托管的主数据库中要复制到另一个数据库(例如在部署_B 430中运行的数据库)的数据。
在操作815,复制管理器415加密用于传输的数据。例如,如上所述,复制管理器415将数据加密为要传输到复制数据库的消息序列。例如,每个消息中的数据可以由该消息的DEK加密,该消息的DEK然后由WRK加密,该WRK然后以加密形式存储在另一个消息中(例如,由目的地部署的公钥加密,然后包括在后续消息中)。
在操作820,信道管理器433向专用网络节点发送数据。例如,在操作820,信道管理器433使用一个或更多个专用虚拟接口(专用VIFs)将加密的数据发送到云桥620,以将数据发送到节点网络(例如节点网络625)的专用网络节点(例如NetBond节点)。一旦专用节点网络625接收到数据,节点就通过网络将数据传输到目的地节点,例如离目的地部署最近的节点(例如,在相同的地理区域中)。
在操作825,目的地部署(部署_B 430)的信道管理器477从专用网络节点接收数据。例如,信道管理器477使用从虚拟专用网导入数据的托管连接通过云桥630接收数据。
在操作830,目的地部署(部署_B 430)的复制管理器440解密数据。例如,在操作830,复制管理器440接收给定的消息,并使用目的地部署的公钥解密消息中的WRK,然后存储解密的WRK以用于解密下一个接收的消息中的数据。根据一些示例实施例,在接收到下一消息时,复制管理器440检索存储的WRK以解密该下一消息中的DEK,然后使用新加密的DEK来解密该给定消息中的数据。
在操作835,复制管理器440处理解密的数据。例如,在操作835,复制管理器440将数据传输到在部署内运行的全局服务445(图2的计算服务管理器112内的其他模块),用于进一步处理和存储。
图9示出了根据一些示例实施例的使用元数据在部署之间传输数据的方法900的示例流程图。在操作905,复制管理器415识别要传输的数据。例如,根据一些示例实施例,数据可以是用于传输到一个或更多个复制数据库的复制数据,或者可以是用于存储在另一部署中的非复制数据。
在操作910,信道管理器433访问元组元数据(例如,存储在图2的配置和元数据管理器216和数据存储设备220中),以确定数据是否匹配用于通过虚拟专用网传输的元组。例如,给定的元组可以指定从部署_A 405发送到部署_B 430的任何数据应该被加密为消息序列,并通过私有节点网络发送,以便由部署_B 430存储和处理。假设在操作910,信道管理器433确定数据不满足元组(例如,目的地参数中的发送参数与用于传输的数据的元数据不匹配),则在操作915,通过非节点机制(例如,因特网)发送数据,然后在操作940进一步处理(例如,由图4的全局服务445处理)。
相反,如果在操作910,用于传输的数据确实匹配元组元数据,则方法900前进到操作922-935。特别地,例如,在操作920,复制管理器415加密数据以作为消息序列(例如,序列WRK消息)传输到目的地。在操作925,信道管理器433使用云桥620,该云桥620使用多个托管连接(例如,10X10GE托管连接)向专用节点网络625传输数据。
在操作930,在目的地部署上,信道管理器477经由云桥630从节点网络625接收流量。在操作935,复制管理器440解密数据,然后在940由目的地部署的一个或更多个模块(例如,全局服务445)处理该数据。
根据示例实施例,图10以计算机系统的形式示出了机器1000的示意图表示,用于使机器1000执行本文所讨论方法中的任何一个或更多个的指令集合可以在该计算机系统内执行。具体地,图10以计算机系统的示例形式示出了机器1000的示意图表示,用于使机器1000执行本文所讨论方法中的任何一个或更多个的指令1016(例如,软件、程序、应用、小程序、小应用(app)或其他可执行代码)在该计算机系统内执行。例如,指令1016可以使机器1000执行方法800和900中的任何一个或更多个的任何一个或更多个操作。作为另一个例子,指令1016可以使机器1000实现图1-9中的任何一个或更多个中所示的数据流的部分。以这种方式,指令1016将通用的、未编程的机器转换成特定的机器1000(例如,远程计算设备106、访问管理系统110、计算服务管理器112、执行平台114、访问管理系统118、web代理120、远程计算设备106),该特定的机器1000被特别配置成以这里描述的方式执行所描述和示出的功能中的任何一个。
在替代实施例中,机器1000作为独立的设备操作或者可以耦合(例如,联网)到其它机器。在联网部署中,机器1000可以在服务器-客户端网络环境中作为服务器机器或客户端机器来操作,或者作为对等(或分布式)网络环境中的对等机器来操作。机器1000可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本(netbook)、智能电话、移动设备、网络路由器、网络交换机、网络桥接器或能够顺序地或以其它方式执行指令1016的任何机器,指令1016指定由机器1000采取的动作(action)。此外,虽然仅示出了单个机器1000,但术语“机器”还应被理解为包括单独或联合地执行指令1016以实施本文所讨论方法中的任何一个或更多个的机器1000的集合。
机器1000包括处理器1010、存储器1030和输入/输出(I/O)组件1050,它们被配置成例如经由总线1002彼此通信。在示例实施例中,处理器1010(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另一处理器或其任何合适的组合)可以包括例如可以执行指令1016的处理器1012和处理器1014。术语“处理器”旨在包括多核处理器1010,多核处理器1010可以包括可以同时执行指令1016的两个或更多个独立处理器(有时称为“核”)。尽管图10示出了多个处理器1010,但是机器1000可以包括具有单核的单个处理器、具有多核的单个处理器(例如,多核处理器)、具有单核的多个处理器、具有多核的多个处理器或者它们的任意组合。
存储器1030可以包括主存储器1032、静态存储器1034和存储单元1036,它们都可以由处理器1010例如经由总线1002访问。主存储器1032、静态存储器1034和存储单元1036存储指令1016,指令1016体现本文描述的方法或功能中任何一种或更多种。在由机器1000执行期间,指令1016也可以全部或部分地驻留在主存储器1032内、静态存储器1034内、存储单元1036内、至少一个处理器1010内(例如,在处理器的高速缓冲存储器内)或其任何合适的组合内。
I/O组件1050包括用于接收输入、提供输出、产生输出、传输信息、交换信息、捕获测量值等的组件。包含在特定机器1000中的具体的I/O组件1050将取决于机器的类型。例如,诸如移动电话的便携式机器将可能包括触摸输入设备或其他这样的输入机制,而无头服务器机器可能不包括这样的触摸输入设备。将认识到的是,I/O组件1050可以包括图10中未示出的许多其他组件。I/O组件1050根据功能进行分组仅仅是为了简化下面的讨论,并且该分组决不是限制性的。在各种示例实施例中,I/O组件1050可以包括输出组件1052和输入组件1054。输出组件1052可以包括视觉组件(例如,诸如等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)的显示器)、声学组件(例如,扬声器)、其他信号发生器等。输入组件1054可以包括字母数字输入组件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于点的输入组件(例如,鼠标、触控板、轨迹球、操纵杆、运动传感器或另一指向仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏或其他触觉输入组件)、音频输入组件(例如,麦克风)等。
通信可以使用多种技术来实现。I/O组件1050可以包括通信组件1064,通信组件1064可操作来分别经由耦合1082和耦合1072将机器1000耦合到网络1080或设备1070。例如,通信组件1064可以包括网络接口组件或与网络1080接口的另一合适的设备。在进一步的示例中,通信组件1064可以包括有线通信组件、无线通信组件、蜂窝通信组件和经由其他模态提供通信的其他通信组件。设备1070可以是另一台机器或多种外围设备中的任一种(例如,经由通用串行总线(USB)耦合的外围设备)。例如,如上所述,机器1000可以对应于远程计算设备106、访问管理系统110、计算服务管理器112、执行平台114、访问管理系统118、web代理120中的任何一个,并且设备1070可以包括这些系统和设备中的任何其他系统和设备。
各种存储器(例如,1030、1032、1034和/或处理器1010和/或存储单元1036的存储器)可以存储指令1016和数据结构(例如,软件)的一个或更多个集合,这些指令和数据结构体现本文所描述方法或功能中的任何一种或更多种或被本文所描述方法或功能中的任何一种或更多种所利用。当由处理器1010执行时,这些指令1016促使各种操作来实现所公开的实施例。
如本文所使用的,术语“机器存储介质”、“设备存储介质”和“计算机存储介质”意思相同,并且可以在本公开中互换使用。这些术语指的是存储可执行指令和/或数据的单个或多个存储设备和/或介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。相应地,这些术语应当被认为包括但不限于包括处理器内部或外部的存储器的固态存储器以及光和磁介质。机器存储介质、计算机存储介质和/或设备存储介质的具体示例包括非易失性存储器,非易失性存储器包括例如半导体存储器设备,诸如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、现场可编程门阵列(FPGA)和闪存设备;磁盘,如内部硬盘和可移除磁盘;磁光盘;以及CD-ROM和DVD-ROM光盘。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”具体排除了载波、调制数据信号和其他这样的介质(其中的至少一些包含在下面讨论的术语“信号介质”中)。
在各种示例实施例中,网络1080的一个或更多个部分可以是自组织网络(ad hocnetwork)、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网、互联网的一部分、公共交换电话网络(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、另一种类型的网络、或两种或更多种这样的网络的组合。例如,网络1080或网络1080的一部分可以包括无线或蜂窝网络,并且耦合1082可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或另一种类型的蜂窝或无线耦合。在该示例中,耦合1082可以实现多种类型的数据传输技术中的任何一种,如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、增强型数据速率GSM演进(EDGE)技术、包括3G、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、微波接入全球互操作性(WiMAX)、长期演进(LTE)标准的第三代合作伙伴计划(3GPP)、由各种标准设置组织定义的其他技术、其他长程协议、或其他数据传输技术。
指令1016可以使用传输介质经由网络接口设备(例如,包括在通信组件1064中的网络接口组件)并利用多种众所周知的传输协议(例如,超文本传输协议(HTTP))中的任何一种在网络1080上传输或接收。类似地,指令1016可以使用传输介质经由耦合1072(例如,对等耦合)传输或接收到设备1070。术语“传输介质”和“信号介质”意思相同,在本公开中可以互换使用。术语“传输介质”和“信号介质”应被理解为包括能够存储、编码或携带由机器1000执行的指令1016的任何无形介质,并且包括数字或模拟通信信号或便于这种软件的通信的其他无形介质。因此,术语“传输介质”和“信号介质”应被理解为包括任何形式的调制数据信号、载波等。术语“调制数据信号”意指这样的信号:其具有以对信号中的信息进行编码的这样的方式设置或更改的其特性中的一个或更多个特性。
术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意思相同,并且在本公开中可以互换使用。这些术语被定义为包括机器存储介质和传输介质。因此,这些术语包括存储设备/介质和载波/调制数据信号。
本文所述的示例方法的各种操作可以至少部分地由(例如,通过软件)临时配置或永久地配置为执行相关操作的一个或更多个处理器来执行。类似地,本文描述的方法可以至少部分地是处理器实现的。例如,方法800和900的至少一些操作可以由一个或更多个处理器执行。某些操作的执行可以分布在一个或更多个处理器中,不仅驻留在单个机器内,而且部署在多个机器上。在一些示例实施例中,一个或更多个处理器可以位于单个位置(例如,在家庭环境、办公室环境或服务器场内)中,而在其他实施例中,处理器可以分布在多个位置上。
以下编号的示例是实施例:
示例1。一种方法,包括:通过第一数据库部署识别包括多个虚拟专用网络节点的虚拟专用网络,该虚拟专用网络连接到多个虚拟私有云,包括第一虚拟私有云上的第一数据库部署和第二虚拟私有云上的第二数据库部署;由第一数据库部署生成要复制到第二数据库部署的数据库项目;确定数据库项目用于传输到第二虚拟私有云上的一个或更多个代理服务器;响应于确定数据库项目用于传输到第二虚拟私有云,使用第一虚拟私有云的托管连接将数据库项目导出到虚拟专用网络以传输到第二虚拟私有云上的一个或更多个代理服务器,使用虚拟专用网络的多个虚拟专用网络节点将数据库项目传输到第二虚拟私有云,第二数据库部署使用将数据库项目导入第二数据库部署的另一个托管连接从虚拟专用网络接收数据库项目。
示例2。根据示例1的方法,其中多个虚拟专用网络节点位于包括第一地理区域和第二地理区域的不同地理位置。
示例3。根据示例1或2中任一个或更多个的方法,其中第一虚拟私有云由第一地理区域中的第一数据中心托管,第二虚拟私有云由第二地理区域中的第二数据中心托管。
示例4。根据示例1-3中任一个或更多个示例所述的方法,其中,数据库项目在加密消息序列中从第一虚拟私有云传输到第二虚拟私有云。
示例5。根据示例1-4中任一个或更多个示例所述的方法,其中每个加密消息通过变化的对称密钥和第二数据库部署的公钥来加密。
示例6。一个或更多个示例1-5中任一个的方法,其中每个加密消息的变化的对称密钥被包括在加密消息中。
示例7。根据示例1-6中任一示例所述的方法,其中,数据库项目被定向到第二虚拟私有云中的网络负载平衡器,网络负载平衡器将数据库项目分发到第二虚拟私有云中的一个或更多个代理服务器。
示例8。根据示例1-7中任一示例所述的方法,其中确定数据库项目被寻址到第二虚拟私有云上的一个或更多个代理服务器包括:识别用于使用一个或更多个代理服务器进行代理的预先配置的部署元组,预先配置的部署元组包括发送数据库部署和目的地数据库部署。
示例9。根据示例1-8中任一示例所述的方法,其中,响应于确定第一数据库部署与发送数据库部署相匹配,并且第二数据库部署与预先配置的部署元组中的目的地数据库部署相匹配,用于复制的数据库项目通过虚拟专用网络被代理到一个或更多个代理服务器。
示例10。根据示例1-9中任一示例所述的方法,还包括:由第一数据库部署生成附加数据库项目,用于传输到第二虚拟私有云外部的第三数据库部署。
示例11。根据一个或更多个示例1-10中任一个的方法,还包括:确定第三数据库部署与预先配置的部署元组中的目的地数据库部署不匹配。
示例12。根据示例1-11中任一示例所述的方法,还包括:响应于第三数据库部署与预先配置的部署元组中的目的地数据库部署不匹配,在不使用虚拟专用网络节点的情况下,将附加数据库项目传输到第三数据库部署。
示例13。根据示例1-12中任一个或更多个示例所述的方法,其中附加数据库项目作为加密消息在互联网上被传输到第三数据库部署。
示例14。根据示例1-13中任一个或更多个示例所述的方法,其中第一虚拟私有云和第二虚拟私有云是虚拟云网络站点的不同子网。
示例15。根据示例1-14中任一个或更多个示例所述的方法,其中,第一虚拟私有云是虚拟云网络站点的私有子网,第二虚拟私有云是不同虚拟云网络站点的私有子网。
示例16。一种系统,包括:机器的一个或更多个处理器;和存储指令的存储器,当指令被一个或更多个处理器执行时,使得机器执行实现示例方法1-15中的任何一个的操作。
示例17。一种包含指令的非暂时性机器可读存储设备,当由机器执行时,该指令使得机器执行实现方法1-15之一的操作。
尽管已经参考具体示例实施例描述了本公开的实施例,但是很明显,在不脱离本发明主题的更宽范围的情况下,可以对这些实施例进行各种修改和改变。因此,说明书和附图被认为是说明性的,而不是限制性的。形成本文一部分的附图以说明而非限制的方式示出了可以实践本主题的具体实施例。充分详细地描述了图示的实施例,以使本领域技术人员能够实践这里公开的教导。可以使用其他实施例并从中导出,从而可以在不脱离本公开的范围的情况下进行结构和逻辑的替换和改变。因此,该详细描述不应被视为限制性的,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围来限定。
发明主题的此类实施例可以在本文中单独地和/或共同地由术语“发明”提到,该术语仅出于便利目的并且不意在自愿将本申请的范围限于任何单一发明或发明构思,如果实际上披露的多于一种的话。因此,虽然已经在此说明和描述了特定实施例,但是应当理解,可以用经计算以实现相同目的的任何布置替换用于所示的具体实施例。本公开旨在覆盖各种实施例的任何和所有修改或变型。在阅读以上描述后,本领域的技术人员将明白以上实施例的组合以及本文未具体描述的其他实施例。
在本文档中,术语“一个(a)”或“一个(an)”,如专利文档中常见的那样,用于包括一个或多于一个,与“至少一个”或“一个或更多个”的任何其他实例或用法无关。。在本文档中,术语“或”用于指非排他性的或,因此“A或B”包括“A但不包括B”、“B但不包括A”和“A和B”,除非另有说明。在所附权利要求中,术语“包括(including)”和“其中(in which)”被用作相应术语“包含(comprising)”和“其中(wherein)”的纯英语等效词。此外,在所附权利要求中,术语“包括”和“包含”是开放式的;也就是说,包括除了权利要求中这样的术语之后列出的那些元素之外的元素的系统、设备、物品或过程仍然被认为落入该权利要求的范围内。

Claims (30)

1.一种数据传输的方法,包括:
通过第一数据库部署识别包括多个虚拟专用网络节点的虚拟专用网络,所述虚拟专用网络连接到多个虚拟私有云,包括第一虚拟私有云上的第一数据库部署和第二虚拟私有云上的第二数据库部署;
由所述第一数据库部署生成要复制到所述第二数据库部署的数据库项目;
确定所述数据库项目用于传输到所述第二虚拟私有云上的一个或更多个代理服务器;和
响应于确定所述数据库项目用于传输到所述第二虚拟私有云,使用所述第一虚拟私有云的托管连接将所述数据库项目导出到所述虚拟专用网络以传输到所述第二虚拟私有云上的一个或更多个代理服务器,使用所述虚拟专用网络的所述虚拟专用网络节点将所述数据库项目传输到所述第二虚拟私有云,所述第二数据库部署使用将所述数据库项目导入所述第二数据库部署的另一个托管连接从所述虚拟专用网络接收所述数据库项目。
2.根据权利要求1所述的方法,其中所述多个虚拟专用网络节点中的不同节点位于包括第一地理区域和第二地理区域的不同地理位置。
3.根据权利要求2所述的方法,其中所述第一虚拟私有云由所述第一地理区域中的第一数据中心托管,所述第二虚拟私有云由所述第二地理区域中的第二数据中心托管。
4.根据权利要求1所述的方法,其中所述数据库项目以加密消息序列从所述第一虚拟私有云传输到所述第二虚拟私有云。
5.根据权利要求4所述的方法,其中每个加密消息通过变化的对称密钥和所述第二数据库部署的公钥来加密。
6.根据权利要求5所述的方法,其中每个加密消息的变化的对称密钥被包括在所述加密消息中。
7.根据权利要求1所述的方法,其中所述数据库项目被定向到所述第二虚拟私有云中的网络负载平衡器,所述网络负载平衡器将所述数据库项目分发到所述第二虚拟私有云中的一个或更多个代理服务器。
8.根据权利要求1所述的方法,其中确定所述数据库项目用于传输到所述第二虚拟私有云上的一个或更多个代理服务器包括:
识别用于使用所述一个或更多个代理服务器进行代理的预先配置的部署元组,所述预先配置的部署元组包括发送数据库部署和目的地数据库部署。
9.根据权利要求8所述的方法,其中,响应于确定所述第一数据库部署与所述发送数据库部署相匹配,并且所述第二数据库部署与所述预先配置的部署元组中的所述目的地数据库部署相匹配,用于复制的数据库项目经由所述虚拟专用网络被代理到所述一个或更多个代理服务器。
10.根据权利要求8所述的方法,还包括:
由所述第一数据库部署生成附加数据库项目,用于传输到所述第二虚拟私有云外部的第三数据库部署。
11.根据权利要求10所述的方法,还包括:
确定所述第三数据库部署与所述预先配置的部署元组中的所述目的地数据库部署不匹配。
12.根据权利要求11所述的方法,还包括:
响应于确定所述第三数据库部署与所述预先配置的部署元组中的所述目的地数据库部署不匹配,在不使用所述虚拟专用网络节点的情况下将所述附加数据库项目传输到所述第三数据库部署。
13.根据权利要求12所述的方法,其中所述附加数据库项目作为加密消息被传输到所述第三数据库部署。
14.根据权利要求1所述的方法,其中所述第一虚拟私有云和所述第二虚拟私有云对应于虚拟云网络站点的不同子网。
15.根据权利要求1所述的方法,其中所述第一虚拟私有云是第一虚拟云网络站点的私有子网,并且所述第二虚拟私有云是第二虚拟云网络站点的私有子网。
16.一种计算机系统,包括:
机器的一个或更多个处理器;和
存储器,其存储指令,当由所述一个或更多个处理器执行时,所述指令使得所述机器执行操作,所述操作包括:
通过第一数据库部署识别包括多个虚拟专用网络节点的虚拟专用网络,所述虚拟专用网络连接到多个虚拟私有云,包括第一虚拟私有云上的第一数据库部署和第二虚拟私有云上的第二数据库部署;
由所述第一数据库部署生成要复制到所述第二数据库部署的数据库项目;
确定所述数据库项目用于传输到所述第二虚拟私有云上的一个或更多个代理服务器;和
响应于确定所述数据库项目用于传输到所述第二虚拟私有云,使用所述第一虚拟私有云的托管连接将所述数据库项目导出到所述虚拟专用网络以传输到所述第二虚拟私有云上的一个或更多个代理服务器,使用所述虚拟专用网络的所述多个虚拟专用网络节点将所述数据库项目传输到所述第二虚拟私有云,所述第二数据库部署使用将所述数据库项目导入所述第二数据库部署的另一个托管连接从所述虚拟专用网络接收所述数据库项目。
17.根据权利要求16所述的系统,其中所述多个虚拟专用网络节点位于包括第一地理区域和第二地理区域的不同地理位置。
18.根据权利要求17所述的系统,其中所述第一虚拟私有云由所述第一地理区域中的第一数据中心托管,所述第二虚拟私有云由所述第二地理区域中的第二数据中心托管。
19.根据权利要求16所述的系统,其中所述数据库项目以加密消息序列从所述第一虚拟私有云传输到所述第二虚拟私有云。
20.根据权利要求19所述的系统,其中每个加密消息通过变化的对称密钥和所述第二数据库部署的公钥来加密。
21.根据权利要求20所述的系统,其中每个加密消息的变化的对称密钥被包括在所述加密消息中。
22.根据权利要求16所述的系统,其中所述数据库项目被定向到所述第二虚拟私有云中的网络负载平衡器,所述网络负载平衡器将所述数据库项目分发到所述第二虚拟私有云中的一个或更多个代理服务器。
23.根据权利要求16所述的系统,其中确定所述数据库项目用于传输到所述第二虚拟私有云上的一个或更多个代理服务器包括:
识别用于使用所述一个或更多个代理服务器进行代理的预先配置的部署元组,所述预先配置的部署元组包括发送数据库部署和目的地数据库部署。
24.根据权利要求23所述的系统,其中,响应于确定所述第一数据库部署与所述发送数据库部署相匹配,并且所述第二数据库部署与所述预先配置的部署元组中的所述目的地数据库部署相匹配,用于复制的数据库项目通过所述虚拟专用网络被代理到所述一个或更多个代理服务器。
25.根据权利要求23所述的系统,所述操作还包括:
由所述第一数据库部署生成附加数据库项目,用于传输到所述第二虚拟私有云外部的第三数据库部署;
确定所述第三数据库部署与所述预先配置的部署元组中的所述目的地数据库部署不匹配;和
响应于确定所述第三数据库部署与所述预先配置的部署元组中的所述目的地数据库部署不匹配,在不使用所述虚拟专用网络节点的情况下将所述附加数据库项目传输到所述第三数据库部署。
26.一种包含指令的计算机存储介质,当由机器执行时,所述指令使所述机器执行操作,所述操作包括:
通过第一数据库部署识别包括多个虚拟专用网络节点的虚拟专用网络,所述虚拟专用网络连接到多个虚拟私有云,包括第一虚拟私有云上的第一数据库部署和第二虚拟私有云上的第二数据库部署;
由所述第一数据库部署生成要复制到所述第二数据库部署的数据库项目;
确定所述数据库项目用于传输到所述第二虚拟私有云上的一个或更多个代理服务器;和
响应于确定所述数据库项目用于传输到所述第二虚拟私有云,使用所述第一虚拟私有云的托管连接将所述数据库项目导出到所述虚拟专用网络以传输到所述第二虚拟私有云上的一个或更多个代理服务器,使用所述虚拟专用网络的所述多个虚拟专用网络节点将所述数据库项目传输到所述第二虚拟私有云,所述第二数据库部署使用将所述数据库项目导入所述第二数据库部署的另一个托管连接从所述虚拟专用网络接收所述数据库项目。
27.根据权利要求26所述的计算机存储介质,其中所述多个虚拟专用网络节点位于包括第一地理区域和第二地理区域的不同地理位置。
28.根据权利要求27所述的计算机存储介质,其中所述第一虚拟私有云由所述第一地理区域中的第一数据中心托管,所述第二虚拟私有云由所述第二地理区域中的第二数据中心托管。
29.根据权利要求26所述的计算机存储介质,其中所述数据库项目以加密消息序列从所述第一虚拟私有云传输到所述第二虚拟私有云。
30.根据权利要求29所述的计算机存储介质,其中每个加密消息通过变化的对称密钥和所述第二数据库部署的公钥来加密。
CN202180001744.3A 2020-04-30 2021-04-29 云数据库的专用虚拟网络复制 Active CN113875206B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/862,996 US10855660B1 (en) 2020-04-30 2020-04-30 Private virtual network replication of cloud databases
US16/862,996 2020-04-30
PCT/US2021/029864 WO2021222543A1 (en) 2020-04-30 2021-04-29 Private virtual network replication of cloud databases

Publications (2)

Publication Number Publication Date
CN113875206A CN113875206A (zh) 2021-12-31
CN113875206B true CN113875206B (zh) 2023-09-19

Family

ID=73554917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180001744.3A Active CN113875206B (zh) 2020-04-30 2021-04-29 云数据库的专用虚拟网络复制

Country Status (4)

Country Link
US (9) US10855660B1 (zh)
EP (1) EP4144066A4 (zh)
CN (1) CN113875206B (zh)
WO (1) WO2021222543A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10855660B1 (en) 2020-04-30 2020-12-01 Snowflake Inc. Private virtual network replication of cloud databases
US11675806B2 (en) * 2020-12-14 2023-06-13 Snowflake Inc. Aggregate and transactional networked database query processing
US20220247566A1 (en) * 2021-01-29 2022-08-04 Millennium Info Tech Inc. System and method for an improved cloud based e-signature platform
US11843517B1 (en) * 2021-09-27 2023-12-12 Amazon Technologies, Inc. Satellite virtual private cloud network environments
US20240111784A1 (en) * 2022-09-30 2024-04-04 Snowflake Inc. Distributing large amounts of global metadata using object files
US11775559B1 (en) * 2022-09-30 2023-10-03 Snowflake Inc. Distributing large amounts of global metadata using object files
US11989164B2 (en) 2022-09-30 2024-05-21 Snowflake Inc. Data dictionary metadata for marketplace listings

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107483390A (zh) * 2016-06-08 2017-12-15 成都赫尔墨斯科技股份有限公司 一种云渲染网络部署子系统、系统及云渲染平台
CN111052106A (zh) * 2018-04-27 2020-04-21 甲骨文国际公司 从远程服务器进行异构数据库复制的系统和方法
CN111066300A (zh) * 2018-01-26 2020-04-24 Nicira股份有限公司 通过跨多个虚拟私有云共享的控制虚拟私有云为工作负载提供联网和安全

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014523A1 (en) * 2001-07-13 2003-01-16 John Teloh Storage network data replicator
US20030024523A1 (en) 2001-08-03 2003-02-06 Test-Rite Products Corporation Barbecue grill
US20030200168A1 (en) * 2002-04-10 2003-10-23 Cullen Andrew A. Computer system and method for facilitating and managing the project bid and requisition process
US7619966B2 (en) * 2003-02-21 2009-11-17 Alcatel Lucent Hybrid virtual private LAN extensions
US7433359B2 (en) * 2004-05-28 2008-10-07 Fujitsu Limited Application of an Ethernet/MPLS half bridge to provide Ethernet multiplexing functions (EMF) in SONET network elements (NEs)
US7502796B2 (en) * 2004-06-16 2009-03-10 Solid Information Technology Oy Arrangement and method for optimizing performance and data safety in a highly available database system
US7640312B2 (en) * 2005-03-31 2009-12-29 International Business Machines Corporation Method, system, and program product for managing communications pursuant to an information technology (IT) migration
US8166205B2 (en) * 2007-07-31 2012-04-24 Cisco Technology, Inc. Overlay transport virtualization
US10055699B2 (en) * 2009-11-03 2018-08-21 Automation Creations, Inc. System for supermarket energy management
US9531508B2 (en) * 2009-12-23 2016-12-27 Pismo Labs Technology Limited Methods and systems for estimating missing data
US8832130B2 (en) * 2010-08-19 2014-09-09 Infosys Limited System and method for implementing on demand cloud database
US8321443B2 (en) * 2010-09-07 2012-11-27 International Business Machines Corporation Proxying open database connectivity (ODBC) calls
WO2012042509A1 (en) * 2010-10-01 2012-04-05 Peter Chacko A distributed virtual storage cloud architecture and a method thereof
GB2499547B (en) * 2010-11-22 2020-04-22 Ibm Load balancing in distributed database
US8699499B2 (en) * 2010-12-08 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to provision cloud computing network elements
CN103067416A (zh) * 2011-10-18 2013-04-24 华为技术有限公司 一种虚拟私云接入认证方法及相关装置
US9246765B2 (en) * 2012-06-20 2016-01-26 Cognizant Business Services Limited Apparatus and methods for auto-discovery and migration of virtual cloud infrastructure
US11157664B2 (en) * 2013-07-09 2021-10-26 Oracle International Corporation Database modeling and analysis
US9317520B2 (en) * 2013-07-30 2016-04-19 International Business Machines Corporation State scope data file sharing
US9389893B2 (en) * 2013-08-13 2016-07-12 Vmware, Inc. Method and system for migration of virtual machines and virtual applications between cloud-computing facilities through multiplexed secure tunnels
US9514164B1 (en) * 2013-12-27 2016-12-06 Accenture Global Services Limited Selectively migrating data between databases based on dependencies of database entities
US10346374B1 (en) * 2014-03-14 2019-07-09 Open Invention Network Llc Optimized data migration application for database compliant data extraction, loading and transformation
US10616377B2 (en) * 2014-04-03 2020-04-07 Centurylink Intellectual Property Llc System and method for implementing network enhanced gateway functionality
US10063429B2 (en) * 2014-04-09 2018-08-28 The Keyw Corporation Systems and methods for optimizing computer network operations
WO2016025321A1 (en) * 2014-08-13 2016-02-18 OneCloud Labs, Inc. Replication of virtualized infrastructure within distributed computing environments
US11329980B2 (en) * 2015-08-21 2022-05-10 Veridium Ip Limited System and method for biometric protocol standards
US10565067B2 (en) * 2016-03-09 2020-02-18 Commvault Systems, Inc. Virtual server cloud file system for virtual machine backup from cloud operations
US10296368B2 (en) * 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US10909120B1 (en) * 2016-03-30 2021-02-02 Groupon, Inc. Configurable and incremental database migration framework for heterogeneous databases
US10484302B2 (en) * 2016-08-27 2019-11-19 Nicira, Inc. Managed forwarding element executing in public cloud data compute node with different internal and external network addresses
US10735553B2 (en) * 2016-11-23 2020-08-04 Level 3 Communications, Llc Micro-services in a telecommunications network
CN106686070B (zh) * 2016-12-13 2020-10-16 腾讯科技(深圳)有限公司 一种数据库数据迁移方法、装置、终端及系统
US11516183B2 (en) * 2016-12-21 2022-11-29 Gambro Lundia Ab Medical device system including information technology infrastructure having secure cluster domain supporting external domain
US10877994B2 (en) * 2017-03-07 2020-12-29 Salesforce.Com, Inc. Identifier based data replication
US20180284999A1 (en) * 2017-03-28 2018-10-04 International Business Machines Corporation Data Migration with Application-Native Export and Import Capabilities
US10447498B2 (en) * 2017-10-06 2019-10-15 ZenDesk, Inc. Facilitating communications between virtual private clouds hosted by different cloud providers
US10268704B1 (en) * 2017-10-12 2019-04-23 Vast.com, Inc. Partitioned distributed database systems, devices, and methods
WO2019090153A1 (en) * 2017-11-03 2019-05-09 Todyl, Inc. Cloud-based multi-function firewall and zero trust private virtual network
US10547679B1 (en) * 2018-01-02 2020-01-28 Architecture Technology Corporation Cloud data synchronization based upon network sensing
US11347701B2 (en) * 2018-02-13 2022-05-31 Citrix Systems, Inc. Live zero downtime migration of databases with disparate schemata
EP3544310A1 (en) * 2018-03-23 2019-09-25 Deutsche Telekom AG Method for an improved operation of a telecommunications network being operated as a multi-operator sliced network, telecommunications network, system, provider infrastructure control center, network of a service provider, program and computer-readable medium
US11263305B2 (en) * 2018-05-09 2022-03-01 Netflix, Inc. Multilayered approach to protecting cloud credentials
US11196591B2 (en) * 2018-08-24 2021-12-07 Vmware, Inc. Centralized overlay gateway in public cloud
US11386117B2 (en) * 2018-10-31 2022-07-12 Sap Se Synchronization of customized templates across multiple cloud-based systems
US10990608B2 (en) * 2019-03-19 2021-04-27 Snowflake Inc. Transferring connections in a multiple deployment database
US11609928B2 (en) * 2019-08-23 2023-03-21 Salesforce, Inc. Systems and methods of determining target database for replication of tenant data
US11256671B2 (en) * 2019-09-13 2022-02-22 Oracle International Corporation Integrated transition control center
US11567808B2 (en) * 2019-12-12 2023-01-31 Sap Se Dependency handling for configuration transport
US20210303404A1 (en) * 2020-03-30 2021-09-30 Microstrategy Incorporated Systems and methods for database migration
US10855660B1 (en) 2020-04-30 2020-12-01 Snowflake Inc. Private virtual network replication of cloud databases

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107483390A (zh) * 2016-06-08 2017-12-15 成都赫尔墨斯科技股份有限公司 一种云渲染网络部署子系统、系统及云渲染平台
CN111066300A (zh) * 2018-01-26 2020-04-24 Nicira股份有限公司 通过跨多个虚拟私有云共享的控制虚拟私有云为工作负载提供联网和安全
CN111052106A (zh) * 2018-04-27 2020-04-21 甲骨文国际公司 从远程服务器进行异构数据库复制的系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
郭志斌 ; 李璐颖 ; 王志军 ; .Openstack Trove与沃云数据库即服务对比.信息通信技术.2014,(第06期),全文. *

Also Published As

Publication number Publication date
US20220321538A1 (en) 2022-10-06
WO2021222543A1 (en) 2021-11-04
EP4144066A1 (en) 2023-03-08
US11063911B1 (en) 2021-07-13
US20230073653A1 (en) 2023-03-09
US20220116360A1 (en) 2022-04-14
US11943203B2 (en) 2024-03-26
US20240195785A1 (en) 2024-06-13
CN113875206A (zh) 2021-12-31
US11539672B2 (en) 2022-12-27
EP4144066A4 (en) 2024-03-13
US10999252B1 (en) 2021-05-04
US20210392114A1 (en) 2021-12-16
US11134061B1 (en) 2021-09-28
US10855660B1 (en) 2020-12-01
US11223603B2 (en) 2022-01-11
US11374908B2 (en) 2022-06-28

Similar Documents

Publication Publication Date Title
CN113875206B (zh) 云数据库的专用虚拟网络复制
US11539677B2 (en) Message-based database replication
US11507685B1 (en) Privilege based access checks for query results
US11349952B2 (en) Remote execution using a global identity
US11249850B1 (en) Cluster diagnostics data for distributed job execution
US20240061860A1 (en) Managing database traffic between isolated database systems
CN116204580A (zh) 在多部署数据库中复制帐户安全特征
Liu et al. HASG: Security and efficient frame for accessing cloud storage
US11870895B1 (en) Distributed secret storage and authorization

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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: Montana

Patentee after: Snowflake Co.

Country or region after: U.S.A.

Address before: Montana

Patentee before: SNOWFLAKE COMPUTING Inc.

Country or region before: U.S.A.

CP03 Change of name, title or address