[go: up one dir, main page]

CN114945908A - 创建数据集网络的系统 - Google Patents

创建数据集网络的系统 Download PDF

Info

Publication number
CN114945908A
CN114945908A CN202080093083.7A CN202080093083A CN114945908A CN 114945908 A CN114945908 A CN 114945908A CN 202080093083 A CN202080093083 A CN 202080093083A CN 114945908 A CN114945908 A CN 114945908A
Authority
CN
China
Prior art keywords
data
network
nodes
node
data set
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080093083.7A
Other languages
English (en)
Inventor
K·辛格
D·德默斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sinch Co Ltd
Original Assignee
Sinch Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sinch Co Ltd filed Critical Sinch Co Ltd
Publication of CN114945908A publication Critical patent/CN114945908A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2474Sequence data queries, e.g. querying versioned data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1873Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2448Query languages for particular applications; for extensibility, e.g. user defined types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24573Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6227Protecting 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 where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2141Access 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)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Fuzzy Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

以下提供了创建共享数据节点网络的平台。各个数据节点是自描述的、自连接的和自保护的。本文教导的数据网络可以防止数据仓环境。各个节点具有:包含版本控制数据的数据集;访问控制层,其限制用户对数据集的访问;元数据层,其定义数据集的特征并连接到另一节点。创建一个或更多个链接,以将节点与后续节点相关联,以按照使得数据集的变化影响数据节点网络的变化的方式创建数据节点网络;并且数据节点网络包括查询层,该查询层与数据集和后续数据集进行交互。

Description

创建数据集网络的系统
技术领域
以下涉及诸如数据结构(data fabric)的数据集的网络、提供这种网络的平台以及构建和使用所述网络、数据集和系统的方法。
背景技术
传统上,企业在数据仓(data silo)环境中操作。数据仓是例如可通过一个应用访问但与该组织的其余部分隔离开的一组数据集。数据仓通常是由分析工具收集的数据或由商业应用生成的数据的结果。数据仓环境存在许多缺点。
例如,数据仓可能导致组织内的大量浪费时间。并不能够自动地跨应用流水线化数据,而是在应用中的各个应用内隔离数据。这意味着团队可能必须等待,直到他们意识到他们需要他们没有的数据,找到数据位于组织内的何处,手动获得对该数据的访问,然后出于他们自己的目的对该数据进行分析。到他们收集到数据时,数据可能不再有效。
数据仓还可能导致存储空间的浪费。例如,如果组织的各个员工需要数据的副本并将其保存到他们的公司存储文件夹中,则这将浪费大量的存储空间,这可能是非常昂贵的。
数据仓环境的另一缺点是不能维护数据的准确性。由于隔离开的数据是固定(sitting)的,所以它更有可能变得过时,因而不准确和不可用。
数据仓还会产生安全漏洞。例如,一旦数据被复制,那么数据集的所有者在不具有依赖于来自其它团队的合规性的困难且昂贵的处理的情况下就不再能够保证数据的机密性。如果数据集的副本存储在各个队友的计算机上,则其更可能被黑客攻击。
数据仓还在组织内产生分歧,因为在数据仓环境中,各个团队仅有权访问他们自己的数据,因此是他们工作的唯一数据。例如,各个团队可以独立工作,而不是协作地工作,从而创建了分开的组织。
图1和图2示出了涉及创建新数据仓24和复制数据26的各个新定制应用的传统创建。如图1所示,传统开发的应用10将分别被编程为包括其自己的用户接口14、API 15(图1中未示出)、安全和控制16、数据集成18、数据持久20和数据发布22能力。
此外,各个应用10需要其自己的数据库24,其中,数据库24中的链接或相关数据26被创建、导入、更新、维护等。来自企业的遗留数据28也需要被单独地导入各个应用10。用户12将被许可使用单独的安全和控制16访问各个应用10。然后可以将数据发布到更大的企业数据湖30中,例如,用于执行分析和其它数据处理操作。这些应用10还可能严重依赖于桌面工具,其需要所需的这些工具的数百甚至数千个实例来有效地部署新解决方案(solution)。此外,已经发现,传统的数据仓通常缺乏足够的数据控制,并且在一个应用或数据仓中实现的控制通常在另一应用或数据仓中不可重复使用。
由于这些低效率和冗余,所以创建新应用10和解决方案通常花费许多周并且更经常是数月才能部署。在急需要这些解决方案的环境中,部署时间可以被认为是竞争劣势,或者至少是资源的消耗。
发明内容
一个方面涉及一种创建共享数据节点网络的系统。所述系统包括至少两个节点;各个节点具有包含版本控制数据的数据集;访问控制层,其限制用户对数据集的访问;元数据层,其定义数据集的特征并连接到另一节点。创建一个或更多个链接,以将节点与后续节点相关联,以按照使得数据集的变化影响数据节点网络的变化的方式创建数据节点网络;并且数据节点网络包括查询层,该查询层与数据集和后续数据集进行交互。各个数据节点是自描述的、自连接的和自保护的。
附图说明
现在将参考附图描述实施方式,其中:
图1是例示了数据仓环境中的现有技术应用开发的示意图;
图2是例示了数据仓环境中的现有技术应用开发的示意图;
图3是示出为具有4个应用体验的数据节点网络的示意图;
图4是示出为具有5个应用体验的数据节点网络的示意图;
图5是节点的示意图;
图6是节点网络的示意图;
图7A是用于构建数据集节点、构建数据集节点网络以及用于与这些网络进行交互的平台的示意图;
图7B是用于构建数据集节点网络的网络以及用于与这样的网络进行交互的平台的示意图;
图8a是节点及其数据的屏幕截图的示例;
图8b是例示了设计数据集的示例的屏幕截图的示例,包括该节点的元数据的定义;
图8c是用于定义当前数据集与另一数据集之间的链接的屏幕截图的示例;
图8d是显示数据版本的协作日志的屏幕截图的示例;
图8e是可以用于配置个体节点上的控制的控制页面的屏幕截图的示例;
图9是例示了脚本语言查询的执行的示意流程图;
图10是例示了当与示例数据网络交互时的不同用户视角的示意图;
图11是版本更新数据(versioned data)的屏幕截图的示例;
图12是示出独立访问控制许可的数据集的示例;
图13a是在第一时间的数据集网络的示例;
图13b是在第二时间的数据集网络的示例;
图13c是在第三时间的数据集网络的示例;
图14是例示了数据仓环境中的传统应用开发的示意图;
图15是传统应用与数据集网络体验的示意图;
图16A是示出使用仓化数据库的传统应用开发的安全和控制的示意图;以及
图16B是示出利用数据网络的应用开发的示意图。
具体实施方式
以下提供了用于创建共享数据节点网络的平台。各个数据节点是自描述的、自连接的和自保护的。本文教导的数据网络可以减少构建大规模(例如,企业级)数据管理解决方案所需的时间和工作。一些优点包括:防止数据仓环境;通过自适应应用编程接口(API)集成层的灵活企业对齐;以及简化的数据集成,其基于以最小的工作跨应用重复使用数据,从而有效地减少或消除了传统意义上的开发“应用”的需要。各个节点具有:包含版本控制数据的数据集;访问控制层,其限制用户对数据集的访问;元数据层,其定义数据集的特征并连接到另一节点。创建一个或更多个链接,以将节点与后续节点相关联,以按照使得数据集的变化影响数据节点网络的变化的方式创建数据节点网络;并且数据节点网络包括查询层,该查询层与数据集和后续数据集进行交互。
如下文所讨论的,该系统有效地消除了对传统意义上的应用开发的需要,使得数据协作网络和该网络中的个体数据节点通过允许具有对数据的访问的实体利用相同数据而不需要与传统应用开发和数据仓的创建相关联的显著工作来消除对应用的需要。因此,该系统通过从UI分离(decouple)数据并允许在数据周围配置安全和控制层而不是必须针对各个解决方案或应用写入一个关闭代码来实现解决方案的更快交付。此外,单独组织内的数据协作网络可以彼此链接,以创建网络的网络,从而创建链接数据的超级网络,而不是隔离开的数据仓。
图2示出了涉及新数据库24的创建和数据26的复制的各个新定制应用的传统创建。传统开发应用10中的各个传统开发应用将需要它们自己的数据库24,其中,数据库24中的链接或相关数据26被创建、导入、更新、维护等。数据库24中的各个数据库存储将由应用10访问的数据26的副本。传统应用具有嵌入其中的数据集。传统上,数据作为数据的副本存储在个体应用10后面的数据仓24中。这可能导致类似数据仓的环境,这可能是不利的。
图3示出了数据节点网络的示意图。通过连接个体节点36以形成数据节点网络34来创建数据网络34。原始数据或数据记录35可以经由连接到数据节点网络34的查询接口33来访问。例如,图3示出了全部使用来自同一数据网络的数据的四个不同的应用体验32a、32b、32c和32d。这不仅消除了创建、导入、更新和维护单独数据库的需要,而且消除了管理各个应用的安全和控制16、数据集成18、数据持久20和数据发布22系统的需要。
这样,添加新应用体验32是相对容易的。图4示出了被添加到图3所示的现有架构的新应用体验32e。新应用体验32e的添加不需要附加的安全和控制16、数据集成18、数据持久20和数据发布22能力。应用体验32充当与数据交互的定制用户接口。
因此,可以理解,可以将任何数量的节点36以及应用体验32添加至网络34。当添加较新的应用体验32时,数据集网络34增长,并且在新数据集26之间形成较新的链接。
数据集节点、数据节点网络和平台实现
现在转到图5和图6,本文描述的平台被配置为将数据35管理为数据节点网络34。图5例示了数据集节点36的示例,图6例示了节点36的网络34的示例。各个数据集26包括数据35。数据集是版本控制的38,并且包含诸如第一版本35a、第二版本35b和第三版本35c的数据版本。可以理解,任何数量的版本都是可能的。访问控制层39构建在数据集26之上。元数据层37构建在访问控制层39之上。如图5所示的单个节点36所示,在节点的核心是数据35的记录。在不首先通过元数据层37和访问控制层39的情况下,不能访问数据35的记录。节点36包括使节点37是自描述的和自连接的元数据层。因此,各个数据集26包括其自己的元数据层37,该元数据层37包含关于数据集的信息(诸如属性)和关于其与其它节点的关系(即,链接)的信息以及将当前节点中的任何记录与其它节点中的一个或更多个记录相关的数据。
节点36可以通过具有内置控制层39以确保数据的完整性并提供诸如数据版本更新38和变化核准的管理控制来自控。数据版本更新38在图11中示出,并且在下面更详细地描述。节点36可以是自安全的,这意味着它具有用于管理权限的内置安全层。节点还可通过平台的元数据驱动的用户接口或API来访问。
典型地,用于数据的安全和控制16存在于图1的现有技术示例中所示的个体应用10中。这可能是危险的,因为安全和控制被链接至个体应用,并因此当数据被复制时不会跟随数据。因此,当被复制时,数据将是易损的或不安全的。
在本发明所示的系统中,安全和控制内置在各个数据集26中。可以理解,这更加有效和安全,因为它确保了不知道如何使用数据的通用实施。在图1中,如果作为执行数据集成的一部分而跨应用复制数据,则安全和控制不跟随数据,并且必须由各个应用重新实现。这被避免了,因为访问控制层39被构建为数据集26之上的层。
现在转到图6,可以看出,第一节点36a可以连接到第二节点36b和第三节点36c。这形成了数据节点网络34。节点36经由链接40连接,该链接40是节点36之间的关系。链接40被定义在节点的元数据层37内,其形成数据节点网络34的基础。链接40使数据节点内的数据记录35相关,并且个体链接40具有使第一节点36a中的数据记录与另一节点36b、36c中的一个或更多个数据记录相关的能力。
由于各个节点36是自描述的、自连接的和自保护的,因此网络34中的数据集26不受应用边界的限制。数据不再像图1所示的现有技术例示图中那样被存仓。这消除了对图1中所示的应用管理的数据库的需要,从而创建了使用数据集的更简单且更有效的方式。
针对任何个体,他们的网络由他们能够访问以与其交互的数据集来成型。其实,连接节点的链接仅在个体有权访问链接的目标的情况下才会暴露/可访问。如图10所示,任何用户可能只访问整个网络的一小片。
通过使数据节点能够连接到其它数据节点,但仍然保持是自描述的、自连接的和自保护的,消除了当在数据网络内交互时对图1所示的数据发布和数据集成组成部分的需要。无需分发数据副本。相反,许可访问,并且建立链接以使得能够使用可以由不同所有者管理的数据。
被配置为创建、修改和与数据节点网络34交互的平台在图7A中示出。该系统具有查询接口33,其中API 41或应用接口32可以通过该接口查询数据。用户12与用户接口42或应用接口32进行交互,以管理节点的配置以及节点中的数据。API 41和UI 42可以由平台本身动态地提供。
查询接口33提供与网络34(该网络内包括所有数据集26)进行交互的查询引擎。这实现了超出单个节点36的范围的交互,即,超出使用可用于各个节点36的API可能实现的交互。查询可以用平台脚本语言编写,在一个示例中,平台脚本语言构建在SQL上并被设计成利用网络中可用的链接,从而使得用户能够在执行查询时遍历节点之间的关系。图9提供了在查询节点时利用脚本语言中的点标记来遍历关系的查询的示例。平台的脚本语言使得用户能够读取/创建/修改/删除数据,以及管理网络上的节点。以平台的脚本语言编写的查询可以支持ACID事务。
在实施方式中,可以将遗留数据28导入到网络34中。连接器可以用于桥接遗留数据28与数据网络34之间的间隙。连接器可以实现使来自平台外部的数据同步为自描述的、自连接的和自保护的数据集,以及将数据推出到图1所示的遗留应用或企业数据湖的反向流。
图7B示出了多个网络34彼此连接的实施方式。例如,单独的组织内的网络34可以彼此链接,以创建链接数据网络的网络,而不是隔离开的数据仓。数据网络的网络被称为超级网络。
现在转到图8a至图8e,提供了示例屏幕截图以例示图7所示的用户体验组成部分。用户体验42可以使用web形式来创建和管理节点。
在图8中,示出了节点示例的屏幕样本。图8a是用于管理节点中的数据的UI。可以注意到,主客户端列是链接,并且图8c示出了定义。这种体验使得用户能够点进(clickthrough),以遍历到所链接的数据集中的相关记录的链接。
在图8b中,示出了用于设计数据集的样本屏幕,包括最右边屏幕截图中的元数据的定义。
图8c提供了用于定义当前数据集与另一数据集之间的链接的样本屏幕。如图8d所示,节点中的所有数据变化都是自动版本控制的。图8d是显示数据版本的协作日志的样本屏幕。
图8e提供了可以在个体节点上配置的控制的样本屏幕截图。
因此,该平台为用户提供本地元数据驱动的用户接口以与数据网络进行交互。这与创建定制应用体验的能力相结合提供了对图1所示意义上的应用需求的替换。
如上所述,图9提供了平台脚本语言查询的示例,其利用节点之间存在的链接来遍历数据网络34并取回数据。具体地,通过使用由平台提供的查询接口33,可以使用点标记来获得查询结果。
数据版本更新
可以对数据执行平台中的数据版本更新38。图11示出了单个记录的数据版本更新。第一版本可以表示初始创建。随后,每次数据集变化或更改时可以创建新版本。例如,版本18核准名为Dan Demers的用户在2020年11月13日执行的变化。各个版本捕获做出变化的用户的细节以及变化的时间戳。
例如,在一个版本中,用户可以删除数据记录,这将显示为灰色,因为这是删除。在另一实例中,用户可以从回收站恢复数据记录,这将显示为由用户执行的恢复。在另一实例中,可以由用户执行复原操作,以恢复数据集的第一版本。这将创建新版本,并且不会影响版本历史。
数据级访问控制
图10提供了两个不同用户(用户12a和用户12b)如何看到相同的数据节点网络的例示图。这里有两个不同的用户12a和12b,他们经由查询接口33与数据网络34进行交互。黑色链接40和节点36表示用户可以访问的数据集26。针对任一个体,灰色节点和虚线链接都不可用,就好像它们根本不存在一样。这意味着当观看数据网络34时,各个用户具有其自己的视角,并且对于各个用户而言,数据网络34看起来可能非常不同。
部分填充的节点表示用户受限于已经配置的规则而只能访问节点36内的数据子集的事实。构建在节点36上的访问控制层39可以是非常粒度的,并且定义使用户12能够在某些条件下查看/编辑/核准数据的规则。下面讨论的图12提供了数据驱动的访问权限的示例。
现在转到图12,数据集可以支持非常粒度的访问控制。图12中的示例示出了定义用户能够编辑的内容的两个独立许可。这些许可之一具有基于当前节点中的数据的条件。这些条件也可以跨越节点,从而利用链接来遍历相关数据集以确定用户是否有权访问。类似的粒度控制可用于用户可以查看或核准的内容。在该示例中,变灰的单元将不可由用户编辑。
节点网络可经由被配置成利用平台并与平台交互的任何应用来链接。网络是数据之间的关系的交互,并且不一定影响在基础持久存储部(underlying persistence)存储数据的位置或所使用的确切设备。以这种方式,当在企业内的现有技术之上运行平台时,可以使用该技术,而无需采用一个或更多个新数据库。
网络34可以由一系列数据节点36构建。数据集26可以链接至其它数据集,并且可以通过应用本文所解释的脚本语言来构建查询。这允许诸如开发者的用户使用现有数据集并通过创建新数据集来构建应用体验,从而利用现有节点网络并在该网络上构建以用于将来的应用开发。
可以注意到,新创建的节点可以具有由用户添加和操纵的数据,和/或可以导入现有数据,例如,遗留数据。以这种方式,可以将新节点添加至网络,其使用企业的现有数据,例如,来自遗留应用或数据存储组件。节点可以是用户管理的、同步的和/或应用管理的,并且任何特定节点可以具有用户管理的、或同步的或应用管理的个体属性或属性集。即,可以基于各属性来控制和管理节点。更具体地,一个节点中的记录可以链接至另一节点中的一个或更多个记录。
企业环境不仅可以通过重复使用现有查询和节点来快速地构建解决方案,而且还可以随着针对新构建的解决方案创建或导入新数据而继续增强和添加至数据网络。
平台的配置和各种组成部分实现了多个独特的特征,所述特征改进了企业和其它用户的数据构建解决方案的方式。通过提供如图6所示的数据节点网络34并提供数据层控制和到该数据网络的接口,可以以比在数据仓中复制这些能力的传统方法更少的工作和更高的速度来构建解决方案。
在现有方法中,各个解决方案被实现为单独的应用10,其需要单独的数据库24来实现持久(参见图1)。相比之下,本文描述的系统提供单个平台来管理多个解决方案的数据。使用该平台,可以通过API向解决方案提供持久。由于这种结构,数据可以跨解决方案重复使用,而不需要各个解决方案分别所需的数据集成。这减少了基础设施负担,特别是当创建许多解决方案时。
可以认识到,传统数据库被设计成由开发团队编写的代码使用。该代码通常在应用10的帐户下运行,而不是在个体用户12的单独帐户下运行。即,传统应用开发环境中的访问控制通常不够鲁棒以允许单个数据库被多个团队用于多个应用10,其中各个应用具有多个用户12。为了克服这个限制,本文描述的系统提供数据访问控制,该数据访问控制限制所有用户(包括开发者)能够看到和编辑的内容。平台的安全层应用这些控制,以使得各个用户12根据其访问的内容看到一片数据网络。
在现有方法中,虽然数据变化审计(auditing)理论上可以在应用代码中实现为应用内的所有数据的通用能力,但是实际上如果有的话,也很少。典型地,应用10的开发者建立单独的“审计日志”表,以存储关注的特定数据集的变化。然而,并非针对所有数据集通用地捕获变化,并且当审计日志可用时,通常无法通过系统方法来恢复。在当前描述的系统中,平台被配置成执行各个个体记录的自动数据版本更新,具有回滚到先前版本的能力。这减少了应用开发工作,并且与由于工作成本/影响而不得不折衷相反,保证了应用于所有数据。自动数据版本更新还通过避免用户定义的控制属性(例如,创建时间、创建者等)来简化数据模型。
由平台的数据版本更新模块应用的自动数据版本更新可以通过以如下方式存储所有数据变化来执行,该方式既允许查看先前版本、版本与版本之间的差异,又允许通过重新应用变化来复原到特定版本的能力,即使在表的模式已经变化的场景下也是如此。
在现有方法中,限制谁可以看到和编辑数据的能力由各个应用10以应用特定代码来实现(参见图1)。该应用特定代码在应用/功能/特征级而不是在数据层写入。如上所述以及如图5和图6所示,平台具有在数据节点级定义的数据访问控制,并且强制解决方案自动遵守这些控制。如图9所示,平台使用的脚本语言查询的执行利用访问控制元数据来执行查询引擎,使得从数据网络中提取的查询结果被限制为特定用户可访问的内容。
该数据层访问控制通过消除为每一个应用创建访问控制的需要而减少了应用开发工作。此外,存在跨所有访问通道(例如,API、UI等)的一致控制实施(例如,单个用户通过多个应用访问相同数据)。
在现有方法中,应用10使用的数据库24中的记录之间的链接通过复制列值和/或使用代理键来实现。在当前描述的系统中,平台提供了将一个节点中的记录链接至另一节点中的一个或更多个记录的能力,针对属性和属性值是不可知的。此外,平台提供在查询中使用链接的能力。这通过统一物理和逻辑模型来简化数据模型,并避免对人工定义的代理键的依赖性。使用平台执行的链接还通过避免通常需要复杂连接的情况来简化查询。
链接可以由存储与用户定义的列分开的记录之间的链接的平台来执行。可以以针对用户定义的列不可知的方式使用包括这些关系的映射的单独的表。可以理解,该链接机制仅用于例示目的,并且确切的实现将根据基础持久存储部的类型而变化。
查询引擎可以通过生成基础持久存储部语言(例如,SQL)来执行平台的脚本语言,并且如果可应用,则展开“点”符号(图9中示出)并从模型转换为逻辑。然后,可以将数据从逻辑转换为物理,并应用访问控制,使得从基础持久存储部仅提取经核准的数据。然后可以执行并返回基础持久存储部本地查询。
根据用户特权过滤数据访问的传统方法依赖于应用特定安全隔离层,以及物理数据库层上的数据集成、持久和发布接口上的控制。这样,限制谁可以看到和编辑数据的能力在各个应用内以应用特定代码实现,该应用特定代码在应用功能/特征级写入。这种传统方法不是应用不可知的,并且需要大量且耗时的应用开发工作。
为了解决这种传统方法,本文描述的平台在数据层定义数据访问控制,使得可以显著减少应用开发时间,同时提供跨所有访问通道(例如,API和UI)的一致控制实施(例如,单个用户通过多个应用访问相同数据)并消除不适当访问的风险。
已经发现,元数据和权限数据的注入高速缓存以及并入专用处理模块和表以在交互层内捕获单独的表中的权限可以加速性能。下面渐进地描述的高速缓存协议可以根据与访问特权或查询本身相关联的变化执行高速缓存的变换查询或重新生成查询,其中变化以快速或近似瞬时的方式反映。因此,当应用新使用特权时,可以消除不适当的数据访问的可能性。
下面描述了用于数据级访问控制的过程,其通过在交互层内管理权限,然后通过查询引擎应用这些权限来重写将访问特权纳入考虑的“即时”查询。这可以在高速缓存元数据和权限数据以及并入专用处理模块和表以在交互层内捕获单独的表中的权限时完成。
变化核准
平台解决的另一问题是设计允许平台以无缝方式实现变化核准过程而不影响性能的有效基础数据结构。已经认识到,应用查询应仅基于经核准的数据库变化计算结果,同时跟踪和版本更新待核准的变化。已经发现,现有方法中的现有变化核准技术没有被设计成解决平台所面对的高度不可预测的使用模式,并因此被确定为对于本文描述的平台的操作而言过于复杂或性能不足。另外,发现这样的现有技术更适合于固定数据库模式设计,而平台及其数据协作网络经历连续演进。
发现维护两个单独的表可以用于变化核准,其中一个表专用于跟踪未经核准的变化,另一表是经核准的主表本身。运行该两表架构内的过程,以比较和识别已经历主变化表与未经核准的变化表之间的变化的特定字段,包括计算应用层中的交互层即时和外部的变化。这导致了基于持久标志来识别各个主数据列的变化的过程,其提供了可接受的性能和存储要求特征,并且被并入作为平台的整体架构的一部分。
这样,本文提供了一种两表数据结构设计,其维护两个单独的表,其中,一个表专用于跟踪未经核准的变化,另一表是经核准的主表本身,以有效地版本更新和跟踪未经核准的数据库变化。这可以包括标识各个主数据列的变化而不会负面地影响性能和存储要求特征的上述持久标志。
数据驱动的权限
除了可以由数据库跨所有访问方法(例如,API或UI)一致地实施的基于用户/组的列级权限之外,本文所述的平台还可以被配置成允许数据驱动的权限。可以理解,在没有条件的情况下,数据仍然需要被分段和复制。例如,如果希望看到公司中每一个人的职位和姓名,但是只能看到他/她自己的电话号码和地址,并且只有他/她和他/她的经理能够看到他/她的薪水。针对存在于同一表中的该信息,平台应用允许基于表中的数据来控制访问的单独条件。
列级权限可以通过创建交互层并在被发送到后端之前重写查询来应用。这将用户的许可与他们正在运行的查询相结合。虽然用户查询的“where子句”可以被丰富以包括任何附加条件,但是已经发现,在某些情况下,这意味着完全重构查询以包括where子句,例如当执行更新时。然而,这对于进行数据驱动的权限是不够的,因为用户的权限可能基于他们不能访问的数据。平台可以在该用户的上下文下运行整个查询。例如,如果用户只能访问具有名称、职位、电话号码和地址的表中的名称和职位,则平台可以应用该用户的许可并限制用户回到名称和职位的数据。利用数据驱动的权限,当用户不能访问地址字段时,平台可以允许用户查看地址处于特定州或省的所有雇员。
该平台还可以被配置为能够将影响不同列的多个权限层叠在一起(例如,你可以看到你自己的姓名、职位、电话号码和地址,但是你只能看到其他雇员的姓名和职位)。通过动态地重写where子句,平台可能无法将条件隔离到个体列。因此,可以增强平台的重写逻辑,以在条件落入该类别时调整条件的定位。
还认识到,在表之间存在链接的情况下,除了当前数据集的控制之外,还应当应用所链接的表的控制。这可能变得相当复杂,因为链接可能指向其它链接,因此不仅包括一个附加条件集,而且可能包括多个。此外,链接支持平台内部的多选择以允许一对多关系。在用户可以访问数据子集的环境中,平台可以被配置为确保在存在多个选择的情况下,用户仅看到他们被允许看到的选择。这可能进一步使重写逻辑复杂化以动态地考虑这些条件。
为了实现数据驱动的场景,平台还可以被配置成允许权限条件内的用户访问关于当前用户以及他们是哪个组的成员的信息。这可以通过扩展查询语言以支持这样的功能来实现。
为了解决潜在的性能问题(由于将这些控制添加到各个请求的解析和针对基础数据库激发的最终查询的复杂性),平台还可以实现定制的高速缓存层,其可以减少平台的查询引擎处理语句的次数。
这样,平台提供了用于数据级访问控制的过程,以允许通过系统用户而不是当前用户的凭证运行重写查询的数据驱动的权限,并且可以将多个权限层叠在一起。
数据同步/连接器架构
提取转换加载(ETL)工具通常提供用于插入新数据或执行脚本以清除现有数据的组件,而本文描述的平台旨在创建使现有数据保持完整并应用增量以保存版本历史的数据同步。希望平台以数据同步架构不可知源或目标的方式来做到这一点。以这种方式,可以相对于接口构建简单的连接器,以使得能够在更短的时间量内(例如,在1-2天的跨度内)创建新的连接器,而与平台无关,并且在同步如何操作和同步暴露的特征方面具有一致性。
实现同步的第一步是建立协调逻辑。该平台可以被配置为实现划分,通过创建依赖于定制索引和排序策略的定制算法,发现该划分相对更有效。发现当在同步实用程序与平台的web应用之间转移时,瓶颈随后移到数据的串行化和解串行化。可以使用各种串行化协议,例如,Google提供的协议缓冲器。应当认识到,协议缓冲器通常与固定有效载荷结构对齐,而对于平台,来回移动的数据可能不遵守固定模式。这样,平台被配置为将动态结构适配到该类型的模型中。
因此,平台可以从同步引擎中提取源和目标,这意味着当平台添加新连接器时,它只需要为其写入代码以将其数据转换为标准中间格式,而不是为源和目标的各个组合实现解决方案。
网络增长
图13a至图13c示出了数据集网络34随时间的发展。具体地,图13a示出了当数据仍在开发时处于早期阶段的数据集网络34。在早期阶段,存在较少数量的节点36以及节点36之间的较少数量的链接40。随着数据集被开发,用户向数据集网络34添加更多的数据,从而使网络增长。图13b示出了比早期阶段晚的阶段中的数据集网络34。在这个阶段,数据集网络具有更多的节点36和节点之间的更多的链接40。图13c示出了比图13b所示阶段更晚阶段的数据集网络。在这个阶段,数据集网络具有大量节点36和节点36之间的大量链接40。
图14和图15提供了传统应用与数据集网络34的示意图。图14和图15示出了传统应用(或“app”),其包括UI 14、API 15、逻辑单元、控制16、持久20,然后与计算设备的操作系统集成18。另一方面,数据集网络34包括自描述的、自连接的和自保护的节点36。这样,不需要UI 14、API或与操作系统的集成18。API 41或应用体验32经由查询接口33直接从数据网络34获得数据25。这消除了创建、导入、更新和维护单独数据库的需要。这也消除了管理各个应用的安全和控制16、数据集成18、数据持久20和数据发布系统22的需要。
数据集网络34不需要附加的安全和控制16、数据集成18、数据持久20和数据发布22能力。当查询接口33可用时,创建用于与数据交互的定制用户接口也是可选的。
因此,可以理解,可以将任何数量的数据集节点36以及应用体验添加至网络34。当添加较新应用时,数据网络增长,并且在新数据集之间形成较新的链接。
图16A是示出用于使用仓化数据库的传统应用开发的安全和控制16的示意图。图16B是示出使用数据网络34经由访问层39进行应用开发的安全和控制的示意图。在图16B中,通过用户的凭证而不是如图16A所示的应用的服务帐户来访问数据26。数据网络34的安全和控制39是根据数据集26定义的,而不是如传统上那样在各个应用10处定义的。这实现了真正的跨应用安全和对数据的控制并消除了数据复制。用户12还可以可选地直接经由数据网络用户接口42而不是总是通过应用与数据交互。
为了例示的简单和清楚,在认为适当的情况下,可以在附图中重复附图标记以指示对应或类似的元件。另外,阐述了许多具体细节以便提供对本文所述示例的透彻理解。然而,所属领域的技术人员将理解,可以在没有这些特定细节的情况下实践本文所描述的示例。在其它情况下,没有详细描述公知的方法、过程和组件,以免模糊本文描述的示例。此外,该描述不应被视为限制本文所述的示例的范围。
将理解,本文中所使用的示例和对应示意图仅出于例示性目的。可以使用不同的配置和术语,而不脱离本文所表达的原理。例如,在不脱离这些原理的情况下,可以添加、删除、修改或以不同的连接来布置组件和模块。
还将理解,本文例示的执行指令的任何模块或组件可以包括或以其它方式访问计算机可读介质,诸如存储介质、计算机存储介质或数据存储设备(可移除和/或不可移除),例如磁盘、光盘或磁带。计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质的示例包括RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储部、磁带盒、磁带、磁盘存储部或其它磁存储设备,或可以用于存储所需信息并且可以由应用、模块或两者访问的任何其它介质。任何这样的计算机存储介质可以是平台的一部分、平台的任何组件或与其相关的任何组件等,或可访问或可连接到平台的任何组件。本文所述的任何应用或模块可以使用可以由这种计算机可读媒体存储或以其它方式保持的计算机可读/可执行指令来实现。
本文描述的流程图和图表中的步骤或操作仅仅是示例。在不脱离上述原理的情况下,这些步骤或操作可以有许多变型。例如,可以以不同的顺序执行步骤,或者可以添加、删除或修改步骤。
尽管已经参考某些特定示例描述了上述原理,但是如在所附权利要求中概述的,其各种修改对于本领域技术人员将是显而易见的。

Claims (18)

1.一种创建数据节点网络的系统,所述系统包括:
第一节点,所述第一节点具有:
第一数据集,所述第一数据集包含数据;
访问控制层,所述访问控制层限制用户对所述第一数据集的访问;
元数据层,所述元数据层定义所述第一数据集的特征并且连接到至少一个后续节点,所述至少一个后续节点具有:
后续数据集,所述后续数据集包含另外的数据;
后续访问控制层,所述后续访问控制层限制用户对所述第二数据集的访问;
元数据层,所述元数据层定义所述后续数据集的特征;
其中,创建一个或更多个链接,以将所述第一节点与所述后续节点相关联来创建所述数据节点网络;
其中,所述数据节点网络包括查询层,所述查询层与所述第一数据集和至少一个后续数据集进行交互;并且
其中,多个应用通过所述查询层访问所述网络中的所述数据和所述另外的数据。
2.根据权利要求1所述的系统,其中,内置数据安全层包括数据级权限,使得所述数据用于指定给予所述用户的特定等级的权限。
3.根据权利要求2所述的系统,所述系统还包括直接与所述数据交互的用户友好接口。
4.根据权利要求2所述的系统,所述系统还包括将遗留数据链接至所述数据集网络的一个或更多个连接器。
5.根据权利要求1所述的系统,其中,所述查询接口经由元数据驱动的API和元数据驱动的UI与所述数据集网络进行交互。
6.根据权利要求1所述的系统,所述系统被配置成执行数据源的自动数据版本更新,其中,所述用户具有回滚到所述数据集网络的先前版本的能力。
7.根据权利要求1所述的系统,其中,所述数据和所述另外的数据是版本控制的。
8.根据权利要求1所述的系统,其中,内置数据控制层在数据源处被定义成使得所述API和所述UI被迫自动遵守内置数据控制。
9.根据权利要求1所述的系统,其中,所述数据节点网络能够连接到至少一个其它数据节点网络,以创建超级网络。
10.一种创建数据节点网络的方法,所述方法包括以下步骤:
提供第一节点,所述第一节点具有:
第一数据集,所述第一数据集包含数据;
访问控制层,所述访问控制层限制用户对所述第一数据集的访问;
元数据层,所述元数据层定义所述第一数据集的特征;
将所述第一节点连接到至少一个后续节点,所述至少一个后续节点具有:
后续数据集,所述后续数据集包含另外的数据;
后续访问控制层,所述后续访问控制层限制用户对所述第二数据集的访问;
元数据层,所述元数据层定义所述后续数据集的特征;
提供查询层,以与所述第一数据集和至少一个后续数据集进行交互;以及
通过所述查询层访问所述网络中的所述数据和所述另外的数据;
其中,创建一个或更多个链接,以将所述第一节点与所述后续节点相关联,以按照使得所述第一数据集的变化影响所述数据节点网络的变化的方式创建所述数据节点网络。
11.根据权利要求10所述的方法,其中,内置数据安全层包括数据级权限,使得所述数据用于指定给予所述用户的特定等级的权限。
12.根据权利要求11所述的方法,其中,所述数据和所述另外的数据是版本控制的。
13.根据权利要求11所述的方法,所述方法还包括以下步骤:一个或更多个连接器,所述一个或更多个连接器将遗留数据链接至所述数据集网络。
14.根据权利要求10所述的方法,其中,所述查询接口经由元数据驱动的API和元数据驱动的UI与所述数据集网络进行交互。
15.根据权利要求10所述的方法,所述方法被配置成执行数据源的自动数据版本更新,其中,所述用户具有回滚到所述数据集网络的先前版本的能力。
16.根据权利要求10所述的方法,所述方法包括两表架构,所述两表架构包括用于跟踪未经核准的变化的第一表和维护经核准的变化的第二表。
17.根据权利要求10所述的方法,其中,内置数据控制层在数据源处被定义成使得所述API和所述UI被迫自动遵守内置数据控制。
18.根据权利要求10所述的方法,其中,所述数据节点网络能够连接到至少一个其它数据节点网络,以创建超级网络。
CN202080093083.7A 2019-11-22 2020-11-23 创建数据集网络的系统 Pending CN114945908A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962939515P 2019-11-22 2019-11-22
US201962939504P 2019-11-22 2019-11-22
US62/939,504 2019-11-22
US62/939,515 2019-11-22
PCT/CA2020/051595 WO2021097583A1 (en) 2019-11-22 2020-11-23 System for creating a dataset network

Publications (1)

Publication Number Publication Date
CN114945908A true CN114945908A (zh) 2022-08-26

Family

ID=75980228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080093083.7A Pending CN114945908A (zh) 2019-11-22 2020-11-23 创建数据集网络的系统

Country Status (8)

Country Link
US (1) US12248486B2 (zh)
EP (1) EP4062291A4 (zh)
JP (1) JP2023502757A (zh)
KR (1) KR20220122619A (zh)
CN (1) CN114945908A (zh)
AU (1) AU2020385954A1 (zh)
CA (1) CA3159118A1 (zh)
WO (1) WO2021097583A1 (zh)

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716165B2 (en) * 2002-02-12 2010-05-11 Mantas, Inc. Analysis of third party networks
JP5609267B2 (ja) * 2010-05-26 2014-10-22 ソニー株式会社 情報処理装置、情報処理方法、プログラム及び蓄電装置管理システム
US8775476B2 (en) * 2010-12-30 2014-07-08 Skai, Inc. System and method for creating, deploying, integrating, and distributing nodes in a grid of distributed graph databases
US8682764B2 (en) * 2011-03-01 2014-03-25 Early Warning Services, Llc System and method for suspect entity detection and mitigation
US8977596B2 (en) * 2012-12-21 2015-03-10 Zetta Inc. Back up using locally distributed change detection
US10275545B2 (en) * 2013-03-15 2019-04-30 Ventana Systems, Inc. Modeling and simulation
US9720958B2 (en) 2014-10-24 2017-08-01 International Business Machines Corporation User driven business data aggregation and cross mapping framework
US10353911B2 (en) * 2016-06-19 2019-07-16 Data.World, Inc. Computerized tools to discover, form, and analyze dataset interrelations among a system of networked collaborative datasets
US10346429B2 (en) * 2016-06-19 2019-07-09 Data.World, Inc. Management of collaborative datasets via distributed computer networks
US11030165B2 (en) * 2017-12-11 2021-06-08 Wipro Limited Method and device for database design and creation
US20190332697A1 (en) * 2018-04-26 2019-10-31 Hewlett-Packard Development Company, L.P. Database schema validations

Also Published As

Publication number Publication date
WO2021097583A1 (en) 2021-05-27
EP4062291A1 (en) 2022-09-28
AU2020385954A1 (en) 2022-06-16
KR20220122619A (ko) 2022-09-02
US20210256022A1 (en) 2021-08-19
US12248486B2 (en) 2025-03-11
CA3159118A1 (en) 2021-05-27
JP2023502757A (ja) 2023-01-25
EP4062291A4 (en) 2023-11-22

Similar Documents

Publication Publication Date Title
US11893046B2 (en) Method and apparatus for implementing a set of integrated data systems
Capriolo et al. Programming Hive: Data warehouse and query language for Hadoop
AU2020298056B2 (en) Autolayout of visualizations based on graph data
US20060206507A1 (en) Hierarchal data management
US11593324B2 (en) Reversible data transforms
US20200364100A1 (en) Memory abstraction for lock-free inter-process communication
US10296542B2 (en) Integration database framework
US20130173541A1 (en) Database version management system
JP2006012146A (ja) 影響分析のためのシステムおよび方法
US20070073674A1 (en) System and method for providing federated events for content management systems
US11567995B2 (en) Branch threading in graph databases
US20110029579A1 (en) Content accelerator framework
JP2024505238A (ja) 論理データセットグループの操作を伴うデータ処理システム
US20040139141A1 (en) Integration of virtual data within a host operating environment
US12248486B2 (en) System for creating a dataset network
US20020188774A1 (en) Virtualizing external data as native data
US12147412B2 (en) Concurrent optimistic transactions for tables with deletion vectors
US20250103580A1 (en) Concurrent optimistic transactions for tables with deletion vectors
US20250094424A1 (en) Execution of programs after import for configuration changes
US20020188727A1 (en) Method for processing external data for access and manipulation through a host operating environment
SPS SAP HANA Modeling Guide
Curtis Efficient control of assets in a modern production pipeline
Buenrostro et al. Single-Setup Privacy Enforcement for Heterogeneous Data Ecosystems

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