CN116089432A - 实现子表复制的方法和系统以及计算机可读存储介质 - Google Patents

实现子表复制的方法和系统以及计算机可读存储介质 Download PDF

Info

Publication number
CN116089432A
CN116089432A CN202310119068.0A CN202310119068A CN116089432A CN 116089432 A CN116089432 A CN 116089432A CN 202310119068 A CN202310119068 A CN 202310119068A CN 116089432 A CN116089432 A CN 116089432A
Authority
CN
China
Prior art keywords
equity
identifier
client
provider
data table
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
CN202310119068.0A
Other languages
English (en)
Inventor
培·凯·约翰斯顿·舒
施雷亚斯·纳伦德拉·德赛
格尔曼·阿尔贝托·吉尔埃切韦里
普拉桑纳·克里希南
尼辛·马赫什
苏布拉马尼安·穆拉利达尔
埃里克·鲁宾逊
萨哈吉·萨伊尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Snowflake Inc
Original Assignee
Snowflake Computing Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/944,988 external-priority patent/US11055315B1/en
Application filed by Snowflake Computing Inc filed Critical Snowflake Computing Inc
Publication of CN116089432A publication Critical patent/CN116089432A/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
    • G06F16/275Synchronous replication
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/018Certifying business or products
    • G06Q30/0185Product, service or business identity fraud
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data
    • G06Q30/0204Market segmentation
    • G06Q30/0205Location or geographical consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Computing Systems (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Software Systems (AREA)
  • Game Theory and Decision Science (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

提供了实现子表复制的方法和系统及计算机可读存储介质。实现子表复制的方法包括:处理器检测对权益表的更新;权益表包括与多个客户端标识符、多个消费者账户标识符和多个提供者账户标识符相关联的多个权益表行;对权益表的更新与权益表行的第一权益表行相关联,该更新包括所述客户端标识符的第一客户端标识符、消费者账户标识符的第一消费者账户标识符、或提供者账户标识符的第一提供者账户标识符;基于对权益表的更新来执行对数据表的过滤,数据表包括与所述客户端标识符相关联并且包括权益列和数据内容的多个数据表行,权益列包括所述提供者账户标识符;检测对所述权益列的更新;以及通过使基于版本的复制被执行来执行所述数据表的增量复制。

Description

实现子表复制的方法和系统以及计算机可读存储介质
本申请是申请日为2021年4月28日,发明名称为“实现子表复制的方法和系统以及计算机可读存储介质”的第202110467165.X号发明专利申请的分案申请。
相关申请的交叉引用
本申请要求于2020年5月29日提交的美国临时专利申请序列第63/032,163号的优先权,其内容通过引用整体并入本文中。
技术领域
本公开内容涉及一种用于数据库的系统、方法和设备,并且更具体地涉及一种子数据库复制。
背景技术
数据库广泛用于计算应用中的数据存储和访问。数据库可以包括具有行和列的包括或引用数据的表,所述数据可以使用查询来读取、修改或删除。
在一些情况下,在多个位置中或多个存储设备上复制数据库数据可能是有益的。复制数据可以防止系统故障,这些系统故障可能致使数据无法通过云网络访问,或者可能导致数据丢失或永久不可读。然而,跨包括不同区域的网络的数据复制会引起延迟和成本。
发明内容
根据本发明的一个方面,提供了一种实现子表复制的方法,包括:由处理器检测对权益表的第一更新,所述权益表包括多个权益表行,所述权益表行与多个客户端标识符、多个消费者账户标识符和多个提供者账户标识符相关联,所述第一更新与所述权益表行的第一权益表行相关联,所述第一更新包括:所述客户端标识符的第一客户端标识符、所述消费者账户标识符的第一消费者账户标识符;或者所述提供者账户标识符的第一提供者账户标识符;基于所述第一更新来执行对数据表的过滤,所述数据表包括多个数据表行,所述多个数据表行与所述客户端标识符相关联并且包括数据内容;检测对所述权益表的第二更新;以及通过使在下一刷新时针对与所述权益表中的所述提供者账户标识符相关联的多个提供者账户执行完整清单复制,来执行所述数据表的增量复制。
根据本发明的另一方面,还提供了一种实现子表复制的系统,包括:处理器;和存储器,在所述存储器中存储有指令,当所述指令由所述处理器执行时,使所述系统执行包括下述的操作:检测对权益表的第一更新,所述权益表包括多个权益表行,所述权益表行与多个客户端标识符、多个消费者账户标识符和多个提供者账户标识符相关联,所述第一更新与所述权益表行的第一权益表行相关联,所述第一更新包括:所述客户端标识符的第一客户端标识符、所述消费者账户标识符的第一消费者账户标识符;或者所述提供者账户标识符的第一提供者账户标识符;基于所述第一更新来执行对数据表的过滤,所述数据表包括多个数据表行,所述多个数据表行与所述客户端标识符相关联并且包括数据内容;检测对所述权益表的第二更新;以及通过使在下一刷新时针对与所述权益表中的所述提供者账户标识符相关联的多个提供者账户执行完整清单复制,来执行所述数据表的增量复制。
根据本发明的又一方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括指令,当所述指令由计算机处理时,所述指令配置所述计算机执行包括下述的操作:检测对权益表的第一更新,所述权益表包括多个权益表行,所述权益表行与多个客户端标识符、多个消费者账户标识符和多个提供者账户标识符相关联,所述第一更新与所述权益表行的第一权益表行相关联,所述第一更新包括:所述客户端标识符的第一客户端标识符、所述消费者账户标识符的第一消费者账户标识符;或者所述提供者账户标识符的第一提供者账户标识符;基于所述第一更新来执行对数据表的过滤,所述数据表包括多个数据表行,所述多个数据表行与所述客户端标识符相关联并且包括数据内容;检测对所述权益表的第二更新;以及通过使在下一刷新时针对与所述权益表中的所述提供者账户标识符相关联的多个提供者账户执行完整清单复制,来执行所述数据表的增量复制。
附图说明
在不一定按比例绘制的附图中,相同的附图标记可以描述不同视图中的相似的部件。为了容易识别对任何特定元件或动作的讨论,附图标记中的一个或多个最高有效数字是指其中该元件被首次引入的图号。在附图的图中通过示例而非限制的方式示出了一些实施方式,在附图中:
图1是根据一些示例的其中可以部署本公开内容的联网环境的图形表示。
图2示出了根据一些示例的复制控制器使用模式过滤和表过滤实现子数据库复制的图形表示。
图3是根据一些示例的复制控制器实现从数据库到同一区域内的客户端的数据共享的图形表示。
图4示出了根据一些示例的复制控制器实现表复制的图形表示。
图5示出了根据一些示例的复制控制器实现子表复制的图形表示。
图6示出了根据一些示例的复制控制器使用运行时应用的权益来实现子表复制的图形表示。
图7示出了根据一些示例的复制控制器使用运行时应用的权益来实现子表复制的图形表示。
图8示出了根据一个实施方式的实现子数据库复制的过程800。
图9示出了根据一个实施方式的来自图8的操作804的细节。
图10示出了根据一些示例的复制控制器使用表内的权益列实现子表复制的图形表示。
图11示出了根据一些示例的复制控制器使用表内的权益列实现子表复制的图形表示。
图12示出了根据一些示例的复制控制器使用表内的权益列实现子表复制的图形表示。
图13示出了根据一个实施方式的实现子数据库复制的过程1300。
图14示出了根据一个实施方式的来自图13的操作1308的细节。
图15是根据一些示例实施方式的以计算机系统形式的机器的图形表示,在该计算机系统中可以执行一组指令,以使该机器执行本文中讨论的方法中任何一种或更多种。
图16是示出根据示例实施方式的软件架构的框图,在该软件架构中可以实现本公开内容。
具体实施方式
数据库可以以组织的方式跨联网环境针对提供者和客户端存储巨大数据。例如,提供者可以将针对多个客户端的数据存储在同一数据库中。当客户端处于不同的地理区域时,可能需要复制数据库以向客户端提供对数据的访问。跨联网环境复制整个数据库可能昂贵,并且可能由于数据库的大小而引起大量延迟。因此,需要将数据库的相关部分复制到不同的区域。
除了其他之外,本公开内容中描述的实施方式通过实现将子数据库复制到网络中的不同目标区域,来提高数据库服务系统100的功能。使用子数据库复制,数据库服务系统100通过过滤非关键对象来减少复制成本和复制延迟。
图1是根据一些示例的其中可以部署本公开内容的联网环境的图形表示。图1中的数据库服务系统100是提供数据库服务的处理平台。在一个实施方式中,数据库服务系统100可以实现数据库复制或子数据库复制。子数据库复制包括例如模式复制、表复制、子表复制等。
数据库服务系统100包括经由网络110(例如,因特网)能够由多个用户访问的数据库服务管理器108。用户可以分别使用客户端设备102、客户端设备106和客户端设备104来访问数据库服务管理器108。数据库服务管理器108可以支持期望访问数据库服务系统100的数据或服务的任何数目的用户。客户端设备102、客户端设备104、客户端设备106的用户可以包括:例如提供数据存储以及检索查询和请求的最终用户;管理本文描述的系统和方法的系统管理员;与数据库进行交互的软件应用;以及与数据库服务管理器108进行交互的其他部件/设备。
数据库服务管理器108可以提供支持数据库服务系统100内的系统和部件的操作的各种服务和功能。数据库服务管理器108访问与存储在整个数据库服务系统100的数据相关联的所存储的元数据。在一些实施方式中,元数据包括存储在远程数据存储系统(例如,数据库112、数据库116、数据库114等)中的数据以及从本地高速缓存可获得的数据的概要。另外地,元数据可以包括关于在远程数据存储系统和本地高速缓存中如何组织数据的信息。
数据库服务管理器108还与包括数据库112、数据库116和数据库114的多个数据存储设备通信,以执行各种数据存储和数据检索操作。尽管在图1中示出了三个数据库112、数据库114和数据库116,但是数据库服务系统100能够包括任何数目的数据存储设备。在一些实施方式中,数据库112、数据库114和数据库116是位于一个或更多个地理位置中的基于云的存储设备。例如,数据库112、数据库114和数据库116可以为公共云基础设施或私有云基础设施或者任何其他方式的分布式存储系统的一部分。数据库112、数据库114和数据库116可以包括硬盘驱动器(HDD)、固态驱动器(SSD)、存储集群或任何其他数据存储技术。另外地,虽然未示出,但是数据库112、数据库114和数据库116可以被包括在存储平台中,该存储平台还可以包括分布式文件系统(例如Hadoop分布式文件系统(HDFS))、对象存储系统等。
虽然图1中示出了作为单个部件的数据库服务管理器108和数据库112、数据库114、数据库116,但是数据库服务管理器108和数据库112、数据库114、数据库116中的每一个可以实现为分布式系统(例如,跨多个地理位置处的多个系统/平台分布)或者可以组合成一个或更多个系统。
如图1所示,根据一些实施方式,数据库服务管理器108包括在数据库服务系统100中实现数据库复制或子数据库复制的复制控制器118。
数据库复制涉及将整个主数据库(例如,数据库112)复制到辅助数据库(例如,数据库116)。在数据库复制中,数据库是复制的原子单位,使得可以完全复制数据库或者完全不复制数据库。数据库复制的主要缺点包括与完全复制大的数据库相关联的高成本和延迟。此外,针对复制没有向用户提供通过选择或排除数据库中的对象来使复制成本和延迟最小化的机会。例如,一些用户想要根据复制从其数据库中排除对象。在一个实现方式中,复制控制器118可以重构要复制的数据库,使得期望的复制单元与用户的个人数据库边界匹配。
模式过滤和表过滤
还为了向用户提供灵活性,复制控制器118可以实现子数据库复制。图2示出了根据一些示例的复制控制器118使用模式过滤和表过滤实现子数据库复制的图形表示200。
在每个数据库内,存在包括模式和表的许多层。模式是数据库中的逻辑容器,并且表是模式内具有行和列的另一容器。模式和表可以表示为对象,以允许模式级过滤和表级过滤。
在该实施方式中,复制控制器118从每个用户接收包括列表或排除列表或其任何组合。包括列表可以包括:数据库中的要复制的对象的列表;以及与列表中的每个对象相关联的目标数据库。对象可以在模式、表或其任何组合上。排除列表可以包括:数据库中的要从复制到目标数据库中排除的对象的列表。
如图2所示,作为提供者的用户分别在区域A、区域B和区域C中具有账户P1、账户P2、账户P3。复制控制器118从用户的客户端设备102接收包括列表,该包括列表识别出模式S2和表T1,以对区域B中的账户P2中的目标数据库进行复制,并且该包括列表识别出模式S4以及表T3和T4,以对区域C中的账户P4中的目标数据库进行复制。在该示例中,复制控制器118还可以从用户的客户端设备102接收排除列表,该排除列表识别出在模式S2中包括的表T2,以排除对区域B中的账户P2中的目标数据库的复制。
替选地,复制控制器118可以从用户的客户端设备102接收排除列表,该排除列表识别出要从区域B中的账户P2中的目标数据库中排除的模式S1、模式S3、模式S4以及表T2、表T3和表T4,并且识别出要从区域C中的账户P3中的目标数据库中排除的模式S1、模式S2、模式S3和表T1、表T2。
然后,复制控制器118基于包括列表或排除列表将对象从区域A中的账户P1中的主数据库相应地复制到账户P2和P3中的辅助数据库。
在一个实施方式中,复制控制器118基于包括列表或排除列表生成复制策略。例如,复制控制器118可以应用数据库复制策略,以使用排除列表通过名称来限制模式和表的复制。替选地,复制控制器118可以应用数据库复制策略,以能够使用包括列表通过名称来对模式和表进行复制。在一个实现方式中,复制策略可以是消费者可以用来限定要复制到目标账户的模式和表的新的第一流数据库对象。主数据库还可以具有多个策略和多个辅助数据库。
数据共享
图3是根据一些示例的复制控制器118实现将来自数据库的数据共享至同一区域内的客户端的图形表示300。
数据库服务系统100中的一些用户是提供者(例如,提供者用户),该提供者维护其客户端(也是数据库服务系统100的用户)并且与其客户端共享数据。如图3所示,数据可以存储在包括消费者标识(ID)(例如,client_id(客户端标识))列的单个表(例如,数据表)中。表还可以包括名称、日期、时间的列。在表中可以存储针对提供者用户的所有客户端(例如client_id 1、client_id 2、client_id 3)的数据。
参照图3,提供者用户还被提供有权益表,以管理与其客户端的数据的共享。权益表包括与数据库服务系统100相关联的用于消费者ID(例如,client_id)和消费者账户名称(例如,消费者账户)的列。根据图3中的权益表,消费者ID 1和消费者ID 3(例如,client_id1和client_id 3)也具有在数据库服务系统100内分别作为消费者账户C1、消费者账户C3的账户。
由于消费者账户C1和消费者账户C3在与提供者账户相同的区域中,因此复制控制器118不需要复制数据。复制控制器118使用安全视图将数据表与消费者ID上的权益表结合在一起,以使来自数据表的相关数据与消费者账户中的每一个共享。复制控制器118可以从数据表接收来自消费者账户C1和C3对其数据的查询。作为响应,如图3所示,复制控制器118可以选择并共享与具有消费者账户C1的消费者ID 1(例如,client_id1)相关联的行。类似地,复制控制器118可以选择并共享与具有消费者账户C3的消费者ID 3(例如,client_id3)相关联的行。因此,复制控制器118能够生成个性化共享,其中可以与每个消费者账户共享表行的子集。在一个示例中,复制控制器118识别正在查询的当前消费者账户,以及选择并共享与所识别到的消费者账户相关联的行。
表级复制
当消费者账户位于与数据表(例如,主表)不同的区域中时,复制控制器118可以将整个表复制到不同区域中的提供者账户,并且在不同区域中的每一个中实现图3中的个性化共享。图4示出了根据一些示例的复制控制器118实现表复制的图形表示400。
在图4中,提供者用户在中部区域中具有提供者账户P1,该区域中存储有数据表(例如,主数据表)。提供者用户为数据表中具有消费者ID(例如,client_id)1、2、3、4的客户端存储数据。如权益表中所示,client_id1具有消费者账户C1,client_id 2具有两个消费者账户C2-W、消费者账户C2-E,client_id 3具有消费者账户C3,client_id 4具有消费者账户C4。图4中的权益表还包括跨不同区域将消费者ID(client_id)与提供者账户(例如,提供者账户P1、提供者账户P2、提供者账户P3)相关联的列。
由于至少一个消费者账户(例如,C1、C2-E、C2-W、C3、C4)在西部区域以及东部区域中,因此复制控制器118将整个数据表复制到西部区域中的提供者账户P2和东部区域中的提供者账户P3。一旦数据表在提供者账户P2中,复制控制器118就可以与西部区域中的每个消费者账户C2-W和消费者账户C3共享(例如,个性化共享)提供者账户P2中的辅助表中的表行的子集。类似地,一旦数据表在提供者账户P3中,复制控制器118就可以与东部区域中的每个消费者账户C2-E和消费者账户C1共享提供者账户P3中的辅助表中的表行的子集。
由于消费者账户C4与提供者用户和(主)数据表在同一中部区域中,因此复制控制器118可以通过将与client_id 4相关联的数据行共享至消费者账户C4来响应来自消费者账户C4的查询请求。
图4中的表复制的缺点在于,由于复制控制器118在区域之间复制整个表,因此主数据表中的在某一区域中可能不需要的行正在被复制到所述某一区域中。这可能引起更高的成本和更高的延迟。
图5示出了根据一些示例的复制控制器118实现子表复制的图形表示500。在该实施方式中,复制控制器118将在给定区域中需要共享的表行的子集复制到该区域中的提供者账户。例如,复制控制器118选择需要共享至消费者(例如,C3和C2-W)的表行的子集(client_id 2、client_id 3)并且将该子集复制到西部区域中的提供者账户P2。类似地,复制控制器118选择需要共享至消费者(例如,C1和C2-E)的表行的子集(client_id1、client_id 2)并且将该子集复制到东部区域中的提供者账户P3。因此,与图4中的表复制相比,图5中的子表复制改善了成本和延迟。
从要复制的数据表中选择行具有挑战性,这是因为可以将主数据表中的数据具体化为称为微分区的连续存储单元。表可以是微分区的集合。每个微分区是包含在50MB至500MB之间的未压缩数据的文件。微分区的大小可以等于或小于16兆字节(MB)。可以将表中的行组映射至按列组织的单个微分区中。
此外,使用数据操纵语言(DML),可以对数据表中的数据进行改变。在一些实现方式中,可以通过任何DML语句进行改变。操纵数据的示例可以包括但不限于选择、更新、改变、合并数据以及将数据插入表中。当插入新的数据时,数据库服务管理器108创建新的微分区。当更新数据时,数据库服务管理器108标记存储数据的微分区以进行删除,并且为更新后的数据创建新的微分区。
在一个实施方式中,假定表中的许多行被打包至这些微分区中以执行行级过滤,则复制控制器118打开每个微分区以查看对于不同的区域是否要复制其中的行。这种行级过滤实现了精确性,但是使复制速度变慢。提供者用户将行具体化为单独的对象
在另一实施方式中,可以将行具体化为单独的对象(例如,单独的表),使得针对需要复制的行创建新的微分区。在一个实现方式中,提供者用户将来自要复制的数据表的行具体化为单独的表。具体地,提供者用户可以创建新表,并且在其中指定来自要复制的(主)数据表中的行。新表中的行被具体化为新的微分区,并且提供者用户请求复制控制器118复制新表。由于仅复制针对区域的相关行,因此复制成本和复制延迟较低。然而,存在较高的存储成本,这是因为需要要复制的数据的倍增;存在较高的提取、转换、加载(ETL)成本和较高的ETL延迟,这是因为对于要存储在新表中的数据的每个行需要进行转换并且然后进行复制,并且提供者消费者需要的工作量高。
复制控制器将行具体化为具体化视图
在另一实现方式中,为了减轻提供者用户所需的工作量,复制控制器118可以将来自要复制的数据表的行具体化为具体化视图。
具体化视图是包括数据库查询的最终结果或中间结果的数据库对象。具体化视图可以包括数据库数据的本地高速缓存副本、表的行或列的子集、结合的结果、聚合函数的结果等。具体化视图可以由客户端或系统管理员限定,并且可以包括任何适当的信息。通常生成具体化视图以帮助执行特定的通用查询。
如本申请中所公开的具体化视图是自动维护和透明利用的持久查询结果的说明性规范。在一个示例中,具体化视图包括位于远程的数据的本地副本,或者可以包括源数据表的行和/或列的子集(可以称为“分区”或“微分区”)或结合结果或者可以可替选地包括使用聚合函数的概要。具体化视图通过具体化的方式生成,其中缓存查询结果与在函数语言中记忆函数的值类似。具体化视图通过具体化和重用工作负载中的常用中间查询结果来提高昂贵查询的性能。具体化视图以维护成本和增加的存储需求为代价用于提高查询性能。
在一个示例中,具体化视图可以包括来自数据表中与提供者用户相关的行的概要或者与来自提供者用户的查询相关联的行的概要。当复制控制器118检测到关于数据表的更新时,复制控制器118可以相应地更新具体化视图。例如,当关于数据表的更新包括将新的微分区插入源表中时,复制控制器118通过将新的微分区插入具体化视图中来刷新具体化视图。此外,当关于数据表的更新包括删除微分区时,复制控制器118可以通过从具体化视图中移除已删除的微分区来压缩具体化视图。数据表可以因此原样复制。例如,复制控制器118可以基于复制目标账户来建立和实现策略。由于仅复制针对区域的相关行,因此复制成本和复制延迟低,但是存储成本仍然高,并且存在与具体化视图相关的增加的成本。
复制控制器复制行的子集(子表复制)
代替将行具体化为单独的新的微分区,在另一实施方式中,复制控制器118可以基于复制目标账户来复制行的子集,而没有如图5所示复制行的子集。
基于提供者用户指定列的行级过滤
在一个实施方式中,为了复制行的子集,复制控制器118从提供者消费者接收数据表中的要被过滤的列的标识以及要应用的过滤行为。例如,在图5中,提供者消费者P1可以指示针对client_id 1行要被过滤的消费者ID列,以及针对消费者C1复制东部区域中的提供者账户P3中的client_id 1行。
如上所述,复制控制器118可以通过打开每个微分区以查看针对不同区域是否要复制其中的行来执行行级过滤。这种行级过滤实现了精确性,但是使复制性能缓慢。
基于提供者用户指定列的文件级过滤
针对每个文件(微分区)的元数据可以指示文件的每个列中的最小值和最大值。因此,对于每个微分区,元数据指示最小消费者ID(client_id)和最大消费者ID(client_id)。例如,具有最小client_id为1以及最大client_id为3的微分区指示行与client_id 2相关联的可能性。在没有打开该微分区的情况下,复制控制器118可以复制针对client_id 1、client_id 2和client_id 3的该微分区。通过避免打开微分区,复制性能更快,但是精确度也不高。具体地,实现文件级过滤的复制控制器118可能将不必要的行复制到一些区域。
为了提高精确性,复制控制器118可以基于限定分配策略的列来聚类表,以生成在该列中更好地排序的微分区。然而,存在与聚类相关联的增加的成本。
存储提供者用户指定的路由策略
如上所讨论,除了指示数据表中要复制的行之外,提供者用户还可以指示路由策略。例如,在图5中,提供者消费者P1可以指示针对client_id1行要被过滤的消费者ID列,以及针对消费者C1复制东部区域中的提供者账户P3中的client_id 1行。如图5所示,权益表可以是单独的表,其中提供者用户可以指定路由策略。在另一实施方式中,权益表也可以被存储为元数据,以提供对路由策略的更快的访问路径。例如,权益表可以是用于个性化共享的新的第一类对象,该个性化共享用于限定消费者C1、消费者C2、消费者C3享有权利的行。
为了实现子表复制,复制控制器118可以使用在运行时应用的权益,或者复制控制器118可以使用由提供者用户维护的或由复制控制器118自动化的或其组合的(主)数据表内的权益列。
子表复制:在运行时应用的权益
图6示出了根据一些示例的复制控制器118使用在运行时应用的权益实现子表复制的图形表示600。
在图6中,提供者用户具有在中部区域中带有数据表604的提供者账户P1,该数据表604具有用于其客户端1、客户端2、客户端3、客户端4(例如,client_id 1、client_id 2、client_id 3、client_id 4)的数据行。提供者用户在权益表602中指示client_id 1与东部区域中的消费者账户C1以及提供者账户P3相关联。相应地,权益表602中的这种改变指示提供者用户想要将消费者账户C1从中部区域复制到东部区域。
在一个示例中,提供者用户对权益表602的更新是由复制控制器118检测到的权益表602的变化,并且使复制控制器118发起与该变化相关联的复制,其中,所述提供者用户对权益表602的更新用于指示client_id 1与提供者账户P3中的消费者账户C1相关联。
在另一示例中,复制控制器118可以从提供者账户P3接收针对消费者账户C1的请求。在该示例中,提供者用户可以针对消费者账户C1指定提供者账户P3。
使用该请求,复制控制器118可以使用微分区元数据中的最小client_id和最大client_id来过滤(文件级)数据表中的微分区,来定位要复制到提供者账户P3的微分区。复制控制器118将所定位的微分区复制到提供者账户P3。
当提供者用户更新权益表时,复制控制器118需要执行另外的子表复制。图7示出了根据一些示例的复制控制器118使用在运行时应用的权益实现子表复制的图形表示700。
在图7中,提供者用户指示在权益表602中client_id 2与东部区域中的消费者账户C2-E以及提供者账户P3相关联。这指示了新的消费者想要将数据复制到东部区域。
复制控制器118可以执行增量复制,其使用两种机制:基于版本的以及完整清单。
在基于版本的复制中,当数据表产生变化时,复制控制器118可以检测到数据表的变化,并且基于该新版本的数据表执行复制。例如,执行基于版本的复制可以包括:识别由于该变化而产生影响的数据表中的行,并且将数据表中的这些行复制到目标账户(例如,提供者账户)。
在完整清单复制中,当权益表产生变化时,复制控制器118可以选择数据表中与由于该变化而产生影响的权益表中的提供者账户标识符相关联的所有行。
基于版本的复制比完整清单快。在一个实施方式中,当权益表602改变时,复制控制器118使针对每个目标账户(例如,提供者账户)在下一刷新时执行完整清单。虽然提供者用户所需的工作量低,但是与使用在运行时应用的权益的子表复制相关联的复制成本和复制延迟为高。
实现子表复制的过程:在运行时应用的权益
尽管所描述的流程图可以将操作示出为顺序过程,但是操作中的许多操作可以并行或同时执行。另外,可以重新排列操作的顺序。在其操作完成时,终止处理。处理可以对应于方法、程序、算法等。方法的操作可以全部或部分执行,可以与其他方法中的一些或所有操作结合执行,并且可以通过任何数目的不同系统例如本文描述的系统或者其任何部分例如包括在任何系统中的处理器执行。例如,处理可以由复制控制器118或包括在复制控制器118中的处理器、或数据库服务管理器108中的处理器或其组合来执行。
图8示出了根据一个实施方式的实现子数据库复制的方法800。在操作802处,复制控制器118中的处理器检测对权益表602的第一更新。如图6和图7所示,权益表602可以包括与客户端标识符、消费者账户标识符和提供者账户标识符相关联的权益表行。权益表602可以包括存储消费者账户标识符和提供者账户标识符的权益表列。如图6和图7所示,提供者账户标识符标识多个地理区域中的提供者账户。第一更新可以与权益表行中的第一权益表行相关联。第一更新可以包括例如客户端标识符中的第一客户端标识符、消费者账户标识符中的第一消费者账户标识符或提供者账户标识符中的第一提供者账户标识符。
在操作804处,处理器基于第一更新来执行对数据表604的过滤。如图6和图7所示,数据表604可以包括数据表行,该数据表行与客户端标识符相关联并且包括数据内容(例如,事件、日期、有效载荷等)。在一个实施方式中,处理器从第一提供者账户接收包括第一消费者账户标识符的复制请求。
在操作806处,处理器检测对权益表602的第二更新。对权益表602的第一更新和第二更新的示例包括下述:向权益表添加新的权益表行;删除权益表行之一;或者改变包括在权益表行之一中的信息。在一个示例中,改变包括在权益表行之一中的信息包括:改变客户端标识符、消费者账户标识符或提供者账户标识符。
在操作808处,处理器通过使在下一刷新时针对与权益表602中的提供者账户标识符相关联的提供者账户执行完整清单复制,来执行数据表604的增量复制。
在一个示例中,处理器通过执行文件级过滤来执行在操作804中对数据表604的过滤。图9示出了根据一个实施方式的来自图8的操作804的细节。
在操作902处,处理器识别数据表604中的多个微分区中的微分区,所述微分区具有与第一客户端标识符相关联的元数据。数据表604中的微分区中的每个微分区可以包括多个数据表行中的一个或更多个。
在一个示例中,数据表604中的微分区包括元数据,该元数据包括最小客户端标识符和最大客户端标识符。在该示例中,在第一客户端标识符在由最小客户端标识符和最大客户端标识符建立的范围内时,元数据与第一客户端标识符相关联。
在操作904处,处理器将所识别到的微分区复制到与第一提供者账户标识符相关联的第一提供者账户。
子表复制:表内的权益列
为了使基于版本的复制得以执行,需要对主数据表604进行至少一次改变。例如,可以触发表DML以使复制控制器118执行基于版本的复制。图10示出了根据一些示例的复制控制器118使用表内的权益列1002实现子表复制的图形表示1000。
在图10中,(主)数据表包括指示与表中的行相关联的提供者账户的权益列1002(例如,目标账户列)。在一个实施方式中,每当权益表602改变,提供者用户就更新数据表1004中的列。对数据表中的权益列1002的更新使复制控制器118执行基于版本的复制。例如,复制控制器118可以更新数据表1004版本以及创建用于反映权益表602的变化的新的微分区。在该实施方式中,复制控制器118执行基于版本的复制包括使用权益列1002将数据表1004中的行复制到目标账户(例如,提供者账户)。
图11示出了根据一些示例的复制控制器118使用表内的权益列实现子表复制的图形表示1100。
在图11中,提供者用户更新权益表602以指示client_id 2与东部区域中的消费者账户C2-E以及提供者账户P3相关联。在该实施方式中,提供者用户还更新数据表1004中的权益列1002,以反映具有client_id 2的行也与提供者账户P3相关联。
如图10所示,对数据表1004中的权益列1002的更新使复制控制器118执行基于版本的复制。在该实施方式中,复制控制器118执行基于版本的复制包括使用权益列1002将数据表1004中的行复制到目标账户(例如,提供者账户)。如图10和图11两者所示,使用表内的权益列1002的子表复制降低了复制成本和复制延迟,但是存在较高的ETL成本和ETL延迟,并且提供者用户所需的工作量高得多。
子表复制:表内的虚拟权益列
为了减轻提供者用户所需的工作量,在一个实施方式中,复制控制器118可以维护数据表内的虚拟权益列。图12示出了根据一些示例的复制控制器118使用表内的权益列实现子表复制的图形表示1200。
在图12中,(主)数据表包括指示与数据表1004中的行相关联的提供者账户的虚拟权益列1202(例如,目标账户列)。虚拟权益列1202由复制控制器118维护。
如图12所示,提供者用户更新权益表602以指示client_id 1与东部区域中的消费者账户C1以及提供者账户P3相关联,并且client_id 2与东部区域中的消费者账户C2-E以及提供者账户P3相关联。当提供者用户更新权益表602时,复制控制器118填充数据表1004中的虚拟权益列1202。在该实施方式中,复制控制器118更新针对client_id 1和client_id2的行的用于指示提供者账户P3的虚拟权益列1202。响应于对数据表1004中的虚拟权益列1202的此更新,复制控制器118可以执行基于版本的复制。在该实施方式中,复制控制器118执行基于版本的复制包括使用虚拟权益列1202将数据表1004中的行复制到目标账户(例如,提供者账户)。
虽然ETL成本和ETL延迟仍然为高,但是使用如图12所示的数据表1004内的虚拟权益列1202降低了复制成本和复制延迟。此外,由于复制控制器118维护虚拟权益列1202,所以降低了提供者用户所需的工作量级别。
实现子表复制的过程:表内的权益列或表内的虚拟权益列
图13示出了根据一个实施方式实现子数据库复制的过程1300。在操作1302处,复制控制器118的处理器检测对权益表602的更新。如图10、图11和图12所示,权益表602可以包括与客户端标识符、消费者账户标识符和提供者账户标识符相关联的权益表行。权益表602可以包括存储消费者账户标识符和提供者账户标识符的权益表列。如图10、图11和图12所示,提供者账户标识符标识多个地理区域中的提供者账户。对权益表602的更新可以与权益表行中的第一权益表行相关联。对权益表602的更新可以包括:例如客户端标识符中的第一客户端标识符;消费者账户标识符中的第一消费者账户标识符;或提供者账户标识符中的第一提供者账户标识符。
在操作1302中对权益表602的更新的示例包括下述:向权益表添加新的权益表行;删除权益表行之一;或者改变包括在权益表行之一中的信息。在一个示例中,改变包括在权益表行之一中的信息包括改变客户端标识符、消费者账户标识符或提供者账户标识符。
在操作1304处,处理器基于对权益表602的更新来执行对数据表1004的过滤。如图10、图11和图12所示,数据表1004可以包括与客户端标识符相关联的数据表行,并且数据表1004包括权益列1002(或虚拟权益列1202)和数据内容(例如,事件、日期、有效载荷等)。如图10、图11和图12所示,权益列1002(或虚拟权益列1202)可以包括提供者账户标识符。在一个实施方式中,处理器从第一提供者账户接收包括第一消费者账户标识符的复制请求。在一个示例中,处理器可以执行如图13详述的操作1304中的文件级过滤。
在操作1306处,处理器检测对权益列1002(或虚拟权益列1202)的更新。例如,经由客户端设备通过提供者用户来填充或更新图10和图11中的权益列1002。处理器检测对虚拟权益列1202的更新还可以包括确定对权益表602的更新包括权益表602中的提供者账户标识符中的一个的变化,以及处理器检测对虚拟权益列1202的更新还可以包括基于权益表602中的提供者账户标识符中的一个来填充虚拟权益列1202。
在操作1308处,处理器通过执行基于版本的复制来执行数据表1004的增量复制。图14示出了根据一个实施方式的来自图13的操作1308中的基于版本的复制的过程的细节。在操作1402处,处理器更新与数据表1004相关联的版本标识符。在操作1404处,处理器在数据表1004中添加反映权益列1002(或虚拟权益列1202)的更新的多个微分区。在操作1406处,处理器使用权益列1002(或虚拟权益列1202)将数据表行复制到与权益表602中的提供者账户标识符相关联的多个提供者账户。
机器架构
图15是机器1500的图形表示,在该机器1500中可以执行使机器1500执行本文中所讨论的方法中的任何一种或更多种的指令1510(例如,软件、程序、应用、小程序、app或其他可执行代码)。例如,指令1510可以使机器1500执行本文中所描述的方法中的任何一种或更多种。指令1510将通用的未编程的机器1500转换成被编程为以所描述的方式执行所描述和所示出的功能的特定机器1500。机器1500可以作为独立设备操作,或者可以耦接(例如,联网)至其他机器。在联网部署中,机器1500可以以服务器-客户端网络环境中的服务器机器或客户端机器的能力进行操作,或者作为对等(或分布式)网络环境中的对等机器进行操作。机器1500可以包括但不限于:服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能电器)、其他智能设备、网络设备、网络路由器、网络交换机、网络桥接器或能够顺序地或以其他方式执行指定要由机器1500采取的动作的指令1510的任何机器。此外,虽然仅示出了单个机器1500,但是术语“机器”应还被视为包括机器的集合,所述机器的集合单独地或共同地执行指令1510以执行本文所讨论的方法中的任何一种或更多种。例如,机器1500可以包括客户端设备102或形成数据库服务管理器108的一部分的多个服务器设备中的任何一个。在一些示例中,机器1500还可以包括客户端和服务器系统两者,其中特定方法或算法的某些操作在服务器端上执行,并且其中特定方法或算法的某些操作在客户端上执行。
机器1500可以包括可以被配置成经由总线1538彼此通信的处理器1504、存储器1506和输入/输出(I/O)部件638。在示例中,处理器1504(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、专用集成电路(ASIC)、射频集成电路(RFIC)、另外的处理器或其任意合适的组合)可以包括例如执行指令1510的至少一个处理器1508。术语“处理器”旨在包括多核处理器,该多核处理器可以包括可以同时执行指令的两个或更多个独立处理器(有时被称为“核”)。尽管图15示出了多个处理器1504,但是机器1500可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器、或者其任意组合。
存储器1506包括主存储器1512、静态存储器1514以及存储单元1516,其均经由总线1538而可由处理器1504访问。主存储器1506、静态存储器1514以及存储单元1516存储实现本文中描述的方法或功能中的任何一种或更多种的指令1510。在由机器1500执行指令1510期间,指令1510还可以全部地或部分地驻留在主存储器1512内、在静态存储器1514内、在机器可读介质1518内、在存储单元1516内、在处理器1504中的至少一个内(例如,在处理器的高速缓冲存储器内)或者在其任何合适的组合内。
I/O部件1502可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量等的各种部件。特定机器中包括的特定I/O部件1502将取决于机器的类型。例如,诸如移动电话的便携式机器可以包括触摸输入设备或其他这样的输入机构,而无头服务器机器将可能不包括这样的触摸输入设备。将理解的是,I/O部件1502可以包括图15中未示出的许多其他部件。在各种示例中,I/O部件1502可以包括用户输出部件1524和用户输入部件1526。用户输出部件1524可以包括视觉部件(例如,诸如等离子显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)的显示器)、声学部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号生成器等。用户输入部件1526可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光学键盘或其他字母数字输入部件)、基于指向的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或另一指向仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸手势的位置和/或力的触摸屏或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
在另一示例中,I/O部件1502可以包括:生物识别部件1528、运动部件1530、环境部件1532、或位置部件1534,以及各种各样的其他部件。例如,生物识别部件1528包括用于检测表达(例如,手表达、面部表达、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,声音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件1530包括加速度传感器部件(例如,加速计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)。
环境部件1532包括例如:一个或更多个摄像装置(具有静止图像/照片和视频能力)、照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声学传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近度传感器部件(例如,检测附近对象的红外传感器)、气体传感器(例如,为了安全而检测危险气体的浓度或者测量大气中的污染物的气体检测传感器)、或者可以提供与周围物理环境对应的指示、测量或信号的其他部件。
位置部件1534包括:定位传感器部件(例如,GPS接收器部件)、海拔传感器部件(例如,检测可以得到海拔的气压的高度计或气压计)、取向传感器部件(例如,磁力计)等。
可以使用各种各样的技术来实现通信。I/O部件1502还包括通信部件1536,通信部件1536可操作以经由相应的耦接或连接将机器1500耦接至网络1520或设备1522。例如,通信部件1536可以包括与网络1520接口的网络接口部件或另外的合适的设备。在另一示例中,通信部件1536可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(NFC)部件、
Figure BDA0004079431370000191
部件(例如,
Figure BDA0004079431370000192
低功耗)、Wi-
Figure BDA0004079431370000193
部件以及经由其他模态提供通信的其他通信部件。设备1522可以是另一机器或各种外围设备中的任何一个外围设备(例如,经由USB耦接的外围设备)。
此外,通信部件1536可以检测标识符或包括可操作以检测标识符的部件。例如,通信部件1536可以包括射频识别(RFID)标签读取器部件、NFC智能标签检测部件、光学读取器部件(例如,用于检测下述的光学传感器:一维条形码,例如,通用产品代码(UPC)条形码;多维条形码,例如,快速响应(QR)代码、Aztec代码、数据矩阵、数据图示符(Dataglyph)、麦克斯码(MaxiCode)、PDF417、超代码、UCC RSS-2D条形码和其他光学代码)、或者声学检测部件(例如,用于识别标记的音频信号的麦克风)。另外,可以经由通信部件1536得到各种信息,例如经由因特网协议(IP)地理定位的位置、经由Wi-
Figure BDA0004079431370000194
信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等。
各种存储器(例如,主存储器1512、静态存储器1514以及处理器1504的存储器)以及存储单元1516可以存储由本文中描述的方法或功能中的任何一个或更多个实现或使用的指令和数据结构(例如,软件)中的一组或更多组。在由处理器1504执行的情况下,这些指令(例如,指令1510)使得各种操作实现所公开的示例。
可以经由网络接口设备(例如,通信部件1536中包括的网络接口部件),使用传输介质并且使用多个公知的传输协议中的任意一种传输协议(例如,超文本传输协议(HTTP)),通过网络1520来发送或接收指令1510。类似地,可以使用传输介质经由耦接(例如,对等耦接)将指令1510发送或接收至设备1522。
软件架构
图16是示出可以安装在本文中描述的设备中的任何一个或更多个上的软件架构1604的框图1600。软件架构1604由诸如包括处理器1620、存储器1626和I/O部件1638的机器1602的硬件来支持。在该示例中,软件架构1604可以被概念化为层的堆栈,其中每个层提供特定功能。软件架构1604包括层诸如操作系统1612、库1610、框架1608和应用1606。在操作上,应用1606通过软件堆栈来调用API调用1650并且响应于API调用1650接收消息1652。
操作系统1612管理硬件资源并且提供公共服务。操作系统1612包括例如:内核1614、服务1616、以及驱动器1622。内核1614充当硬件层与其他软件层之间的抽象层。例如,内核1614提供存储器管理、处理器管理(例如,调度)、部件管理、联网和安全设置以及其他功能。服务1616可以为其他软件层提供其他公共服务。驱动器1622负责控制底层硬件或与底层硬件接口。例如,驱动器1622可以包括显示驱动器、摄像装置驱动器、
Figure BDA0004079431370000201
Figure BDA0004079431370000202
低功耗驱动器、闪存驱动器、串行通信驱动器(例如,USB驱动器)、WI-
Figure BDA0004079431370000203
驱动器、音频驱动器、电源管理驱动器等。
库1610提供由应用1606使用的公共低级基础设施。库1610可以包括系统库1618(例如,C标准库),系统库1618提供诸如存储器分配功能、字符串操纵功能、数学功能等的功能。另外,库1610可以包括API库1624,例如媒体库(例如,用于支持各种媒体格式的呈现和操纵的库,该媒体格式例如运动图像专家组4(MPEG4)、高级视频编码(H.264或AVC)、运动图像专家组层3(MP3)、高级音频编码(AAC)、自适应多速率(AMR)音频编解码器、联合图像专家组(JPEG或JPG)或便携式网络图形(PNG))、图形库(例如,用于在显示器上的图形内容中以二维(2D)和三维(3D)呈现的OpenGL框架)、数据库库(例如,提供各种关系数据库功能的SQLite)、Web库(例如,提供网页浏览功能的WebKit)等。库1610还可以包括各种各样的其他库1628,以向应用1606提供许多其他API。
框架1608提供由应用1606使用的公共高级基础设施。例如,框架1608提供各种图形用户界面(GUI)功能、高级资源管理以及高级位置服务。框架1608可以提供可以由应用1606使用的广范的其他API,其中一些API可以特定于特定的操作系统或平台。
在示例中,应用1606可以包括家庭应用1636、联系人应用1630、浏览器应用1632、书籍阅读器应用1634、位置应用1642、媒体应用1644、消息传送应用1646、游戏应用1648和诸如第三方应用1640的各种各样的其他应用。应用1606是执行程序中限定的功能的程序。可以采用各种编程语言来创建以各种方式构造的一个或更多个应用1606,编程语言例如面向对象的编程语言(例如,Objective-C、Java或C++)或过程编程语言(例如,C语言或汇编语言)。在特定示例中,第三方应用1640(例如,由特定平台的供应商以外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用)可以是在诸如IOSTM、ANDROIDTM
Figure BDA0004079431370000211
Phone的移动操作系统或其他移动操作系统上运行的移动软件。在该示例中,第三方应用1640可以调用由操作系统1612提供的API调用1650以有助于本文中描述的功能。
另外本技术还可以配置如下:
(1)一种实现子表复制的方法,包括:
由处理器检测对权益表的第一更新,所述权益表包括多个权益表行,
所述权益表行与多个客户端标识符、多个消费者账户标识符和多个提供者账户标识符相关联,
所述第一更新与所述权益表行的第一权益表行相关联,所述第一更新包括:所述客户端标识符的第一客户端标识符、所述消费者账户标识符的第一消费者账户标识符;或者所述提供者账户标识符的第一提供者账户标识符;
基于所述第一更新来执行对数据表的过滤,所述数据表包括多个数据表行,所述多个数据表行与所述客户端标识符相关联并且包括数据内容;
检测对所述权益表的第二更新;以及
通过使在下一刷新时针对与所述权益表中的所述提供者账户标识符相关联的多个提供者账户执行完整清单复制,来执行所述数据表的增量复制。
(2).根据(1)所述的方法,其中,执行过滤还包括:
通过下述来执行文件级过滤:
识别所述数据表中的多个微分区中的微分区,所述微分区具有与所述第一客户端标识符相关联的元数据,所述数据表中的所述微分区中的每个微分区包括所述多个数据表行中的一个或更多个;以及
将所识别到的微分区复制到与所述第一提供者账户标识符相关联的第一提供者账户。
(3).根据(2)所述的方法,其中,
所述数据表中的所述多个微分区中的每个微分区都包括元数据,所述元数据包括最小客户端标识符和最大客户端标识符。
(4).根据(3)所述的方法,其中,
在所述第一客户端标识符在由所述最小客户端标识符和所述最大客户端标识符建立的范围内时,所述元数据与所述第一客户端标识符相关联。
(5).根据(1)所述的方法,其中,所述多个提供者账户标识符标识在多个地理区域中的提供者账户。
(6).根据(1)所述的方法,其中,所述权益表还包括:存储所述消费者账户标识符和所述提供者账户标识符的多个权益表列。
(7).根据(1)所述的方法,还包括:
从所述第一提供者账户接收复制请求,所述复制请求包括第一消费者账户标识符。
(8).根据(1)所述的方法,其中,对所述权益表的所述第一更新和所述第二更新包括:向所述权益表添加新的权益表行;删除所述权益表行之一;或者改变包括在所述权益表行之一中的信息。
(9).根据(8)所述的方法,其中,改变包括在所述权益表行之一中的信息包括:改变所述客户端标识符、所述消费者账户标识符或所述提供者账户标识符。
(10).一种实现子表复制的系统,包括:
处理器;和
存储器,在所述存储器中存储有指令,当所述指令由所述处理器执行时,使所述系统执行包括下述的操作:
检测对权益表的第一更新,
所述权益表包括多个权益表行,所述权益表行与多个客户端标识符、多个消费者账户标识符和多个提供者账户标识符相关联,
所述第一更新与所述权益表行的第一权益表行相关联,所述第一更新包括:所述客户端标识符的第一客户端标识符、所述消费者账户标识符的第一消费者账户标识符;或者所述提供者账户标识符的第一提供者账户标识符;
基于所述第一更新来执行对数据表的过滤,所述数据表包括多个数据表行,所述多个数据表行与所述客户端标识符相关联并且包括数据内容;
检测对所述权益表的第二更新;以及
通过使在下一刷新时针对与所述权益表中的所述提供者账户标识符相关联的多个提供者账户执行完整清单复制,来执行所述数据表的增量复制。
(11).根据(10)所述的系统,其中,执行过滤还包括:通过下述来执行文件级过滤:
识别所述数据表中的多个微分区中的微分区,所述微分区具有与所述第一客户端标识符相关联的元数据,所述数据表中的所述微分区中的每个微分区包括所述多个数据表行中的一个或更多个;以及
将所识别到的微分区复制到与所述第一提供者账户标识符相关联的第一提供者账户。
(12).根据(11)所述的系统,其中,
所述数据表中的所述多个微分区中的每个微分区都包括元数据,所述元数据包括最小客户端标识符和最大客户端标识符。
(13).根据(12)所述的系统,其中,
在所述第一客户端标识符在由所述最小客户端标识符和所述最大客户端标识符建立的范围内时,所述元数据与所述第一客户端标识符相关联。
(14).根据(10)所述的系统,其中,所述多个提供者账户标识符标识在多个地理区域中的提供者账户。
(15).根据(10)所述的系统,其中,所述权益表还包括:存储所述消费者账户标识符和所述提供者账户标识符的多个权益表列。
(16).根据(10)所述的系统,还包括:
从所述第一提供者账户接收复制请求,所述复制请求包括第一消费者账户标识符。
(17).根据(10)所述的系统,其中,对所述权益表的所述第一更新和所述第二更新包括:向所述权益表添加新的权益表行;删除所述权益表行之一;或者改变包括在所述权益表行之一中的信息。
(18).根据(17)所述的系统,其中,改变包括在所述权益表行之一中的信息包括:改变所述客户端标识符、所述消费者账户标识符或所述提供者账户标识符。
(19).一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括指令,当所述指令由计算机处理时,所述指令配置所述计算机执行包括下述的操作:
检测对权益表的第一更新,
所述权益表包括多个权益表行,所述权益表行与多个客户端标识符、多个消费者账户标识符和多个提供者账户标识符相关联,
所述第一更新与所述权益表行的第一权益表行相关联,所述第一更新包括:所述客户端标识符的第一客户端标识符、所述消费者账户标识符的第一消费者账户标识符;或者所述提供者账户标识符的第一提供者账户标识符;
基于所述第一更新来执行对数据表的过滤,所述数据表包括多个数据表行,所述多个数据表行与所述客户端标识符相关联并且包括数据内容;
检测对所述权益表的第二更新;以及
通过使在下一刷新时针对与所述权益表中的所述提供者账户标识符相关联的多个提供者账户执行完整清单复制,来执行所述数据表的增量复制。
(20).根据(19)所述的非暂态计算机可读存储介质,其中,执行过滤还包括:执行文件级过滤。
(21).根据(20)所述的非暂态计算机可读存储介质,其中,执行所述文件级过滤还包括:
识别所述数据表中的多个微分区中的微分区,所述微分区具有与所述第一客户端标识符相关联的元数据。
(22).根据(21)所述的非暂态计算机可读存储介质,其中,执行所述文件级过滤还包括:
将所识别到的微分区复制到与所述第一提供者账户标识符相关联的第一提供者账户。
(23).根据(22)所述的非暂态计算机可读存储介质,其中,所述数据表中的所述微分区中的每个微分区包括所述多个数据表行中的一个或更多个。
(24).根据(23)所述的非暂态计算机可读存储介质,其中,
所述数据表中的所述多个微分区中的每个微分区都包括元数据,所述元数据包括最小客户端标识符和最大客户端标识符。
(25).根据(24)所述的非暂态计算机可读存储介质,其中,
在所述第一客户端标识符在由所述最小客户端标识符和所述最大客户端标识符建立的范围内时,所述元数据与所述第一客户端标识符相关联。
(26).根据(19)所述的非暂态计算机可读存储介质,其中,所述多个提供者账户标识符标识在多个地理区域中的提供者账户。
(27).根据(19)所述的非暂态计算机可读存储介质,其中,所述权益表还包括:存储所述消费者账户标识符和所述提供者账户标识符的多个权益表列。
(28).根据(19)所述的非暂态计算机可读存储介质,其中,所述操作还包括:
从所述第一提供者账户接收复制请求,所述复制请求包括第一消费者账户标识符。
(29).根据(19)所述的非暂态计算机可读存储介质,其中,对所述权益表的所述第一更新和所述第二更新包括:向所述权益表添加新的权益表行;删除所述权益表行之一;或者改变包括在所述权益表行之一中的信息。
(30).根据(29)所述的非暂态计算机可读存储介质,其中,改变包括在所述权益表行之一中的信息包括:改变所述客户端标识符、所述消费者账户标识符或所述提供者账户标识符。
术语表
“载波信号”是指能够存储、编码或携载由机器执行的指令的任何无形介质并且包括数字或模拟通信信号或其他无形介质以有助于这样的指令的通信。指令可以经由网络接口设备使用传输介质在网络上发送或接收。
“客户端设备”是指与通信网络接口以从一个或更多个服务器系统或其他客户端设备获得资源的任何机器。客户端设备可以是但不限于移动电话、桌上型计算机、膝上型计算机、便携式数字助理(PDA)、智能电话、平板计算机、超级本、上网本、多个膝上型计算机、多处理器系统、基于微处理器或可编程消费电子产品、游戏控制台、机顶盒或用户可以用于访问网络的任何其他通信设备。
“通信网络”是指网络的一个或更多个部分,该网络可以是自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、Wi-
Figure BDA0004079431370000261
网络、另外类型的网络或者两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线网络或蜂窝网络,并且耦接可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现各种类型的数据传输技术中的任何数据传输技术,例如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线电服务(GPRS)技术、GSM演进的增强数据速率(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动通讯系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准、由各种标准设置组织定义的其他数据传输技术、其他长距离协议或其他数据传输技术。
“部件”是指具有由功能或子例程调用、分支点、API或被提供用于对特定处理或控制功能进行分区或模块化的其他技术定义的边界的设备、物理实体或逻辑。部件可以经由它们的接口与其他部件组合以执行机器处理。部件可以是被设计用于与其他部件一起使用的封装功能硬件单元以及通常执行相关功能的特定功能的程序的一部分。部件可以构成软件部件(例如,体现在机器可读介质上的代码)或硬件部件。“硬件部件”是能够执行某些操作的有形单元,并且可以以某种物理方式来配置或布置。在各种示例实施方式中,可以通过软件(例如,应用或应用部分)将一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或者计算机系统的一个或更多个硬件部件(例如,处理器或处理器组)配置为进行操作以执行如本文中描述的某些操作的硬件部件。也可以机械地、电子地或其任何合适的组合来实现硬件部件。例如,硬件部件可以包括被永久地配置成执行某些操作的专用电路系统或逻辑。硬件部件可以是专用处理器,诸如现场可编程门阵列(FPGA)或专用集成电路(ASIC)。硬件部件还可以包括通过软件被临时配置成执行某些操作的可编程逻辑或电路系统。例如,硬件部件可以包括由通用处理器或其他可编程处理器执行的软件。一旦通过这样的软件被配置,则硬件部件成为被唯一地定制成执行配置的功能的特定的机器(或机器的特定部件),并且不再是通用处理器。将理解的是,机械地、在专用和永久配置的电路系统中、或在临时配置的电路系统(例如,由软件配置)中实现硬件部件的决定可以由成本和时间考虑来驱动。相应地,短语“硬件部件”(或“硬件实现的部件”)应当被理解成包含有形实体,即为被物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)成以某种方式操作或者执行本文中所描述的某些操作的实体。考虑硬件部件被临时配置(例如,被编程)的实施方式,硬件部件中的每一个无需在任一时刻处均被配置或实例化。例如,在硬件部件包括通过软件配置成专用处理器的通用处理器的情况下,该通用处理器可以在不同时间处分别被配置为不同的专用处理器(例如,包括不同的硬件部件)。软件相应地配置一个或多个特定处理器以例如在一个时刻处构成特定硬件部件并且在不同的时刻处构成不同的硬件部件。硬件部件可以向其他硬件部件提供信息以及从其他硬件部件接收信息。相应地,所描述的硬件部件可以被认为是通信上耦接的。在同时存在多个硬件部件的情况下,可以通过在两个或更多个硬件部件之间或者在两个或更多个硬件部件之中的信号传输(例如,通过适当的电路和总线)来实现通信。在其中多个硬件部件在不同时间处被配置或实例化的实施方式中,可以例如通过将信息存储在多个硬件部件可以访问的存储器结构中并且在该存储器结构中检索信息来实现这样的硬件部件之间的通信。例如,一个硬件部件可以执行操作,并且将该操作的输出存储在通信上耦接的存储器设备中。然后,另外的硬件部件可以在随后的时间处访问存储器设备,以检索和处理所存储的输出。硬件部件还可以发起与输入或输出设备的通信,并且可以对资源进行操作(例如,信息的收集)。本文中描述的示例方法的各种操作可以至少部分地由被临时配置(例如,由软件)或永久配置成以执行相关操作的一个或更多个处理器来执行。无论是被临时地配置还是永久地配置,这样的处理器可以构成进行操作以执行本文中描述的一个或更多个操作或功能的处理器实现的部件。如本文中使用的,“处理器实现的部件”是指使用一个或更多个处理器实现的硬件部件。类似地,本文中描述的方法可以至少部分地被处理器实现,其中特定的一个或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或更多个处理器或者处理器实现的部件来执行。此外,一个或更多个处理器还可以进行操作以支持“云计算”环境中的相关操作的执行或操作为“软件即服务”(SaaS)。例如,操作中的至少一些操作可以由一组计算机(作为包括处理器的机器的示例)执行,其中这些操作能够经由网络(例如,因特网)并且经由一个或更多个适当的接口(例如,API)进行访问。某些操作的执行可以分布在处理器之间,不仅驻留在单个机器内,而且跨多个机器部署。在一些示例实施方式中,处理器或处理器实现的部件可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器群内)。在其他示例实施方式中,处理器或处理器实现的部件可以跨多个地理位置分布。
“计算机可读存储介质”是指机器存储介质和传输介质两者。因此,术语包括存储设备/介质和载波/调制数据信号两者。术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意指相同的事物并且可以在本公开内容中互换地使用。
“机器存储介质”是指存储可执行指令、例程和数据的单个或多个存储设备和介质(例如,集中式或分布式数据库,以及相关联的高速缓存和服务器)。因此,术语应被视为包括但不限于固态存储器以及光学和磁性介质,包括处理器内部或外部的存储器。机器存储介质、计算机存储介质和设备存储介质的具体示例包括:非易失性存储器,包括例如半导体存储器设备,例如可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、FPGA和闪存设备;磁盘,诸如内部硬盘和可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。术语“机器存储介质”、“设备存储介质”、“计算机存储介质”意指相同的事物,并且在本公开内容中可以互换地使用。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”明确地排除了载波、调制数据信号和其他这样的介质,载波、调制数据信号和其他这样的介质中的至少一些被涵盖在术语“信号介质”中。
“非暂态计算机可读存储介质”是指能够存储、编码或携载由机器执行的指令的有形介质。
“信号介质”是指能够存储、编码或携载由机器执行的指令的任何无形介质,并且“信号介质”包括数字或模拟通信信号或其他无形介质以有助于软件或数据的通信。术语“信号介质”应当被视为包括任何形式的调制数据信号、载波等。术语“调制数据信号”意指使其特性中的一个或更多个特性以对信号中的信息进行编码的方式来设置或改变的信号。术语“传输介质”和“信号介质”意指相同的事物并且可以在本公开内容中互换地使用。

Claims (30)

1.一种实现子表复制的方法,包括:
由处理器检测对权益表的更新,
所述权益表包括多个权益表行,所述权益表行与多个客户端标识符、多个消费者账户标识符和多个提供者账户标识符相关联,
对所述权益表的所述更新与所述权益表行的第一权益表行相关联,对所述权益表的所述更新包括所述客户端标识符的第一客户端标识符、所述消费者账户标识符的第一消费者账户标识符、或所述提供者账户标识符的第一提供者账户标识符;
基于对所述权益表的所述更新来执行对数据表的过滤,所述数据表包括多个数据表行,所述多个数据表行与所述客户端标识符相关联并且包括权益列和数据内容,所述权益列包括所述提供者账户标识符;
检测对所述权益列的更新;以及
通过使得基于版本的复制被执行来执行所述数据表的增量复制。
2.根据权利要求1所述的方法,其中,执行增量复制还包括:
更新与所述数据表相关联的版本标识符,
在所述数据表中添加反映对所述权益列的更新的多个微分区,以及
使用所述权益列将所述数据表行复制到与所述权益表中的所述提供者账户标识符相关联的多个提供者账户。
3.根据权利要求1所述的方法,其中,所述权益列由提供者用户经由客户端设备来填充或更新。
4.根据权利要求1所述的方法,其中,所述权益列包括虚拟权益列。
5.根据权利要求4所述的方法,其中,检测对所述权益列的所述更新还包括:
确定对所述权益表的所述更新包括所述权益表中的所述提供者账户标识符中的一个提供者账户标识符的改变;以及
基于所述权益表中的所述提供者账户标识符中的所述一个提供者账户标识符的所述改变来填充所述虚拟权益列。
6.根据权利要求2所述的方法,其中,执行过滤还包括:
通过下述操作来执行文件级过滤:
从所述数据表中的所述多个微分区中识别具有与所述第一客户端标识符相关联的元数据的微分区,所述数据表中的所述多个微分区中的每个微分区包括所述多个数据表行中的一个或更多个,以及
将所识别到的微分区复制到与所述第一提供者账户标识符相关联的第一提供者账户。
7.根据权利要求6所述的方法,其中,所述数据表中的所述多个微分区中的每个微分区包括元数据,该元数据包括最小客户端标识符和最大客户端标识符。
8.根据权利要求7所述的方法,其中,在所述第一客户端标识符在由所述最小客户端标识符和所述最大客户端标识符建立的范围内时,所述元数据与所述第一客户端标识符相关联。
9.根据权利要求2所述的方法,其中,所述多个提供者账户标识符标识在多个地理区域中的提供者账户。
10.根据权利要求2所述的方法,其中,所述权益表还包括存储所述消费者账户标识符和所述提供者账户标识符的多个权益表列。
11.根据权利要求1所述的方法,还包括:
从所述第一提供者账户接收复制请求,所述复制请求包括第一消费者账户标识符。
12.根据权利要求1所述的方法,其中,对所述权益表的所述更新包括向所述权益表添加新的权益表行,删除所述权益表行之一,或者更改所述权益表行之一中包括的信息。
13.根据权利要求12所述的方法,其中,更改所述权益表行之一中包括的信息包括更改所述客户端标识符、所述消费者账户标识符或所述提供者账户标识符。
14.一种实现子表复制的系统,包括:
处理器;以及
存储器,在所述存储器中存储有指令,所述指令在由所述处理器执行时,使所述系统执行包括下述的操作:
检测对权益表的更新,
所述权益表包括多个权益表行,所述权益表行与多个客户端标识符、多个消费者账户标识符和多个提供者账户标识符相关联,
对所述权益表的所述更新与所述权益表行的第一权益表行相关联,对所述权益表的所述更新包括所述客户端标识符的第一客户端标识符、所述消费者账户标识符的第一消费者账户标识符、或所述提供者账户标识符的第一提供者账户标识符;
基于对所述权益表的所述更新来执行对数据表的过滤,所述数据表包括多个数据表行,所述多个数据表行与所述客户端标识符相关联并且包括权益列和数据内容,所述权益列包括所述提供者账户标识符;
检测对所述权益列的更新;以及
通过使得基于版本的复制被执行来执行所述数据表的增量复制。
15.根据权利要求14所述的系统,其中,执行增量复制还包括:
更新与所述数据表相关联的版本标识符,
在所述数据表中添加反映对所述权益列的更新的多个微分区,以及
使用所述权益列将所述数据表行复制到与所述权益表中的所述提供者账户标识符相关联的多个提供者账户。
16.根据权利要求14所述的系统,其中,所述权益列由提供者用户经由客户端设备来填充或更新。
17.根据权利要求14所述的系统,其中,所述权益列包括虚拟权益列,并且其中,检测对所述权益列的所述更新还包括:
确定对所述权益表的所述更新包括所述权益表中的所述提供者账户标识符中的一个提供者账户标识符的改变;以及
基于所述权益表中的所述提供者账户标识符中的所述一个提供者账户标识符的所述改变来填充所述虚拟权益列。
18.根据权利要求15所述的系统,其中,执行过滤还包括:
通过下述操作来执行文件级过滤:
从所述数据表中的所述多个微分区中识别具有与所述第一客户端标识符相关联的元数据的微分区,所述数据表中的所述多个微分区中的每个微分区包括所述多个数据表行中的一个或更多个,以及
将所识别到的微分区复制到与所述第一提供者账户标识符相关联的第一提供者账户。
19.根据权利要求18所述的系统,其中,
所述数据表中的所述多个微分区中的每个微分区包括元数据,该元数据包括最小客户端标识符和最大客户端标识符。
20.根据权利要求19所述的系统,其中,
在所述第一客户端标识符在由所述最小客户端标识符和所述最大客户端标识符建立的范围内时,所述元数据与所述第一客户端标识符相关联。
21.根据权利要求14所述的系统,其中,对所述权益表的所述更新包括向所述权益表添加新的权益表行,删除所述权益表行之一,或者更改所述权益表行之一中包括的信息。
22.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括指令,所述指令在由计算机处理时,配置所述计算机执行包括下述的操作:
检测对权益表的更新,
所述权益表包括多个权益表行,所述权益表行与多个客户端标识符、多个消费者账户标识符和多个提供者账户标识符相关联,
对所述权益表的所述更新与所述权益表行的第一权益表行相关联,对所述权益表的所述更新包括所述客户端标识符的第一客户端标识符、所述消费者账户标识符的第一消费者账户标识符、或所述提供者账户标识符的第一提供者账户标识符;
基于对所述权益表的所述更新来执行对数据表的过滤,所述数据表包括多个数据表行,所述多个数据表行与所述客户端标识符相关联并且包括权益列和数据内容,所述权益列包括所述提供者账户标识符;
检测对所述权益列的更新;以及
通过使得基于版本的复制被执行来执行所述数据表的增量复制。
23.根据权利要求22所述的非暂态计算机可读存储介质,其中,执行增量复制还包括:
更新与所述数据表相关联的版本标识符,
在所述数据表中添加反映对所述权益列的所述更新的多个微分区,以及
使用所述权益列将所述数据表行复制到与所述权益表中的所述提供者账户标识符相关联的多个提供者账户。
24.根据权利要求22所述的非暂态计算机可读存储介质,其中,所述权益列由提供者用户经由客户端设备来填充或更新。
25.根据权利要求22所述的非暂态计算机可读存储介质,其中,所述权益列包括虚拟权益列。
26.根据权利要求25所述的非暂态计算机可读存储介质,其中,检测对所述权益列的所述更新还包括:
确定对所述权益表的所述更新包括所述权益表中的所述提供者账户标识符中的一个提供者账户标识符的改变;以及
基于所述权益表中的所述提供者账户标识符中的所述一个提供者账户标识符的所述改变来填充所述虚拟权益列。
27.根据权利要求23所述的非暂态计算机可读存储介质,其中,执行过滤还包括:
通过下述操作来执行文件级过滤:
从所述数据表中的所述多个微分区中识别微分区,所述微分区具有与所述第一客户端标识符相关联的元数据,所述数据表中的所述多个微分区中的每个微分区包括所述多个数据表行中的一个或更多个,以及
将所识别到的微分区复制到与所述第一提供者账户标识符相关联的第一提供者账户。
28.根据权利要求27所述的非暂态计算机可读存储介质,其中,
所述数据表中的所述多个微分区中的每个微分区包括元数据,所述元数据包括最小客户端标识符和最大客户端标识符。
29.根据权利要求28所述的非暂态计算机可读存储介质,其中,
在所述第一客户端标识符在由所述最小客户端标识符和所述最大客户端标识符建立的范围内时,所述元数据与所述第一客户端标识符相关联。
30.根据权利要求22所述的非暂态计算机可读存储介质,其中,对所述权益表的所述更新包括向所述权益表添加新的权益表行,删除所述权益表行之一,或者更改所述权益表行之一中包括的信息。
CN202310119068.0A 2020-05-29 2021-04-28 实现子表复制的方法和系统以及计算机可读存储介质 Pending CN116089432A (zh)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US202063032163P 2020-05-29 2020-05-29
US63/032,163 2020-05-29
US16/944,988 2020-07-31
US16/944,983 2020-07-31
US16/944,988 US11055315B1 (en) 2020-05-29 2020-07-31 System for implementing sub-database replication
US16/944,983 US10997210B1 (en) 2020-05-29 2020-07-31 System for implementing sub-database replication
US17/226,141 2021-04-09
US17/226,141 US11372891B2 (en) 2020-05-29 2021-04-09 System for implementing sub-database replication
CN202110467165.XA CN113806358B (zh) 2020-05-29 2021-04-28 实现子表复制的方法和系统以及计算机可读存储介质

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202110467165.XA Division CN113806358B (zh) 2020-05-29 2021-04-28 实现子表复制的方法和系统以及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN116089432A true CN116089432A (zh) 2023-05-09

Family

ID=75746328

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310119068.0A Pending CN116089432A (zh) 2020-05-29 2021-04-28 实现子表复制的方法和系统以及计算机可读存储介质
CN202110467165.XA Active CN113806358B (zh) 2020-05-29 2021-04-28 实现子表复制的方法和系统以及计算机可读存储介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110467165.XA Active CN113806358B (zh) 2020-05-29 2021-04-28 实现子表复制的方法和系统以及计算机可读存储介质

Country Status (3)

Country Link
US (2) US11640412B2 (zh)
EP (1) EP3916578A1 (zh)
CN (2) CN116089432A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116089432A (zh) 2020-05-29 2023-05-09 斯诺弗雷克公司 实现子表复制的方法和系统以及计算机可读存储介质
US11055315B1 (en) 2020-05-29 2021-07-06 Snowflake Inc. System for implementing sub-database replication

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6882993B1 (en) * 2002-01-28 2005-04-19 Oracle International Corporation Incremental refresh of materialized views with joins and aggregates after arbitrary DML operations to multiple tables
US8224697B2 (en) 2004-06-25 2012-07-17 Sap Aktiengesellschaft Managing customer entitlements to rewards from multiple entitlement programs
US8676845B2 (en) * 2006-08-22 2014-03-18 International Business Machines Corporation Database entitlement
US8769055B2 (en) 2009-04-24 2014-07-01 Microsoft Corporation Distributed backup and versioning
WO2012071574A2 (en) * 2010-11-24 2012-05-31 Visa International Service Association Unified online content manager apparatuses, methods, and systems
US8918362B2 (en) * 2011-05-23 2014-12-23 Microsoft Corporation Replication processes in a distributed storage environment
GB2507094A (en) 2012-10-19 2014-04-23 Ibm Selecting and loading a subset of data from a database backup
US20150142745A1 (en) * 2013-11-18 2015-05-21 Actifio, Inc. Computerized methods and apparatus for incremental database backup using change tracking
US10552453B2 (en) * 2015-11-25 2020-02-04 International Business Machines Corporation Determining data replication cost for cloud based application
US10262002B2 (en) * 2016-08-11 2019-04-16 International Business Machines Corporation Consistent execution of partial queries in hybrid DBMS
US10817540B2 (en) * 2016-09-02 2020-10-27 Snowflake Inc. Incremental clustering maintenance of a table
GB201615747D0 (en) * 2016-09-15 2016-11-02 Gb Gas Holdings Ltd System for data management in a large scale data repository
US10671642B2 (en) * 2016-11-11 2020-06-02 International Business Machines Corporation Copying data changes to a target database
US10902015B2 (en) * 2017-01-19 2021-01-26 International Business Machines Corporation Parallel replication of data table partition
CN109144994B (zh) * 2017-06-19 2022-04-29 华为技术有限公司 索引更新方法、系统及相关装置
US10860612B2 (en) * 2018-04-19 2020-12-08 Sap Se Parallel replication across formats
US11055315B1 (en) 2020-05-29 2021-07-06 Snowflake Inc. System for implementing sub-database replication
CN116089432A (zh) 2020-05-29 2023-05-09 斯诺弗雷克公司 实现子表复制的方法和系统以及计算机可读存储介质
DE202021102320U1 (de) 2021-04-29 2021-09-13 Snowflake Inc. System zum Implementieren einer Unterdatenbankreplikation

Also Published As

Publication number Publication date
CN113806358A (zh) 2021-12-17
US20230244695A1 (en) 2023-08-03
EP3916578A1 (en) 2021-12-01
US11640412B2 (en) 2023-05-02
CN113806358B (zh) 2023-02-17
US20220292115A1 (en) 2022-09-15

Similar Documents

Publication Publication Date Title
JP7009455B2 (ja) 分散イベント処理システムにおけるデータシリアライズ
US10803048B2 (en) Change data capture processing and analysis
US11841877B2 (en) System for regional database replication
CN109964216A (zh) 识别未知数据对象
US9817726B2 (en) Delta replication of index fragments to enhance disaster recovery
US20230244695A1 (en) Materialized view sub-database replication
US10635659B2 (en) Mobile application bundled with metadata database
US11429618B2 (en) Surfacing augmented reality objects
US20170161352A1 (en) Scalable snapshot isolation on non-transactional nosql
US11886441B2 (en) Tag-based data governance auditing system
CN117678196A (zh) 隐私安全联合标识协议
US11550949B2 (en) Secure exchange of password presence data
DE202021102320U1 (de) System zum Implementieren einer Unterdatenbankreplikation
US11500898B2 (en) Intelligent master data replication
US20240037114A1 (en) Distributed data processing using embedded hermetic and deterministic language
KR20180090617A (ko) 전자 장치 및 전자 장치에서 데이터 처리 방법

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