CN105144159A - Hive表链接 - Google Patents

Hive表链接 Download PDF

Info

Publication number
CN105144159A
CN105144159A CN201480021060.XA CN201480021060A CN105144159A CN 105144159 A CN105144159 A CN 105144159A CN 201480021060 A CN201480021060 A CN 201480021060A CN 105144159 A CN105144159 A CN 105144159A
Authority
CN
China
Prior art keywords
data
tenant
data warehouse
warehouse
database
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
Application number
CN201480021060.XA
Other languages
English (en)
Other versions
CN105144159B (zh
Inventor
纳米特·贾殷
拉戈特姆·萨蒂亚纳拉亚纳·穆尔蒂
桑巴维·穆徒克里希南
布尚·曼达尼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Inc
Original Assignee
Facebook Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Facebook Inc filed Critical Facebook Inc
Publication of CN105144159A publication Critical patent/CN105144159A/zh
Application granted granted Critical
Publication of CN105144159B publication Critical patent/CN105144159B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • 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
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/972Access to data in other repository systems, e.g. legacy data or dynamic Web page generation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了具有表链接能力的用于虚拟数据仓库的系统和方法。具体地,一些实施方式包括在运行Apache?Hive的数据中心的顶部建立的多个虚拟数据仓库。每个虚拟数据仓库可以被建模为数据库并且以数据库表格的形式管理数据。虚拟数据仓库可包括链接,其通过引用从其他虚拟数据仓库输入表格。每个链接可包含用于以源表的日期的表格分区的分区元数据和保持元数据以声明所需要的保持时间周期用于源表的分区。该链接可以是动态的并且当对应的源表接收新的分区或者删除分区时可以更新。当虚拟数据仓库移动至另一个数据中心时,该系统可保持必需的表格分区以基于链接的保持元数据和分区元数据保持在当前数据中心上。

Description

HIVE表链接
相关申请的交叉引用
本申请要求于2013年2月13日提交的美国专利申请号13/766,512的优先权,通过引用将其全部内容结合于此。
技术领域
本发明的各种实施方式通常涉及多租户数据仓库基础设施。更具体地,本发明的各种实施方式涉及使用多租户数据仓库内的表链接来减少数据复制量的系统和方法。
背景技术
最广义的数据仓库是包含大量当前和历史数据存储的数据库。在一些情况下,该数据可从多个数据源(例如,营销数据库、销售数据库、用户数据库以及用于保持最新数据的其他交易数据库)集成。通常,在数据仓库内组织并且存储数据。例如,在一些情况下,数据可存储为一系列快照。在其他情况下,可以按照特定的时间间隔(例如,三个月、六个月、或者更长时间)聚集数据和/或聚集至特定的主题区域中。
当从多个数据源集成数据时,数据仓库可提供一致的代码、描述、字段和标记。例如,假设多个数据源具有用于产品的不同的识别机制,数据仓库可为提供用于该产品的统一识别机制。在数据仓库中存储的数据也可使用诸如在线分析处理(OLAP)和数据挖掘工具进行分析。来自这些分析的结果可用于各种商业目的,诸如,生成各种分析以及创建报告。
随着时间,数据仓库可能开始空间不足。一个解决方案是将数据仓库分成更小的仓库。可以地理分布这些更小的仓库。在一些情况下,每一个更小的数据仓库可设计用于特定的用户群(例如,团队)或者可承载与特定主题有关的信息。然而,一些用户群或者特定主题可能需要访问同一数据。仅仅将同一数据复制给每一个更小的仓库是低效的。另一个解决容量问题的方案是从数据仓库中删除数据。然而,这个数据可能在将来的数据挖掘或者分析行为是有价值。因此,需要更高效的技术用于管理这些数据仓库内的数据。
发明内容
描述了用于提供数据仓库内的表链接以减少数据复制量的系统和方法。根据各种实施方式,可以从分配给多租户数据仓库内的第一虚拟数据仓库(例如,数据库)的租户接收数据查询。基于该数据查询,可以生成信息集,表明该租户被授权在多租户数据仓库内访问的数据。然后,租户可以声明租户可访问并且期望利用的数据子集。位于第一虚拟数据仓库外的、与声明相关的任何数据可以使用识别用于检索该数据的参数集(例如,数据位置、时间范围等)链接来输入。此外,在一些实施方式中,该链接可仅提供对于第一虚拟数据仓库以外的数据的只读访问。
在一个或多个实施方式中,可能有多个物理数据中心并且第一虚拟数据仓库可以是第一物理数据中心的一部分。可以确定由租户声明的数据的子集是否在第二物理数据中心中(例如,在虚拟数据仓库中)。如果该数据位于第二物理数据中心处,则在第一物理数据中心中可以缓存来自第二物理数据中心的数据。一些实施方式监测对于第一虚拟数据仓库外部的数据的利用或者访问。可以确定数据的利用是否仅包括来自比链接所提供的访问的时间范围更小的时间范围的数据。当检测到此时,可以更新链接中的参数集,使得链接仅检索来自该更小的时间范围的数据。
本发明的实施方式也包括计算机可读存储介质,该计算机可读存储介质包含使一个或多个处理器执行该方法、该方法的变型以及本文中描述的其他操作的指令集。
尽管公开了多个实施方式,但是从下面示出并描述了本发明的示例性实施方式的具体实施方式中,仍有本发明的其他实施方式对于本领域技术人员来说将变得显而易见。如应当认识到,在不完全偏离本发明的范围的情况下,本发明能够在各个方面进行修改。因此,附图和具体实施方式本质上被认为是示例性的而非限制性的。
根据本发明的实施方式被具体公开在涉及方法、系统和存储介质的所附权利要求中,其中,在一个权利要求类型(例如,方法)中提到的任何特征也可在另一个权利要求类型(例如,存储介质)中要求保护。
在根据本发明的实施方式中,一种方法,包括:
从分配至多租户数据仓库内的第一虚拟数据仓库的租户接收数据查询;
基于该数据查询生成信息集,指明该租户被授权访问多租户数据仓库内的数据;
从该租户接收利用如信息集所指明的该租户可以访问的数据子集的声明;并且
使用识别用于检索在第一虚拟数据仓库外部的数据的参数集链接来输入该数据。
第一虚拟数据仓库可以是以下数据库,其是第一物理数据中心的一部分。
在本发明的实施方式中,该方法进一步可包括:
确定数据子集是否在第二物理数据中心;并且
在第一物理数据中心中缓存来自第二物理数据中心的数据子集。
第一虚拟数据仓库可以是作为多租户数据仓库的一部分的多个数据库之一,并且该方法可进一步包括将一个或多个租户分配至第一数据仓库中的多个数据库中的每一个。
用于检索数据的参数可包括要检索的数据的时间范围。
在本发明的实施方式中,该方法可进一步包括:
监测在第一虚拟数据仓库外部的数据的利用;
确定利用的数据仅包括来自更小时间范围的数据;并且
更新参数集,使得该链接仅检索来自该更小时间范围的数据。
该链接可提供对于第一虚拟数据仓库外部的数据的只读访问。
在本发明的又一实施方式中,一种系统,包括:
物理数据仓库,包括分配给第一租户的第一数据库以及分配给第二租户的第二数据库,其中,第一租户和第二租户允许完全地访问分别存储在第一数据库和第二数据库内的数据;
数据发现模块,从第一租户接收搜索查询并且通过访问与第一数据库和第二数据库相关的索引来搜索物理数据仓库;
链接模块,生成对于物理数据仓库内的第二数据库中的数据子集的链接,以便允许第一租户具有读取访问该数据子集而无需将该数据子集复制到第一数据库。
在本发明的实施方式中,该系统可进一步包括访问控制模块,该访问控制模块可通信地耦接至数据发现模块并且被配置为确定第一租户被授权访问第二数据库上的哪个数据。
在本发明的实施方式中,该系统可进一步包括租户分配模块,该租户分配模块将第一租户分配至第一数据库并且将第二租户分配至第二数据库。
在本发明的实施方式中,该系统可进一步包括保持管理模块,该保持管理模块利用保持策略创建第三数据库并且创建服从于该保持策略的、对于物理数据仓库内的数据的第二链接。
在本发明的实施方式中,该系统可进一步包括复制管理模块,该复制管理模块确定第一租户请求的来自第二物理数据仓库的数据,并且其中,复制管理模块被配置为将所请求的来自第二物理数据仓库的数据复制到物理数据仓库。
物理数据仓库可以是第一物理数据仓库并且该系统可进一步包括第二物理数据仓库以及传递控制模块,该传递控制模块管理第二数据库到第二物理数据仓库的传递。
在本发明的实施方式中,该系统可进一步包括传播模块,以更新由链接模块生成的链接。
在也可要求保护的本发明的又一实施方式中,一种计算机实现的方法,包括:
通过创建各自被分配给租户的多个虚拟数据仓库来生成多租户数据仓库,其中,多个虚拟数据仓库的第一虚拟数据仓库包括对存储在多个虚拟数据仓库的第二虚拟数据仓库内的数据表的链接,以便允许租户访问该数据表而无需将该数据表从第二虚拟数据仓库复制到第一虚拟数据仓库;
针对会要求链接更新的变化,监测多租户数据仓库内的变化;并且
根据在多租户数据仓库内检测到的变化来更新链接。
多租户数据仓库内的变化可包括将多个虚拟数据仓库之一传递至第二多租户数据仓库。
至数据表的链接可包括时间帧限制。
在本发明的实施方式中,该方法可进一步包括:
监测对于数据表的访问以确定实际使用的数据表的量;并且
更新对于数据表的链接以包括对应于实际使用的数据表的量的第二时间帧限制。
多租户数据仓库内的变化可包括对于数据表的访问授权的变化并且更新该链接包括删除该链接。
多个虚拟数据仓库可包括经索引的一个或多个数据库,以允许来自多租户数据仓库的租户对于数据的查询。
在本发明的又一实施方式中,一种或多种计算机可读非易失性存储介质,其体现为软件,当软件被执行时可操作为执行根据本发明或者上述任一个实施方式的方法。
在也可以要求保护的本发明的又一实施方式中,一种系统,包括:一个或多个处理器;以及耦接至处理器的存储器,该存储器包括由处理器可执行的指令,当处理器执行指令时可操作为执行根据本发明或者上述任一个实施方式的方法。
附图说明
将通过使用附图描述和说明本发明的实施方式,其中:
图1示出了在其中可利用本发明的一些实施方式的多租户数据仓库环境的实例;
图2示出了根据本发明的一个或多个实施方式可使用的部件的框图;
图3是根据本发明的各种实施方式生成表链接的一组操作的流程图;
图4是根据本发明的一些实施方式的用于在数据仓库环境内检索数据的一组操作的流程图;
图5是根据本发明的各种实施方式的用于传播对于多租户数据仓库内的表链接的更新的一组操作的流程图;
图6是本发明的一些实施方式可利用的社交网络系统的系统架构的框图;以及
图7示出了本发明的一些实施方式可利用的计算机系统的实例。
不必要按照比例绘出附图。例如,为了帮助提高对本发明的实施方式的了解可扩大或者缩小附图中一些元件的尺寸。类似地,为了本发明的一些实施方式的讨论目的,一些部件和/或操作可分为不同块或者合并为单块。此外,尽管本发明可被修改为各种变形和替换方式,已经在附图中通过举例的方式示出了具体实施方式并且以下进行了详细描述。然而,并不旨在将本发明局限于所描述的具体实施方式。相反,本发明旨在覆盖落入由所附权利要求所定义的本发明范围内的所有修改、等效物和替换。
具体实施方式
本发明的各种实施方式总体上涉及多租户数据仓库基础设施。更具体地,本发明的各种实施方式涉及用于在多租户数据仓库内使用表链接来减少数据复制量的系统和方法。传统地,由ApacheHive提供的基础设施允许单个共享仓库的设置,并且如果需要,授权模式允许在该仓库内的访问控制。然而,(当达到数据中心容量极限时)超出单个仓库的增长,或者容量使用和分配的分离,需要创建多个仓库,具有映射到其自身的Hive元数据存储的每个仓库。物理仓库可以是单个Hive元数据存储,Hadoop集群映射至此,并且数据在其中。
在具有需要仓库的大量团队的组织中,需要能够:1)使物理集群的共享最大化以保持较低的运行成本;并且2)清楚识别并且追踪团队在数据仓库中的容量使用。传统的解决方案中的一个是使用单个共享仓库。然而,使用单个仓库具有以下缺点:1)当该仓库达到数据中心容量极限时,其很难识别可以移出的独立块;并且2)容量追踪和管理成为问题。
可替换的解决方案是每个团体创建新的物理仓库(1:1映射)。然而,这不是可行的解决方案,因为物理资源并未跨团队共享并且运行成本很高。进一步地,数据可能不是能够干净地分区并且会在多物理仓库中的复制中结束。此外,从操作的角度来说,一些公司可能需要的物理仓库的数量可能是不切实际的。
相反,本发明的各种实施方式提供了一种系统,其包括建立在数据中心的顶部的多个虚拟数据仓库。例如,数据中心可运行ApacheHive。每个虚拟数据仓库可以模型化为数据库并且以数据库表格的形式管理数据。虚拟数据仓库可包括通过引用从其他虚拟数据仓库输入表格的链接。每个链接可包含按源表的日期用于表格分区的分区元数据。该链接也可包括保持元数据以声明针对源表分区所需要的保持时间周期。该链接可以是动态的并且当对应的源表接收新的分区或者删除分区时可以更新。当虚拟数据仓库移动至另一个数据中心时,该系统可保持必需的表格分区以基于分区元数据和链接的保持元数据保持在当前数据中心上。
尽管为方便起见,参考使用ApacheHive基础设施的数据仓库描述了本发明的实施方式,但是本发明的实施方式同样适用于数据仓库基础设施。此外,在此介绍的技术可体现为特殊目的的硬件(例如,电路),体现为使用软件和/或固件适当编程的可编程电路,或者体现为特殊目的和可编程电路的组合。因此,实施方式可包括在其上存储了指令的机器可读介质,该指令可用于编程计算机(或者其他电子装置)以执行处理。机器可读介质可包括但不限于软盘、光盘、光盘只读存储器(CD-ROM)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、磁卡或者光卡、闪存、或者适用于存储电子指令的其他类型的介质/机器可读介质。
术语
以下给出了贯穿本申请使用的术语、缩略词和短语的简要定义。术语“联系”或者“耦接”以及相关术语用于操作意义并且不必局限于直接物理联系或者耦接。因此,例如,两个装置可直接耦接,或者经由一个或多个中间信道或装置耦接。如另一实例,装置可以按照信息可在其间传递的方式耦接,而不必在彼此之间共享任何物理联系。基于本文中提供的公开内容,本领域普通技术人员应当认识到根据上述定义存在各种联系或者耦接的方式。
短语“在一些实施方式中”、“根据各种实施方式”、“在示出的实施方式中”、“在其他实施方式中”等通常指的是具体性质、结构或者特征,以下短语被包括在本发明的至少一个实施方式中,并且可包括在本发明的多于一个实施方式中。此外,此短语不必涉及相同实施方式或者涉及不同的实施方式。
如果说明书陈述“可”、“可以”、“能够”或者“可能”包括一个部件或性质或者具有一种特征,则不需要包括这个具体部件或性质或者具有该特征。
术语“模块”广义上指的是软件、硬件或者固件(或者它们的任何组合)部件。模块通常是可以生成有用数据或者使用特定输入的其他输出的功能部件。模块可以是或者可以不是独立的。应用程序(也称为“应用”)可包括一个或多个模块,或者模块可包括一个或多个应用程序。
一般说明
图1示出了在其中可利用本发明的一些实施方式的多租户数据仓库环境100的实例。如图1所示,该环境可包括各种命令行接口(例如,HIVECLI115和CHRONOSCLI120)以及其他用户接口工具125、全局命名空间服务130以及一个或多个多租户数据仓库140。数据仓库140包括多个虚拟仓库150(命名空间)。根据各种实施方式,多个虚拟仓库150可与其他虚拟仓库容纳在同一物理数据仓库140中以创建多租户环境。多个虚拟仓库的每一个可以是可移动,以允许每一个虚拟仓库可从一个物理仓库移动至另一个。
通过创建独立的命名空间(即,虚拟仓库),各种实施方式允许基于虚拟仓库增长的容量规划。将许多命名空间映射到一个物理数据仓库保持较低的运行成本。另外,如果物理仓库达到容量极限,可移动性将允许命名空间无缝迁移至另一个物理仓库。应注意,尽管用户可能大部分经常在一个命名空间内操作,但是用户可同时在多个命名空间上操作。因此,在一些实施方式中,命名空间不能解决确保用户仅具有对于仓库中的数据的子集的访问的问题。
根据各种实施方式,ApacheHive实例不跨物理数据仓库140运行。反而,这些实施方式利用Hive外部的、在跨Hive实例的命名空间位置上具有元数据并且允许使用复制跨Hive实例输入数据的命名空间服务130。在其他实施方式中,(例如,使用授权模式)命名空间建模可创建为Hive中的角色。为每个命名空间创建角色并且在该命名空间操作的用户属于该角色。通过授予外部表/浏览命名空间的角色的许可使得访问命名空间外的数据成为可能。
属于多个命名空间(并且因此多个角色)的用户或者租户将能够在任意时间点处操作跨这些命名空间的所有数据,因此命名空间也不再是独立的。设想以下情境,用户A具有对于其上同时运行查询的命名空间N1和N2的访问。这些查询中的任何一个将能够访问在各种实施方式中受到限制的跨N1和N2两者的数据。
根据Hive,本发明的各种实施方式强加一个或多个以下附加约束:1)提供元数据以识别属于一个命名空间的表格和查询;2)提供控制以防止在命名空间外的表格上操作;以及3)提供命令以明确请求第一命名空间中的表格/分区在第二命名空间中是可用的(因为可能需要跨多个命名空间的一些表格/分区)。一些实施方式提供命名空间(即,虚拟仓库)的建模,作为数据库。不需要明确的计数/追踪属于命名空间的表格/分区/视图,因为数据库已经提供了这些。命名空间可以防止使用两部分命名句法(Y.T)的访问以保证数据库在一个或多个实施方式中是独立的。
为了跨命名空间建模表格/分区输入,各种实施方式使用了Hive中的链接。这些实施方式使用各种指令以创建、改变和删除对于其他数据库中的表格的链接。该链接可能不复印表格/分区,并且因此避免同一物理仓库中的数据重叠。例如,假设命名空间A驻留于数据库A中,并且命名空间B驻留于数据库B中。在“命名空间”模式中禁用使用A.T或者B.T句法跨这些命名空间的访问。用户将来自B的表格T1输入到A中。用户发出CREATLINK命令,该命令在目标命名空间A中创建用于该表格的元数据+指明链接哪个对象的元数据。ALTERLINKADDPARTITION命令用于将分区添加到链接。通过针对可访问的分区在目标数据库A中复制分区级元数据来建模这些分区。该链接可以是动态的,这意味着只要源表获取新的分区或者删除分区则保持更新。
图2示出了根据本发明的一个或多个实施方式可使用的部件的框图。根据图2中示出的实施方式,该系统可包括存储器205、一个或多个处理器210、数据发现模块215、租户分配模块220、链接模块225、复制管理模块230、保持管理模块235、垃圾收集模块240、访问控制模块245、传递控制模块250、传播模块255以及图形用户界面(GUI)生成模块260。本发明的其他实施方式可包括这些模块和部件以及其他模块、应用和/或部件中的一些、所有或者一个也没有。仍然地,一些实施方式可将这些模块中的两个或更多个结合到单模块和/或将这些模块中的一个或多个的功能的一部分与不同模块关联。例如,在一个实施方式中,数据发现模块215和访问控制模块245可结合成单模块用于访问数据仓库内的数据。
存储器205可以是任何装置、存储介质、机构或者用于存储信息的填充的数据结构。根据本发明的一些实施方式,存储器205可包括但不限于任何类型的易失性存储器、非易失性存储器和动态存储器。例如,存储器205可以是随机存取存储器、存储器存储装置、光存储器装置、磁性介质、软盘、磁带、硬盘驱动器、SIMM、SDRAM、DIMM、RDRAM、DDRRAM、SODIMMS、可擦除编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、光盘、DVD等。根据一些实施方式,存储器205可包括一个或多个磁盘驱动、闪存驱动、一个或多个数据库、一个或多个表格、一个或多个文件、本地缓存存储器、处理器缓存存储器、关系数据库、平面数据库等。此外,本领域普通技术人员应当认识到许多其他装置和技术可作为存储器205用于存储信息。
存储器205可用于存储用于在处理器210上运行的一个或多个应用或者模块的指令。例如,存储器205可用在一个或多个实施方式中以容纳执行数据发现模块215、租户分配模块220、链接模块225、复制管理模块230、保持管理模块235、垃圾收集模块240、访问控制模块245、传递控制模块250、传播模块255和/或GUI生成模块260的功能的所有或者一些所需要的指令。
数据发现模块215提供各种工具和接口用于允许租户在具有每一个被分配给租户的多个虚拟仓库的多租户数据仓库内发现数据。当租户提交数据查询时,数据发现模块215可以跨所有的虚拟仓库搜索,并且在一些情况下,在其他多租户数据仓库内搜索。例如,当多租户数据仓库正在运行ApacheHive时,数据发现模块215可位于多租户数据仓库的顶部以支持多租户数据仓库内以及其他多租户数据仓库内的所有虚拟数据仓库内搜索。当虚拟数据仓库被建模为虚拟数据仓库(例如,命名空间或者数据库)时,数据发现模块215可从分配给虚拟数据仓库的第一租户接收搜索查询并且通过访问与多租户数据仓库中的数据库相关的索引来搜索物理数据仓库。
租户分配模块220允许系统的管理员将一个或多个租户分配给各个虚拟数据仓库。每个租户可完全地访问他们被分配的虚拟数据仓库。管理员也可指定租户也可访问的数据段或者分类,即使它们在租户未被分配的其他虚拟数据仓库内。在一些实施方式中,可由租户分配模块220使用GUI生成模块260以生成一个或多个图形用户界面从而允许管理员创建虚拟数据仓库、选择虚拟数据仓库,并且/或者将一个或多个租户分配至虚拟数据仓库。
当一个租户发现数据在他们被分配的虚拟仓库之外时,链接模块225可用于生成到其他虚拟仓库(例如,数据库)中的数据表或该数据的子集的链接。通过创建该链接,各种实施方式为租户提供了对于数据访问,而不需要将该数据复制到租户的虚拟仓库。通过链接模块225创建的链接可以是只读链接并且可包括识别要输入的该数据的参数集。例如,该参数集可识别数据中心、数据仓库、该数据或者表格位于的虚拟仓库、检索该数据的租户、时间帧(例如,过去三十天的数据)、元数据和/或可对管理该链接和/或检索该数据有用的其他参数。
在一些情况下,租户请求的数据可存储在一个不同的数据中心或者物理数据仓库内。复制管理模块230可监测数据请求并且确定租户请求的数据来自第二物理数据仓库。复制管理模块然后可将请求的数据从第二物理数据仓库复制到该租户关联的物理数据仓库。
本发明的一些实施方式允许执行各种保持(例如,合法保持)或者其他数据保持策略。保持管理模块235可创建与保持策略相关的虚拟仓库。然后链接模块225可用于创建对于需要在该保持策略下保持的数据的链接。
随着发生数据仓库变化,垃圾收集模块240可用于去除未使用的数据和链接。此外,垃圾收集模块240可监测链接的使用并且基于所检索数据的当前使用更新链接。例如,链接可关于具体主题检索三十天的数据。然而,如果租户仅惯用最后三天的数据(例如,生成报告),则垃圾收集模块240可更新该链接,使得仅检索最后三天的数据。由于这个智能的垃圾收集,在一些情况下,因为较少的数据被自动检索,所以网络资源可降低。
访问控制模块245可通信地耦接至数据发现模块215并且被配置为确定每个租户被授权访问数据仓库内的虚拟仓库上的哪个数据。访问许可可能通过预置规则或者通过由管理员通过图形用户界面画面输入的手动改变来随着时间而改变。例如,随着做出这些改变,传播模块255可相应地在数据仓库内更新链接(例如,删除链接,更新输入的数据等)。
在各种实施方式中,虚拟仓库可从第一数据仓库传递至第二数据仓库。这些类型的传递可出于各种原因发生。例如,当数据仓库大约达到容量时,虚拟仓库可传递。如另一实例,该传递可基于租户的物理位置以允许虚拟数据仓库在物理距离上更靠近。传递控制模块250监测每一个数据中心的状态并且管理虚拟仓库从一个数控中心至另一个的传递。传递控制模块250可请求传播模块255更新至虚拟数据仓库的任何链接以指示新位置。
GUI生成模块260可用于生成一个或多个图形用户界面画面。这些画面可用于将信息(例如,数据中心容量、生成的报告和数据仓库拓扑结构)显示给用户。在一些实施方式中,图形用户界面画面可用于将租户分配至一个或多个虚拟数据仓库,定义访问策略,定义数据保持策略等。
图3是根据本发明的各种实施方式生成表链接的一组操作300的流程图。图3中示出的操作可通过一个或多个模块或者部件执行,诸如,数据发现模块215、链接模块225和/或处理器210。接收操作310从租户接收搜索查询并且针对符合搜索查询的数据搜索数据仓库。返回操作320将结果返回给租户(例如,使用通过GUI生成模块260生成的图形用户界面画面)。该结果可包括来自与该租户相关的第一虚拟仓库(例如,数据库)的数据和/或来自与另一租户相关的第二虚拟仓库的数据。
该租户然后可以在声明操作330期间声明哪个数据应该从第二虚拟仓库输入到与该租户相关的第一虚拟仓库中。由租户收到的声明可受到一个或多个额外限制(例如,时间限制或者通知限制)。生成操作340然后可生成链接,以允许第一虚拟仓库的租户访问位于第二虚拟仓库中的数据。在一些情况下,该链接包括描述要检索的或者输入的数据的信息集。
图4是根据本发明的一些实施方式的用于检索数据仓库环境内的数据的一组操作400的流程图。图4中示出的操作可通过一个或多个模块或者部件执行,诸如,数据发现模块215、链接模块225和/或处理器210。当在查询操作410期间接收到数据查询时,数据发现模块215可跨所有虚拟仓库搜索,并且在一些情况下,在其他多租户数据仓库内搜索。在一些实施方式中,虚拟数据仓库被建模为数据库或者命名空间从而帮助在逻辑上组织数据。在这些情况下,查询操作410可通过访问与多租户数据仓库中的数据库相关的索引来搜索数据。识别操作420识别通过查询操作410返回的数据并且保证在呈现结果之前遵守任何安全限制。
判定操作430可确定是否有任何数据位于一不同数据中心内的虚拟仓库中。一旦确定一些数据是一不同数据中心的一部分,判定操作430分支到复制操作440,其中,在链接操作450生成对于数据的链接之前将该数据复制到当前数据中心。当没有数据是一不同数据中心的一部分时,判定操作430分支到链接操作450,其中,创建对于该数据的链接。接收操作460被设计成接收访问该数据的请求。在那时,使用通过链接操作450创建的链接在检索操作470期间检索该数据。
图5是根据本发明的各种实施方式的用于传播对于多租户数据仓库内的表链接的更新的一组操作500的流程图。图5中示出的操作可通过一个或多个模块或者部件执行,诸如,租户分配模块220、传播模块255和/或处理器210。在分配操作510期间,(例如,使用租户分配模块220)创建具有各自分配给租户的多个虚拟仓库的多租户数据仓库。租户可以是一个或多个私人公司员工、具有一个或多个队员的团队(例如,单个公司内或者来自跨多个公司)或者一个或多个个体或者群组的组合(例如,公司或者组织内部或者外部的个体)。在多租户数据仓库内,可创建一个或多个链接以链接跨一个或多个虚拟数据仓库的数据或者数据表,因此允许分配到第一虚拟数据仓库的第一租户访问第二虚拟数据仓库内的数据。
监测操作520监测多租户数据仓库内的虚拟数据仓库的变化。可以使用各种指令检测在数据仓库操作系统内这些变化。一旦检测到变化,传播操作530将更新传播到适当的链接。例如,当从虚拟数据仓库中删除数据时,监测操作520检测该变化并且传播操作530去除引用该数据的任何链接或者链接的一部分。如另一实例,数据可从一个虚拟数据仓库传递至另一个虚拟数据仓库。再次,监测操作520检测存储位置的变化,并且传播操作530更新引用该数据的任何链接以指明新的位置。
社交网络系统架构
本发明的实施方式可在社交网络系统内使用。通常,社交网络系统包括一个或多个计算装置,该计算装置存储与用户相关的用户配置文件和/或其他对象以及用户与其他用户和/或对象之间的关系。在使用时,用户加入社交网络系统,然后,添加他们希望与其联系的社交网络系统的其他用户或者对象的联系。用户可以是个体或者实体,诸如,企业、组织、大学或者制造商。社交网络系统允许其用户彼此交互以及与通过社交网络系统维持的其他对象交互。在一些实施方式中,社交网络系统允许用户与第三方网站和金融账户提供商交互。
基于关于用户、对象以及用户和/或对象之间的联系的存储数据,社交网络系统可生成并且维持包括通过多条边互连的多个节点的“社交图谱”。社交图谱中的每个节点均表示可作用于另一节点和/或可被另一节点作用的对象或者用户。社交图谱中的两个节点之间的边表示两个节点之间的具体某种联系,该具体联系可由一个节点对另一节点所执行的动作产生。例如,当用户将其他用户识别为好友时,则在社交图谱中生成联系表示第一用户的节点与表示其他用户的其他节点的边。生成的边具有显示用户是好友的联系类型。随着各个节点彼此交互,社交网络系统可修改联系各个节点的边以反映该交互。
图6是本发明的一些实施方式可利用的社交网络系统600的系统架构的框图。通过图6示出的社交网络系统600包括API请求服务器605、网络服务器610、消息服务器615、用户配置文件存储器620、动作记录器625、动作日志630、联系存储器635、内容存储器640、边存储器645、金融账户存储器650和多租户数据仓库140。在其他实施方式中,社交网络系统600可包括用于各种应用程序的另外、较少或者不同的模块。为了不使系统架构的细节变得模糊,未示出诸如网络接口、安全机构、负载平衡器、故障转移服务器、管理和网络操作平台等常规部件。
API请求服务器605允许其他系统、用户装置或者工具通过调用API从社交网络系统600访问信息。由社交网络提供的信息可包括通过其个人隐私设置确定的用户配置文件信息或者用户的联系信息。例如,对访问社交网络系统内的数据联系感兴趣的系统、用户装置或者工具可将API请求经由网络发送到社交网络系统600。通过API请求服务器605在社交网络系统600中接收API请求。API请求服务器605通过将访问请求提交到社交网络系统600来处理该请求,其中,确定访问并且任何数据经由网络传递返回到请求的系统、用户装置或者工具。
网络服务器610经由网络将社交网络系统600链接至一个或多个客户端装置;网络服务器服务于网页以及其他与网相关内容,诸如,Java、Flash、XML等等。网络服务器610可与提供接收消息并且在社交网络系统600与客户端装置之间路由消息的功能的消息服务器615通信。通过消息服务器615处理的消息可以是即时消息、队列消息(例如,电子邮件)、文本和SMS(短消息服务)消息或者任何其他合适的消息发送技术。例如,在一些实施方式中,由一个用户发送至另一用户的消息可由社交网络系统600的其他用户通过与接收消息的用户的联系查看。由社交网络系统的其他用户(除该消息的接收人之外)可查看的消息类型的实例是留言板。在一些实施方式中,用户可将仅由另一用户可检索的私人消息发送至另一用户。
社交网络系统600的每个用户与存储在用户配置文件存储器620中的用户配置文件相关。用户配置文件包括由用户明确分享的关于该用户的公告信息,并且用户配置文件还可包括通过社交网络系统600推断的配置文件信息。在一个实施方式中,用户配置文件包括多个数据字段,每个数据字段均描述了社交网络系统600的对应用户的一个或多个属性。存储在用户配置文件存储620中的用户配置文件信息描述了社交网络系统600的用户,包括传记、人口统计以及其他类型的描述性信息,诸如,工作经历、教育背景、性别、爱好或偏好、位置等。用户配置文件还可存储由用户提供的其他信息,例如,图像或者视频。在某些实施方式中,用户的图像可以标有在图像中显示的社交网络系统600的用户的识别信息。用户配置文件存储器620中的用户配置文件还可保持相应用户在内容存储器640中的内容项上执行的并且存储在边存储器645中的动作的参考。
用户配置文件可以与一个或者多个金融账户相关联,允许用户配置文件包括从金融账户检索或者导出的数据。用户可指定存储在用户配置文件中的一个或多个隐私设置,限制允许社交网络系统600访问金融账户的信息。例如,隐私设置限制社交网络系统600访问金融账户的交易历史而非当前账户余额。如另一实例,隐私设置限制社交网络系统600访问金融账户的交易历史的子集,允许社交网络系统600访问指定时间范围内的交易、涉及小于阈值交易量的交易、与指定供货商标识符相关的交易、与除了指定供货商标识符之外的供货商标识符相关的交易、或者限制来自通过社交网络系统600可访问的用户识别的金融账户的信息的任何适当的标准。在一个实施方式中,将金融账户的信息存储在用户配置文件存储器620中。在其他实施方式中,可将金融账户的信息存储在金融账户存储器650中。
动作记录器625接收关于用户在社交网络系统600上和/或离开社交网络系统600操作的通信,利用有关用户操作的信息填充动作日志630。这些动作可包括例如添加至其他用户的联系、向其他用户发送消息、上传图像、读取来自其他用户的消息、查看与其他用户相关的内容以及参加由其他用户发布的事件等。在一些实施方式中,动作记录器625根据一个或多个隐私设置从与用户相关的金融账户接收交易信息并且从交易信息中识别用户动作。例如,动作记录器625从金融账户的交易历史检索供应商标识符并且识别与供应商标识符相关的社交网络系统600中的对象,诸如,页面。这允许动作记录器625识别内容存储器640中与页面或者另一对象相关的用户购买的产品或者服务。此外,结合其他对象描述的多个动作是指向具体用户,所以这些动作也与那些用户相关。这些动作存储在动作日志630中。
可通过社交网络系统600使用动作日志630追踪社交网络系统600上的用户动作,以及将信息传递至社交网络系统600的外部网站。用户可与社交网络系统600上的各个对象交互,包括对帖子做出评论、分享链接、以及经由移动装置登录物理位置,从而顺次访问内容项或者其他交互。描述这些动作的信息存储在动作日志630中。与包括在动作日志630中的与社交网络系统600上的对象交互的附加实例包括对相册进行评论、用户之间的通信、成为音乐家的粉丝、将事件添加到日历、加入群、成为品牌页面的粉丝、创建事件、授权应用程序、使用应用程序以及参与交易。此外,动作日志630记录用户与社交网络系统600上的广告以及在社交网络系统600上操作的其他应用程序的交互。在一些实施方式中,使用动作日志630中的数据推断用户的兴趣或者偏好,从而扩大用户配置文件中包括的兴趣并且允许更为完整地理解用户偏好。
动作日志630还可存储在外部网站上采取的和/或从与用户相关的金融账户确定的用户动作。例如,主要以特价销售运动装备的电子商务网站可以通过使电子商务网站能够识别社交网络系统600的用户的社交插件来识别社交网络系统600的用户。因为社交网络系统600的用户是唯一可识别的,所以诸如运动装备零售商等电子商务网站可以在用户访问其网站时使用关于这些用户的信息。动作日志630记录关于这些用户的数据,包括网页浏览历史记录、嵌入的广告、已进行的交易、以及购物和购买的其他模式。由动作记录器625从与用户相关的金融账户的交易历史识别的动作允许动作日志630记录关于其他类型的用户动作的进一步信息。
在一些实施方式中,社交网络系统600进一步将描述不同用户之间的一个或多个联系的数据存储在联系存储器635中。描述一个或多个联系的数据可包括一系列联系、构成每个联系(即,朋友)的日期等。该联系可由用户进一步定义,允许用户指定它们与其他用户的关系。例如,该联系允许用户与平行于用户现实生活关系的其他用户(诸如朋友、同事、伙伴等)生成关系。在一个实施方式中,该联系基于关系类型指定联系类型。关系类型的实例包括家人、朋友、同事等。用户可从预定的关系类型中选择,或者根据需要定义他们自己联系类型。一些或者所有该信息也可像边对象一样存储在边存储器645中。
内容存储器640存储与用户配置文件相关的内容项,诸如,图像、视频或者音频文件。当用户配置文件被观看时或者当与用户配置文件相关的其他内容被观看时,可显示来自内容存储器640的内容项。例如,显示的内容项可示出与用户配置文件相关的图像或视频或者示出描述用户状态的文本。此外,其他内容项可通过鼓励用户扩展其与其他用户的联系、邀请新用户到该系统、或者通过显示与社交网络系统600的用户、对象、活动或功能有关的内容而增加与社交网络系统的交互而促进用户参与。社交网络内容项的实例包括建议联系或者下列建议:执行其他动作、执行提供给社交网络系统600或者由社交网络系统600保持的媒体(例如,图片或者视频)、执行由用户发布到社交网络系统的状态消息或者链接、事件、团体、页面(例如,代表组织或者商业实体)、以及由社交网络系统提供或者经由社交网络系统可访问的任何其他内容。
内容存储器640也包括与具有用户配置文件存储器620中的用户配置文件的实体相关的一个或多个页面。实体是社交网络系统600的非个体用户,诸如,企业、供应商、组织或者大学等。页面包括与实体相关的内容和用于将内容呈现给社交网络系统用户的指令。例如,页面识别与实体的用户配置文件相关联的内容以及描述如何将内容呈现给查看品牌页面的用户的信息。供应商可与内容存储器640中的页面相关联,从而允许社交网络系统用户经由社交网络系统600与供应商更容易地交互。供应商标识符与供应商的页面相关联,从而允许社交网络系统600识别供应商和/或使用供应商标识符从用户配置文件存储器620、动作日志630或者从任何其他合适的来源中检索关于供应商的附加信息。在一些实施方式中,内容存储器640还可存储与存储对象相关联的一个或者多个锁定标准并且识别能够将该对象呈现给其的用户的一个或多个特征。
在一个实施方式中,边存储器645将描述社交网络系统600上的用户与其他对象之间的联系的信息存储在边对象中。一些边可由用户定义,允许用户指定他们与其他用户的关系。例如,用户可以与平行于用户的现实生活关系(诸如,朋友、同事、伙伴等)的其他用户生成边。当用户与社交网络系统600中的对象交互时,生成其他边,诸如,表示对社交网络系统600上的页面感兴趣、与社交网络系统600的其他用户分享链接、以及对由社交网络系统的其他用户发布的帖子做出评论。边存储器645存储包括关于该边的信息的边对象,诸如,对象、兴趣以及其他用户的喜好分数。随着时间的过去社交网络系统600可计算喜好分数以基于用户执行的动作约计用户与对象、兴趣以及社交网络系统600中其他用户的亲密度。在一个实施方式中,用户与特定对象之间的多个交互可以存储在边存储器645中的一个边对象中。在一些实施方式中,用户之间的联系可以存储在用户配置文件存储器620中,或者用户配置文件存储器620可访问边存储器645以确定用户之间的联系。
用户可通过用户装置655、移动装置660、个人电脑665、膝上型电脑670和/或其他装置与社交网络系统600交互以允许用户与社交网络系统600通信。如图6所示,这些装置可使用网络675提交并且检索来自社交网络系统600的信息。用户装置655可以是能够接收用户输入以及经由网络675传递和/或接收数据的任何计算装置。在一个实施方式中,用户装置655是诸如桌面电脑665或者膝上型电脑670的常规计算机系统。在另一实施方式中,用户装置655可以是具有计算机功能的移动装置660,诸如,个人数字助理(PDA)、移动电话、智能手机或者类似装置。
用户装置655被配置为经由网络675与社交网络系统600和/或金融账户供应者通信。在一个实施方式中,用户装置655执行允许用户装置655的用户与社交网络系统600交互的应用程序。例如,用户装置655可执行浏览器应用程序以启用经由网络675的用户装置655和社交网络系统600之间的交互作用。在另一实施方式中,用户装置655通过在用户装置655的本地操作系统(诸如,和ANDROIDTM)上运行的应用程序编程接口(API)与社交网络系统600交互。
用户装置655可被配置为经由网络675通信,网络可包括使用有线和无线通信系统两者的局域网和/或广域网的任意组合。在一个实施方式中,网络675使用标准的通信技术和/或协议。因此,网络675可包括使用诸如以太网、802.11、微波存取全球互通(WiMAX)、3G、4G、CDMA、数字用户线路(DSL)等技术的链接。类似地,网络675上使用的网络协议可包括多协议标签交换(MPLS)、传递控制协议/互联网协议(TCP/IP)、用户数据报协议(UDP)、超文本传递协议(HTTP)、简易邮件传递协议(SMTP)和文件传递协议(FTP)。在网络675上交换的数据可使用包括超文本标记语言(HTML)或者可扩展标记语言(XML)的技术和/或格式表示。此外,可以使用诸如安全套接层(SSL)、传递层安全(TLS)以及互联网协议安全(IPsec)等传统的加密技术来将所有或一些链接加密。
示例性计算机系统概述
本发明的实施方式包括以上已经描述的各种步骤和操作。各种步骤和操作可通过硬件部件执行或者可表现在机器可执行指令中,该机器可执行指令可用于使利用指令编程的通用的或者专用的处理器执行该步骤。可替代地,该步骤可通过硬件、软件和/或固件的结合来执行。如此,图7是本发明的实施方式可利用的计算机系统700的实例。根据本实例,计算机系统包括总线710、至少一个处理器720、至少一个通信端口730、主存储器740、可移动存储介质750、只读存储器760和大存储装置770。
处理器720可以是任何已知的处理器,诸如但不限于或者Itanium处理器;或者Athlon处理器;或者处理器的线。通信端口730可以是用于基于解调器的拨号联系的RS-232端口、10/100以太网端口或者使用铜或者纤维的千兆位端口。通信端口730可根据网络选择,诸如,局域网络(LAN)、广域网(WAN)或者计算机系统700连接的任何网络。
主存储器740可以是随机存取存储器(RAM)或者本领域通常已知的任何其他动态存储装置。只读存储器760可以是任何静态存储装置,诸如,可编程只读存储器(PROM)芯片,用于存储诸如处理器720的指令的静态信息。
大存储装置770可用于存储信息和指令。例如,可使用诸如家族的SCSI驱动的硬盘、光盘、诸如RAID的磁盘阵列、诸如Adaptec家族的RAID驱动、或者任何其他大容量存储装置。
总线710将处理器720与另一个存储器、存储和通信块可通信地耦接。总线710可以是根据使用的存储装置的PCI/PCI-X或者基于SCSI的系统总线。
可移动存储介质750可以是任何种类的外部硬盘驱动器、软盘驱动器、压缩驱动器、光盘-只读存储器(CD-ROM)、光盘-可重写(CD-RW)和/或数字化视频光盘-只读存储器(DVD-ROM)。
上述部件意在举例说明一些类型的可能性。由于它们仅是示例性实施方式,因此上述实例绝不应该限制本发明的范围。
总之,本发明提供了用于管理多租户数据仓库内的数据的新颖的系统、方法和布置结构。尽管上面已经给出了本发明的一个或多个实施方式的详细说明,但是在不改变本发明的精神的情况下,各种替换、修改和等效物对于本领域技术人员是显而易见的。例如,尽管上述实施方式涉及具体特征,但是本发明的范围也包括具有特征的不同组合的实施方式以及不包括所有描述特征的实施方式。因此,本发明的范围旨在包括落入权利要求范围内的所有此种替换、修改和改变及其所有等效物。因此,以上描述不应被视为限制由所附权利要求限定的本发明的范围。

Claims (20)

1.一种方法,包括:
从分配至多租户数据仓库内的第一虚拟数据仓库的租户接收数据查询;
基于所述数据查询生成信息集,指明所述租户被授权访问所述多租户数据仓库内的数据;
从所述租户接收声明以利用作为由所述信息集指明的所述租户能够访问的所述数据的子集;并且
使用识别用于检索在所述第一虚拟数据仓库外部的数据的参数集的链接,输入在所述第一虚拟数据仓库外部的所述数据。
2.根据权利要求1所述的方法,其中,所述第一虚拟数据仓库是作为第一物理数据中心的一部分的数据库。
3.根据权利要求2所述的方法,进一步包括:
确定所述数据的所述子集是否在第二物理数据中心;并且
在所述第一物理数据中心中缓存来自所述第二物理数据中心的所述数据的所述子集。
4.根据权利要求1所述的方法,其中,所述第一虚拟数据仓库是作为所述多租户数据仓库的一部分的多个数据库之一,并且所述方法进一步包括:将一个或多个租户分配至所述第一数据仓库中的多个数据库中的每一个数据库。
5.根据权利要求1所述的方法,其中,用于检索所述数据的所述参数包括要检索的数据的时间范围。
6.根据权利要求5所述的方法,进一步包括:
监测在所述第一虚拟数据仓库外部的所述数据的利用;
确定所述数据的所述利用仅包括来自更小时间范围的数据;并且
更新所述参数集,使得所述链接仅从所述更小时间范围检索所述数据。
7.根据权利要求1所述的方法,其中,所述链接提供对于在所述第一虚拟数据仓库外部的所述数据的只读访问。
8.一种系统,包括:
物理数据仓库,包括分配给第一租户的第一数据库以及分配给第二租户的第二数据库,其中,所述第一租户和所述第二租户分别被允许完全地访问存储在所述第一数据库内的数据以及所述第二数据库内的数据;
数据发现模块,从所述第一租户接收搜索查询并且通过访问与所述第一数据库和所述第二数据库相关的索引来搜索所述物理数据仓库;
链接模块,生成对于所述物理数据仓库内的所述第二数据库中的数据的子集的链接,以便允许所述第一租户具有对于数据的所述子集的读取访问,而无需将数据的所述子集复制到所述第一数据库。
9.根据权利要求8所述的系统,进一步包括:访问控制模块,可通信地耦接至所述数据发现模块并且所述访问控制模块被配置为确定所述第一租户被授权访问所述第二数据库上的哪个数据。
10.根据权利要求8所述的系统,进一步包括:租户分配模块,将所述第一租户分配至所述第一数据库并且将所述第二租户分配至所述第二数据库。
11.根据权利要求8所述的系统,进一步包括:保持管理模块,创建具有保持策略的第三数据库并且在受制于所述保持策略的所述物理数据仓库内创建对于数据的第二链接。
12.根据权利要求8所述的系统,进一步包括:复制管理模块,确定所述第一租户请求的数据来自第二物理数据仓库,并且其中,所述复制管理模块被配置为将来自所述第二物理数据仓库的所请求的所述数据复制到所述物理数据仓库。
13.根据权利要求8所述的系统,其中,所述物理数据仓库是第一物理数据仓库,并且所述系统进一步包括:第二物理数据仓库以及传递控制模块,所述传递控制模块管理所述第二数据库到所述第二物理数据仓库的传递。
14.根据权利要求8所述的系统,进一步包括:传播模块,更新由所述链接模块生成的所述链接。
15.一种计算机实现方法,包括:
通过创建各自分配给租户的多个虚拟数据仓库来生成多租户数据仓库,其中,所述多个虚拟数据仓库的第一虚拟数据仓库包括对于存储在所述多个虚拟数据仓库的第二虚拟数据仓库内的数据表的链接,以允许所述租户在不用将所述数据表从所述第二虚拟数据仓库复制到所述第一虚拟数据仓库的情况下访问所述数据表;
针对要求所述链接更新的变化,监测所述多租户数据仓库内的变化;并且
根据在所述多租户数据仓库内检测的所述变化更新所述链接。
16.根据权利要求15所述的计算机实现方法,其中,所述多租户数据仓库内的所述变化包括所述多个虚拟数据仓库中的一个到第二多租户数据仓库的传递。
17.根据权利要求15所述的计算机实现方法,其中,对于所述数据表格的所述链接包括时间帧限制。
18.根据权利要求17所述的计算机实现方法,其中,所述方法进一步包括:
监测对于所述数据表的访问以确定所述数据表的实际使用量;并且
更新对于所述数据表的所述链接以包括与所述数据表的实际使用量对应的第二时间帧限制。
19.根据权利要求15所述的计算机实现方法,其中,所述多租户数据仓库内的所述变化包括对于所述数据表的访问授权的变化,并且更新所述链接包括删除所述链接。
20.根据权利要求15所述的计算机实现方法,其中,所述多个虚拟数据仓库包括一个或多个数据库,所述一个或多个数据库被索引以允许来自所述多租户数据仓库的所述租户的数据查询。
CN201480021060.XA 2013-02-13 2014-01-17 Hive表链接 Active CN105144159B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/766,512 2013-02-13
US13/766,512 US10339157B2 (en) 2013-02-13 2013-02-13 Hive table links
PCT/US2014/012123 WO2014126678A1 (en) 2013-02-13 2014-01-17 Hive table links

Publications (2)

Publication Number Publication Date
CN105144159A true CN105144159A (zh) 2015-12-09
CN105144159B CN105144159B (zh) 2018-12-14

Family

ID=51298191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480021060.XA Active CN105144159B (zh) 2013-02-13 2014-01-17 Hive表链接

Country Status (10)

Country Link
US (1) US10339157B2 (zh)
JP (1) JP6321046B2 (zh)
KR (1) KR101908553B1 (zh)
CN (1) CN105144159B (zh)
AU (2) AU2014216727A1 (zh)
BR (1) BR112015019512A2 (zh)
CA (1) CA2900498C (zh)
IL (1) IL240497B (zh)
MX (1) MX362650B (zh)
WO (1) WO2014126678A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017129138A1 (zh) * 2016-01-26 2017-08-03 中兴通讯股份有限公司 数据仓库中的数据保护方法及装置
CN110163002A (zh) * 2019-05-29 2019-08-23 上海有谱网络科技有限公司 一种SaaS软件租户数据隔离的方法
CN110414257A (zh) * 2018-04-26 2019-11-05 中移(苏州)软件技术有限公司 一种数据访问方法及服务器

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9335897B2 (en) 2013-08-08 2016-05-10 Palantir Technologies Inc. Long click display of a context menu
US9690671B2 (en) * 2013-11-01 2017-06-27 Cloudera, Inc. Manifest-based snapshots in distributed computing environments
US10356032B2 (en) 2013-12-26 2019-07-16 Palantir Technologies Inc. System and method for detecting confidential information emails
US9338013B2 (en) 2013-12-30 2016-05-10 Palantir Technologies Inc. Verifiable redactable audit log
US8832832B1 (en) 2014-01-03 2014-09-09 Palantir Technologies Inc. IP reputation
US9665633B2 (en) * 2014-02-19 2017-05-30 Snowflake Computing, Inc. Data management systems and methods
US10521455B2 (en) * 2014-03-18 2019-12-31 Nanobi Data And Analytics Private Limited System and method for a neural metadata framework
US9535974B1 (en) 2014-06-30 2017-01-03 Palantir Technologies Inc. Systems and methods for identifying key phrase clusters within documents
US9619557B2 (en) 2014-06-30 2017-04-11 Palantir Technologies, Inc. Systems and methods for key phrase characterization of documents
US9256664B2 (en) 2014-07-03 2016-02-09 Palantir Technologies Inc. System and method for news events detection and visualization
US9419992B2 (en) 2014-08-13 2016-08-16 Palantir Technologies Inc. Unwanted tunneling alert system
US9043894B1 (en) 2014-11-06 2015-05-26 Palantir Technologies Inc. Malicious software detection in a computing system
US9467455B2 (en) 2014-12-29 2016-10-11 Palantir Technologies Inc. Systems for network risk assessment including processing of user access rights associated with a network of devices
US9648036B2 (en) 2014-12-29 2017-05-09 Palantir Technologies Inc. Systems for network risk assessment including processing of user access rights associated with a network of devices
US9407652B1 (en) 2015-06-26 2016-08-02 Palantir Technologies Inc. Network anomaly detection
US9456000B1 (en) 2015-08-06 2016-09-27 Palantir Technologies Inc. Systems, methods, user interfaces, and computer-readable media for investigating potential malicious communications
US9537880B1 (en) 2015-08-19 2017-01-03 Palantir Technologies Inc. Anomalous network monitoring, user behavior detection and database system
US9984428B2 (en) * 2015-09-04 2018-05-29 Palantir Technologies Inc. Systems and methods for structuring data from unstructured electronic data files
US10044745B1 (en) 2015-10-12 2018-08-07 Palantir Technologies, Inc. Systems for computer network security risk assessment including user compromise analysis associated with a network of devices
US9888039B2 (en) 2015-12-28 2018-02-06 Palantir Technologies Inc. Network-based permissioning system
US9916465B1 (en) 2015-12-29 2018-03-13 Palantir Technologies Inc. Systems and methods for automatic and customizable data minimization of electronic data stores
US10476975B2 (en) 2015-12-31 2019-11-12 Palantir Technologies Inc. Building a user profile data repository
US10498711B1 (en) 2016-05-20 2019-12-03 Palantir Technologies Inc. Providing a booting key to a remote system
US10084802B1 (en) 2016-06-21 2018-09-25 Palantir Technologies Inc. Supervisory control and data acquisition
US10291637B1 (en) 2016-07-05 2019-05-14 Palantir Technologies Inc. Network anomaly detection and profiling
US10698927B1 (en) 2016-08-30 2020-06-30 Palantir Technologies Inc. Multiple sensor session and log information compression and correlation system
US10728262B1 (en) 2016-12-21 2020-07-28 Palantir Technologies Inc. Context-aware network-based malicious activity warning systems
US10754872B2 (en) 2016-12-28 2020-08-25 Palantir Technologies Inc. Automatically executing tasks and configuring access control lists in a data transformation system
US10721262B2 (en) 2016-12-28 2020-07-21 Palantir Technologies Inc. Resource-centric network cyber attack warning system
US10027551B1 (en) 2017-06-29 2018-07-17 Palantir Technologies, Inc. Access controls through node-based effective policy identifiers
US10963465B1 (en) 2017-08-25 2021-03-30 Palantir Technologies Inc. Rapid importation of data including temporally tracked object recognition
US10984427B1 (en) 2017-09-13 2021-04-20 Palantir Technologies Inc. Approaches for analyzing entity relationships
GB201716170D0 (en) 2017-10-04 2017-11-15 Palantir Technologies Inc Controlling user creation of data resources on a data processing platform
US10079832B1 (en) 2017-10-18 2018-09-18 Palantir Technologies Inc. Controlling user creation of data resources on a data processing platform
US10250401B1 (en) 2017-11-29 2019-04-02 Palantir Technologies Inc. Systems and methods for providing category-sensitive chat channels
US11133925B2 (en) 2017-12-07 2021-09-28 Palantir Technologies Inc. Selective access to encrypted logs
US10142349B1 (en) 2018-02-22 2018-11-27 Palantir Technologies Inc. Verifying network-based permissioning rights
KR102113680B1 (ko) * 2018-03-09 2020-05-20 (주)이지서티 빅 데이터 비식별화 처리 시스템 및 방법
US10878051B1 (en) 2018-03-30 2020-12-29 Palantir Technologies Inc. Mapping device identifiers
US10255415B1 (en) 2018-04-03 2019-04-09 Palantir Technologies Inc. Controlling access to computer resources
US10949400B2 (en) 2018-05-09 2021-03-16 Palantir Technologies Inc. Systems and methods for tamper-resistant activity logging
US11244063B2 (en) 2018-06-11 2022-02-08 Palantir Technologies Inc. Row-level and column-level policy service
CN109669946B (zh) * 2018-12-14 2021-11-16 中南设计集团(武汉)工程技术研究院有限公司 一种基于海量用户的复杂权限体系数据隔离系统及方法
US11526464B2 (en) * 2018-12-21 2022-12-13 Dropbox, Inc. Scaling HDFS for hive
EP3694173B1 (en) 2019-02-08 2022-09-21 Palantir Technologies Inc. Isolating applications associated with multiple tenants within a computing platform
CN110399749B (zh) * 2019-08-05 2021-04-23 杭州安恒信息技术股份有限公司 数据资产管理方法及系统
US11704441B2 (en) 2019-09-03 2023-07-18 Palantir Technologies Inc. Charter-based access controls for managing computer resources
US10761889B1 (en) 2019-09-18 2020-09-01 Palantir Technologies Inc. Systems and methods for autoscaling instance groups of computing platforms
CN116401231B (zh) * 2023-03-20 2024-04-26 一临云(深圳)科技有限公司 数据源管理方法、设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050210049A1 (en) * 2004-03-22 2005-09-22 Sliccware Secure virtual data warehousing system and method
CN1786997A (zh) * 2005-11-02 2006-06-14 浙江大学 分布式知识管理集成系统及其集成方法
US20060253435A1 (en) * 1998-11-11 2006-11-09 Itaru Nishizawa Data warehouse system and query processing method used in the system, and data collecting method and apparatus for the method, and charging method and apparatus in the system
US20070033340A1 (en) * 2005-08-08 2007-02-08 International Business Machines Corporation System and method for providing content based anticipative storage management
US20110066617A1 (en) * 2008-06-23 2011-03-17 Rui Liu Spatial querying in a data warehouse
US20120143810A1 (en) * 2010-09-02 2012-06-07 Anker Berg-Sonne Rules engine with database triggering
US20120166385A1 (en) * 2010-12-28 2012-06-28 Devadoss Madan Gopal Data loading method for a data warehouse
US20130006950A1 (en) * 2011-07-01 2013-01-03 International Business Machines Corporation Method for Attaching Partition ONLINE to Range Partitioned Table

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675785A (en) 1994-10-04 1997-10-07 Hewlett-Packard Company Data warehouse which is accessed by a user using a schema of virtual tables
US20020133368A1 (en) 1999-10-28 2002-09-19 David Strutt Data warehouse model and methodology
US6823391B1 (en) 2000-10-04 2004-11-23 Microsoft Corporation Routing client requests to back-end servers
US20020099563A1 (en) 2001-01-19 2002-07-25 Michael Adendorff Data warehouse system
US6671689B2 (en) 2001-01-19 2003-12-30 Ncr Corporation Data warehouse portal
CA2467826C (en) 2001-10-23 2012-03-13 Visto Corporation System and method for merging remote and local data in a single user interface
US7370366B2 (en) 2001-11-16 2008-05-06 International Business Machines Corporation Data management system and method
US7305432B2 (en) 2002-10-23 2007-12-04 Aol Llc Privacy preferences roaming and enforcement
JP3702268B2 (ja) 2002-11-29 2005-10-05 株式会社東芝 情報検索システム、情報検索方法およびプログラム
US20040210452A1 (en) 2003-01-14 2004-10-21 Aboujaoude Roger B. Method and system for unifying and sharing of business systems
US7284010B2 (en) 2003-10-23 2007-10-16 Microsoft Corporation System and method for storing and retrieving a field of a user defined type outside of a database store in which the type is defined
US20050149496A1 (en) 2003-12-22 2005-07-07 Verity, Inc. System and method for dynamic context-sensitive federated search of multiple information repositories
US8271428B2 (en) 2004-05-20 2012-09-18 International Business Machines Corporation Method and system for creating and loading data warehouse from semi-structured document
US7949684B2 (en) 2005-09-09 2011-05-24 Salesforce.Com, Inc. Systems and methods for exporting, publishing, browsing and installing on-demand applications in a multi-tenant database environment
US20110004622A1 (en) 2007-10-17 2011-01-06 Blazent, Inc. Method and apparatus for gathering and organizing information pertaining to an entity
JP2009146350A (ja) 2007-12-18 2009-07-02 Mitsubishi Electric Corp サービス管理装置及びデータアクセス制御装置及びデータ検索方法
US8321438B1 (en) 2008-06-18 2012-11-27 Bank Of America Corporation Integration layer for a data repository
CN101620609B (zh) 2008-06-30 2012-03-21 国际商业机器公司 多租户数据存储和访问方法和装置
JP5200721B2 (ja) 2008-07-16 2013-06-05 富士通株式会社 制御方法、制御装置、及びプログラム
JP5500859B2 (ja) 2009-04-16 2014-05-21 株式会社日立製作所 環境関連情報集計分析システム。
US8392969B1 (en) * 2009-06-17 2013-03-05 Intuit Inc. Method and apparatus for hosting multiple tenants in the same database securely and with a variety of access modes
US20140112319A1 (en) * 2012-10-18 2014-04-24 Deep River Ventures, Llc Methods, Systems, and Computer Program Products for Constraining a Data Exchange Requested in a Communication
US8468120B2 (en) * 2010-08-24 2013-06-18 International Business Machines Corporation Systems and methods for tracking and reporting provenance of data used in a massively distributed analytics cloud
US8775425B2 (en) * 2010-08-24 2014-07-08 International Business Machines Corporation Systems and methods for massive structured data management over cloud aware distributed file system
US8769704B2 (en) 2010-09-10 2014-07-01 Salesforce.Com, Inc. Method and system for managing and monitoring of a multi-tenant system
US8949939B2 (en) 2010-10-13 2015-02-03 Salesforce.Com, Inc. Methods and systems for provisioning access to customer organization data in a multi-tenant system
US8732606B2 (en) * 2010-10-25 2014-05-20 Salesforce.Com, Inc. Computer implemented methods and apparatus for dynamic windowing in user interfaces
US8751449B2 (en) * 2011-04-04 2014-06-10 Symantec Corporation Managing performance within an enterprise object store file system
US8769622B2 (en) 2011-06-30 2014-07-01 International Business Machines Corporation Authentication and authorization methods for cloud computing security
US20130179894A1 (en) * 2012-01-09 2013-07-11 Microsoft Corporation Platform as a service job scheduling
US9417917B1 (en) * 2012-12-14 2016-08-16 Amazon Technologies, Inc. Equitable resource allocation for storage object deletion
US9355060B1 (en) * 2012-12-14 2016-05-31 Amazon Technologies, Inc. Storage service lifecycle policy transition management

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060253435A1 (en) * 1998-11-11 2006-11-09 Itaru Nishizawa Data warehouse system and query processing method used in the system, and data collecting method and apparatus for the method, and charging method and apparatus in the system
US20050210049A1 (en) * 2004-03-22 2005-09-22 Sliccware Secure virtual data warehousing system and method
US20070033340A1 (en) * 2005-08-08 2007-02-08 International Business Machines Corporation System and method for providing content based anticipative storage management
CN1786997A (zh) * 2005-11-02 2006-06-14 浙江大学 分布式知识管理集成系统及其集成方法
US20110066617A1 (en) * 2008-06-23 2011-03-17 Rui Liu Spatial querying in a data warehouse
US20120143810A1 (en) * 2010-09-02 2012-06-07 Anker Berg-Sonne Rules engine with database triggering
US20120166385A1 (en) * 2010-12-28 2012-06-28 Devadoss Madan Gopal Data loading method for a data warehouse
US20130006950A1 (en) * 2011-07-01 2013-01-03 International Business Machines Corporation Method for Attaching Partition ONLINE to Range Partitioned Table

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017129138A1 (zh) * 2016-01-26 2017-08-03 中兴通讯股份有限公司 数据仓库中的数据保护方法及装置
CN110414257A (zh) * 2018-04-26 2019-11-05 中移(苏州)软件技术有限公司 一种数据访问方法及服务器
CN110163002A (zh) * 2019-05-29 2019-08-23 上海有谱网络科技有限公司 一种SaaS软件租户数据隔离的方法
CN110163002B (zh) * 2019-05-29 2023-06-13 上海有谱网络科技有限公司 一种SaaS软件租户数据隔离的方法

Also Published As

Publication number Publication date
MX362650B (es) 2019-01-30
US10339157B2 (en) 2019-07-02
CA2900498A1 (en) 2014-08-21
JP6321046B2 (ja) 2018-05-09
KR20150119108A (ko) 2015-10-23
JP2016511899A (ja) 2016-04-21
AU2014216727A1 (en) 2015-08-27
WO2014126678A1 (en) 2014-08-21
AU2018282321A1 (en) 2019-01-17
IL240497A0 (en) 2015-09-24
MX2015010491A (es) 2016-05-05
IL240497B (en) 2021-12-01
CN105144159B (zh) 2018-12-14
US20140229422A1 (en) 2014-08-14
KR101908553B1 (ko) 2018-10-16
BR112015019512A2 (pt) 2017-07-18
CA2900498C (en) 2019-11-26

Similar Documents

Publication Publication Date Title
CN105144159A (zh) Hive表链接
US10754985B2 (en) Anonymizing user identifiable information
US8555018B1 (en) Techniques for storing data
US20180276304A1 (en) Advanced computer implementation for crawling and/or detecting related electronically catalogued data using improved metadata processing
CN109964216A (zh) 识别未知数据对象
CN101594377A (zh) 用于管理Feed数据的系统和方法
US20090234902A1 (en) System, method and apparatus for making content available over multiple devices
US10572562B2 (en) Methods and systems for performing time-partitioned collaborative filtering
US11968258B2 (en) Sharing of data share metrics to customers
EP2767913B1 (en) Hive table links
Kimball The evolving role of the enterprise data warehouse in the era of big data analytics
Srinivasa et al. Network Data Analytics
US11461786B2 (en) Systems, methods, and apparatuses for implementing cross cloud engagement activity visualization without requiring database merge or data replication
US9811525B1 (en) Message and attachment deletion
US11100128B2 (en) Cascading data impact visualization tool
Szafir Digital Transformation Enabled by Big Data
CN113449003B (zh) 信息查询的方法、装置、电子设备及介质
Balusamy et al. Challenges in Big Data Analytics
BÜBER KAYA et al. TAG BASED RECOMMENDATION SYSTEM OF A SOCIAL NETWORKING SITE.
Strazdins Data Version Control for Relational Databases: Small and Start-up Business Perspective
Sardis et al. Mobile cultural experiences and their long-term preservation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Yuan platform Co.

Address before: California, USA

Patentee before: Facebook, Inc.

CP01 Change in the name or title of a patent holder