CN113228593B - 从存储平台加载或卸载数据的数据库系统、方法及介质 - Google Patents
从存储平台加载或卸载数据的数据库系统、方法及介质 Download PDFInfo
- Publication number
- CN113228593B CN113228593B CN202080007511.XA CN202080007511A CN113228593B CN 113228593 B CN113228593 B CN 113228593B CN 202080007511 A CN202080007511 A CN 202080007511A CN 113228593 B CN113228593 B CN 113228593B
- Authority
- CN
- China
- Prior art keywords
- storage
- cloud
- identity
- data
- command
- 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
Links
- 238000000034 method Methods 0.000 title claims description 61
- 230000010354 integration Effects 0.000 claims abstract description 151
- 230000004044 response Effects 0.000 claims abstract description 16
- 230000015654 memory Effects 0.000 claims description 19
- 238000012795 verification Methods 0.000 claims 2
- 238000013500 data storage Methods 0.000 description 38
- 238000007726 management method Methods 0.000 description 34
- 238000004891 communication Methods 0.000 description 30
- 230000008569 process Effects 0.000 description 22
- 238000012545 processing Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 8
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 1
- 229910000078 germane Inorganic materials 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/068—Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
- H04L63/0846—Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0884—Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/105—Multiple levels of security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/107—Network architectures or network communication protocols for network security for controlling access to devices or network resources wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/081—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying self-generating credentials, e.g. instead of receiving credentials from an authority or from another peer, the credentials are generated at the entity itself
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
存储集成对象是在数据仓库系统的数据库中创建的。存储集成对象标识云存储提供商系统的存储平台中的存储位置和由基于网络的数据仓库系统维护的云身份对象。在云存储提供商的存储平台处,云身份对象与被授予访问存储位置的许可的代理身份对象相关联。基于存储集成对象创建外部暂存区对象。外部暂存区对象标识存储位置,并包括与存储集成对象的关联。接收加载或卸载存储位置处的数据的命令。响应于该命令,经由代理身份对象,使用外部暂存区对象加载或卸载存储位置处的数据。
Description
优先权申请的交叉引用
本申请要求2019年11月14日提交并于2020年6月14日作为美国专利第10,715,524号发布的美国专利申请序列号16/683,641的优先权,其内容通过引用整体结合于此。
背景
云数据仓库(也称为“基于网络的数据仓库(network-based data warehouse)”或简称为“数据仓库”)是用于数据分析和报告的基于网络的系统,其包括来自一个或更多个不同源的集成数据的中央储存库。云数据仓库可以存储可用于为企业创建分析报告的当前和历史数据。为此,数据仓库通常提供商业智能工具、提取、变换数据并将数据加载到储存库中的工具、以及管理和检索元数据的工具。
外部暂存区(external stage)是云数据仓库中的组件,有助于云数据仓库系统和客户管理的存储位置之间的集成(此处称为“存储集成”)。一般来说,外部暂存区用于向客户管理的存储位置加载数据和从客户管理的存储位置卸载数据。在传统的实施方式中,必须向外部暂存区提供秘密安全证书,以从这些存储位置读取数据和向这些存储位置写入数据。然而,秘密安全证书的交换产生了可能导致秘密安全证书暴露的漏洞,这可能导致对数据的未授权访问。此外,在传统实施方式中,云数据仓库帐户管理员禁止组织中的成员创建外部暂存区的能力有限,并且外部暂存区可能被用来将机密数据泄露到个人位置。此外,存储所有者对存储位置的访问许可没有精细的控制。传统的外部暂存区也仅限于在单个文件路径中使用,不能在另一个文件路径中使用,即使用于创建外部暂存区的证书适用于另一个文件路径。
附图简述
从下面给出的详细描述和本公开的各种实施例的附图中,将更全面地理解本公开。
图1示出根据本公开一些实施例的示例计算环境,其包括与云存储提供商系统通信的基于网络的数据仓库系统。
图2是示出根据本公开的一些实施例,使用计算环境中的外部无证书暂存区对象将云存储提供商系统内的存储位置处的数据加载或卸载到基于网络的数据仓库系统的数据流图。
图3是示出根据本公开的一些实施例,在不交换与存储位置相关联的安全证书的情况下,在将云存储提供商系统内的存储位置处的数据加载或卸载到基于网络的数据仓库系统中时的计算环境中的组件之间的交互的交互图。
图4和图5是示出根据本公开的一些实施例,基于网络的数据仓库在执行使用无证书外部暂存区对象从外部存储平台加载或卸载数据的方法时的操作的流程图。
图6是示出根据本公开一些实施例的计算服务管理器的组件的框图。
图7是示出根据本公开一些实施例的执行平台的组件的框图。
图8示出根据本公开一些实施例的以计算机系统形式的机器的示意图表示,用于使机器执行本文所讨论方法中的任何一个或更多个的指令集合可以在该计算机系统内执行。
详细描述
现在将详细参考用于实现本发明主题的具体示例实施例。这些具体实施例的示例在附图中示出,并且具体细节在以下描述中阐述,以便提供对主题的透彻理解。应当理解,这些示例并不旨在将权利要求的范围限制于所示的实施例。相反,它们旨在覆盖可能包含在本公开范围内的替代、修改和等同物。
如上所述,在基于网络的数据仓库中使用外部暂存区向客户管理的存储位置加载数据和从客户管理的存储位置卸载数据,并且传统的外部暂存区必须具有秘密安全证书,以便能够访问这些存储位置,这可能会对数据造成安全漏洞。本公开的各方面通过创建不需要用户与基于网络的数据仓库共享秘密安全证书的无证书外部暂存区对象来解决现有数据仓库功能的上述和其他缺陷,以便于在外部云存储提供商系统中的存储位置加载和卸载数据。这里描述的无证书外部状态对象还允许客户端帐户管理员通过对访问许可的细粒度控制来防止数据泄露。
与一些实施例一致,基于网络的数据仓库创建集成对象,该集成对象包括外部云存储提供商系统(例如,Amazon Web(AWS)、Microsoft Azure Blob或谷歌云存储)的存储平台中的存储位置的标识符(例如,通用资源定位符(URL)),基于网络的数据仓库将被提供对该存储位置的访问以加载和卸载数据。集成对象还包括由外部云存储提供商系统维护的代理身份对象的标识符。一旦创建,基于网络的数据仓库将集成对象与云身份对象相关联,云存储提供商系统将云身份对象与代理身份对象相关联。代理身份对象定义了被授予访问存储位置的许可的代理身份,并且可以由云身份对象采用以在存储位置加载和卸载数据。
数据仓库根据创建存储集成的命令创建集成对象。该命令可以由例如数据仓库的客户端帐户的管理用户提供。与集成对象相关联的云身份对象对应于用户所属的客户端帐户。存储集成定义包括存储位置的标识符、代理身份对象的标识符和云存储提供商系统的标识符。在某些情况下,存储集成定义可以进一步指定允许或拒绝访问的一个或更多个存储位置。存储定义对象可以指定存储位置中拒绝访问的某些段。例如,存储位置可以由对应于存储平台内的存储资源(例如桶或文件夹)的文件路径来标识,并且该命令可以指定文件路径内拒绝访问的子文件夹。在另一示例中,该命令可以指定允许访问的一个或更多个文件路径,并且在该示例中,默认情况下将拒绝对所有其他文件路径的访问。
数据仓库基于存储集成对象创建外部暂存区对象,以加载或卸载存储位置处的数据。外部暂存区对象包括存储位置的标识符和存储集成对象的标识符。数据仓库基于例如由提供存储集成定义的用户提供的创建外部暂存区对象的命令来创建外部暂存区对象。
基于网络的数据仓库可以接收加载或卸载存储位置处的数据的命令。该命令包括外部暂存区对象的标识符。响应于该命令,数据仓库利用外部暂存区对象在外部云存储提供商的存储平台中的存储位置加载或卸载数据。这样,基于网络的数据仓库使用与云身份对象相关联的安全证书来访问证书,以允许云身份对象采用代理身份来加载或卸载数据。以这种方式,外部暂存区对象使得能够加载或卸载存储位置处的数据,而无需与基于网络的数据仓库系统交换与存储位置相关联的安全证书或存储与存储位置相关联的安全证书。
如本文所述,无证书外部暂存区对象将向存储位置给予许可的过程与使用该存储位置来加载和卸载数据的过程分开。无证书外部暂存区对象还允许组织向基于网络的数据仓库给予使用其数据位置的许可,而不是向数据仓库给予秘密证书。组织可以与指定哪些角色可以创建和使用预先设置的暂存区分开地指定哪些角色可以创建和使用存储位置进行访问。例如,组织可能允许帐户管理员创建到存储位置的连接,并且因为只有帐户管理员可以创建存储集成,所以不能创建额外的存储集成来导出数据,从而防止机密数据泄漏到未知位置。创建后,非管理用户可以被授予从固定存储位置读取和写入他们创建的外部暂存区对象的许可。特权较低的用户可能仅具有使用现有暂存区的能力。
拥有创建存储集成许可的用户可以控制使用该集成可以访问基础位置下的哪些路径。给予帐户管理员指定哪些用户可以创建和使用存储集成的能力使组织能够控制他们的内部数据可以流向哪里,或者完全锁定数据导出。
外部无证书暂存区对象还提供了允许云存储提供商管理存储访问许可的好处,从而允许利用数据仓库的组织利用其存储提供商来管理基于网络的数据仓库的数据访问。如果帐户管理员决定撤销数据仓库对存储位置的访问,可以使用存储提供商提供的访问控制立即完成。
图1示出了根据本公开一些实施例的示例计算环境100,其包括与云存储提供商系统104通信的基于网络的数据仓库系统102。为了避免用不必要的细节模糊本发明主题,图1中省略了与传达对本发明主题的理解不密切相关的各种功能组件。然而,本领域技术人员将容易认识到,各种附加功能组件可以被包括作为计算环境100的一部分,以促进本文没有具体描述的附加功能。
如图所示,计算环境100包括基于网络的数据仓库系统102和云存储提供商系统104(例如,Microsoft Azure Blob或谷歌云 )。基于网络的数据仓库系统102是基于网络的系统,用于报告和分析来自包括云存储提供商系统104内的一个或更多个存储位置的一个或更多个不同源的集成数据。云存储提供商系统104包括多个计算机器,并向基于网络的数据仓库系统102按需提供计算机系统资源,如数据存储和计算能力。
基于网络的数据仓库系统102包括访问管理系统110、计算服务管理器112、执行平台114和数据库116。基于网络的数据仓库系统102托管多个客户端帐户并向其提供数据报告和分析服务。访问管理系统110使客户端账户的管理用户能够管理对基于网络的数据仓库系统102所提供的资源和服务的访问。管理用户可以创建和管理身份(例如,用户、角色和组),并使用许可来允许或拒绝身份对资源和服务的访问。
计算服务管理器112协调和管理基于网络的数据仓库系统102的操作。计算服务管理器112还执行查询优化和编译,以及管理提供计算资源的计算服务的集群(也称为“虚拟仓库”)。计算服务管理器112可以支持任意数量的客户端账户,如提供数据存储和检索请求的终端用户、管理本文描述的系统和方法的系统管理员以及与计算服务管理器112交互的其他组件/设备。
计算服务管理器112还耦合到数据库116,数据库116与存储在计算环境100中的数据相关联。数据库116存储数据,该数据涉及与基于网络的数据仓库系统102及其用户相关联的各种功能和方面。例如,数据库116存储一个或更多个无证书外部暂存区对象108。通常,外部暂存区对象108指定存储数据文件的存储位置(例如,URL),使得文件中的数据可以被加载到由数据仓库102内部存储的表中,或者使得来自表的数据可以被卸载到由数据仓库102内部存储的数据文件中。一个或更多个无证书外部暂存区对象108使得基于网络的数据仓库系统102能够访问云存储提供商系统104内的存储位置,而无需存储、使用或以其他方式访问与存储位置相关联的安全证书。
在一些实施例中,数据库116包括存储在远程数据存储系统中的数据以及可从本地高速缓存获得的数据的概要。另外,数据库116可以包括关于数据如何在远程数据存储系统(例如,云存储提供商系统104)和本地高速缓存中组织的信息。数据库116允许系统和服务确定是否需要在不从存储设备加载或访问实际数据的情况下访问一段数据。
计算服务管理器112还耦合到执行平台114,执行平台114提供执行各种数据存储和数据检索任务的多个计算资源。执行平台114耦合到云存储提供商系统104的存储平台122。存储平台122包括多个数据存储设备124-1至124-N。在一些实施例中,数据存储设备124-1至124-N是位于一个或更多个地理位置的基于云的存储设备。例如,数据存储设备124-1至124-N可以是公共云基础设施或私有云基础设施的一部分。数据存储设备124-1至124-N可以包括硬盘驱动(HDD)、固态驱动(SSD)、存储集群、亚马孙(Amazon)S3TM存储系统或任何其它数据存储技术。另外,云存储提供商系统104可以包括分布式文件系统(诸如,Hadoop分布式文件系统(HDFS))、对象存储系统等。
执行平台114包括多个计算节点。计算节点上的进程集合执行由计算服务管理器112编译的查询计划。进程集合可以包括:执行查询计划的第一进程;使用最近最少使用(least recently used,LRU)策略来监视和删除微分区文件,并实现内存不足(OOM)错误缓解进程的第二进程;从进程日志和状态提取健康信息以发送回计算服务管理器112的第三进程;在系统引导(boot)之后建立与计算服务管理器112的通信的第四进程;以及第五进程,该第五进程处理与由计算服务管理器112提供的给定作业的计算集群的所有通信,并将信息传送回计算服务管理器112和执行平台114的其他计算节点。
除了存储平台122,云存储提供商系统104还包括认证和身份管理系统118。认证和身份管理系统118允许用户创建和管理身份(例如,用户、角色和组),并使用许可来允许或拒绝身份对云服务和资源的访问。基于网络的数据仓库系统102的访问管理系统110和云存储提供商系统104的认证和身份管理系统118可以通信和共享信息,以便能够访问和管理由基于网络的数据仓库系统102和云存储提供商系统104的用户共享的资源和服务。
在一些实施例中,计算环境100的元件之间的通信链路经由一个或更多个数据通信网络来实现。这些数据通信网络可以利用任何通信协议和任何类型的通信介质。在一些实施例中,数据通信网络是彼此耦合的两个或更多个数据通信网络(或子网络)的组合。在替代实施例中,使用任何类型的通信介质和任何通信协议来实现这些通信链路。
如图1所示,数据存储设备124-1至124-N从与执行平台114相关联的计算资源解耦。该架构支持基于网络的数据仓库系统102的动态变化,该动态变化基于变化的数据存储/检索需求以及变化的用户和系统需求。对动态变化的支持允许基于网络的数据仓库系统102响应于对基于网络的数据仓库系统102内的系统和组件的不断变化的需求而快速变化规模(scale)。计算资源与数据存储设备的分离支持大量数据的存储,而无需相应的大量计算资源。类似地,资源的这种分离支持在特定时间使用的计算资源的显著增加,而无需相应增加可用数据存储资源。
计算服务管理器112、数据库116、执行平台114、存储平台122以及认证和身份管理系统118在图1中显示为单独的分立组件。然而,计算服务管理器112、数据库116、执行平台114、存储平台122以及认证和身份管理系统118中的每一个可以被实现为分布式系统(例如,分布在多个地理位置的多个系统/平台上)。此外,计算服务管理器112、数据库116、执行平台114、存储平台122以及认证和身份管理系统118中的每一个都可以根据接收到的请求的变化和基于网络的数据仓库系统102的变化的需求而按比例放大或缩小(彼此独立)。因此,在所描述的实施例中,基于网络的数据仓库系统102是动态的,并且支持频繁变化以满足当前的数据处理需求。
在典型操作期间,基于网络的数据仓库系统102处理由计算服务管理器112确定的多个作业。这些作业由计算服务管理器112调度和管理,以确定何时以及如何执行该作业。例如,计算服务管理器112可以将作业划分为多个离散任务,并且可以确定需要什么数据来执行多个离散任务中的每个离散任务。计算服务管理器112可以将多个离散任务中的每个离散任务分配给执行平台114的一个或更多个节点以处理任务。计算服务管理器112可以确定需要哪些数据来处理任务,并且进一步确定执行平台114内的哪些节点最适合于处理该任务。一些节点可能已经高速缓存了处理任务所需的数据,因此是用于处理任务的不错的候选者。存储在数据库116中的元数据帮助计算服务管理器112确定执行平台114中的哪些节点已经缓存了处理该任务所需的至少一部分数据。执行平台114中的一个或更多个节点使用由节点高速缓存的数据以及必要时从云存储提供商系统104检索到的数据来处理任务。期望从执行平台114内的高速缓存中检索尽可能多的数据,因为检索速度通常比从云存储提供商系统104中检索数据快得多。
如图1所示,计算环境100将执行平台114与存储平台122分开。在这种布置中,执行平台114中的处理资源和高速缓存资源独立于云存储提供商系统104中的数据存储设备124-1至124-n进行操作。因此,计算资源和高速缓存资源不限于具体的数据存储设备124-1至124-n。相反,所有计算资源和所有高速缓存资源可以从云存储提供商系统104中的任何数据存储资源检索数据,并将数据存储到其中。
图2是示出根据本公开的一些实施例的计算环境100内的外部暂存区对象200的使用的数据流图。外部暂存区对象200是图1所示的无证书外部暂存区对象108的示例。外部暂存区对象200由计算服务管理器112生成并存储在数据库116中。外部暂存区对象200由计算服务管理器112在客户端账户204内生成。计算服务管理器112基于从与基于网络的数据仓库系统102通信的计算设备接收的输入来创建外部暂存区对象200。例如,客户端账户204的用户205可以利用由基于网络的数据仓库系统102提供给计算设备206的命令行或其他用户界面来提供创建外部暂存区对象200的命令。
外部暂存区对象200是用于将存储平台122内的存储位置处的数据加载或卸载到基于网络的数据仓库系统102的组件。在该特定示例中,外部暂存区对象200将存储平台122内对应于存储资源208的存储位置指定为可以从中加载或卸载数据的位置。存储资源208驻留在存储平台122的一个或更多个存储设备124-1至124-N上。外部暂存区对象200还包括对存储集成对象202的引用(例如,指针)。
存储集成对象202由计算服务管理器112在客户端账户204内创建,并存储在数据库116内。计算服务管理器112基于从与基于网络的数据仓库系统102通信的客户端账户204的用户205的计算设备206接收的输入来创建外部暂存区对象200。例如,用户205可以利用由基于网络的数据仓库系统102提供给计算设备206的命令行或其他用户界面来提供创建存储集成对象202的命令。
应当理解,提供创建外部暂存区对象200的命令的用户可以是与提供创建存储集成对象202的命令的用户不同的用户。例如,具有管理员特权的第一用户——管理用户——可以提供创建存储集成对象202的命令,并且作为该命令的一部分,可以向第二用户授予使用存储集成对象202来创建外部暂存区对象的许可。在该示例中,第二用户可以提供创建外部暂存区对象200的命令。
存储集成对象202定义了基于网络的数据仓库系统102和存储平台122中外部管理的存储位置之间的存储集成。更具体地,存储集成对象202描述基于网络的数据仓库系统102和客户管理的存储资源208(例如,文件夹、数据桶或其他存储资源)之间的存储集成的属性。存储集成对象202包括对应于存储资源208的存储位置的标识符(例如,URL)和云存储提供商系统104的标识符。在一些实施例中,存储集成对象202可以进一步指定对数据的访问将被拒绝的一个或更多个存储位置。例如,外部暂存区对象200可以使用文件路径来标识允许访问的基础存储位置,并且存储集成对象202可以进一步使用文件路径的子路径来标识允许或拒绝访问的基础存储位置的一部分。
一旦创建,计算服务管理器112就将存储集成对象202与服务帐户212内的云身份对象210相关联,服务帐户212由与基于网络的数据仓库系统102和客户端帐户204相关联的认证和身份管理系统118维护。云身份对象210是云存储提供商系统104内与客户端账户204相关联的身份。云身份对象210可以在创建客户端账户204时创建。在创建时,唯一标识符(例如,资源名称(Amazon Resource Name,ARN))与云身份对象210相关联。存储提供商管理员可以利用认证和身份管理系统118向云身份对象210授予使用云身份对象210的标识符访问存储的许可。
计算服务管理器112可以以加密格式在数据库116中存储云存储提供商身份标识符。计算服务管理器112还可以以加密格式在数据库116中存储与每个云存储提供商身份相关联的安全证书。
云存储提供商系统104在云存储提供商系统104的客户端账户216内生成代理身份对象214。客户端账户216是与云存储提供商系统104内的客户端账户204相对应的客户端的账户。云存储提供商系统104基于由客户端账户216的管理用户指定的输入来生成代理身份对象214。在一些情况下,客户端帐户216的管理用户是用户205。
代理身份对象214定义具有用于在云存储提供商系统104内做出服务请求的相关联的信任策略的代理身份。更具体地,代理身份对象214包括允许云身份对象210采用代理身份从存储资源208读取数据和向存储资源208写入数据的一组许可,而不是唯一地与像用户这样的单个人相关联,代理身份对象214定义了可以由多个用户采用的代理身份。
在一些情况下,由代理身份对象214定义的代理身份不具有长期安全证书,并且在这些情况下,采用代理身份的另一身份利用由认证和身份管理系统118提供的临时安全证书来访问代理身份。与这些实施例一致,临时安全证书可以在到期时间之后到期。
响应于接收到将数据从对应于存储资源208的存储位置加载到内部管理的存储资源(例如,表)或将数据从内部管理的存储资源卸载到对应于存储资源208的存储位置的命令,基于网络的数据仓库系统102使用外部暂存区对象200来加载或卸载数据。特别地,计算服务管理器112使用外部暂存区对象200识别并访问存储集成对象202,并使用存储集成对象202来访问与云身份对象210相关联的安全证书。计算服务管理器112使用与云身份对象210相关联的安全证书来访问来自认证和身份管理系统118的安全证书,以允许云身份对象210采用由代理身份对象214定义的代理身份来在内部存储资源和存储资源208之间加载或卸载数据。
图3是示出根据本公开的一些实施例的方法300中基于网络的数据仓库系统102和云存储提供商系统104之间的交互的交互图,该方法300用于使用外部暂存区对象200将云存储提供商系统104内的存储资源208处的数据加载或卸载到基于网络的数据仓库系统102。为了便于解释,下面参考图1和图2所示的以及上面描述的组件来描述方法300。
在操作302,云存储提供商系统104在客户端账户216内创建代理身份对象214。云存储提供商系统104基于由客户端账户216的管理用户指定的输入来生成代理身份对象214。如上所述,代理身份对象214包括允许云身份对象210采用代理身份从存储资源208读取数据和向存储资源208写入数据的一组许可。
在操作304,基于网络的数据仓库系统102的计算服务管理器112在数据库116中创建存储集成对象202。计算服务管理器112基于由客户端账户204的第一用户(例如,用户205)提供的命令来创建存储集成对象202。第一用户可以是客户端账户204的管理用户。如上所述,存储集成对象202包括:集成名称、外部管理的存储位置的标识符(例如对应于存储资源208的URL);云存储提供商系统104的标识符;和代理身份对象214的标识符。在一些实施例中,存储集成对象202可以进一步指定对数据的访问将被拒绝的一个或更多个存储位置。对数据的访问将被拒绝的一个或更多个存储位置可以对应于对基于网络的数据仓库系统102的访问将被提供到的存储位置的部分。例如,外部暂存区对象200可以使用文件路径来标识允许访问的基础存储位置,并且存储集成对象202可以进一步使用文件路径的子路径来标识拒绝访问的基础存储位置的一部分。
在操作306,计算服务管理器112将存储集成对象202与云身份对象210相关联。计算服务管理器112基于客户端账户204和云身份对象210之间的关联将存储集成对象202与云身份对象210相关联。
在操作308,访问管理系统110为存储集成对象202设置使用许可。为集成对象设置使用许可可以包括授予第二用户使用存储集成对象的许可。在一些实施例中,访问管理系统110可以向对应于多个用户的身份授予使用许可,从而向与该身份相关联的每个用户提供使用许可。
在操作310,计算服务管理器112创建外部暂存区对象200。计算服务管理器112基于外部暂存区创建命令创建外部暂存区对象200,以加载或卸载存储位置处的数据。存储位置可以与存储集成对象202中指定的存储位置相同,或者可以包括存储集成对象202中指定的存储位置的一部分。外部暂存区对象200包括对应于存储位置的标识符(例如,对应于存储位置的URL)和对存储集成对象202的引用(例如,指针)。
在操作312,访问管理系统110为外部暂存区对象200设置使用许可。访问管理系统110可以基于从第二用户接收的输入来设置使用许可。集成对象的使用许可的设置可以包括向第三身份授予使用许可。第三身份可以对应于单个用户,或者可以与多个用户相关联。一旦向第三身份授予使用许可,与第三身份相关联的一个或更多个用户就被允许使用外部暂存区对象来加载或卸载数据。
在操作314,云存储提供商管理员在云存储提供商系统104上为代理身份对象设置使用许可。在设置代理身份对象的使用许可时,云存储提供商系统104向云身份对象授予使用代理身份对象在存储位置加载和卸载数据的许可。
在操作316,计算服务管理器112接收将数据从存储位置加载到内部管理的存储资源(例如,表)或将数据从内部管理的存储资源卸载到存储位置的命令。该命令包括外部暂存区对象200的标识符(例如,集成名称)。该命令可以从与第三身份相关联的第三用户的计算设备接收。在操作318,响应于该命令,计算服务管理器112使用外部暂存区对象200来执行该命令。在操作320,在执行该命令时,基于网络的数据仓库系统102使用与代理身份对象214相关联的安全证书向代理身份对象214进行认证,以采用由代理身份对象214定义的代理身份。在操作322,基于网络的数据仓库系统102采用代理身份对象214或者将数据从存储位置加载到内部管理的存储资源(例如,表),或者将数据从内部管理的存储资源卸载到存储位置。
图4和图5是示出根据本公开的一些实施例,基于网络的数据仓库系统102在执行用于使用外部暂存区对象200从存储平台122加载或卸载数据的方法400时的操作的流程图。方法400可以体现在由一个或更多个硬件组件(例如,一个或更多个处理器)执行的计算机可读指令中,使得方法400的操作可以由基于网络的数据仓库系统102的组件来执行。因此,方法400在下面通过参考其的示例来描述。然而,应当理解,方法400可以部署在各种其他硬件配置上,并且不旨在限于部署在基于网络的数据仓库系统102内。
在操作405,计算服务管理器112接收创建存储集成对象的命令(也称为“存储集成创建命令”)。存储集成创建命令从与数据仓库102通信的计算设备接收,并由第一用户通过基于网络的数据仓库系统102提供给计算设备的命令行或UI来指定。第一用户是属于基于网络的数据仓库系统102的客户端帐户的管理用户。通常,作为存储集成的一部分,该命令指定允许或阻止的存储位置。例如,该命令可以包括与云存储提供商系统104的存储平台122中的第一存储位置相对应的标识符(例如,URL),基于网络的数据仓库将被允许访问该第一存储位置以加载和卸载数据。第一存储位置对应于数据存储资源,例如数据文件夹或数据桶。存储集成创建命令还指定云存储提供商系统104、集成名称以及由云存储提供商系统104维护的代理身份对象的标识符。代理身份对象定义了具有访问第一存储位置的相关许可的代理身份。代理身份对象还包括允许云身份采用代理身份在第一存储位置加载和卸载数据的许可。
在一些情况下,第一存储位置可以是基础存储位置,并且存储集成创建命令可以进一步指定基于网络的数据仓库系统102对其的访问被拒绝的一个或更多个被阻止的存储位置。被阻止的位置可以对应于第一存储位置的一个或更多个部分。例如,第一存储位置可以对应于存储桶(例如,S3存储桶),并且存储集成创建命令可以指定存储桶内拒绝访问的一个或更多个文件夹。
在操作410,计算服务管理器112基于存储集成创建命令在数据库116中创建存储集成对象。存储集成对象指定第一存储位置(例如,URL)、云存储提供商系统104和代理身份对象。更具体地,存储集成对象包括对应于第一存储位置的第一标识符(例如,URL)、云存储提供商系统104的标识符以及代理身份对象的标识符(例如,ARN)。一旦创建,基于网络的数据仓库系统102在操作415将集成对象与和代理身份对象相关联的云身份对象相关联。云身份对象定义了用于访问由云存储提供商系统104提供的云服务的云身份。基于云身份对象和第一用户所属的客户端账户之间的关联,云身份对象与存储集成对象相关联。
在操作420,访问管理系统110为存储集成对象设置使用许可。访问管理系统110可以基于从第一用户接收的输入来设置使用许可。集成对象的使用许可的设置可以包括授予第二身份使用存储集成对象来创建一个或更多个外部暂存区对象的许可。在一些实施例中,第二身份对应于至少第二用户。在一些实施例中,访问管理系统110可以向对应于多个用户的身份授予使用许可,从而向与该身份相关联的每个用户提供使用许可。
在操作425,计算服务管理器112接收创建外部暂存区对象的命令(也称为“外部暂存区创建命令”)。外部暂存区创建命令是从与数据仓库102通信的计算设备接收的,并且由第二用户经由基于网络的数据仓库系统102提供给计算设备的命令行或UI指定。外部暂存区创建命令包括第二存储位置的标识符(例如,URL)和存储集成对象的标识符(例如,存储集成对象的名称)。在一些情况下,第二存储位置可以与第一存储位置相同,而在其他情况下,第二存储位置可以对应于第一存储位置内的位置。也就是说,第二存储位置可以对应于第一存储位置的一部分。
在操作430,计算服务管理器112基于外部暂存区创建命令创建外部暂存区对象,以在第二存储位置加载或卸载数据。外部暂存区对象标识第二存储位置,并包括与存储集成对象的关联。更具体地,外部暂存区对象包括第二存储位置的标识符(例如,对应于第二存储位置的URL)和对存储集成对象的引用(例如,指针)。
在操作435,访问管理系统110为外部暂存区对象设置使用许可。访问管理系统110可以基于第二用户提供的输入来设置使用许可。集成对象的使用许可的设置可以包括向与至少第三用户相关联的第三身份授予使用许可。一旦将使用许可授予第三身份,至少允许第三用户使用外部暂存区对象。
在操作440,计算服务管理器112接收将数据从内部数据资源(例如,表)卸载到第三存储位置或将数据从第三存储位置加载到内部数据资源的命令。该命令包括外部暂存区对象的标识符(例如,给予外部暂存区对象的名称)。该命令可以从第三用户的计算设备接收。响应于该命令,在操作445,计算服务管理器112使用外部暂存区对象200在外部云存储提供商的存储平台122中的第三存储位置加载或卸载数据。在第一个例子中,计算服务管理器112将数据从存储位置复制到在基于网络的数据仓库系统102内部的存储位置中维护的表。在第二个例子中,计算服务管理器112将数据从在内部存储位置中维护的表复制到命令中指定的存储位置。第三存储位置对应于第二存储位置。例如,第三存储位置可以与第二存储位置相同,或者可以对应于第二存储位置内的位置。
如图5所示,在一些实施例中,方法400可以进一步包括操作505、510、515、520和525。与这些实施例一致,操作505和510可以在操作440之后执行,其中计算服务管理器112接收加载或卸载存储位置处的数据的命令。
在操作505,计算对象管理器112基于与外部暂存区对象的关联来识别存储集成对象。例如,如上所述,在加载或卸载数据的命令中引用的外部暂存区对象包括对集成对象的引用(例如,指针)。
在操作510,计算服务管理器112结合访问管理系统110来验证与第三用户相关联的用户许可。在验证与第三用户相关联的用户许可时,计算服务管理器112验证第三用户具有使用外部暂存区对象和存储集成对象的许可。
与这些实施例一致,操作515、520和525可以作为操作445的一部分来执行(例如,作为子程序或子操作),其中计算服务管理器112加载或卸载存储位置处的数据。
在操作515,计算服务管理器112验证存储集成对象允许第三存储位置。也就是说,计算服务管理器112对照存储集成对象中标识的第一存储位置检查第三存储位置,以验证第三存储位置在第一存储位置内。服务管理器112还可以对照由存储集成对象指定的任何被阻止的存储位置来检查第三存储位置,以确定第三存储位置是否被存储集成对象允许。
在操作520,计算服务管理器112访问在向云存储提供商系统104认证时将使用的安全证书,以采用由代理身份对象定义的代理身份。在一些实施例中,安全证书是临时的,并且可以在达到时间限制(例如,1小时)后过期,并且可以在范围上被限制为专门用于在第一存储位置加载或卸载数据。
与一些实施例一致,计算服务管理器112可以通过向云存储提供商系统104的认证和身份管理系统118发送对安全证书的请求来获得安全证书。该请求可以包括或指示对应于云身份对象的第一标识符、对应于代理身份对象的第二标识符以及与云身份对象相关联的安全证书。与云身份对象相关联的安全证书可以以加密格式存储在数据库116中。云存储提供商系统104的认证和身份管理系统118响应于该请求提供安全证书。
在操作525,计算服务管理器112使用从认证和身份管理系统118获得的证书使云身份采用由代理身份对象定义的代理身份。也就是说,云身份经由代理身份与存储位置交互(例如,通过加载或卸载数据),并且可以使用代理身份与计算服务管理器112交换数据。
图6是示出根据本公开一些实施例的计算服务管理器112的组件的框图。如图6所示,请求处理服务602管理接收的数据存储请求和数据检索请求(例如,要对数据库数据执行的作业)。例如,请求处理服务602可以确定处理接收到的查询(例如,数据存储请求或数据检索请求)所需的数据。数据可以存储在执行平台114内的高速缓存中,或者存储在云存储提供商系统104中的数据存储设备中。
管理控制台服务604支持管理员和其他系统管理员对各种系统和进程的访问。另外,管理控制台服务604可以接收执行作业并监视系统上的工作负荷的请求。
计算服务管理器112还包括作业编译器606、作业优化器608和作业执行器610。作业编译器606将作业解析为多个离散任务,并为多个离散任务中的每个离散任务生成执行代码。作业优化器608基于需要处理的数据来确定执行多个离散任务的最佳方法。作业优化器608还处理各种数据修剪操作和其他数据优化技术,以提高执行作业的速度和效率。作业执行器610执行从队列接收的或由计算服务管理器112确定的作业的执行代码。
作业调度器和协调器612将接收到的作业发送到适当的服务或系统,以进行编译、优化并分派到执行平台114。例如,可以按优先顺序对作业进行优先考虑和处理。在实施例中,作业调度器和协调器612确定由计算服务管理器112调度的内部作业与其他“外部”作业(诸如可以由数据库中的其他系统调度但可以利用执行平台114中的相同处理资源的用户查询)的优先级。在一些实施例中,作业调度器和协调器612标识或分配执行平台114中的特定节点以处理特定任务。虚拟仓库管理器614管理在执行平台114中实现的多个虚拟仓库的操作。如下所述,每个虚拟仓库都包括多个执行节点,每个执行节点都包括一个高速缓存和一个处理器。
另外,计算服务管理器112包括配置和元数据管理器616,配置和元数据管理器616管理与存储在远程数据存储设备和本地高速缓存(例如,执行平台114中的高速缓存)中的数据相关的信息。配置和元数据管理器616使用元数据来确定需要访问哪些数据微分区来检索用于处理特定任务或作业的数据。监视器和工作负载分析器618监管由计算服务管理器112执行的进程,并管理任务(例如,工作负载)在执行平台114中的执行节点和虚拟仓库之间的分配。监视器和工作负载分析器618还根据需要,基于整个数据仓库102中不断变化的工作负载来重新分配任务,并且还可以基于也可以由执行平台114处理的用户(例如,“外部”)查询工作负载来重新分配任务。配置和元数据管理器616以及监视器和工作负载分析器618耦合到数据存储设备620。图6中的数据存储设备620表示数据仓库102内的任何数据存储设备。例如,数据存储设备620可以表示执行平台114中的高速缓存、云存储提供商系统104中的存储设备或任何其他存储设备。
图7是示出根据本公开一些实施例的执行平台114的组件的框图。如图7所示,执行平台114包括多个虚拟仓库,其包括虚拟仓库1、虚拟仓库2和虚拟仓库n。每个虚拟仓库都包括多个执行节点,每个执行节点都包括一个数据高速缓存和一个处理器。虚拟仓库可以通过使用多个执行节点并行执行多个任务。如本文所讨论的,执行平台114可以基于系统和用户的当前处理需求实时添加新的虚拟仓库和删除现有的虚拟仓库。这种灵活性允许执行平台114在需要时快速部署大量计算资源,而不必在不再需要它们时继续为那些计算资源付费。所有虚拟仓库都可以访问任何数据存储设备(例如,云存储提供商系统104中的任何存储设备)中的数据。
尽管图7中所示的每个虚拟仓库包括三个执行节点,但是特定的虚拟仓库可以包括任意数量的执行节点。此外,虚拟仓库中执行节点的数量是动态的,使得在存在额外需求时创建新的执行节点,并在不再需要现有执行节点时将其删除。
每个虚拟仓库能够访问图1中所示的数据存储设备124-1至124-n中的任何一个。因此,虚拟仓库没有必要被分配给特定的数据存储设备124-1至124-n,而是可以从云存储提供商系统104内的数据存储设备124-1至124-n中的任何一个访问数据。类似地,图7中所示的每个执行节点可以从数据存储设备124-1至124-n中的任何一个访问数据。在一些实施例中,特定的虚拟仓库或特定的执行节点可以被临时分配给具体的数据存储设备,但是该虚拟仓库或执行节点稍后可以从任何其他数据存储设备访问数据。
在图7的示例中,虚拟仓库1包括三个执行节点702-1、702-2和702-n。执行节点702-1包括高速缓存704-1和处理器706-1。执行节点702-2包括高速缓存704-2和处理器706-2。执行节点702-n包括高速缓存704-n和处理器706-n。每个执行节点702-1、702-2和702-n与处理一个或更多个数据存储和/或数据检索任务相关联。例如,虚拟仓库可以处理与内部服务(诸如,聚类服务、实例化视图刷新服务、文件压缩服务、存储程序服务或文件升级服务)相关联的数据存储和数据检索任务。在其他实施方式中,特定虚拟仓库可以处理与特定数据存储系统或特定类别的数据相关联的数据存储和数据检索任务。
类似于上面讨论的虚拟仓库1,虚拟仓库2包括三个执行节点712-1、712-2和712-n。执行节点712-1包括高速缓存714-1和处理器716-1。执行节点712-2包括高速缓存714-2和处理器716-2。执行节点712-n包括高速缓存714-n和处理器716-n。另外,虚拟仓库3包括三个执行节点722-1、722-2和722-n。执行节点722-1包括高速缓存724-1和处理器726-1。执行节点722-2包括高速缓存724-2和处理器726-2。执行节点722-n包括高速缓存724-n和处理器726-n。
在一些实施例中,相对于执行节点正在高速缓存的数据,图7所示的执行节点是无状态的。例如,这些执行节点不存储或以其他方式维护关于执行节点或由特定执行节点缓存的数据的状态信息。因此,在执行节点发生故障的情况下,可以用另一个节点透明地替换发生故障的节点。由于没有与发生故障的执行节点相关联的状态信息,因此新的(替换)执行节点可以轻松替换发生故障的节点,而无需考虑重新创建特定状态。
尽管图7中所示的执行节点包括一个数据高速缓存和一个处理器,但是替代实施例可以包括包含任意数量的处理器和任意数量的高速缓存的执行节点。另外,高速缓存的大小在不同执行节点之间可能有所不同。图7中所示的高速缓存在本地执行节点中存储从云存储提供商系统104中的一个或更多个数据存储设备检索到的数据。因此,高速缓存减小或消除了在从远程存储系统中不断检索数据的平台中出现的瓶颈问题。代替从远程存储设备重复访问数据,本文描述的系统和方法从执行节点中的高速缓存访问数据,这明显更快并且避免了上面讨论的瓶颈问题。在一些实施例中,使用提供对高速缓存的数据的快速访问的高速存储器设备来实现高速缓存。每个高速缓存可以存储来自云存储提供商系统104中的任何存储设备的数据。
此外,高速缓存资源和计算资源可以在不同的执行节点之间变化。例如,一个执行节点可包含大量的计算资源和最少的高速缓存资源,从而使该执行节点可用于需要大量计算资源的任务。另一个执行节点可包含大量的高速缓存资源和最少的计算资源,从而使该执行节点可用于需要高速缓存大量数据的任务。又一个执行节点可包含提供更快的输入-输出操作的高速缓存资源,这对于需要快速扫描大量数据的任务很有用。在一些实施例中,基于执行节点将要执行的预期任务,在创建执行节点时确定与特定执行节点相关联的高速缓存资源和计算资源。
另外,与特定执行节点相关联的高速缓存资源和计算资源可以基于由执行节点执行的改变的任务而随时间改变。例如,如果执行节点执行的任务变得更加处理器密集,则可以为执行节点分配更多的处理资源。类似地,如果执行节点执行的任务需要更大的高速缓存容量,则可以为执行节点分配更多的高速缓存资源。
尽管虚拟仓库1、2和n与同一执行平台114相关联,但是可以使用在多个地理位置处的多个计算系统来实现虚拟仓库。例如,虚拟仓库1可以由第一地理位置处的计算系统来实现,而虚拟仓库2和n由第二地理位置处的另一计算系统来实现。在一些实施例中,这些不同的计算系统是由一个或更多个不同的实体维护的基于云的计算系统。
另外,每个虚拟仓库在图7中被示为具有多个执行节点。可以使用位于多个地理位置处的多个计算系统来实现与每个虚拟仓库相关联的多个执行节点。例如,虚拟仓库1的实例在一个地理位置处的一个计算平台上实现执行节点702-1和702-2,并且在另一个地理位置处的不同计算平台上实现执行节点702-n。选择特定的计算系统以实现执行节点可以取决于各种因素,诸如特定的执行节点所需的资源水平(例如,处理资源要求和高速缓存要求)、特定计算系统处可用的资源、地理位置内或地理位置之间的网络的通信能力以及哪些计算系统已在虚拟仓库中实现其他执行节点。
执行平台114也是容错的。例如,如果一个虚拟仓库发生故障,那么该虚拟仓库将很快被位于不同地理位置处的不同虚拟仓库替换。
特定执行平台114可以包括任意数量的虚拟仓库。另外,特定执行平台中虚拟仓库的数量是动态的,使得在需要附加的处理和/或高速缓存资源时创建新的虚拟仓库。类似地,当不再需要与虚拟仓库关联的资源时,可以删除现有的虚拟仓库。
在一些实施例中,虚拟仓库可以在云存储提供商系统104中的相同数据上操作,但是每个虚拟仓库具有其自己的具有独立处理和高速缓存资源的执行节点。此配置允许对不同虚拟仓库上的请求进行独立处理,并且请求之间不会相互干扰。这种独立的处理与动态添加和移除虚拟仓库的能力相结合,支持为新用户添加新的处理能力,而不会影响现有用户观察到的性能。
根据示例实施例,图8以计算机系统的形式示出了机器800的示意图表示,用于使机器800执行本文所讨论方法中的任何一个或更多个的指令集合可以在该计算机系统内执行。具体地,图8以计算机系统的示例形式示出了机器800的示意图表示,用于使机器800执行本文所讨论方法中的任何一个或更多个的指令816(例如,软件、程序、应用、小程序、小应用(app)或其他可执行代码)在该计算机系统内执行。例如,指令816可以使机器800执行方法300或400中的任何一个或更多个的任何一个或更多个操作。作为另一个例子,指令816可以使机器800实现图3-5中的任何一个或更多个中所示的数据流的部分。以这种方式,指令816将通用的、未编程的机器转换成特定的机器800(例如,访问管理系统110、计算服务管理器112、执行平台114、认证和身份管理系统118以及计算设备206),该特定的机器800被特别配置为以这里描述的方式执行所描述和示出的功能中的任何一个。
在替代实施例中,机器800作为独立的设备操作或者可以耦合(例如,联网)到其它机器。在联网部署中,机器800可以在服务器-客户端网络环境中作为服务器机器或客户端机器来操作,或者作为对等(或分布式)网络环境中的对等机器来操作。机器800可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本(netbook)、智能电话、移动设备、网络路由器、网络交换机、网络桥接器或能够顺序地或以其它方式执行指令816的任何机器,指令816指定由机器800采取的动作(action)。此外,虽然仅示出了单个机器800,但术语“机器”还应被理解为包括单独或联合地执行指令816以实施本文所讨论方法中的任何一个或更多个的机器800的集合。
机器800包括处理器810、存储器830和输入/输出(I/O)组件850,它们被配置成例如经由总线802彼此通信。在示例实施例中,处理器810(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另一处理器或其任何合适的组合)可以包括例如可以执行指令816的处理器812和处理器814。术语“处理器”旨在包括多核处理器810,多核处理器810可以包括可以同时执行指令816的两个或更多个独立处理器(有时称为“核”)。尽管图8示出了多个处理器810,但是机器800可以包括具有单核的单个处理器、具有多核的单个处理器(例如,多核处理器)、具有单核的多个处理器、具有多核的多个处理器或者它们的任意组合。
存储器830可以包括主存储器832、静态存储器834和存储单元836,它们都可以由处理器810例如经由总线802访问。主存储器832、静态存储器834和存储单元836存储指令816,指令816体现本文描述的方法或功能中任何一种或更多种。在由机器800执行期间,指令816也可以全部或部分地驻留在主存储器832内、静态存储器834内、存储单元836内、至少一个处理器810内(例如,在处理器的高速缓冲存储器内)或其任何合适的组合内。
I/O组件850包括用于接收输入、提供输出、产生输出、传输信息、交换信息、捕获测量值等的组件。包含在特定机器800中的具体的I/O组件850将取决于机器的类型。例如,诸如移动电话的便携式机器将可能包括触摸输入设备或其他这样的输入机制,而无头服务器机器可能不包括这样的触摸输入设备。将认识到的是,I/O组件850可以包括图8中未示出的许多其他组件。I/O组件850根据功能进行分组仅仅是为了简化下面的讨论,并且该分组决不是限制性的。在各种示例实施例中,I/O组件850可以包括输出组件852和输入组件854。输出组件852可以包括视觉组件(例如,诸如等离子体显示面板(PDF)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)的显示器)、声学组件(例如,扬声器)、其他信号发生器等。输入组件854可以包括字母数字输入组件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于点的输入组件(例如,鼠标、触控板、轨迹球、操纵杆、运动传感器或另一指向仪器)、触觉输入组件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏或其他触觉输入组件)、音频输入组件(例如,麦克风)等。
通信可以使用多种技术来实现。I/O组件850可以包括通信组件864,通信组件864可操作来分别经由耦合882和耦合872将机器800耦合到网络880或设备870。例如,通信组件864可以包括网络接口组件或与网络880接口的另一合适的设备。在进一步的示例中,通信组件864可以包括有线通信组件、无线通信组件、蜂窝通信组件和经由其他模态提供通信的其他通信组件。设备870可以是另一台机器或多种外围设备中的任一种(例如,经由通用串行总线(USB)耦合的外围设备)。例如,如上所述,机器800可以对应于访问管理系统110、计算服务管理器112、执行平台114、认证和身份管理系统118中的任何一个,并且设备870可以包括计算设备206或这里描述为与基于网络的数据仓库系统102或云存储提供商系统104通信的任何其他计算设备。
可执行指令和机器存储介质
各种存储器(例如,830、832、834和/或处理器810和/或存储单元836的存储器)可以存储指令816和数据结构(例如,软件)的一个或更多个集合,这些指令816和数据结构体现本文所描述方法或功能中的任何一种或更多种或被本文所描述方法或功能中的任何一种或更多种所利用。当由处理器810执行时,这些指令816促使各种操作来实现所公开的实施例。
如本文所使用的,术语“机器存储介质”、“设备存储介质”和“计算机存储介质”意思相同,并且可以在本公开中互换使用。这些术语指的是存储可执行指令和/或数据的单个或多个存储设备和/或介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。相应地,这些术语应当被认为包括但不限于包括处理器内部或外部的存储器的固态存储器以及光和磁介质。机器存储介质、计算机存储介质和/或设备存储介质的具体示例包括非易失性存储器,非易失性存储器包括例如半导体存储器设备,诸如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、现场可编程门阵列(FPGA)和闪存设备;磁盘,如内部硬盘和可移除磁盘;磁光盘;以及CD-ROM和DVD-ROM光盘。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”具体排除了载波、调制数据信号和其他这样的介质(其中的至少一些包含在下面讨论的术语“信号介质”中)。
传输介质
在各种示例实施例中,网络880的一个或更多个部分可以是自组织网络(ad hocnetwork)、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网、互联网的一部分、公共交换电话网络(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、另一种类型的网络、或两种或更多种这样的网络的组合。例如,网络880或网络880的一部分可以包括无线或蜂窝网络,并且耦合882可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或另一种类型的蜂窝或无线耦合。在该示例中,耦合882可以实现多种类型的数据传输技术中的任何一种,如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、增强型数据速率GSM演进(EDGE)技术、包括3G、第四代无线(4G)网络、通用移动电信系统(UMTS)、高速分组接入(HSPA)、微波接入全球互操作性(WiMAX)、长期演进(LTE)标准的第三代合作伙伴计划(3GPP)、由各种标准设置组织定义的其他技术、其他长程协议、或其他数据传输技术。
指令816可以使用传输介质经由网络接口设备(例如,通信组件864中包括的网络接口组件)并利用多种众所周知的传输协议(例如,超文本传输协议(HTTP))中的任何一种在网络880上传输或接收。类似地,指令816可以使用传输介质经由耦合872(例如,对等耦合)传输或接收到设备870。术语“传输介质”和“信号介质”意思相同,在本公开中可以互换使用。术语“传输介质”和“信号介质”应被理解为包括能够存储、编码或携带由机器800执行的指令816的任何无形介质,并且包括数字或模拟通信信号或便于这种软件的通信的其他无形介质。因此,术语“传输介质”和“信号介质”应被理解为包括任何形式的调制数据信号、载波等。术语“调制数据信号”意指这样的信号:其具有以对信号中的信息进行编码的这样的方式设置或更改的其特性中的一个或更多个特性。
计算机可读介质
术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意思相同,并且在本公开中可以互换使用。这些术语被定义为包括机器存储介质和传输介质。因此,这些术语包括存储设备/介质和载波/调制数据信号。
本文所述的示例方法的各种操作可以至少部分地由(例如,通过软件)临时配置或永久地配置为执行相关操作的一个或更多个处理器来执行。类似地,本文描述的方法可以至少部分地是处理器实现的。例如,方法300和400的至少一些操作可以由一个或更多个处理器执行。某些操作的执行可以分布在一个或更多个处理器中,不仅驻留在单个机器内,而且部署在多个机器上。在一些示例实施例中,一个或更多个处理器可以位于单个位置(例如,在家庭环境、办公室环境或服务器场内)中,而在其他实施例中,处理器可以分布在多个位置上。
尽管参考具体的示例实施例描述了本公开的实施例,但显然地,在不背离本发明主题的更广泛范围的情况下,可以对这些实施例做出各种修改和变化。相应地,说明书和附图被认为是说明性的而不是限制性的。形成其一部分的附图通过说明方式并且不以限制方式显示了其中可以实施主题的具体实施例。所示出的实施例以充分细节描述,以便使本领域那些技术人员能够实施本文披露的教导。可以使用其他实施例和从其中衍生的实施例,使得可以作出结构性或逻辑性替换和变化而不偏离本公开的范围。因此不以限制性意义理解这一详细说明,并且各种实施例的范围仅由所附权利要求连同授权的此类权利要求的完整范围的等同物限定。
发明主题的此类实施例可以在本文中单独地和/或共同地由术语“发明”提到,该术语仅出于便利目的并且不意在自愿将本申请的范围限于任何单一发明或发明构思,如果实际上披露的多于一种的话。因此,虽然已经在此说明和描述了特定实施例,但是应当理解,可以用经计算以实现相同目的的任何布置替换用于所示的具体实施例。本公开旨在覆盖各种实施例的任何和所有修改或变型。在阅读以上描述后,本领域的技术人员将明白以上实施例的组合以及本文未具体描述的其他实施例。
在本文档中,术语“一个(a)”或“一个(an)”,如专利文档中常见的那样,用于包括一个或多于一个,与“至少一个”或“一个或更多个”的任何其他实例或用法无关。在本文档中,术语“或”用于指非排他性的或,因此“A或B”包括“A但不包括B”、“B但不包括A”和“A和B”,除非另有说明。在所附权利要求中,术语“包括(including)”和“其中(in which)”被用作相应术语“包含(comprising)”和“其中(wherein)”的纯英语等效词。此外,在所附权利要求中,术语“包括”和“包含”是开放式的;也就是说,包括除了权利要求中这样的术语之后列出的那些元素之外的元素的系统、设备、物品或过程仍然被认为落入该权利要求的范围内。
示例
示例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是一种方法,包括:由机器的一个或更多个硬件处理器在基于网络的数据仓库系统的数据库中创建存储集成对象,所述存储集成对象标识云存储提供商系统的存储平台中的存储位置和云身份对象,所述云身份对象在云存储提供商的存储平台处与被授予访问所述存储位置的许可的代理身份对象相关联;基于所述存储集成对象在所述数据库中创建外部暂存区对象,所述外部暂存区对象标识所述存储位置并包括与所述存储集成对象的关联;从计算设备接收加载或卸载所述存储位置处的数据的命令;以及响应于该命令,使用所述外部暂存区对象经由所述代理身份对象加载或卸载所述存储位置处的数据。
在示例13中,示例12的主题可选地还包括:设置与集成对象相关联的使用许可;以及设置与外部暂存区对象相关联的使用许可。
在示例14中,示例12和13中任一个的主题可选地还包括:授予第一用户使用存储集成对象的许可,以及授予第二用户使用外部暂存区对象的许可。
在示例15中,示例12-14中任一个的主题可选地还包括:接收创建存储集成对象的命令,该命令标识存储位置和云存储提供商系统,其中存储集成对象的创建基于创建存储集成对象的命令。
在示例16中,示例12-15中任一个的主题可选地还包括接收创建外部暂存区对象的命令,该命令包括对应于存储位置的标识符和对应于集成对象的标识符。
示例17包括示例12-16中任一个的主题,其中加载或卸载存储位置处的数据可选地包括:使用与代理身份对象相关联的安全证书来访问代理身份对象。
在示例18中,示例12-17中任一个的主题可选地还包括验证与命令相关联的用户的用户许可。
在示例19中,示例12-18中任一个的主题可选地还包括验证用户具有使用存储集成对象的许可;或者验证用户具有使用外部暂存区对象的许可。
示例20是包括指令的计算机存储介质,所述指令在由处理设备执行时配置所述处理设备以执行操作,所述操作包括:由机器的一个或更多个硬件处理器在基于网络的数据仓库系统的数据库中创建存储集成对象,所述存储集成对象标识云存储提供商系统的存储平台中的存储位置和云身份对象,所述云身份对象在云存储提供商的存储平台处与被授予访问所述存储位置的许可的代理身份对象相关联;基于所述存储集成对象在所述数据库中创建外部暂存区对象,所述外部暂存区对象标识所述存储位置并包括与所述存储集成对象的关联;从计算设备接收加载或卸载所述存储位置处的数据的命令;以及响应于该命令,使用所述外部暂存区对象经由所述代理身份对象加载或卸载所述存储位置处的数据。
在示例21中,示例20的主题可选地还包括:设置与集成对象相关联的使用许可;以及设置与外部暂存区对象相关联的使用许可。
在示例22中,示例20和21中的任何一个或更多个的主题可选地还包括接收创建存储集成对象的命令,该命令标识存储位置和云存储提供商系统,其中存储集成对象的创建基于创建存储集成对象的命令。
在示例23中,示例20-22中的任何一个或更多个的主题可选地还包括接收创建外部暂存区对象的命令,该命令包括对应于存储位置的标识符和对应于集成对象的标识符。
示例24包括示例20-23中任一个的主题,其中加载或卸载存储位置处的数据可选地包括使用与云身份对象相关联的第二安全证书来访问用于访问代理身份对象的第一安全证书;以及使用安全证书访问代理身份对象。
在示例25中,示例20-24中任一个的主题可选地还包括基于存储集成对象中包括的信息来验证存储位置被存储集成对象允许。
Claims (30)
1.一种数据库系统,包括:
至少一个硬件处理器;以及
存储器,所述存储器存储使所述至少一个硬件处理器执行包括以下项的操作的指令:
在数据库中创建存储集成对象,所述存储集成对象标识对应于云身份的云身份对象并且与云存储提供商系统的存储平台中的存储位置相关联,其中所述云身份对象在所述云存储提供商系统的所述存储平台处与对应于被授予访问所述存储位置的许可的代理身份的代理身份对象相关联;
在所述数据库中创建具有对所述存储集成对象的引用的外部暂存区对象;
从计算设备接收加载或卸载所述存储位置处的数据的命令;
识别与所述存储位置相关联的所述存储集成对象;以及
通过基于所述存储集成对象中包括的信息使所述云身份使用从所述云存储提供商系统获得的安全证书采用所述代理身份来加载或卸载所述存储平台中的所述存储位置处的数据。
2.根据权利要求1所述的数据库系统,其中,所述操作还包括:
接收创建所述存储集成对象的命令,所述命令标识所述存储位置和所述云存储提供商系统;以及
响应于所述命令,在所述数据库中创建所述存储集成对象。
3.根据权利要求2所述的数据库系统,其中,所述操作还包括:
设置与所述存储集成对象相关联的使用许可,与所述存储集成对象相关联的使用许可的设置包括授予第一用户使用所述存储集成对象的许可。
4.根据权利要求1所述的数据库系统,其中,所述操作还包括:
接收创建所述外部暂存区对象的命令,所述命令包括对应于所述存储位置的标识符和对应于所述存储集成对象的标识符;以及
响应于所述命令,在所述数据库中创建基于所述存储集成对象的所述外部暂存区对象,所述外部暂存区对象标识所述存储位置并包括与所述存储集成对象的关联。
5.根据权利要求4所述的数据库系统,其中,识别所述存储集成对象包括访问所述外部暂存区对象。
6.根据权利要求4所述的数据库系统,其中,所述操作还包括:
设置与所述外部暂存区对象相关联的使用许可,与所述外部暂存区对象相关联的使用许可的设置包括授予第二用户使用所述外部暂存区对象的许可。
7.根据权利要求1所述的数据库系统,其中:
所述安全证书是第一安全证书;以及
所述存储位置处的数据的加载或卸载包括:
使用与所述云身份对象相关联的第二安全证书来获得与所述代理身份对象相关联的所述第一安全证书;以及
使用所述第一安全证书访问所述代理身份对象。
8.根据权利要求7所述的数据库系统,其中,获得所述第一安全证书包括:
向所述云存储提供商系统的访问管理系统发送对所述第一安全证书的请求,所述请求包括与所述云身份对象相关联的所述第二安全证书。
9.根据权利要求1所述的数据库系统,其中,所述操作还包括基于所述存储集成对象中包括的信息来验证所述存储位置被所述存储集成对象允许。
10.根据权利要求1所述的数据库系统,其中,所述操作还包括:
验证与所述命令相关联的用户的用户许可。
11.根据权利要求10所述的数据库系统,其中,所述用户许可的验证包括验证所述用户具有使用所述存储集成对象的许可。
12.一种用于从云存储提供商系统的存储平台加载或卸载数据的方法,包括:
在数据库中创建存储集成对象,所述存储集成对象标识对应于云身份的云身份对象并且与所述云存储提供商系统的所述存储平台中的存储位置相关联,其中所述云身份对象在所述云存储提供商系统的所述存储平台处与对应于被授予访问所述存储位置的许可的代理身份的代理身份对象相关联;
在所述数据库中创建具有对所述存储集成对象的引用的外部暂存区对象;
从计算设备接收加载或卸载所述存储位置处的数据的命令;
识别与所述存储位置相关联的所述存储集成对象;以及
通过基于所述存储集成对象中包括的信息使所述云身份使用从所述云存储提供商系统获得的安全证书采用所述代理身份来加载或卸载所述存储平台中的所述存储位置处的数据。
13.根据权利要求12所述的方法,还包括:
接收创建所述存储集成对象的命令,所述命令标识所述存储位置和所述云存储提供商系统;以及
响应于所述命令,在所述数据库中创建所述存储集成对象。
14.根据权利要求13所述的方法,还包括:
设置与所述存储集成对象相关联的使用许可,与所述存储集成对象相关联的使用许可的设置包括授予第一用户使用所述存储集成对象的许可。
15.根据权利要求12所述的方法,还包括:
接收创建所述外部暂存区对象的命令,所述命令包括对应于所述存储位置的标识符和对应于所述存储集成对象的标识符;以及
响应于所述命令,在所述数据库中创建基于所述存储集成对象的所述外部暂存区对象,所述外部暂存区对象标识所述存储位置并包括与所述存储集成对象的关联。
16.根据权利要求15所述的方法,其中,识别所述存储集成对象包括访问所述外部暂存区对象。
17.根据权利要求15所述的方法,还包括:
设置与所述外部暂存区对象相关联的使用许可,与所述外部暂存区对象相关联的使用许可的设置包括授予第二用户使用所述外部暂存区对象的许可。
18.根据权利要求12所述的方法,其中:
所述安全证书是第一安全证书;以及
所述存储位置处的数据的加载或卸载包括:
使用与所述云身份对象相关联的第二安全证书来获得与所述代理身份对象相关联的所述第一安全证书;以及
使用所述第一安全证书访问所述代理身份对象。
19.根据权利要求18所述的方法,其中,获得所述第一安全证书包括:
向所述云存储提供商系统的访问管理系统发送对所述第一安全证书的请求,所述请求包括与所述云身份对象相关联的所述第二安全证书。
20.根据权利要求12所述的方法,还包括基于所述存储集成对象中包括的信息来验证所述存储位置被所述存储集成对象允许。
21.根据权利要求12所述的方法,还包括:
验证与所述命令相关联的用户的用户许可。
22.根据权利要求21所述的方法,其中,所述用户许可的验证包括验证所述用户具有使用所述存储集成对象的许可。
23.一种非暂时性计算机存储介质,所述非暂时性计算机存储介质包括指令,所述指令当由机器的一个或更多个处理器执行时将所述机器配置为执行包括以下项的操作:
在数据库中创建存储集成对象,所述存储集成对象标识对应于云身份的云身份对象并且与云存储提供商系统的存储平台中的存储位置相关联,其中所述云身份对象在所述云存储提供商系统的所述存储平台处与对应于被授予访问所述存储位置的许可的代理身份的代理身份对象相关联;
在所述数据库中创建具有对所述存储集成对象的引用的外部暂存区对象;
从计算设备接收加载或卸载所述存储位置处的数据的命令;
识别与所述存储位置相关联的所述存储集成对象;以及
通过基于所述存储集成对象中包括的信息使所述云身份使用从所述云存储提供商系统获得的安全证书采用所述代理身份来加载或卸载所述存储平台中的所述存储位置处的数据。
24.根据权利要求23所述的非暂时性计算机存储介质,还包括:
接收创建所述存储集成对象的命令,所述命令标识所述存储位置和所述云存储提供商系统;以及
响应于所述命令,在所述数据库中创建所述存储集成对象。
25.根据权利要求23所述的非暂时性计算机存储介质,还包括:
设置与所述存储集成对象相关联的使用许可,与所述存储集成对象相关联的使用许可的设置包括授予第一用户使用所述存储集成对象的许可。
26.根据权利要求23所述的非暂时性计算机存储介质,还包括:
接收创建所述外部暂存区对象的命令,所述命令包括对应于所述存储位置的标识符和对应于所述存储集成对象的标识符;以及
响应于所述命令,在所述数据库中创建基于所述存储集成对象的所述外部暂存区对象,所述外部暂存区对象标识所述存储位置并包括与所述存储集成对象的关联。
27.根据权利要求26所述的非暂时性计算机存储介质,其中,识别所述存储集成对象包括访问所述外部暂存区对象。
28.根据权利要求26所述的非暂时性计算机存储介质,其中,所述操作还包括:
设置与所述外部暂存区对象相关联的使用许可,与所述外部暂存区对象相关联的使用许可的设置包括授予第二用户使用所述外部暂存区对象的许可。
29.根据权利要求23所述的非暂时性计算机存储介质,其中:
所述安全证书是第一安全证书;以及
所述存储位置处的数据的加载或卸载包括:
使用与所述云身份对象相关联的第二安全证书来获得与所述代理身份对象相关联的所述第一安全证书;以及
使用所述第一安全证书访问所述代理身份对象。
30.根据权利要求29所述的非暂时性计算机存储介质,其中,获得所述第一安全证书包括:
向所述云存储提供商系统的访问管理系统发送对所述第一安全证书的请求,所述请求包括与所述云身份对象相关联的所述第二安全证书。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310263325.8A CN116303718A (zh) | 2019-11-14 | 2020-07-30 | 从存储平台加载或卸载数据的数据库系统、方法及介质 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/683,641 | 2019-11-14 | ||
US16/683,641 US10715524B1 (en) | 2019-11-14 | 2019-11-14 | External credential-less stages for data warehouse integrations |
PCT/US2020/044195 WO2021096572A1 (en) | 2019-11-14 | 2020-07-30 | External credential-less stages for database integrations |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310263325.8A Division CN116303718A (zh) | 2019-11-14 | 2020-07-30 | 从存储平台加载或卸载数据的数据库系统、方法及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113228593A CN113228593A (zh) | 2021-08-06 |
CN113228593B true CN113228593B (zh) | 2023-04-04 |
Family
ID=71519688
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310263325.8A Pending CN116303718A (zh) | 2019-11-14 | 2020-07-30 | 从存储平台加载或卸载数据的数据库系统、方法及介质 |
CN202080007511.XA Active CN113228593B (zh) | 2019-11-14 | 2020-07-30 | 从存储平台加载或卸载数据的数据库系统、方法及介质 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310263325.8A Pending CN116303718A (zh) | 2019-11-14 | 2020-07-30 | 从存储平台加载或卸载数据的数据库系统、方法及介质 |
Country Status (6)
Country | Link |
---|---|
US (6) | US10715524B1 (zh) |
EP (1) | EP3942773B1 (zh) |
KR (1) | KR102508177B1 (zh) |
CN (2) | CN116303718A (zh) |
DE (1) | DE202020005693U1 (zh) |
WO (1) | WO2021096572A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10108688B2 (en) | 2015-12-22 | 2018-10-23 | Dropbox, Inc. | Managing content across discrete systems |
US10657228B1 (en) * | 2018-11-06 | 2020-05-19 | Dropbox, Inc. | Technologies for integrating cloud content items across platforms |
US10628244B1 (en) | 2019-10-29 | 2020-04-21 | Snowflake Inc. | Calling external functions from a data warehouse |
US10715524B1 (en) | 2019-11-14 | 2020-07-14 | Snowflake Inc. | External credential-less stages for data warehouse integrations |
US11824837B2 (en) * | 2020-07-15 | 2023-11-21 | Sap Se | End user creation of trusted integration pathways between different enterprise systems |
US11138192B1 (en) | 2021-04-30 | 2021-10-05 | Snowflake Inc. | Invoking external table functions from a database system |
US20230169085A1 (en) * | 2021-11-30 | 2023-06-01 | Intuit Inc. | Multitenancy in extract, transform, load (etl) pipeline orchestration tools |
US11843544B2 (en) | 2022-04-01 | 2023-12-12 | The Toronto-Dominion Bank | System and method for controlling access to project data and to computing resources therefor |
US11748338B1 (en) * | 2022-06-10 | 2023-09-05 | Snowflake Inc. | Auto refresh of directory tables for stages |
Family Cites Families (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7092942B2 (en) * | 2002-05-31 | 2006-08-15 | Bea Systems, Inc. | Managing secure resources in web resources that are accessed by multiple portals |
US20050108206A1 (en) * | 2003-11-14 | 2005-05-19 | Microsoft Corporation | System and method for object-oriented interaction with heterogeneous data stores |
US8028329B2 (en) * | 2005-06-13 | 2011-09-27 | Iamsecureonline, Inc. | Proxy authentication network |
JP5441303B2 (ja) | 2006-01-20 | 2014-03-12 | キヤノン株式会社 | 情報処理装置及び情報処理方法 |
WO2008085201A2 (en) * | 2006-12-29 | 2008-07-17 | Prodea Systems, Inc. | Managed file backup and restore at remote storage locations through multi-services gateway device at user premises |
US8385971B2 (en) * | 2008-08-19 | 2013-02-26 | Digimarc Corporation | Methods and systems for content processing |
US8296828B2 (en) * | 2008-12-16 | 2012-10-23 | Microsoft Corporation | Transforming claim based identities to credential based identities |
US9614924B2 (en) * | 2008-12-22 | 2017-04-04 | Ctera Networks Ltd. | Storage device and method thereof for integrating network attached storage with cloud storage services |
US9473419B2 (en) * | 2008-12-22 | 2016-10-18 | Ctera Networks, Ltd. | Multi-tenant cloud storage system |
US8713038B2 (en) | 2009-04-02 | 2014-04-29 | Pivotal Software, Inc. | Integrating map-reduce into a distributed relational database |
US8805953B2 (en) * | 2009-04-03 | 2014-08-12 | Microsoft Corporation | Differential file and system restores from peers and the cloud |
US20100333116A1 (en) * | 2009-06-30 | 2010-12-30 | Anand Prahlad | Cloud gateway system for managing data storage to cloud storage sites |
AU2010328326B2 (en) | 2009-12-07 | 2016-12-01 | Robert Buffone | System and method for website performance optimization and internet traffic processing |
US8799413B2 (en) * | 2010-05-03 | 2014-08-05 | Panzura, Inc. | Distributing data for a distributed filesystem across multiple cloud storage systems |
US8234372B2 (en) * | 2010-05-05 | 2012-07-31 | Go Daddy Operating Company, LLC | Writing a file to a cloud storage solution |
EP2583211B1 (en) * | 2010-06-15 | 2020-04-15 | Oracle International Corporation | Virtual computing infrastructure |
US9560036B2 (en) * | 2010-07-08 | 2017-01-31 | International Business Machines Corporation | Cross-protocol federated single sign-on (F-SSO) for cloud enablement |
EP4006728A1 (en) * | 2010-07-09 | 2022-06-01 | State Street Corporation | Systems and methods for private cloud computing |
US20120136960A1 (en) * | 2010-11-29 | 2012-05-31 | Beijing Z & W Technology Consulting Co., Ltd | Cloud Storage Data Access Method, Apparatus and System |
US8656454B2 (en) * | 2010-12-01 | 2014-02-18 | Microsoft Corporation | Data store including a file location attribute |
US8538954B2 (en) | 2011-01-25 | 2013-09-17 | Hewlett-Packard Development Company, L.P. | Aggregate function partitions for distributed processing |
US8606878B2 (en) * | 2011-02-28 | 2013-12-10 | Red Hat, Inc. | Systems and methods for de-populating cloud data store |
US9483627B1 (en) * | 2011-05-03 | 2016-11-01 | Symantec Corporation | Abstracting credentials for mobile client authentication |
US20130036272A1 (en) * | 2011-08-02 | 2013-02-07 | Microsoft Corporation | Storage engine node for cloud-based storage |
US8533231B2 (en) * | 2011-08-12 | 2013-09-10 | Nexenta Systems, Inc. | Cloud storage system with distributed metadata |
US8176283B1 (en) * | 2011-09-26 | 2012-05-08 | Google Inc. | Permissions of objects in hosted storage |
US20140013409A1 (en) * | 2012-07-06 | 2014-01-09 | Milind I. Halageri | Single sign on for cloud |
US10007698B2 (en) | 2011-11-28 | 2018-06-26 | Sybase, Inc. | Table parameterized functions in database |
US9483491B2 (en) * | 2011-11-29 | 2016-11-01 | Egnyte, Inc. | Flexible permission management framework for cloud attached file systems |
US9239911B2 (en) * | 2012-04-26 | 2016-01-19 | Red Hat, Inc. | Replacement of security credentials for secure proxying |
US8713633B2 (en) * | 2012-07-13 | 2014-04-29 | Sophos Limited | Security access protection for user data stored in a cloud computing facility |
US9253054B2 (en) * | 2012-08-09 | 2016-02-02 | Rockwell Automation Technologies, Inc. | Remote industrial monitoring and analytics using a cloud infrastructure |
US8745755B2 (en) * | 2012-10-12 | 2014-06-03 | Citrix Systems, Inc. | Controlling device access to enterprise resources in an orchestration framework for connected devices |
US20140115182A1 (en) * | 2012-10-24 | 2014-04-24 | Brocade Communications Systems, Inc. | Fibre Channel Storage Area Network to Cloud Storage Gateway |
US9137222B2 (en) * | 2012-10-31 | 2015-09-15 | Vmware, Inc. | Crypto proxy for cloud storage services |
US9209973B2 (en) * | 2012-11-20 | 2015-12-08 | Google Inc. | Delegate authorization in cloud-based storage system |
US20140142984A1 (en) * | 2012-11-21 | 2014-05-22 | Datcard Systems, Inc. | Cloud based viewing, transfer and storage of medical data |
US8893230B2 (en) * | 2013-02-22 | 2014-11-18 | Duo Security, Inc. | System and method for proxying federated authentication protocols |
US9342557B2 (en) | 2013-03-13 | 2016-05-17 | Cloudera, Inc. | Low latency query engine for Apache Hadoop |
US10122714B2 (en) * | 2013-08-01 | 2018-11-06 | Bitglass, Inc. | Secure user credential access system |
US9426219B1 (en) * | 2013-12-06 | 2016-08-23 | Amazon Technologies, Inc. | Efficient multi-part upload for a data warehouse |
CN104754001A (zh) * | 2013-12-30 | 2015-07-01 | 方正宽带网络服务股份有限公司 | 云存储系统和数据存储方法 |
US11386085B2 (en) | 2014-01-27 | 2022-07-12 | Microstrategy Incorporated | Deriving metrics from queries |
US9614796B2 (en) * | 2014-03-13 | 2017-04-04 | Sap Se | Replacing email file attachment with download link |
US9584492B2 (en) * | 2014-06-23 | 2017-02-28 | Vmware, Inc. | Cryptographic proxy service |
WO2016016944A1 (ja) | 2014-07-29 | 2016-02-04 | 株式会社日立製作所 | データベース管理システム及びデータベース管理方法 |
US10313311B2 (en) * | 2014-08-22 | 2019-06-04 | Nec Corporation | Method for storing of data within a cloud storage and a cloud storage system |
US10963459B2 (en) | 2014-08-29 | 2021-03-30 | Sap Se | Generic utilization of on-premise query frameworks by new on-demand applications |
US10180973B2 (en) | 2014-09-26 | 2019-01-15 | Oracle International Corporation | System and method for efficient connection management in a massively parallel or distributed database environment |
US9588977B1 (en) * | 2014-09-30 | 2017-03-07 | EMC IP Holding Company LLC | Data and metadata structures for use in tiering data to cloud storage |
CN107534557B (zh) * | 2015-01-26 | 2021-07-09 | 移动熨斗公司 | 提供访问控制和单点登录的身份代理 |
US9934202B1 (en) | 2015-03-30 | 2018-04-03 | EMC IP Holding Company LLC | Managing paginated data |
US10171295B2 (en) | 2016-04-07 | 2019-01-01 | Red Hat, Inc. | Distributed remote execution |
US10341410B2 (en) * | 2016-05-11 | 2019-07-02 | Oracle International Corporation | Security tokens for a multi-tenant identity and data security management cloud service |
US11093564B1 (en) | 2016-09-26 | 2021-08-17 | Splunk Inc. | Identifying configuration parameters for a query using a metadata catalog |
US11157498B1 (en) | 2016-09-26 | 2021-10-26 | Splunk Inc. | Query generation using a dataset association record of a metadata catalog |
US10642879B2 (en) * | 2017-01-06 | 2020-05-05 | Oracle International Corporation | Guaranteed file system hierarchy data integrity in cloud object stores |
CA3072045A1 (en) * | 2017-08-02 | 2019-02-07 | Strong Force Iot Portfolio 2016, Llc | Methods and systems for detection in an industrial internet of things data collection environment with large data sets |
WO2019104338A1 (en) | 2017-11-27 | 2019-05-31 | Snowflake Computing Inc | Batch data ingestion in database systems |
US10802747B2 (en) | 2017-11-30 | 2020-10-13 | Veritas Technologies Llc | Performing backup operations using replicas |
US11157497B1 (en) | 2018-04-30 | 2021-10-26 | Splunk Inc. | Dynamically assigning a search head and search nodes for a query |
US11269886B2 (en) | 2019-03-05 | 2022-03-08 | Sap Se | Approximate analytics with query-time sampling for exploratory data analysis |
US10628244B1 (en) | 2019-10-29 | 2020-04-21 | Snowflake Inc. | Calling external functions from a data warehouse |
US10715524B1 (en) | 2019-11-14 | 2020-07-14 | Snowflake Inc. | External credential-less stages for data warehouse integrations |
US10867063B1 (en) | 2019-11-27 | 2020-12-15 | Snowflake Inc. | Dynamic shared data object masking |
US11138192B1 (en) | 2021-04-30 | 2021-10-05 | Snowflake Inc. | Invoking external table functions from a database system |
-
2019
- 2019-11-14 US US16/683,641 patent/US10715524B1/en active Active
-
2020
- 2020-06-25 US US16/911,850 patent/US10999279B1/en active Active
- 2020-07-30 CN CN202310263325.8A patent/CN116303718A/zh active Pending
- 2020-07-30 CN CN202080007511.XA patent/CN113228593B/zh active Active
- 2020-07-30 EP EP20887419.8A patent/EP3942773B1/en active Active
- 2020-07-30 WO PCT/US2020/044195 patent/WO2021096572A1/en unknown
- 2020-07-30 DE DE202020005693.6U patent/DE202020005693U1/de active Active
- 2020-07-30 KR KR1020217031176A patent/KR102508177B1/ko active IP Right Grant
-
2021
- 2021-03-19 US US17/249,971 patent/US11165775B2/en active Active
- 2021-09-30 US US17/491,373 patent/US11271936B2/en active Active
-
2022
- 2022-01-28 US US17/587,829 patent/US11522860B2/en active Active
- 2022-11-11 US US18/054,621 patent/US11876802B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3942773A1 (en) | 2022-01-26 |
US20220150252A1 (en) | 2022-05-12 |
DE202020005693U1 (de) | 2022-02-01 |
US11271936B2 (en) | 2022-03-08 |
KR102508177B1 (ko) | 2023-03-13 |
WO2021096572A1 (en) | 2021-05-20 |
US11522860B2 (en) | 2022-12-06 |
US11165775B2 (en) | 2021-11-02 |
KR20210134937A (ko) | 2021-11-11 |
EP3942773B1 (en) | 2024-05-22 |
CN116303718A (zh) | 2023-06-23 |
EP3942773A4 (en) | 2022-12-28 |
US20210211425A1 (en) | 2021-07-08 |
CN113228593A (zh) | 2021-08-06 |
US10715524B1 (en) | 2020-07-14 |
US11876802B2 (en) | 2024-01-16 |
US20210152553A1 (en) | 2021-05-20 |
US20220021673A1 (en) | 2022-01-20 |
US20230070935A1 (en) | 2023-03-09 |
US10999279B1 (en) | 2021-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113228593B (zh) | 从存储平台加载或卸载数据的数据库系统、方法及介质 | |
CN113490918B (zh) | 用于从数据仓库调用外部函数的系统和方法 | |
US11570259B2 (en) | Remote execution using a global identity | |
US20230169202A1 (en) | Cloud data sharing for applications | |
US12052249B2 (en) | Facilitating access to remotely stored credentials for accessing external resources | |
US11948025B2 (en) | Stored procedures executing within a sandbox process |
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 |