CN115269527A - 向客户共享数据共享度量 - Google Patents
向客户共享数据共享度量 Download PDFInfo
- Publication number
- CN115269527A CN115269527A CN202210441410.4A CN202210441410A CN115269527A CN 115269527 A CN115269527 A CN 115269527A CN 202210441410 A CN202210441410 A CN 202210441410A CN 115269527 A CN115269527 A CN 115269527A
- Authority
- CN
- China
- Prior art keywords
- data
- clearinghouse
- metrics
- manifest
- request
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 72
- 230000003993 interaction Effects 0.000 claims abstract description 19
- 238000012545 processing Methods 0.000 claims description 69
- 238000003860 storage Methods 0.000 claims description 25
- 230000004931 aggregating effect Effects 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 46
- 230000006870 function Effects 0.000 description 20
- 230000015654 memory Effects 0.000 description 16
- 230000010076 replication Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 8
- 230000002776 aggregation Effects 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 7
- 230000003068 static effect Effects 0.000 description 7
- 238000012795 verification Methods 0.000 description 7
- 230000008520 organization Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013498 data listing Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 230000003362 replicative effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101100412394 Drosophila melanogaster Reg-2 gene Proteins 0.000 description 2
- 241000533950 Leucojum Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013503 de-identification Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012800 visualization Methods 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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- 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/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- 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
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Medical Informatics (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及向客户共享数据共享度量。本文提供了系统和方法,以提供一种方式来共享关于共享数据访问和与数据提供者相关联的关于数据交换所的不同数据清单的访问的度量。例如,该方法可以包括检测与数据交换所的一组数据清单的一个或更多个客户端交互,该一组数据清单与一个或更多个数据提供者相关联。该方法还可以包括收集对应于一个或更多个客户端交互的度量。此外,该方法可以与一个或更多个数据提供者共享与一个或更多个数据提供者相关的度量。
Description
技术领域
本公开涉及数据共享,且特别涉及从数据共享平台向数据共享提供者共享数据共享度量。
背景
包括数据库的数据共享平台广泛用于计算应用中的数据存储和访问。数据库可以包括一个或更多个表,该一个或更多个表包括或引用可以使用查询来读取、修改或删除的数据。数据库可用于存储和/或访问个人信息或其他敏感信息。可以通过加密和/或以加密形式存储数据来提供对数据库数据的安全存储和访问,以防止未经授权的访问。在某些情况下,可能期望数据共享以让其他方针对数据的集合执行查询。此外,数据提供者可能希望具有说明与数据消费者共享的数据的性能和/或消耗的度量。
附图简述
通过参考下面结合附图的描述,可以最好地理解所描述的实施例及其优点。在不脱离所述实施例的精神和范围的情况下,这些附图绝不限制本领域技术人员可以对所述实施例进行的形式和细节上的任何改变。
图1A是描述其中可实现本文公开的方法的示例计算环境的框图。
图1B是示出示例虚拟仓库的框图。
图2是根据本发明的实施例的可用于实现公共或私有数据交换所的数据的示意性框图。
图3是根据本发明的实施例的用于实现数据交换所的组件的示意性框图。
图4A是根据本发明的一些实施例的在数据交换所中的远程部署的框图。
图4B是根据本发明的一些实施例的在数据交换所中的远程部署的框图。
图5是根据本发明的一些实施例的在数据交换所中的远程部署的框图。
图6是根据本发明的一些实施例的在数据交换所中的远程部署的框图。
图7是根据本发明的一些实施例的用于管理数据交换所可用性和数据清单可见性的方法的流程图。
图8是根据本发明的一些实施例的用于管理清单批准请求的方法的流程图。
图9是根据本发明的一些实施例的数据共享平台的框图。
图10是根据本发明的一些实施例的与数据提供者共享数据度量的数据共享平台的框图。
图11是根据本发明的一些实施例的用于为数据提供者准备度量数据的方法的流程图。
图12是根据本发明的一些实施例的用于与数据提供者共享度量数据的方法的流程图。
图13是根据本发明的一些实施例的用于共享客户端遥测数据的数据流的框图。
图14是根据本发明的一些实施例的用于共享作业数据的数据流的框图。
图15是根据本发明的一些实施例的用于共享获取和请求数据的数据流的框图。
图16是根据本发明的一些实施例的用户界面的框图,该用户界面呈现具有转换度量的清单的性能度量。
图17是根据本发明的一些实施例的用户界面的框图,该用户界面呈现关于提供者的多个清单的消费度量。
图18是根据本发明的一些实施例的用户界面的框图,该用户界面呈现显示执行的查询、活跃消费者、总查询和视图的多个清单的消费度量。
图19是根据本发明的一些实施例的用户界面的框图,该用户界面呈现示出类型、视图、请求和挂载的数据库的清单的关于多个消费者的运行情况(performance)度量。
图20是根据本发明的一些实施例的用户界面的框图,该用户界面呈现示出所执行的总查询的清单的关于多个消费者的消费者度量。
图21是根据本发明的一些实施例的示例计算设备的框图,该示例计算设备可以执行本文描述的一个或更多个操作。
详细描述
数据提供者通常有难以共享的数据资产。数据资产可能是另一个实体感兴趣的数据。例如,一个大型在线零售公司可能有包括过去十年中数百万客户的购买习惯的数据集。这个数据集可能很大。如果在线零售商希望与另一实体共享该数据的全部或部分(根据适用的隐私法和合同义务,匿名和/或聚合),在线零售商可能需要使用旧的和缓慢的方法来传输数据,例如文件传输协议(FTP),或者甚至将数据复制到物理媒体上并将物理媒体邮寄给另一实体。这有几个缺点。首先,这样很慢。复制兆兆字节或拍字节的数据可能需要几天时间。第二,一旦数据被交付,共享者就无法控制数据发生什么。接收方可以更改数据、复制数据或与其他方共享数据。第三,唯一有兴趣以这种方式访问如此庞大数据集的实体是大公司,大公司能够负担得起传输和处理数据的复杂组织工作以及如此繁琐的数据传输的高昂价格。因此,较小的实体(例如,中小型企业(SMB)、“夫妻店”等),或者甚至更小、更灵活的云理念初创企业(cloud-focused startup),往往由于价格过高而无法访问这些数据,尽管这些数据可能对他们的企业很有价值。这可能是因为原始数据资产通常过于粗糙,而且充满了潜在的敏感数据,而无法直接出售给其他公司。数据清理、去标识、聚合、关联和其他形式的数据丰富需要由数据所有者在数据可与另一方共享之前执行。这是费时且昂贵的。最后,由于上述原因,传统的数据共享方法不允许可扩展的共享,因此很难与许多实体共享数据资产。传统的共享方法还引入了延时(latency)和延迟(delays),因为所有各方都可以访问最近更新的数据。
私有数据交换所和公共数据交换所可以使数据提供者更容易且更安全地与其他实体共享其数据资产。公共数据交换所(本文也称为“雪花数据市场(Snowflake datamarketplace)”或“数据市场(data marketplace)”)可以提供开放访问的集中存储库,其中数据提供者可以向成千上万的客户发布和控制实时和只读数据集。私有数据交换所(本文也称为“数据交换所”)可以在数据提供者的品牌下,并且数据提供者可以控制谁可以获得对数据的访问权。数据交换所可以仅供内部使用,或者也可以向客户、合作伙伴、供应商或其他人开放。数据提供者可以控制列出什么数据资产以及控制谁可以访问哪些数据的集合。这允许在数据提供者的组织内部以及与其业务合作伙伴之间以无缝方式发现和共享数据。
数据交换所可以通过诸如的云计算服务来促进,并允许数据提供者直接从他们自己的在线域(例如,网站)在一个具有其自己品牌的私有在线市场上提供数据资产。数据交换所可以为实体提供集中式的、受管理的中心,以列出内部或外部共享的数据资产,激发数据协作,并且还维护数据治理和审计访问。通过数据交换所,数据提供者能够在公司之间共享数据而不复制数据。数据提供者可以邀请其他实体查看其数据清单,控制哪些数据清单出现在其私有在线市场,控制谁可以访问数据清单以及其他人如何与连接到清单的数据资产交互。这可能被认为是一个“有围墙的花园”市场,在这个市场中,花园的游客必须得到批准,并且对特定清单的访问可以被限制。
举个例子,A公司可能是一家消费者数据公司,它收集并分析了多个不同类别的数百万个体的消费习惯。他们的数据集可以包括以下类别的数据:在线购物、视频流、电力消费、汽车使用、互联网使用、服装购买、移动应用购买、俱乐部会员和在线订阅服务。公司A可能希望将这些数据集(或这些数据集的子集或派生产品)提供给其他实体。例如,一个新的服装品牌可能希望访问与消费者服装购买和网上购物习惯相关的数据集。A公司可以在其网站上支持一个页面,该页面是或功能基本上类似于数据交换所,在该页面上,数据消费者(例如,新服装品牌)可以直接从A公司浏览、探索、发现、访问和有可能购买数据集。此外,A公司可以控制:谁可以进入数据交换所、可以查看特定清单的实体、实体可以对清单采取的动作(例如,仅查看)以及任何其他适当的动作。此外,数据提供者可以将其自己的数据与来自例如公共数据交换所(也称为“雪花数据市场”或“数据市场”)的其他数据集组合,并使用组合的数据创建新的清单。
数据交换所可以是发现、汇集、清理和丰富数据以使其更加富有价值的适当场所。数据交换所上的一个大公司可以汇集来自其各个分支和部门的可能对另一个公司有价值的数据。此外,私有生态系统数据交换所的参与者可以一起工作,将他们的数据集关联在一起,共同创建他们中任何一个单独无法产生的有用数据产品。这些关联的数据集一旦被创建,它们就可以在数据交换所或数据市场上被列出。
当数据提供者在数据提供者的账户中创建数据库的共享对象(以下称为共享)并授予对数据库的特定对象(例如,表、安全视图和安全用户定义函数(UDF))的共享访问权时,可以执行共享数据。然后,可以使用在共享中提供的信息来创建只读数据库。对该数据库的访问可以由数据提供者控制。“共享”封装共享数据库中的数据所需的所有信息。共享可以包括至少三条信息:(1)授权访问数据库和包含要共享的对象的模式的特权,(2)授权访问特定对象(例如,表、安全视图和安全UDF)的特权,以及(3)共享数据库及其对象的消费者账户。当数据被共享时,不会在用户之间复制或传输数据。通过诸如的云计算服务提供者的云计算服务来完成共享.
由提供者(也称为“数据提供者”)共享的数据可以通过提供者在数据交换所或数据市场中定义的清单来描述。对于数据市场和数据交换所,清单的访问控制、管理和治理可能是相似的。清单可以包括描述共享数据的元数据。
然后,共享数据可以被用于处理SQL查询,可能包括关联、聚合或其他分析。在某些情况下,数据提供者可以定义共享,以便允许对共享数据执行“安全关联”。可以执行安全关联,使得可以对共享数据执行分析,但是数据消费者(例如,共享的接收者)不能访问实际的共享数据。
在公共数据交换所或私有数据交换所中,对清单的许多请求可能来自与提供者所在的本地部署不同区域的远程部署。尽管可以实现数据交换所中的跨区域功能,但在某些情况下,数据交换所所有者/管理员可能希望限制数据交换所在何处(例如,哪些区域或远程部署)可用。此外,提供者可能希望控制他们的数据清单在何处可见。例如,公司和政府可能对在哪里可以获得特定数据有不同且变化的要求/规定。对于谁可以看到/访问他们的数据,以及从什么地方可以看到/访问他们的数据,数据提供者本身可能有其自己的要求/限制。尽管可以在数据交换所的单个实例中实现关于清单可见性的控制,但在跨区域数据交换所中,在不共享相同存储的多个远程部署上实现这样的控制是不可行的。此外,即使清单跨多个远程部署可见,但由于基础数据仍然驻留在本地部署中,因此还是需要用于请求和实现数据的手段。
本文描述的系统和方法提供了一种用于共享关于共享数据访问和与数据提供者针对数据交换所的不同数据清单相关联的访问的度量的方式。例如,方法可以包括指定检测与数据交换所的一组数据清单的一个或更多个客户端交互,该一组数据清单与一个或更多个数据提供者相关联。方法还可以包括收集对应于一个或更多个客户端交互的度量。此外,方法可以与一个或更多个数据提供者共享与一个或更多个数据提供者相关的度量。
图1A是在其中可以实现在本文中公开的系统和方法的示例计算环境100的框图。具体地,可以实现云计算平台110,例如AMAZON WEB SERVICESTMTM(AWS)、MICROSOFTAZURETMTM、GOOGLE CLOUDTM等。如本领域中已知的,云计算平台110提供可被获取(购买)或租赁的计算资源和存储资源,并被配置为执行应用和存储数据。
云计算平台110可以托管云计算服务112,该云计算服务有助于云计算平台110上的数据存储(例如,数据管理和访问)和分析功能(例如,SQL查询、分析)以及其他计算能力(例如,云计算平台110的用户之间的安全数据共享)。云计算平台110可以包括三层架构:数据存储140、查询处理130和云服务120。
数据存储140可有助于将云计算平台110上的数据存储在一个或更多个云数据库141中。数据存储140可以使用存储服务(诸如AMAZON S3)来在云计算平台110上存储数据和查询结果。在特定实施例中,为了将数据加载到云计算平台110,可以将数据表水平地划分为大的、不可变的文件,这些文件可以类似于传统数据库系统中的块或页。在每个文件内,每个属性或列的值被分组在一起,并使用有时称为混合列的方案进行压缩。每个表都有表头,该表头除了其他元数据之外包含文件内每个列的偏移量。
除了存储表数据之外,数据存储140还有助于存储由查询操作(例如,关联)生成的临时数据以及包含在大的查询结果中的数据。这可以允许系统在没有内存不足或磁盘不足错误的情况下计算大的查询。以这种方式存储查询结果可以简化查询处理,因为它去除了传统数据库系统中对服务器端游标的需求。
查询处理130可以处理虚拟机的弹性集群(本文称为虚拟仓库或数据仓库)内的查询执行。因此,查询处理130可以包括一个或更多个虚拟仓库131,它们在本文也可称为数据仓库。虚拟仓库131可以是在云计算平台110上操作的一个或更多个虚拟机。虚拟仓库131可以是可根据需求在任何点处创建、销毁或调整大小的计算资源。该功能可以创建“弹性”虚拟仓库,该“弹性”虚拟仓库根据用户的需要扩展、收缩或关闭。扩展虚拟仓库涉及生成到虚拟仓库131的一个或更多个计算节点132。收缩虚拟仓库涉及从虚拟仓库131去除一个或更多个计算节点132。更多计算节点132可导致更快的计算时间。例如,在有四个节点的系统上需要15个小时的数据加载在有三十二个节点的系统上可能只需要两个小时。
云服务120可以是协调跨云计算服务112的活动的服务集合。这些服务将云计算服务112的所有不同组件绑定在一起,以便处理从登录到查询分派的用户请求。云服务120可以在由云计算服务112从云计算平台110提供的计算实例上操作。云服务120可以包括管理虚拟仓库、查询、事务、数据交换的服务以及与这些服务相关联的元数据(例如数据库模式、访问控制信息、加密密钥和使用统计信息)的服务集合。云服务120可以包括但不限于认证引擎121、基础设施管理器122、优化器123、交换所管理器124、安全125引擎和元数据存储126。
图1B是示出示例虚拟仓库131的框图。交换所管理器124可以使用例如数据交换所来促进数据提供者和数据消费者之间的数据共享。例如,云计算服务112可以管理数据库108的存储和访问。数据库108可以包括用于不同用户(例如,不同企业或个人)的用户数据150的各种实例。用户数据可以包括由该用户存储和访问的数据的用户数据库152。用户数据库152可以受到访问控制,使得在与云计算服务112进行认证时,仅允许数据的所有者改变和访问数据库108。例如,可以对数据进行加密,使得只能使用数据所有者所拥有的解密信息对其进行解密。可以根据本文公开的方法以受控方式使用交换所管理器124与其他用户共享来自受这些访问控制的用户数据库152的特定数据。具体地说,用户可以指定共享154,共享154可以以不受控方式在公共或私有数据交换所中共享,或者以如上所述的受控方式与特定的其他用户共享。“共享”封装共享数据库中的数据所需的所有信息。共享可以包括至少三条信息:(1)授权访问数据库和包含要共享的对象的模式的特权,(2)授权访问特定对象(例如,表、安全视图和安全UDF)的特权,(3)共享数据库及其对象的消费者账户。当数据被共享时,不会在用户之间复制或传输数据。共享通过云计算服务112的云服务120来完成。
当数据提供者在数据提供者的账户中创建数据库的共享并授权对特定对象(例如,表、安全视图和安全用户定义函数(UDF))的访问时,可以执行共享数据。然后,可以使用共享中提供的信息创建只读数据库。对此数据库的访问可以由数据提供者控制。
然后,共享数据可以被用于处理SQL查询,可能包括关联、聚合或其他分析。在某些情况下,数据提供者可以定义共享,以便允许对共享数据执行“安全关联”。可以执行安全关联,使得可以执行关于共享数据的分析,但是数据消费者(例如,共享的接收者)不能访问实际的共享数据。可以按照2019年3月18日提交的申请序列号为16/368,339的美国申请中的描述执行安全关联。
用户设备101-104(例如膝上型计算机、台式计算机、移动电话、平板计算机、云托管计算机、云托管无服务器进程或其他计算进程或设备)可以用于通过网络105(例如互联网或专用网络)访问虚拟仓库131或云服务120。
在下面的描述中,动作源于用户,特别是消费者和提供者。这样的动作应被理解为相对于由这样的用户操作的设备101-104来执行。例如,对用户的通知可以理解为发送到设备101-104的通知,来自用户的输入或指令可以理解为通过用户设备101-104接收,并且用户与界面的交互应该理解为与用户设备101-104上的界面的交互。此外,源于用户(消费者或提供者)的数据库操作(关联、聚合、分析等)应被理解为包括由云计算服务112响应于来自该用户的指令对这样的动作的执行。
图2是根据本发明的实施例的可用于实现公共或私有数据交换所的数据的示意性框图。交换所管理器124可以针对所示的交换所数据200中的一些或全部操作,所述交换所数据200可以存储在执行交换所管理器124的平台(例如,云计算平台110)上或在某个其他位置。交换所数据200可以包括描述由第一用户(“提供者”)共享的数据的多个清单202。清单202可以是数据交换所中或数据市场中的清单。对于数据市场和数据交换所二者,清单的访问控制、管理和治理可能是相似的。
清单202可以包括描述共享数据的元数据204。元数据204可以包括以下信息中的一些或全部:共享数据的共享者的标识符、与共享者相关联的URL、共享的名称、表的名称、共享数据所属的类别、共享数据的更新频率、表的目录、每个表中的列数和行数以及列的名称。元数据204还可以包括帮助用户使用数据的示例。这样的示例可以包括包含一个示例表的行和列的样本的样表、可以针对表运行的示例查询、示例表的示例视图、基于表的数据的示例可视化(例如,图表、仪表板)。包括在元数据204中的其他信息可以是供商业智能工具使用的元数据、包含在表中的数据的文本描述、与表相关联以便于搜索的关键字、到与共享数据相关的文档的链接(例如,URL),和指示共享数据更新的频率的刷新间隔以及数据上次更新的日期。
清单202可以包括访问控制206,访问控制206可配置为任何合适的访问配置。例如,访问控制206可以指示共享数据不受限制地对私有交换的任何成员可用(如本文别处所使用的“任何共享”)。访问控制206可以指定允许访问数据和/或查看清单的用户的分类(特定组或组织的成员)。访问控制206可以指定“点对点”共享(参见图4A和图4B的讨论),其中用户可以请求访问,但仅在提供者批准时才允许访问。访问控制206可以指定被排除在能够访问清单202所引用的数据之外的用户的一组用户标识符。
注意,一些清单202可以由用户发现,而无需进一步的认证或访问许可,而实际访问仅在随后的认证步骤之后才被允许(参见图4A、图4B和图6的讨论)。访问控制206可以指定清单202仅由特定用户或用户分类可发现。
还注意,清单202的默认功能在于由共享引用的数据不是由消费者可导出的。可选地,访问控制206可以指定这是不允许的。例如,访问控制206可以指定可针对共享数据执行安全操作(如下所述的安全关联和安全功能),使得不允许查看和导出共享数据。
在一些实施例中,一旦用户关于清单202进行认证,就将对该用户的引用(例如,该用户在虚拟仓库131中的账户的用户标识符)添加到访问控制206,使得该用户随后将能够访问清单202所引用的数据而无需进一步认证。
清单202可以定义一个或更多个过滤器208。例如,过滤器208可以定义在浏览目录220时可以查看对清单202的引用的用户的特定用户标识符214。过滤器208可以定义在浏览目录220时可以查看对清单202的引用的用户的分类(特定职业的用户、与特定公司或组织相关联的用户、特定地理区域或国家内的用户)。以这种方式,私有交换所可以由交换所管理器124使用相同的组件来实现。在一些实施例中,被排除在访问清单202(即将清单202添加到被排除用户的消费共享156中)之外的被排除用户仍可被允许在浏览目录220时查看清单的表示,并且可进一步被允许请求访问清单202,如下所述。由这种被排除用户和其他用户访问清单的请求可以在呈现给清单202的提供者的界面中列出。清单202的提供者然后可以查看对访问清单的需求,并选择扩展过滤器208以允许被排除用户或被排除用户的分类(例如,在被排除的地理区域或国家中的用户)的访问。
过滤器208可以进一步定义用户可以查看哪些数据。特别地,过滤器208可以指示选择清单202以添加到用户的消费共享156的用户被允许访问清单所引用的数据,但仅允许访问过滤版本,该过滤版本仅包括与该用户的身份数据214相关联的数据、与该用户的组织相关联的数据或特定于该用户的某个其他类别的数据。在一些实施例中,私有交换所是通过邀请进行的:由提供者邀请查看私有交换所的清单202的用户在传达对从提供者接收的邀请的接受之后,由交换所管理器124使其能够查看私有交换所的清单202。
在一些实施例中,清单202可以被寻址到单个用户。因此,可将对清单202的引用添加到用户可查看的“待定共享”的集合中。然后,在用户向交换所管理器124传达批准时,可以将清单202添加到用户的共享组中。
清单202可以进一步包括使用数据210。例如,云计算服务112可以实现信用系统,在信用系统中信用由用户购买,并在用户每次运行查询、存储数据或使用由云计算服务112实现的其他服务时被消费。因此,使用数据210可以记录通过访问共享数据而消费的信用量。使用数据210可以包括其他数据,诸如查询的数量、针对共享数据执行的多种类型中的每种类型的聚合的数量或其他使用统计数据。在一些实施例中,用户对清单202或多个清单202的使用数据以共享数据库的形式提供给用户,即由交换所管理器124将对包括使用数据的数据库的引用添加到用户的消费共享156中。
清单202还可以包括热图(heat map)211,热图211可以表示用户点击该特定清单时的地理位置。云计算服务112可以使用热图来做出关于清单的复制决策或其他决策。例如,数据交换所可以显示包含美国佐治亚州的天气数据的清单。热图211可以指示加利福尼亚州的许多用户正在选择该清单来了解更多关于佐治亚州的天气的情况。考虑到该信息,云计算服务112可以复制清单并使其在其服务器物理上位于美国西部的数据库中可用,从而加利福尼亚州的消费者可以访问该数据。在一些实施例中,实体可以将其数据存储在位于美国西部的服务器上。特定清单可能非常受消费者欢迎。云计算服务112可以复制该数据并将其存储在位于美国东部的服务器中,从而中西部和东海岸的消费者也可以访问该数据。
清单202还可以包括一个或更多个标签213。标签213可以促进更简单地共享包含在一个或更多个清单中的数据。例如,大公司可以具有人力资源(HR)清单,人力资源清单包含在数据交换所中对于其内部员工的HR数据。HR数据可以包含十种类型的HR数据(例如,员工编号、选定的健康保险、当前退休计划、职称等)。HR清单可以对公司的100个人(例如HR部门的每个人)都有帮助。HR部门的管理层可能希望添加第十一类型的HR数据(例如,员工股票期权计划)。与手动将此添加到HR清单并授予100人中的每个人对该新数据的访问权不同,管理层可以只是将HR标签应用到新数据集,并且该标签可以用于将数据归类为HR数据,将其与HR清单一起列出,并授予100人查看新数据集的访问权。
清单202还可以包括版本元数据215。版本元数据215可以提供跟踪数据集如何改变的方式。这可能有助于确保一个实体正在查看的数据不会过早被改变。例如,如果公司拥有原始数据集,且然后发布该数据集的更新版本,更新可能会干扰另一个用户对该数据集的处理,因为更新可能具有不同的格式、新列以及可能与接收方用户的当前处理机制不兼容的其他改变。为了补救这一点,云计算服务112可以使用版本元数据215来跟踪版本更新。云计算服务112可以确保每个数据消费者访问数据的相同版本,直到他们接受不会干扰对数据集的当前处理的更新版本。
交换所数据200还可以包括用户记录212。用户记录212可以包括标识与用户记录212相关联的用户的数据,例如,在服务数据库128中具有用户数据134并由虚拟仓库131管理的用户的标识符(例如,仓库标识符)。
用户记录212可以列出与用户相关联的共享,例如,由用户创建的引用清单202。用户记录212可以列出由用户消费的共享,例如,根据本文描述的方法,由另一用户创建并且已经与用户的账户相关联的引用清单202。例如,清单202可以具有标识符,该标识符将用于在用户记录212的共享或消费共享156中引用它。
交换所数据200还可以包括目录220。目录220可以包括所有可用清单202的清单,并且可以包括来自元数据204的数据索引,以便于根据本文描述的方法进行浏览和搜索。在一些实施例中,清单202以JavaScript对象表示法(JSON)对象的形式存储在目录中。
注意,在不同云计算平台上存在虚拟仓库131的多个实例的情况下,虚拟仓库131的一个实例的目录220可以存储来自一个或更多个其他云计算平台110上的其他实例的清单或对清单的引用。因此,每个清单202可以是全局唯一的(例如,其可以是跨虚拟仓库131的所有实例分配的全局唯一标识符)。例如,虚拟仓库131的实例可以同步它们的目录220的副本,使得每个副本指示虚拟仓库131的所有实例可用的清单202。在一些实例中,清单202的提供者可以指定它将仅在指定的一个或更多个计算平台110上可用。
在一些实施例中,目录220在互联网上可用,使得它可以通过搜索引擎(诸如BING或GOOGLE)搜索。该目录可以服从搜索引擎优化(SEO)算法以提高其可见性。因此,潜在消费者可以从任何web浏览器浏览目录220。交换所管理器124可以公开链接到每个清单202的统一资源定位符(URL)。该URL可以是可搜索的,并且可以在由交换所管理器124实现的任何界面之外共享。例如,清单202的提供者可以发布其清单202的URL,以便促进其清单202及其品牌的使用。
图3示出了可以被包括在交换所管理器124中的多个组件300-310。创建模块300可以提供用于创建清单202的界面。例如,到虚拟仓库131的网页界面,使用户能够在设备101-104上选择用于共享的数据(例如用户的用户数据150中的特定表)以及输入定义元数据204、访问控制206和过滤器208中的一些或全部的值。在一些实施例中,创建可以由用户通过在云计算平台110上执行的SQL解释器中的SQL命令来执行,并且通过用户设备101-104上的网页界面来访问。
验证模块302可以在试图创建清单202时验证由提供者提供的信息。注意,在一些实施例中,源于验证模块302的动作可以通过审查由提供者提供的信息的人来执行。在其他实施例中,这些动作是自动执行的。验证模块302可以执行各种功能,或者促进由人类操作者执行各种功能。这些功能可以包括验证元数据204与其引用的共享数据一致,验证元数据204引用的共享数据不是盗版数据、个人识别信息(PII)、个人健康信息(PHI)或对其进行共享是不希望的或非法的其他数据。验证模块302还可以促进对数据在阈值时间段内(例如,在过去24小时内)已被更新的验证。验证模块302还可以促进验证数据不是静态的或从其他静态公共源不可得。验证模块302还可以促进验证数据不仅仅是样本(例如,数据足够完整有用)。例如,地理上受限的数据可能是不希望的,而没有其他限制的数据的聚合可能仍然是有用的。
交换所管理器124可以包括搜索模块304。搜索模块304可以实现通过用户在用户设备101-104上可访问的网页界面,以便调用对关于目录220中的元数据的搜索字符串的搜索,接收对搜索的响应,以及选择对搜索结果中的清单202的引用,以添加到执行搜索的用户的用户记录212的消费共享156。在一些实施例中,搜索可以由用户通过在云计算平台110上执行的SQL解释器中的SQL命令来执行,并且搜索可以通过用户设备101-104上的网页界面来访问。例如,可以通过针对下面讨论的在SQL引擎310内对目录220进行SQL查询来执行对共享的搜索。
搜索模块304可进一步实现推荐算法。例如,推荐算法可以基于用户的消费共享156中或以前用户消费共享中的其他清单为用户推荐其他清单202。推荐可以基于逻辑相似性:一个天气数据源导致对第二个天气数据源的推荐。可以基于相异性提出推荐:一个清单是针对一个领域(地理区域、技术领域等)内的数据,结果是针对不同领域的清单,以方便用户的分析的全面覆盖(不同地理区域、相关技术领域等)。
交换所管理器124可以包括访问管理模块306。如上所述,用户可以添加清单202。这可能需要关于清单202的提供者的认证。一旦清单202被添加到用户的用户记录212的消费共享156中,则用户可以(a)每次访问清单202所引用的数据时被要求认证,或者(b)一旦添加了清单202,则被自动认证并允许访问数据。访问管理模块306可以管理用于用户的消费共享156中的数据的后续访问的自动认证,以便提供共享数据的无缝访问,就好像共享数据是该用户的用户数据150的一部分一样。为此,访问管理模块306可以访问清单202的控制206、证书、令牌或其他认证材料,以便在执行对共享数据的访问时认证用户。
交换所管理器124可以包括关联模块308。关联模块308管理用户的消费共享156所引用的共享数据(即来自不同提供者的共享数据)与彼此的集成以及与用户所拥有的数据的用户数据库152的集成。特别地,关联模块308可以管理关于这些各种数据源的查询和其他计算功能的执行,使得它们的访问对用户是透明的。关联模块308还可以管理数据的访问以强制对共享数据的限制,例如,使得可以执行分析并显示分析的结果,而不向数据的消费者公开基础数据,其中该限制由清单202的访问控制206指示。
交换所管理器124还可以包括标准查询语言(SQL)引擎310,其被编程为接收来自用户的查询并执行关于查询所引用的数据的查询,该数据可以包括用户的消费共享156和用户拥有的用户数据150。SQL引擎310可以执行本领域中已知的任何查询处理功能。SQL引擎310可以附加地或替代地包括本领域已知的任何其他数据库管理工具或数据分析工具。SQL引擎310可以定义在云计算平台110上执行的网页界面,通过该网页界面输入SQL查询并呈现对SQL查询的响应。
图4A示出了包括多个远程云部署401、402和403的云环境400。远程部署401、402和403中的每一个可以包括类似于云计算服务112(在图1A中示出)的架构。远程部署401、402和403都可以物理地位于分离的远程地理区域中,但都可以是单个数据交换所或单个数据市场的部署。在云环境400中,对诸如数据清单、数据库或远程部署401上的共享的数据的请求可以来自远程部署402或远程部署403上的账户。远程部署401可以是数据交换所或数据市场的原始部署,并且可以利用适当的数据复制方法来使这种请求的数据在远程部署402和403上可用。
例如,如果账户A驻留在位于区域1中的远程部署401上,并且在远程部署401上具有数据库DB1,他希望与驻留在位于区域2中的远程部署402内的账户B共享该数据库DB1,则账户A可以更改数据库DB1,使其成为全局类型数据库(与区域特定相对),并(例如,通过使用SQL命令“alter database DB1 enable replication to accounts Reg_2.B”)将DB1的元数据复制到远程部署402。账户B可以获得他们可以(例如,使用SQL命令“showreplication databases”)访问的数据库的列表,这将返回指示DB1的标识符“Reg_1.A.DB1(primary)”。账户B可以(例如,通过使用SQL命令“create database DB1R as a replicaof Reg_1.A.DB1”)在远程部署402上创建DB1的本地副本(在图4A中显示为DB1R),这创建全局类型数据库,因为它是作为副本创建的。需要注意的是,截至目前,还没有开始数据复制。此时,命令“show replication databases”将返回标识符“Reg_1.A.DB1(primary)”和“Reg_2.B.DB1(secondary)”。账户B可以通过使用命令(例如,“alter database DB1refresh”)来启动数据复制,这是同步操作,其持续时间可以取决于要同步的数据量。如图4B所示,每个远程部署包括本地的某些对象和它访问全局版本的对象。尽管讨论的是数据库,但上述方法可用于在远程部署之间复制各种类型的数据对象,例如,包括数据交换所、数据清单和共享。
在一些实施例中,远程部署401-403可以利用全局消息传递框架,该全局消息传递框架利用(如本文进一步详细讨论的)特殊消息类型,每个特殊消息类型都专门启用各种不同的功能。对于每种全局消息类型,都有一个相对应的处理函数,该相对应的函数应用于该类型的处理消息。因此,如本文进一步详细讨论的,特定类型的全局消息将包括用于需要对该特定消息类型执行什么处理的自定义逻辑。
尽管可以实现上面讨论的跨区域功能,但在某些场景中,数据交换所所有者/管理员可能希望限制数据交换所在哪里可用(例如,哪些区域或远程部署)。此外,数据提供者可能希望控制其数据清单在哪里可见。例如,公司和政府可能对在哪里可以获得某些数据有不同的和变化的要求/规定。数据提供者本身可能对谁可以看到/访问其数据以及在哪里可以看到/访问其数据有自己的要求/限制,也可能希望限制在哪里其清单可见。尽管可以在数据交换所的单个实例中实现关于清单可见性的控制,但在跨区域数据交换所中、在不共享相同存储的远程部署上实现这样的控制是不可行的。此外,即使在多个部署402和403上清单可见,但是由于数据仍然驻留在本地部署401中,因此还是需要用于请求和实现数据的手段。
本公开的实施例可以利用本文描述的数据复制过程和全局消息传递框架来基于定制逻辑在远程部署401-403之间复制数据,以便使数据交换所在特定区域中可用,该特定区域可以是跨云的,并且还将关于数据交换所中的每个数据清单的可见性的信息复制到特定区域,使得即使数据清单最初不是在那里创建的,也可以在每个远程部署中实施这样的限制。尽管根据数据交换所来讨论,但是本公开的实施例也可以在数据市场中实现。图4B示出了根据本公开的一些实施例的云环境400。
图4B示出了远程部署401,其可以是数据交换所DX1以及远程部署402和403的原始部署。远程部署402和403是可以使数据交换所DX1可用的远程部署,并且如上所述,每个远程部署都可以驻留在它们自己的地理区域(以下称为“区域”,并在图4B中示为区域1、2、3)中。数据交换所DX1可以具有指定的数据交换所管理员账户(以下称为“exchange admin”),并且可以提供允许远程部署401上的交换所管理员指定数据交换所DX1将可用(可解析)的区域以及可以从哪些区域将客户添加为数据交换所DX1的成员的功能。应注意,交换所管理员(与其他Snowflake账户一样)可以包括账户管理员角色,该账户管理员角色可将指定数据交换所DX1可用的区域的能力委托给交换所管理员中的其他角色。数据交换所DX1还可以包括允许数据提供者限制允许其清单(例如,图4B所示的清单DXL1)可见性的区域的功能。远程部署401可以为交换所管理员提供命令(例如,SQL命令)以设置可用区域。例如,交换所管理员可以使用命令“Create data exchange<data_exchange_name>regions=region1,...”来创建在某些区域(例如,区域1等)中可用的数据交换。当交换所管理员希望修改可用区域时,他们可以使用命令“Alter data exchange<data_exchange_name>setregions=region1,region2....”来修改数据交换所可用的区域。例如,交换所管理员还可以使用命令“Alter data exchange<data_exchange_name>unset regions”来去除所有当前设置的可用区域。在一些实施例中,交换所管理员可以修改可用性区域,而数据交换账户持有人、管理员和数据提供者可以(例如,使用命令“Show regions in data exchange<data_exchange_name>”)查看可用区域的列表。对于Snowflake数据市场(SDM),可用区域可以自动设置为当前复制SDM的区域。
当交换所管理员设置用于数据交换所的可用区域时,该信息可以以列表保存在远程部署401的本地数据库(未示出)中。本地数据库可以是任何适当的数据库,例如FoundationDB。远程部署401的本地数据库可以包括多个数据处理对象(DPO),其中可以存储与数据交换所DX1有关的数据。例如,基础字典DPO可以包括一组数据库表,用于存储关于数据库定义的信息,包括关于诸如表、索引、列、数据类型和视图的数据库对象的信息。
一个这样的DPO可以是扩展基础字典DPO的可用区域DPO并且数据交换所DX1的可用区域可以保存在其中。换句话说,指定的可用区域可以是基础字典DPO的属性。从上面列出的示例命令中可以看出,交换所管理员可以逐个区域地指定数据交换所DX1可用的区域,而不是逐个部署地指定DX1可用的特定远程部署。因此,当执行“Alter data exchange”命令时,远程部署401可以保存要使其上数据交换所DX1可用的每个区域的部署位置ID,而不是保存要在其上使数据交换所DX1可用的远程部署的部署标识符(ID)。部署位置ID可以以任何合适的字母-数字形式表示,例如1001或region1(对应于区域1)以及1002或region2(对应于区域2)。可用部署位置ID的列表可以存储为可用区域DPO内的字符串(定义为例如静态最终字符串AVAILABLE_DEPLOYMENT_LOCATION_IDS=“availabledeploymentlocationIDs”),并且当数据交换所DX1的成员希望知道可用区域时,可以解析该字符串以确定数据交换所DX1可用的区域的部署位置ID。应该注意的是,区域1、2和3中的任何一个都可以包含多个远程部署,并且这些远程部署中的每一个可以被称为部署分片(deployment shard)。特定区域中的每个部署分片将共享相同的部署位置ID。利用部署位置ID是有效的,因为每次创建新部署时,不需要手动刷新可用区域DPO中可用部署ID的列表(字符串)。例如,如果一个新的分片部署被添加到一个区域,存储部署ID将需要手动刷新相关DPO中可用部署ID的列表。通过利用/存储部署位置ID,如果例如在任何区域中创建新部署/分片,则远程部署401只需要获得新部署/分片的部署区域,这是容易的,因为它包括在新部署/分片的部署元数据中。
远程部署401然后可以使用上文讨论的数据库复制方法来将数据交换所DX1复制到(如由交换所管理员指定的)数据交换所可用的每个区域中的每个远程部署中。对于对应于数据交换所DX1的全局对象,远程部署401可以通过解析来自可用区域DPO的部署位置ID的字符串以确定数据交换所DX1可用的区域的列表来决定全局对象要复制到哪个远程部署。在图4B所示的示例中,交换所管理员可以将区域1(其中当前已经存在的区域)和区域2设置为可用区域。当复制数据交换所DX1时,远程部署401需要知道在区域2中有哪些远程部署可用,并且可以获得区域2中的所有远程部署(例如,部署位置ID 1002)。在图4B的示例中,这可以包括远程部署402、402B和402C)。更具体地说,远程部署401可以包括区域2的部署位置ID和区域2中每个部署分片的部署ID之间的映射。因此,数据交换所DX1可以容易地查找区域2(由其部署位置ID标识)中的所有部署分片ID,并将信息复制到所有相关的部署分片。如图4B中所示,然后将对应于数据交换所DX1的全局对象复制到远程部署402。当创建新部署时,可以通过刷新要复制到该新远程部署的远程部署的列表来回填该列表。远程部署401然后可以继续上面描述的数据复制方法,以将数据交换所DX1复制到区域2中的每个远程部署(即远程部署402)。在一些实施例中,远程部署401可以执行获得可用区域的列表并以规则间隔将数据交换所DX1复制到那些区域中的远程部署的过程。如在图4B中可以看到的,远程部署402现在可以访问数据交换所DX1的全局副本。
在设置用于数据交换所DX1的可用区域时,数据交换所DX1的数据提供者可以设置其清单将可见的区域(例如,设置清单可见性)。清单可以是数据提供者希望共享的数据的消费者可视表示。清单可以描述基础数据是关于什么的,包含关于数据的使用示例以及本文讨论的其他元数据。数据提供者创建清单,并且在创建时,只有数据提供者可以看到清单。数据提供者可以将清单发送给交换所管理员以进行发布批准(如本文进一步详细描述的,称为“清单批准”)。一旦获得批准,数据提供者就可以在数据交换所DX1可用的区域中发布全局可用的清单。
清单可见性并不是指由于远程部署中存在(或缺少)清单而实施的物理限制,这意味着清单仍然可以复制到这些部署中,同时对这些部署的消费者保持不可见。一旦交换所管理员决定数据交换所DX1在哪些区域可用,数据提供者就可以选择这些区域的子集,使在该子集中清单可见。
在图4B所示的示例中,在远程部署402中数据提供者可以(在远程部署402中本地)生成清单DXL1以共享特定数据。(例如,先前从远程部署401复制的)数据交换所DX1的本地副本可以为数据提供者提供一组命令(例如,SQL命令)来设置清单DXL1将可见的区域。例如,数据提供者可以使用命令“Alter listing<listing_name>set regions=region1,region2....”来设置DXL1可见的区域。数据提供者可以使用命令“Alter listing<listing_name>unset regions”来去除所有先前设置的区域(使得清单在任何区域都不可见),并且可以使用命令“Show listings in data exchange<dx_name>;”来查看DXL1可见的当前区域。
当数据提供者设置清单DXL1在其中可见的区域时,该信息可以以列表保存在远程部署402的本地数据库中(未示出)。远程部署402的本地数据库可以是任何合适的数据库,例如FoundationDB,并且可以包括清单可见区域DPO(未示出),该清单可见区域DPO扩展了基础字典DPO并且其中可以保存一个或更多个清单可见的区域。如在上面列出的示例命令中可以看到的,数据提供者可以指定其清单在逐个区域的基础上可见的区域,而不是指定其清单在逐个部署的基础上可见的特定部署。因此,当执行“Alter listing<listing_name>set regions”命令时,远程部署402可以保存其中清单DXL1可见的每个区域的部署位置ID,而不是保存其上清单可见的远程部署的部署ID。其中使清单DXL1可见的部署位置ID的列表可以作为字符串(被定义为例如静态最终字符串VISIBLE_DEPLOYMENT_LOCATION_IDS=“availabledeploymentlocationIDs”)存储在清单可见区域DPO中,并且当数据提供者或交换所管理员希望知道其中清单DXL1将可见的区域时,可以解析该字符串以确定其中清单DXL1可见的区域的部署位置ID。
使用部署位置ID是有效的,因为每次创建新部署时,不需要手动刷新在其上清单在清单可见区域DPO中可见的部署的部署ID的列表。例如,如果新的分片部署被添加到一个区域,存储部署ID将需要手动刷新在其上清单可见的部署ID的列表。通过利用/存储部署位置ID,如果创建了新部署/分片,数据交换只需要获取新部署/分片的部署位置(区域),这很容易,因为它位于新部署/分片的部署元数据中。
当设置了清单DXL1的可见区域时,远程部署402可以将清单DXL1和可见性列表复制到其中清单DXL1可见的每个区域中的每个远程部署。如上所述,远程部署402可以通过解析来自清单可见区域DPO的部署位置ID的字符串来获得清单DXL1可见的区域的列表,并且可以将区域的列表连同诸如清单DXL1的类型以及清单DXL1的元数据的关于清单DXL1的其他信息打包到单个清单信息包中。远程部署402可以利用本文描述的数据复制方法,并且当创建对应于清单DXL1的全局对象时,其可以包括清单信息包。在一些实施例中,如果交换所管理员位于与数据提供者不同的远程部署上(如在图4B的示例中),则交换所管理员可以从对应于清单DXL1的全局对象(其包括清单信息包的副本)获得其中清单DXL1可见的区域的列表。远程部署402可以基于其中清单DXL1可见的区域的列表来决定全局对象要复制到哪个远程部署。远程部署402然后可以完成数据复制以将清单DXL1和清单信息包复制到其中清单DXL1将可见的每个区域中的每个远程部署。远程部署402可以执行获得其中清单DXL1可见的区域的列表和以规则间隔将清单DXL1与清单信息包复制到那些区域中的远程部署的这样的过程。在图4B的示例中,如所示,数据提供者已经将区域1和2设置为其中清单DXL1可见的区域,且因此DXL1被复制到远程部署401。
在一些实施例中,清单DXL1和相对应的可见性列表可以被复制到其中数据交换所DX1可用的每个区域,并且清单可见性限制可以在逻辑上在由数据提供者指定的其中清单不意味着可见的区域中的远程部署上实施。例如,如果区域3的部署位置ID不包括在可见性列表中,则清单DXL1和可见性列表仍然可以复制到远程部署403(如果在此数据交换所可用),但是当远程部署403上的消费者想要解析对他们可用的清单时,远程部署403可以在逻辑上实施由数据提供者设置的可见性限制,并且远程部署403上的消费者可能看不到清单DXL1。
当区域1(例如,其中(如由数据提供者指定)清单是可见的)中的远程部署401中的消费者试图解析对他们可用的清单时,他们可以看到数据提供者的清单DXL1,并且可以请求访问清单DXL1的数据。如果清单是预批准的并且数据已经附加到清单DXL1,则清单DXL1的数据将立即/直接与清单DXL1和清单信息包一起被复制。如果数据尚未附加到清单DXL1,则清单DXL1和清单信息包仍将被复制到远程部署401,但是区域1中的消费者将需要请求数据。
如果数据提供者随后更新清单DXL1的可见区域的列表,使得该清单在其先前可见的区域中不再可见,则在清单复制时作为数据交换所DX1成员的在该区域的远程部署上的消费者仍然能够解析该清单,然而作为数据交换所DX1新成员的在该区域的远程部署上的消费者可能无法解析该清单。
在将清单DXL1复制到每个适当的远程部署时,数据交换所DX1和清单DXL1被设置为全局的,允许来自任何适当的远程部署中的消费者的请求发出消费清单DXL1的基础数据的请求。然而,尽管清单DXL1在多个远程部署中可见,但基础数据仍然驻留在本地远程部署401中。为了请求基础数据并实现请求,现有的全局消息传递框架被用来管理消费者对清单的请求,并允许数据提供者管理清单批准请求。
图5示出了云环境500的图,云环境500可以类似于图4A和图4B中示出的云环境400。在图5的示例中,其中清单DXL2可见的远程部署503上的消费者希望向拥有远程部署502上的清单DXL2的数据提供者请求清单DXL2的数据,该数据提供者可以与远程部署501上的交换所管理员通信。
当远程部署503中的消费者希望请求清单DXL2时,他们可以利用清单元数据(清单元数据被包括在清单信息包中,该清单信息包是关于对应于清单DXL2的全局对象复制的),该清单元数据指示数据提供者是谁以及他们来自哪里/它们起源的远程部署,以确定向哪里发送请求。远程部署503可以利用全局消息,其具有全局消息类型“DATA_EXCHANGE_LISTING_REQUEST_SYNC”。如上所述,对于每种全局消息类型,都有对应的处理函数,该对应的处理函数应用于该类型的处理消息。因此,特定类型的全局消息将包括需要针对该特定消息类型执行什么样的处理的自定义逻辑。可以使用DATA_EXCHANGE_LISTING_REQUEST_SYNC消息类型来管理消费者对提供者的清单请求。这包括创建、取消、拒绝和实现这些请求,以及在从数据交换所中去除成员或删除清单时清理掉请求(使其过期)。这些消息在数据提供者和消费者之间发送。远程部署503可以发送创建消息(其类型:DATA_EXCHANGE_LISTING_REQUEST_SYNC)到远程部署502,远程部署502可以包括具有访问请求DPO(未示出)的本地数据库,该访问请求DPO可以由数据提供者用于管理对数据清单请求的批准/拒绝。如本文关于全局消息框架所讨论的,创建消息可以包括专用逻辑以用请求的信息更新访问请求DPO的适当切片(slice)。请求信息的示例可以包括请求者联系信息、请求者snowflake账户和其所位于的snowflake区域,以及他们可能感兴趣的原因(why)/理由(reason)。如本文所使用的,诸如DPO的多维数组的切片是对应于特定维度的一个或更多个成员的单个值的数据列。
远程部署502中的数据提供者可以通过创建与清单相关联的共享并向消费者授予对与清单相关联的共享的访问权来实现对清单DXL2的请求。“ListingRequestFulfiller”后台服务(BG)可以同步清单请求实现信息,并将该信息通知/复制到可能感兴趣的其他区域/部署分片。更具体地,“ListingRequestFulfiller”BG可以调用实现(全局)消息(类型为:DATA_EXCHANGE_LISTING_REQUEST_SYNC),其将在访问请求DPO中为清单提供者标记请求为已实现,从访问请求DPO的“provider_pending”切片中去除该请求,并在将其状态设置为已实现后将其写入访问请求DPO的“provider_history”切片中。应当注意,与该清单DXL2相关联的共享可以由数据提供者或作为与消费者(例如,远程部署503)处于相同远程部署分片中的数据提供者或位于与消费者(例如,区域3)位于相同区域中的数据提供者的实现者创建(并授予对它的访问权)。如果访问权由与消费者在相同的部署分片中的实现者授予,则这可以触发对远程部署503上共享状态DPO中的“listingShareUpdatedOn”切片的写入,消费者使用该切片来管理他们的清单数据请求。“listingShareUpdatedOn”切片可用于指示消费者已被授予对共享的访问权的数据清单。如果访问权由与消费者不在同一部署分片中但位于同一区域的部署分片上的实现者授予,则在消费者的远程部署503中可以运行在同一区域的部署分片之间同步账户和共享信息的“RemoteShardAccountManager”BG,看到消费者被添加到共享中,并更新共享状态DPO的“listingShareUpdatedOn”切片。“ListingRequestFulfiller”BG将在消费者的远程部署503中运行,并在共享状态DPO中将请求标记为本地已实现,并将发送一条实现消息(类型为:DATA_EXCHANGE_LISTING_REQUEST_SYNC)到远程部署502上的提供者,以通过将请求标记为已实现、将其从“provider_pending”切片中去除并在将其状态设置为已实现之后将其写入“provider_history”切片来更新访问请求DPO。
如果提供者拒绝该请求,则它可以利用更新共享状态DPO的适当切片的逻辑来更新访问请求DPO并发送拒绝消息(类型为:DATA_EXCHANGE_LISTING_REQUEST_SYNC)到远程部署503。
在一些实施例中,不需要来自消费者的请求,并且数据提供者可以创建共享(未示出)并将其附加到数据清单DXL2。数据提供者可以将消费者添加到共享中,并且消费者可以消费来自共享的数据。注意,在消费者没有发出请求的实施例中,共享可以由数据提供者或实现者(该实现者是与消费者在同一远程部署中的数据提供者)创建。
图6示出了云环境600,其可以类似于图4A和图4B中示出的云环境400。在图6的示例中,远程部署602上的数据提供者可能希望向远程部署601上的交换所管理员发送对发布其清单DXL3的批准请求。数据提供者和交换所管理员可以使用特殊的全局消息类型(例如,全局消息类型:DATA_EXCHANGE_LISTING_APPROVAL_REQUEST_SYNC),该特殊的全局消息类型用于管理数据提供者对发布其清单的批准的请求,包括创建、取消、拒绝和批准发布请求。远程部署601的本地数据库上的发布请求DPO可以由交换所管理员用于管理对清单发布请求的批准/拒绝。发布请求DPO可以包括多个切片,其中每个切片是对应于DPO的特定维度的一个或更多个成员中的每一个成员的单个值的数据列。发布请求DPO可以包括关于交换所管理员的“exchange admin”切片、关于数据提供者的“数据提供者”切片以及关于跟踪请求最近更新时间的“updatedOn”切片。每个切片可以包括一个或更多个数据类别,诸如所请求的清单的数据交换所的本地实体ID、所请求的清单的数据交换所所在的部署、所请求的清单所在的部署、所请求的清单的本地实体ID、清单所有者(提供者)的账户ID、请求的状态(例如,待定、拒绝、批准等)、包含用于用户界面(UI)显示的信息的JSON字符串、关于请求为什么被拒绝的原因(如果被拒绝)、发出请求时的时间戳以及最近更新请求时的时间戳。远程部署602的本地数据库可以包括与发布请求DPO相同的单独的清单批准请求DPO,并且由数据提供者使用来管理清单发布请求。清单批准请求DPO和发布请求DPO可以共享相似的信息,因为多个账户不能修改相同的对象/DPO,并且因此两个单独但相似的DPO(每个由单个参与者(例如,交换所管理员和提供者)拥有)被利用。
数据提供者可以生成指示他/她希望在交换所管理员的远程部署601上发布的清单DXL3的批准请求,并用该请求的信息更新清单批准请求DPO的“提供者”切片(的相关数据类别)。随后,数据提供者(例如,经由远程部署602)可以向远程部署601上的交换所管理员发送创建消息,以请求在远程部署601上数据清单DXL3的发布。创建消息可以将批准请求写入远程部署601上发布请求DPO的“exchange admin”切片和“updatedOn”切片。更具体地,创建消息可以用批准请求的相关信息更新关于发布请求DPO的的“exchange admin”切片和“updatedOn”切片中每一个的上面列出的每个相关数据类别。创建消息还可以从管理员切片中去除对同一清单的任何拒绝的或批准的批准请求。
如果交换所管理员决定拒绝批准请求,则其可以更新发布请求DPO的“exchangeadmin”切片和“updatedOn”切片中的“请求状态”和“拒绝原因”字段,并使用拒绝消息来更新远程部署602上的清单批准请求DPO的“数据提供者”切片。作为更新数据提供者切片的一部分,拒绝消息可以相应地更新清单批准请求DPO的“数据提供者”切片中的“请求状态”和“拒绝原因”字段。
如果交换所管理员决定授予批准请求,则其可以更新发布请求DPO的“exchangeadmin”和“updatedOn”切片中的“请求状态”和“拒绝原因”字段,并使用实现消息来更新远程部署602上的清单批准请求DPO的数据提供者切片。作为更新数据提供者切片的一部分,实现消息可以相应地更新清单批准请求DPO的“数据提供者”切片中的“请求状态”和“拒绝原因”字段。
数据提供者还可以利用取消消息,该取消消息可以从远程部署401上的发布请求DPO的交换管理切片中去除(具有待定或批准或拒绝的状态的)任何批准请求。当数据提供者发布批准的清单时,该清理将代表他们使用该相同的代码路径“取消”请求,以去除交换所管理员端的请求。
图7是根据一些实施例的用于管理数据交换所的可用性和其中数据清单的可见性的方法700的流程图。方法700可以由处理逻辑执行,该处理逻辑可以包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(CPU)、片上系统(SoC)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如,微码)或它们的组合。在一些实施例中,方法700可以由(在图4B中示出的)远程部署401和402的相应处理设备执行。
同时参考图4B,在块705处,交换所管理员可以设置其中数据交换所DX1将可用的区域。数据交换所DX1可以提供以下功能:允许远程部署401上的交换所管理员指定其中数据交换所DX1将可用(可解析)的区域以及从哪些区域可以将客户添加为数据交换所DX1的成员。远程部署401可以为交换所管理员提供命令(例如,SQL命令)以设置可用区域。当交换所管理员设置用于数据交换所的可用区域时,该信息可以作为列表保存在远程部署401的本地数据库(未示出)中。本地数据库可以是任何适当的数据库,例如FoundationDB。远程部署401的本地数据库可以包括多个数据处理对象(DPO),其中可以存储与数据交换所DX1有关的数据。例如,基础字典DPO可以包括一组数据库表,其用于存储关于数据库定义的信息,这些信息包括关于诸如表、索引、列、数据类型和视图等数据库对象的信息。
一个这样的DPO可以是扩展基础字典DPO的可用区域DPO并且数据交换所DX1的可用区域可以保存在其中。如从上面列出的示例命令中可以看出,交换所管理员可以在逐个区域的基础上指定其中数据交换所DX1可用的区域,而不是在逐个部署的基础上指定DX1可用的特定远程部署。远程部署401可以保存其中数据交换将可用的每个区域的部署位置ID。部署位置ID可以以任何合适的字母-数字形式表示,例如1001或region1(对应于区域1)、1002或region2(对应于区域2)。可用部署位置ID的列表可以存储为可用区域DPO内的字符串(定义为例如静态最终字符串AVAILABLE_DEPLOYMENT_LOCATION_IDS=“availabledeploymentlocationIDs”),并且当数据交换所DX1的成员希望知道可用区域时,可以解析该字符串以确定其中数据交换所DX1可用的区域的部署位置ID。
在块710处,远程部署401然后可以使用上文讨论的数据库复制方法来将数据交换所DX1复制到(如由交换所管理员指定的)其中数据交换所可用的每个区域中的每个远程部署。对于对应于数据交换所DX1的全局对象,远程部署401可以通过解析来自可用区域DPO的部署位置ID的字符串以确定其中数据交换所DX1可用的区域的列表来决定全局对象要复制到哪个远程部署。
一旦设置了用于数据交换所的可用区域,在块715处,数据交换所DX1的数据提供者可以设置其中其清单(例如,清单DXL1)将可见的区域(例如,设置清单可见性)。清单可以是数据提供者希望共享的数据的客户可视表示。清单可以描述基础数据是关于什么的,包含关于数据的用法示例以及其他元数据。数据提供者创建清单,并且在创建时,只有数据提供者可以看到清单。数据提供者可以将清单发送给交换所管理员以用于发布批准(如本文进一步详细描述的,称为“清单批准”)。一旦获得批准,数据提供者就可以在其中数据交换所DX1可用的区域发布全局可用的清单。
当数据提供者设置其中清单DXL1将可见的区域时,该信息可以作为列表保存在远程部署402的本地数据库中(未示出)。远程部署402的本地数据库可以是任何合适的数据库,例如FoundationDB,并且远程部署402的本地数据库可以包括清单可见区域DPO(未示出),该清单可见区域DPO扩展基础字典DPO并且其中可以保存一个或更多个清单可见的区域。如在上面列出的示例命令中可以看到的,数据提供者可以指定其中其清单在逐个区域的基础上可见的区域,而不是指定在其上其清单在逐个部署的基础上可见的特定部署。其中清单DXL1将可见的部署位置ID的列表可以作为字符串存储在清单可见区域DPO中,并且当数据提供者或交换所管理员希望知道其中清单DXL1将可见的区域时,可以解析该字符串以确定其中清单DXL1可见的区域的部署位置ID。
当设置了清单DXL1的可见区域时,在块720处,远程部署402可以将清单DXL1和可见性列表复制到其中使清单DXL1可见的每个区域中的每个远程部署。如上所述,远程部署402可以通过解析来自清单可见区域DPO的部署位置ID的字符串来获得其中清单可见的区域的列表,并且可以将区域的列表连同诸如清单的类型以及清单的元数据的关于清单的其他信息打包到单个清单信息包中。远程部署402可以利用上文描述的复制方法,并且当创建对应于清单DXL1的全局对象时,其可以包括清单信息包。
现在也参考图5,当远程部署503中的消费者希望请求清单DXL2时,他们可以利用清单元数据(包括在清单信息包中,该清单信息包利用对应于清单DXL2的全局对象复制),该清单元数据指示数据提供者是谁以及他们来自哪里/它们起源的远程部署,以确定向哪里发送请求。远程部署503可以利用具有DATA_EXCHANGE_LISTING_REQUEST_SYNC的全局消息类型的全局消息:这种类型的消息可用于管理消费者对提供者的清单请求。这包括创建、取消、拒绝和实现这些请求,以及在从数据交换中去除成员或删除清单时清理掉请求(使其过期)。在块725处,远程部署503可以向远程部署502发送请求访问清单DXL2的创建消息,该远程部署502可以包括具有访问请求DPO的本地数据库,该访问请求DPO可以由数据提供者用于管理对针对数据清单的请求的批准/拒绝。
在块730处,远程部署502中的数据提供者可以通过创建与清单相关联的共享并向消费者授予对与清单相关联的共享的访问权来实现对清单DXL2的请求。应当注意,与该清单DXL2相关联的共享可以由数据提供者或作为在与消费者相同的远程部署(例如,远程部署403)中的数据提供者的实现者创建(并授予对该共享的访问权)。
图8是根据一些实施例的用于管理清单批准请求的方法800的流程图。方法800可由处理逻辑执行,该处理逻辑可包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(CPU)、片上系统(SoC)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如,微码)或它们的组合。在一些实施例中,方法800可以由(在图4B中示出的)远程部署401和402的相应处理设备执行。
还参考图6,远程部署602上的数据提供者可能希望向远程部署601上的交换所管理员发送关于批准发布其清单DXL3的请求。数据提供者和交换所管理员可以使用特殊的全局消息类型(例如,全局消息类型:DATA_EXCHANGE_LISTING_APPROVAL_REQUEST_SYNC),该特殊的全局消息类型用于管理数据提供者的关于批准发布其清单的请求,包括创建、取消、拒绝和批准发布请求。远程部署601的本地数据库上的发布请求DPO可以由交换所管理员用于管理对清单发布请求的批准/拒绝。发布请求DPO可以包括多个切片,其中每个切片是对应于关于DPO的特定维度的一个或更多个成员中的每一个成员的单个值的数据列。发布请求DPO可以包括关于交换所管理员的“exchange admin”切片、关于数据提供者的“数据提供者”切片以及关于跟踪请求最近更新时的时间的“updatedOn”切片。每个切片可以包括一个或更多个数据类别,诸如所请求的清单的数据交换所的本地实体ID、所请求的清单的数据交换所在的部署、所请求的清单所在的部署、所请求的清单的本地实体ID、清单所有者(提供者)的账户ID、请求的状态(例如,待定、拒绝、批准等)、包含用于用户界面(UI)显示的信息的JSON字符串、请求为什么被拒绝的原因(如果请求被拒绝)、发出请求时的时间戳以及请求最近更新时的时间戳。远程部署602的本地数据库可以包括与发布请求DPO相同的单独的清单批准请求DPO并且由数据提供者使用来管理清单发布请求。
在块805处,远程部署602上的数据提供者可以生成指示他/她希望在交换所管理员的远程部署601上发布的清单DXL3的批准请求,并用该请求的信息更新清单批准请求DPO的“提供者”切片(的相关数据类别)。随后,在块810处,数据提供者(例如,经由远程部署602)可以向远程部署601上的交换所管理员发送创建消息,以请求在远程部署601上发布数据清单DXL3。创建消息可以将批准请求写入远程部署601上的发布请求DPO的“exchangeadmin”切片和“updatedOn”切片。更具体地,创建消息可以用批准请求的相关信息更新关于发布请求DPO的“exchange admin”切片和“updatedOn”切片中每一个的上面列出的每个相关数据类别。创建消息还可以从“admin”切片中去除对同一清单的任何拒绝的或批准的批准请求。
在块815处,如果交换所管理员决定拒绝批准请求,则它可以更新发布请求DPO的“exchange admin”切片和“updatedOn”切片中的“请求状态”和“拒绝原因”字段,并且在块820处使用拒绝消息来更新远程部署602上的清单批准请求DPO的数据提供者切片。作为更新“数据提供者”切片的一部分,拒绝消息可以相应地更新清单批准请求DPO的“数据提供者”切片中的“请求状态”和“拒绝原因”字段。
如果在块815处,交换所管理员决定同意批准请求,则它可以更新发布请求DPO的“exchange admin”切片和“updatedOn”切片中的“请求状态”和“拒绝原因”字段,并且在块825处,使用实现消息来更新远程部署602上的清单批准请求DPO的数据提供者切片。作为更新数据提供者切片的一部分,实现消息可以相应地更新清单批准请求DPO的“数据提供者”切片中的“请求状态”和“拒绝原因”字段。
数据提供者还可以利用取消消息,该取消消息可以从远程部署401上的发布请求DPO的交换管理切片中去除(具有待定或批准或拒绝的状态的)任何批准请求。当数据提供者发布已批准的清单时,清理将代表他们使用相同的代码路径“取消”请求,以去除交换所管理员端的请求。
图9是根据本发明的一些实施例的数据共享平台900的框图。在图9中,数据共享平台900包括耦合到客户端908A-C的数据交换所902。在一个实施例中,使用如以上在图2中所描述的交换所数据200和交换所管理器204来实现数据交换所902。在一个实施例中,数据交换所902包括来自数据提供者904A-B的数据清单906A-E。如图9所示,数据提供者904A具有三个数据清单906A-C,并且数据提供者904B具有数据清单906D-E。虽然在一个实施例中,数据交换所902包括两个数据提供者904A-B和五个数据清单906A-E,但在可选实施例中,可以或多或少地存在数据提供者和/或数据清单中的每一个。在一个实施例中,数据提供者是使用关于一个或更多个数据集的数据清单来共享该数据集的实体。此外,数据清单906A-E中的每一个可以是如以上在图2中所描述的清单。
在一个实施例中,客户端908A-C可以查看和访问数据清单906A-E中的每一个。在该实施例中,客户端908A-C中的每一个可以使用用于访问本领域已知的数据集的访问方法(例如,超文本传输协议(HTTP)或某个其他类型的访问方法)来访问数据清单中的一个或更多个。在一个实施例中,客户端可以访问清单、查看清单、请求清单、挂载数据库、查询挂载的数据库和/或其他类型的活动。
响应于客户端访问和/或使用清单906A-E中的一个或更多个,提供数据交换所902的云计算服务可以收集关于数据清单906A-E的使用的度量,并将这些度量保存在收集的度量数据库910中。在一个实施例中,云计算系统可以收集用于客户遥测的数据、数据集的获取和请求以及交换所消费数据。在该实施例中,客户端遥测度量是关于与数据清单的客户端交互的数据,获取和请求度量是表征数据集的获取和/或请求的数据,以及交换所消耗度量是关于共享的交换所的数据。例如,在一个实施例中,客户端遥测度量包括清单所有者账户部署、清单所有者账户标识符、交换所名称、数据、区域、消费者账户区域、清单标识符、清单名称、清单点击、发起的请求、请求成功、消费者账户每日点击、消费者账户每日发起的请求、消费者账户每日请求成功、消费者账户清单每月点击、消费者账户每月发起的请求、消费者账户每月请求成功和/或用于客户端遥测的其他类型的度量。此外,获取和请求度量可以包括清单所有者账户部署、清单所有者账户标识符、数据、交换所名称、事件类型(例如,获取、请求和/或另一类型的事件)、区域、消费者账户名称、清单标识符、清单名称、消费者账户信息和/或用于获取和请求的其他类型的度量。此外,交换所度量可以包括清单所有者账户部署、清单所有者账户标识符、日期、交换所名称、交换所标识符、交换所区域、清单名称、清单区域、清单全局名称、共享所有者账户名称、共享名称、共享标识符、消费者账户名称、消费者组织名称、消费者账户区域、统计成功作业和/或用于交换所度量的其他类型的度量。在一个实施例中,度量被存储在与云计算服务的运营商相关联的账户下。
使用存储在度量数据库中的度量,云计算服务处理这些度量,并将这些度量作为共享数据集与数据提供者共享。在一个实施例中,云计算服务处理数据并将数据复制到云计算服务的本地安装。在一个实施例中,由于清单可以是全局的,因此单个清单可以具有大范围区域中的消费和客户端遥测度量。在这些实施例中,将给定清单的度量共享回提供者的主账户,提供者从该主账户发布清单。这意味着,在将该数据共享回提供者的本地账户之前,可以首先在单个区域中聚合度量。在一个实施例中,收集度量数据库910可以包括支持不同度量粒度的度量数据。例如,在一个实施例中,度量可以被聚合以示出汇总的度量,或者可以以不同粒度级别进行公开以允许数据提供者钻研以理解对数据提供者的一个或更多个清单的使用。在此示例中,度量可以说明消费者的使用情况,例如执行的查询数、(由消费者进行的且总计的)清单查看、转换度量(将对清单的挂载数据库的所请求清单的查看转换为在挂载数据库上运行的实际查询)、清单请求、每个消费者的平均查询、消费者总计、对清单的查询总计、访问类型和/或其他类型的度量。此外,度量可以基于表或更细的粒度(例如,基于行或列)。此外,度量可以是在一个时间段内,也可以在迄今为止的所有时间内。在每月、每周、每天或某个其他时间段内,可能有数百、数千或更多类型的客户端交互。在本实施例中,这种类型的度量可以允许数据提供者理解如何使用清单。
图10是根据本发明的一些实施例的与数据提供者共享数据度量的数据共享平台1000的框图。在图10中,数据共享平台1000包括度量处理模块1002,该度量处理模块1002处理来自收集度量数据库(例如,如上文图9中所述的收集度量数据库910)的度量,并将处理的度量存储到更新的度量数据库中。在一个实施例中,更新的度量是在一个时间段(例如,每天、每天4次、或更短或更长的更新时间段)内被更新。在下文图13-15中进一步讨论了度量的处理。在一个实施例中,通过使用更新的度量,云计算服务可以与数据提供者共享度量。在该实施例中,提供者度量共享模块1004可以与提供者1006A-N共享数据。在一个实施例中,提供者度量共享模块1004通过复制度量以将度量复制到云计算服务的本地实现来共享度量,其中度量被共享到作为该本地实现的一部分的提供者1006A-N的账户。在该实施例中,本地实现可以是用于区域、国家的云计算服务,或者云计算服务的另一类型的细分。
图11是根据本发明的一些实施例的用于为数据提供者准备度量数据的方法的流程图。方法1100可由处理逻辑执行,该处理逻辑可包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(CPU)、片上系统(SoC)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如,微码)或它们的组合。
在图11中,在块1105处,处理逻辑开始于检测与数据清单中的一个或更多个数据清单的一个或更多个客户端交互。在一个实施例中,客户端交互可以是客户端遥测、获取或请求清单的数据集或交换所消费中的一个。在块1110处,处理逻辑收集与客户端交互相关的度量。在一个实施例中,处理逻辑可以收集关于客户端遥测,获取或请求事件或交换所消费的度量,例如上述在图9中描述的度量。在块1115处,处理逻辑用描述性元素丰富度量。在一个实施例中,处理逻辑通过添加清单名称和/或其他类型的丰富数据来丰富度量。在块1120处,处理逻辑按提供者汇总度量并将其存储在所需的基于模式的表中。在块1125处,处理逻辑将汇总的度量复制到本地数据库。
图12是根据本发明的一些实施例的用于与数据提供者共享度量数据的方法1200的流程图。方法1200可由处理逻辑执行,该处理逻辑可包括硬件(例如,电路、专用逻辑、可编程逻辑、处理器、处理设备、中央处理单元(CPU)、片上系统(SoC)等)、软件(例如,在处理设备上运行/执行的指令)、固件(例如,微码)或它们的组合。
在图12中,在块1205处,处理逻辑开始于为组织、部门或账户创建设计。在一个实施例中,该设计用于接收关于特定提供者的度量。在块1210处,处理逻辑创建用于复制到云计算服务的本地实现的数据库。在块1215处,处理逻辑创建关于共享度量的组织模式或视图。在块1220处,处理逻辑格式化数据输入。在块1225处,处理逻辑使用数据共享将度量数据共享给数据提供者。
图13是根据本发明的一些实施例的用于共享客户端遥测数据的数据流1300的框图。在图13中,数据流1300开始于客户端遥测度量被存储在数据库的导入表1302中。客户端遥测度量数据被处理(1304)以存储在多个不同的客户端遥测表1306中。处理这些表1306以创建存储在交换所遥测1310中的每日遥测更新(1308)。交换所遥测度量1310被发送到遥测基础(telemetry foundation)以成为存储遥测度量1314。在一个实施例中,步骤1302-1314通过云计算提供者账户1320执行。存储的遥测度量被复制(1316)到云计算服务的本地实现,以使交换所遥测度量1318到云计算服务的本地实现。在一个实施例中,步骤1316和1318通过相关云计算提供者本地账户1322执行。
图14是根据本发明的一些实施例的用于共享作业数据的数据流1400的框图。在图14中,数据流1400开始于作业数据度量存储在数据库的导入表1402中。作业数据度量数据被处理(1404)以存储在多个不同的作业数据表1406中。处理这些表1406以创建存储在交换所作业数据1410中的每日作业数据更新(1408)。交换所作业数据度量1410被发送到作业数据基础以成为存储作业数据度量1414。在一个实施例中,步骤1402-1414通过云计算提供者账户1420执行。存储的作业数据度量被复制(1416)到云计算服务的本地实现,以使交换所作业数据度量1418到云计算服务的本地实现。在一个实施例中,步骤1416和1418通过相关云计算提供者本地账户1422执行。
图15是根据本发明的一些实施例的用于共享获取和请求数据的数据流1500的框图。在图15中,数据流1500开始于将获取和请求度量存储在数据库的导入表1502中。获取和请求度量数据被处理(1504)以存储在多个不同的获取和请求表1506中。处理这些表1506以创建存储在交换所获取和请求1510中的每日获取和请求更新(1508)。交换所获取和请求度量1510被发送到获取和请求基础以存储为获取和请求度量1514。在一个实施例中,步骤1502-1514通过云计算提供者账户1520执行。存储的获取和请求度量复制(1516)到云计算服务的本地实现,以使交换所获取和请求度量1518到云计算服务的本地实现。在一个实施例中,步骤1516和1518通过相关云计算提供者本地账户1522执行。
图16是根据本发明的一些实施例的用户界面1600的框图,用户界面1600呈现具有转换度量的清单的运行情况度量。在图16中,用户界面1600示出了随时间的查看1602和请求1604。此外,用户界面1600示出了查看1608(20.1%到被请求的)、被请求的1610(5.3%到挂载的数据库)、挂载的数据库1612(54.8%到被查询的数据库)和被查询的数据库1614的转换1606。
图17是根据本发明的一些实施例的用户界面1700的框图,用户界面1700呈现了针对提供者的多个清单的消费度量。在图17中,用户界面1700示出消费度量,诸如在一个时间段(例如,5月1日-5月7日)(1702)内的新消费者的数量、每个消费者的平均查询的数量和消费者的总计数量(1704)。另外,用户界面1700列出清单1708A-D的新消费者的数量。
图18是根据本发明的一些实施例的用户界面1800的框图,该用户界面1800呈现多个清单的消费度量,该多个清单显示执行的查询、活跃消费者、查询总计和查看。在图18中,用户界面1800示出了关于执行的查询1802和活跃消费者1804的消费度量。此外,用户界面1800还示出了关于清单1808A-D的清单消费度量1806,例如查询总计、查看和挂载的数据库总计。
图19是根据本发明的一些实施例的用户界面1900的框图,该用户界面1900呈现关于多个消费者对清单的运行情况度量,显示了类型、查看、请求和挂载的数据库。在图19中,用户界面1900示出了查看1902和请求1904的运行情况度量。此外,用户界面1900示出了关于清单1908A-C的进一步的消费者消费度量1906,例如类型、查看、请求和挂载的数据库。
图20是根据本发明的一些实施例的用户界面2000的框图,该用户界面2000呈现关于多个消费者对清单的消费者度量,显示了所执行的查询总计。在图20中,用户界面2000示出了在一个时间段(例如,3月8日-3月15日)内的趋势,例如查看2002和执行的查询2004。此外,用户界面2000以消费者2008A-E说明了活跃消费者2006,显示了消费者执行的总查询。
虽然图16-20所示出的不同用户界面示出了多种度量,但是其他视图可用于传达不同的度量(例如,数据提供者账户的对象和使用度量(例如,丢弃的对象、数据等待时间和/或其他类型的度量)、读者账户的对象和使用度量(登录历史、查询历史、资源监视器、存储使用、仓库计量历史等)。
图21以计算机系统2100的示例形式示出了机器的图解表示,在该计算机系统2100内存储了一组指令,用于使机器执行本文讨论的用于将共享对象复制到远程部署的方法中的任何一个或更多个方法。更具体地,机器可以将第一账户的共享对象修改为全局对象,其中共享对象包括指示对数据库的一组对象的共享授权的授权元数据。机器可以在位于远程部署中的第二账户中基于全局对象创建在远程部署上的共享对象的本地副本,并将数据库的一组对象复制到远程部署上的本地数据库副本;以及刷新对共享对象的本地副本的共享授权。
在可选实施例中,机器可以连接(例如,联网)到局域网(LAN)、内联网、外联网或互联网中的其他机器。机器可以在客户端-服务器网络环境中以服务器或客户端机器的能力操作,或者在对等(或分布式)网络环境中作为对等机器操作。机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备(web appliance)、服务器、网络路由器、交换机或桥接器、集线器、接入点、网络访问控制设备或能够(顺序地或以其他方式)执行一组指令的任何机器,该一组指令指定由该机器采取的动作。此外,虽然仅示出了单个机器,但术语“机器”还应被理解为包括单独或关联地执行一组(或多组)指令以实施本文所讨论方法中的任何一个或更多个方法的机器的任意集合。在一个实施例中,计算机系统2100可以表示服务器。
示例性计算机系统2100包括处理设备2102、主存储器2104(例如,只读存储器(ROM)、闪存、动态随机存取存储器(DRAM)、静态存储器2106(例如,闪存、静态随机存取存储器(SRAM)等)和数据存储设备2118,它们经由总线2130彼此通信。本文所述的在各种总线上提供的任何信号可以与其它信号时间复用并通过一个或更多个公共总线被提供。此外,在电路组件或块之间的互连可以被示为总线或单信号线。总线中的每个可以可选地是一个或更多个单信号线,并且单信号线中的每个可以可选地是总线。
计算设备2100还可以包括可与网络2120通信的网络接口设备2108。计算设备2100还可以包括视频显示单元2110(例如,液晶显示器(LCD)或阴极射线管(CRT))、字母数字输入设备2112(例如,键盘)、光标控制设备2114(例如,鼠标)和声学信号生成设备2115(例如,扬声器)。在一个实施例中,视频显示单元2110、字母数字输入设备2112和光标控制设备2114可以组合成单个组件或设备(例如,LCD触摸屏)。
处理设备2102表示一个或更多个通用处理设备,例如微处理器、中央处理单元等。更具体地,处理设备可以是复杂指令集计算(CISC)微处理器、精简指令集计算机(RISC)微处理器、超长指令字(VLIW)微处理器、或实现其他指令集的处理器、或实现指令集组合的处理器。处理设备2102还可以是一个或更多个专用处理设备,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等。处理设备2102被配置为执行数据交换所度量共享指令2125,以执行本文讨论的操作和步骤。
数据存储设备2118可以包括机器可读存储介质2128,在该介质上存储体现本文描述的任何一个或更多个功能方法的一组或更多组数据交换所度量共享指令2125(例如,软件)。在计算机系统2100执行数据交换所度量共享指令2125期间,数据交换所度量共享指令2125还可以完全或至少部分驻留在主存储器2104内或在处理设备2102内;主存储器2104和处理设备2102也构成机器可读存储介质。数据交换所度量共享指令2125还可以经由网络接口设备2108在网络2120上被发送或接收。
如本文所述,机器可读存储介质2128还可用于存储指令以执行用于确定要编译的功能的方法。尽管机器可读存储介质2128在示例性实施例中被示为单个介质,但是术语“机器可读存储介质”应该被认为包括存储一组或更多组指令的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。机器可读介质包括用于以机器(例如,计算机)可读的形式(例如,诸如软件、处理应用)存储信息的任何机制。机器可读介质可以包括但不限于磁存储介质(例如,软盘);光学存储介质(例如,CD-ROM);磁光存储介质;只读存储器(ROM);随机存取存储器(RAM);可擦除可编程存储器(例如,EPROM和EEPROM);闪存;或适用于存储电子指令的另一种类型的介质。
除非另有特别说明,诸如“接收”、“检测”、“确定”、“发布”、“提供”、“收集”、“共享”等术语是指由计算设备执行或实现的动作和过程,计算设备操作数据并将表示为计算设备的寄存器和存储器内的物理(电子)量的数据转换为类似地表示为计算设备存储器或寄存器或其他此类信息存储、传输或显示设备内的物理量的其他数据。此外,如本文使用的术语“第一”、“第二”、“第三”、“第四”等是指在不同元素之间区分的标签,并且可能不一定具有根据其数字指定的顺序含义。
本文所描述的示例还可涉及用于执行本文中描述的操作的装置。该装置可以出于需要的目的而被专门构造,或者其可以包括通过存储在计算设备中的计算机程序选择性地编程的通用计算设备。这种计算机程序可以存储在计算机可读的非暂时性存储介质中。
本文描述的方法和说明性示例不是固有地与任何特定计算机或其他装置相关。各种通用系统可以与根据本文描述的教导使用,或者其可证明构建更专用的装置以执行所需的方法步骤是方便的。用于这些系统中的各种系统所需的结构将表现为如上描述中所阐述。
上述描述旨在说明性的,而不是限制性的。尽管已经参考特定说明性示例描述了本公开,但将认识到本公开不限于所描述的示例。因此,本公开的范围应参考所附权利要求连同这些权利要求有权要求的等效物的整个范围来确定。
如本文使用的,单数形式“一(a)”、“一(an)”和“所述(the)”意图也包括复数形式,除非上下文另有清楚地指示。还将理解的是,术语“包括(comprises)”、“包括(comprising)”、“包括(includes)”和/或“包括(including)”在本文中使用时,列举所陈述的特征、整数、步骤、操作、元素和/或组件的存在,但不排除存在或添加一个或更多个其它特征、整数、步骤、操作、元素、组件和/或它们的组。因此,本文使用的术语仅出于描述特定实施例的目的,而不旨在限制。
还应当注意,在一些替代实现方式中,提到的这些功能/动作可以不以图中提到的顺序出现。例如,连续地显示的两个图事实上可以基本上同时执行,或者有时可以以相反的顺序执行,这取决于所涉及的功能/动作。
尽管以特定顺序描述了方法操作,但应当理解,可以在所描述的操作之间执行其他操作,可以调整所描述的操作以使它们发生在稍微不同的时间,或者可以在允许以与处理相关联的各种间隔发生处理操作的系统中分布所描述的操作。
各种单元、电路或其他组件可以被描述或声称为“配置为”或“可配置为”执行一个或更多个任务。在这样的上下文中,短语“配置为”或“可配置为”通过指示单元/电路/组件包括在操作期间执行一个或更多个任务的结构(例如,电路)而被用来表示结构。因此,即使在指定的单元/电路/组件当前未操作(例如,未接通)时,单元/电路/组件也可以称为被配置为执行任务,或者可被配置为执行任务。与“配置为”或“可配置为”语言一起使用的单元/电路/组件包括硬件,例如电路、存储可执行以实现操作的程序指令的存储器等。对于单元/电路/组件,表述单元/电路/组件被“配置为”执行一个或更多个任务或“可配置为”执行一个或更多个任务是为了明确表示无意援引35U.S.C.112的第六段。此外,“配置为”或“可配置为”可以包括由以能够执行所讨论的任务的方式操作的软件和/或固件(例如,FPGA或执行软件的通用处理器)操纵的通用结构(例如,通用电路)。“被配置为”还可以包括调整制造工艺(例如,半导体制造设施)以制造适于实现或执行一个或更多个任务的设备(例如,集成电路)。“可配置为”明确地意在不适用于空白介质、未编程处理器或未编程通用计算机、或未编程可编程逻辑器件、可编程门阵列或其他未编程器件,除非伴随赋予未编程器件配置为执行所公开功能的能力的编程介质。
可以利用一种或更多种计算机可用或计算机可读介质的任意组合。例如,计算机可读介质可包括在下列各项中的一项或更多项:便携式计算机磁盘、硬盘、随机存取存储器(RAM)设备、只读存储器(ROM)设备、可擦除可编程只读存储器(EPROM或闪速存储器)设备、便携式光盘只读存储器(CDROM)、光学储存设备以及磁储存设备。可以以一种或更多种编程语言的任何组合来编写用于执行本公开的操作的计算机程序代码。可以将这样的代码从源代码编译为适合于将在其上执行代码的设备或计算机的计算机可读汇编语言或机器代码。
实施例也可以在云计算环境中实现。在本说明书和所附权利要求中,“云计算”可以被定义为用于实现对可配置计算资源(例如,网络、服务器、存储,应用和服务)的共享池进行普遍、方便、按需的网络访问的模型,该模型可以(包括经由虚拟化)快速提供,并以最小的管理工作量或服务提供者交互来发布,以及然后进行相应的扩展。云模型可以由各种特征(例如,按需自助服务、广泛的网络访问、资源池、快速弹性和可衡量的服务)、服务模型(例如,软件即服务(“SaaS”),平台即服务(“PaaS”)和基础设施即服务(“IaaS”))以及部署模型(例如,私有云、社区云、公共云和混合云)组成。附图中的流程图和框图示出了根据本公开的各种实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。就这点而言,在流程图或框图中的每个块可代表模块、代码段或代码的部分,该模块、代码段或代码的部分包括用于实现指定的逻辑功能的一个或更多个可执行指令。还要注意的是,框图和/或流程图中的每个块以及在框图和/或流程图中的块的组合可由执行指定功能或动作的专用的基于硬件的系统或专用硬件和计算机指令的组合实现。这些计算机程序指令还可存储在计算机可读介质中,计算机程序指令可引导计算机或其他可编程数据处理装置以特定方式起作用,使得存储在计算机可读介质中的指令产生制造的物品,其包括实现流程图和/或框图的一个或更多个块中所指定的功能/动作的指令装置。
为了解释的目的,已经参考特定实施例描述了前述描述。然而,上面的说明性讨论并没有被规定为无遗漏的或将本发明限制到所公开的精确形式。鉴于上面的教导,许多修改和变形是可能的。实施例被选择和描述是为了最好地解释实施例的原理及其实际应用,从而使本领域中的技术人员能够以可适合于所设想的特定用途最好地利用实施例和各种修改。因此,当前实施例可以被认为是说明性的而不是限制性的,并且本发明不限于本文给出的细节,但是可以在所附权利要求的范围和等价物内进行修改。
Claims (21)
1.一种方法,包括:
检测与数据交换所的一组数据清单的一个或更多个客户端交互,所述一组数据清单与多个数据提供者相关联,其中,所述数据交换所是存储库,所述多个数据提供者中的每一个数据提供者经由所述一组数据清单发布和控制对数据集的访问,以及多个客户端经由所述数据交换所访问所述一组数据清单;
利用处理设备收集对应于所述一个或更多个客户端交互的度量;和
与所述多个数据提供者共享与所述多个数据提供者相关的度量。
2.根据权利要求1所述的方法,其中,所述数据交换所是私有数据交换所或公共数据交换所之一。
3.根据权利要求2所述的方法,其中,所述私有数据交换所控制所述多个客户端中的哪一个能够访问对应于所述多个数据提供者之一的数据清单。
4.根据权利要求2所述的方法,其中,所述公共数据交换所发布并控制对与所述一组数据清单中的一个数据清单相对应的数据集的访问。
5.根据权利要求1所述的方法,其中,所收集的度量是遥测度量、交换度量、获取度量或请求度量中的一个或更多个。
6.根据权利要求5所述的方法,其中,所述遥测度量包括关于与所述一组数据清单的所述一个或多个客户端交互的数据。
7.根据权利要求5所述的方法,其中,所述交换度量包括与所述数据交换所相关联的消费数据。
8.根据权利要求5所述的方法,其中,所述获取度量包括表征对数据集的获取的数据。
9.根据权利要求5所述的方法,其中,所述请求度量包括表征对数据集的请求的数据。
10.根据权利要求1所述的方法,还包括:
丰富所收集的度量。
11.根据权利要求10所述的方法,其中,对所述收集的度量的丰富包括:
向所述收集的度量添加清单名称。
12.根据权利要求1所述的方法,还包括:
将所收集的度量复制到数据库。
13.根据权利要求1所述的方法,还包括:
汇总与所述多个数据提供者相关联的所收集的度量。
14.根据权利要求13所述的方法,其中,所述汇总包括:
将所汇总的度量存储在对应于所述多个数据提供者中的每一个数据提供者的模式中。
15.一种系统,包括:
一组存储资源;
处理设备,其耦合到所述一组存储资源,以:
检测与数据交换所的一组数据清单的一个或更多个客户端交互,所述一组数据清单与多个数据提供者相关联,其中,所述数据交换所是存储库,所述多个数据提供者中的每一个数据提供者经由所述一组数据清单发布和控制对数据集的访问,以及多个客户端经由所述数据交换所访问所述一组数据清单;
收集对应于所述一个或更多个客户端交互的度量;和
与所述多个数据提供者共享与所述多个数据提供者相关的度量。
16.根据权利要求15所述的系统,其中,所述数据交换所是私有数据交换所或公共数据交换所之一。
17.根据权利要求15所述的系统,其中,所收集的度量是遥测度量、交换度量、获取度量或请求度量中的一个或更多个。
18.根据权利要求15所述的系统,其中,所述处理设备还:
丰富所收集的度量。
19.根据权利要求15所述的系统,其中,所述处理设备还:
将所收集的度量复制到数据库中。
20.根据权利要求15所述的系统,其中,所述处理设备还:
汇总与所述多个数据提供者相关联的所收集的度量。
21.一种存储指令的非暂时性机器可读介质,所述指令当由计算设备的一个或更多个处理器设备执行时使所述一个或多个处理器:
检测与数据交换所的一组数据清单的一个或更多个客户端交互,所述一组数据清单与多个数据提供者相关联,其中,所述数据交换所是存储库,所述多个数据提供者中的每一个数据提供者经由所述一组数据清单发布和控制对数据集的访问,以及多个客户端经由所述数据交换所访问所述一组数据清单;
利用一个或更多个处理设备收集对应于所述一个或更多个客户端交互的度量;和
与所述多个数据提供者共享与所述多个数据提供者相关的度量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/245,960 US11570245B2 (en) | 2021-04-30 | 2021-04-30 | Sharing of data share metrics to customers |
US17/245,960 | 2021-04-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115269527A true CN115269527A (zh) | 2022-11-01 |
CN115269527B CN115269527B (zh) | 2024-01-23 |
Family
ID=81448449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210441410.4A Active CN115269527B (zh) | 2021-04-30 | 2022-04-25 | 向客户共享数据共享度量 |
Country Status (3)
Country | Link |
---|---|
US (4) | US11570245B2 (zh) |
EP (1) | EP4083819A1 (zh) |
CN (1) | CN115269527B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113938403A (zh) * | 2020-07-13 | 2022-01-14 | 华为技术有限公司 | 一种能力通告方法及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870765A (en) * | 1996-10-09 | 1999-02-09 | Oracle Corporation | Database synchronizer |
US20170041296A1 (en) * | 2015-08-05 | 2017-02-09 | Intralinks, Inc. | Systems and methods of secure data exchange |
CN112424766A (zh) * | 2019-05-31 | 2021-02-26 | 斯诺弗雷克公司 | 数据交换 |
US10949402B1 (en) * | 2020-05-26 | 2021-03-16 | Snowflake Inc. | Share replication between remote deployments |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8095589B2 (en) * | 2002-03-07 | 2012-01-10 | Compete, Inc. | Clickstream analysis methods and systems |
US9117217B2 (en) * | 2003-08-01 | 2015-08-25 | Advertising.Com Llc | Audience targeting with universal profile synchronization |
US8295175B2 (en) * | 2003-09-30 | 2012-10-23 | Ciena Corporation | Service metrics for managing services transported over circuit-oriented and connectionless networks |
WO2005054993A2 (en) * | 2003-11-25 | 2005-06-16 | Computer Associates Think, Inc. | Web service performance index |
US20050203828A1 (en) * | 2004-03-12 | 2005-09-15 | Intelliclaim, Inc. | Insurance claim information system |
US20060034185A1 (en) * | 2004-07-08 | 2006-02-16 | Patzschke Till I | Systems and methods for monitoring and evaluating a connectivity device |
US8560456B2 (en) * | 2005-12-02 | 2013-10-15 | Credigy Technologies, Inc. | System and method for an anonymous exchange of private data |
US7882200B2 (en) * | 2006-10-30 | 2011-02-01 | Bank Of America Corporation | Method and apparatus for distribution of data among computing resources |
US8930331B2 (en) * | 2007-02-21 | 2015-01-06 | Palantir Technologies | Providing unique views of data based on changes or rules |
US8738603B2 (en) * | 2010-05-20 | 2014-05-27 | Salesforce.Com, Inc. | Metrics-based accessing of social threads |
US9147195B2 (en) * | 2011-06-14 | 2015-09-29 | Microsoft Technology Licensing, Llc | Data custodian and curation system |
US20140179266A1 (en) * | 2012-12-21 | 2014-06-26 | Verizon Patent And Licensing Inc. | Shared data monitor |
US20170201799A1 (en) * | 2014-11-06 | 2017-07-13 | Matt McDermott | Verifying and authorizing work |
US9817563B1 (en) * | 2014-12-29 | 2017-11-14 | Palantir Technologies Inc. | System and method of generating data points from one or more data stores of data items for chart creation and manipulation |
US9774586B1 (en) * | 2015-08-31 | 2017-09-26 | EMC IP Holding Company LLC | Dynamic authorization of users in a multi-tenant environment using tenant authorization profiles |
US10826844B2 (en) * | 2015-09-30 | 2020-11-03 | Amazon Technologies, Inc. | Transmission of tags and policies with data objects |
US10554516B1 (en) * | 2016-06-09 | 2020-02-04 | Palantir Technologies Inc. | System to collect and visualize software usage metrics |
US10216959B2 (en) * | 2016-08-01 | 2019-02-26 | Mitsubishi Electric Research Laboratories, Inc | Method and systems using privacy-preserving analytics for aggregate data |
US10861045B2 (en) * | 2016-09-07 | 2020-12-08 | Tivo Solutions Inc. | Automatically labeling clusters of media content consumers |
US10536506B2 (en) * | 2017-05-05 | 2020-01-14 | Servicenow, Inc. | Webpage analytics and control |
-
2021
- 2021-04-30 US US17/245,960 patent/US11570245B2/en active Active
-
2022
- 2022-04-25 CN CN202210441410.4A patent/CN115269527B/zh active Active
- 2022-04-29 EP EP22170676.5A patent/EP4083819A1/en active Pending
- 2022-12-22 US US18/087,473 patent/US11671491B2/en active Active
-
2023
- 2023-04-26 US US18/139,849 patent/US11838360B2/en active Active
- 2023-10-27 US US18/384,467 patent/US11968258B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870765A (en) * | 1996-10-09 | 1999-02-09 | Oracle Corporation | Database synchronizer |
US20170041296A1 (en) * | 2015-08-05 | 2017-02-09 | Intralinks, Inc. | Systems and methods of secure data exchange |
CN112424766A (zh) * | 2019-05-31 | 2021-02-26 | 斯诺弗雷克公司 | 数据交换 |
US10949402B1 (en) * | 2020-05-26 | 2021-03-16 | Snowflake Inc. | Share replication between remote deployments |
Also Published As
Publication number | Publication date |
---|---|
CN115269527B (zh) | 2024-01-23 |
US20240056499A1 (en) | 2024-02-15 |
US20230262121A1 (en) | 2023-08-17 |
US20220353329A1 (en) | 2022-11-03 |
US20230127353A1 (en) | 2023-04-27 |
US11968258B2 (en) | 2024-04-23 |
US11671491B2 (en) | 2023-06-06 |
US11838360B2 (en) | 2023-12-05 |
EP4083819A1 (en) | 2022-11-02 |
US11570245B2 (en) | 2023-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115023921A (zh) | 用于全局数据共享的系统和方法 | |
US11983150B2 (en) | Share replication between remote deployments | |
US20220050855A1 (en) | Data exchange availability, listing visibility, and listing fulfillment | |
CN112789616A (zh) | 私有数据交换 | |
US11822689B2 (en) | Fine-grained access control via database roles | |
US11669630B1 (en) | Background service to generate data dictionary metadata | |
US11968258B2 (en) | Sharing of data share metrics to customers | |
US11775559B1 (en) | Distributing large amounts of global metadata using object files | |
US11809586B2 (en) | Shared object discovery techniques | |
EP4345643A1 (en) | Distributing large amounts of global metadata using object files | |
US11973763B1 (en) | Events account for native app event sharing | |
US11687506B1 (en) | Similarity-based listing recommendations in a data exchange | |
US20240111784A1 (en) | Distributing large amounts of global metadata using object files | |
US11869051B2 (en) | Usage monitoring and usage based data pricing | |
EP4345639A1 (en) | Background service to generate data dictionary metadata | |
US20240111885A1 (en) | Generating data dictionary metadata | |
CN117807028A (zh) | 使用目标文件分发大量全局元数据 | |
CN117807572A (zh) | 用于生成数据字典元数据的后台服务 |
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 | ||
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. |