CN107977448A - 加载多数据源数据的方法和装置 - Google Patents

加载多数据源数据的方法和装置 Download PDF

Info

Publication number
CN107977448A
CN107977448A CN201711319369.9A CN201711319369A CN107977448A CN 107977448 A CN107977448 A CN 107977448A CN 201711319369 A CN201711319369 A CN 201711319369A CN 107977448 A CN107977448 A CN 107977448A
Authority
CN
China
Prior art keywords
data
database
data source
client
source
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
CN201711319369.9A
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.)
Beijing Xiaomi Mobile Software Co Ltd
Original Assignee
Beijing Xiaomi Mobile Software 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 Beijing Xiaomi Mobile Software Co Ltd filed Critical Beijing Xiaomi Mobile Software Co Ltd
Priority to CN201711319369.9A priority Critical patent/CN107977448A/zh
Publication of CN107977448A publication Critical patent/CN107977448A/zh
Pending legal-status Critical Current

Links

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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses

Landscapes

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

Abstract

本公开是关于加载多数据源数据的方法和装置。该方法包括:接收来自客户端的数据请求,所述数据请求携带用户标识,所述数据请求用于请求来自多个数据源的对应于所述用户标识的数据;从数据库中与所述用户标识关联的键对应的存储空间取得所请求的数据中的部分或全部,其中,来自不同数据源的数据中对应于所述用户标识的数据均被存储在与所述用户标识关联的键对应的存储空间;发送所取得的数据至所述客户端。根据本公开有利于提高多数据源数据的加载和刷新速度,有利于提升客户端的界面加载速度。

Description

加载多数据源数据的方法和装置
技术领域
本公开涉及互联网数据加载领域,尤其涉及加载多数据源数据的方法和装置。
背景技术
互联网给用户提供了多种便利服务。随着服务接入的需求增多以及服务综合性和个性 化的增强,在提供某些服务时可能需要来自多个数据源的数据,例如,客户端的一个数据 请求可能需要分别访问提供账号服务的服务器的数据接口和提供特定主题服务的服务器 的数据接口以加载相应数据显示给客户。可以认为请求的加载耗时和要访问的数据接口数 量呈线性增长关系,随着接入的接口增多,请求的加载耗时随之增加,使得用户在触发请 求后等待较长时间才能看到加载的数据。
在相关技术中,可在服务器中增加用以缓存部分第三方数据,但由于来自不同数据 源的第三方数据存储在不同位置,因此,需分多次访问相应存储空间以取回数据,加载速 度仍随着数据源的增多而增加,难以令人满意。
发明内容
为克服相关技术中存在的问题,本公开提供一种加载多数据源的数据的方法,本公开 还提出了相应的装置和计算机可读存储程序。
根据本公开实施例的第一方面,提供一种加载多数据源数据的方法,其特征在于,所 述方法应用于服务器,所述方法包括:接收来自客户端的数据请求,所述数据请求携带用 户标识,所述数据请求用于请求来自多个数据源的对应于所述用户标识的数据;从数据库 中与所述用户标识关联的键对应的存储空间取得所请求的数据中的部分或全部,其中,来 自不同数据源的数据中对应于所述用户标识的数据均被存储在与所述用户标识关联的键 对应的存储空间;发送所取得的数据至所述客户端。
在一种可能的实现方式中,所述数据库为NoSQL(Not Only SQL)数据库。
在一种可能的实现方式中,所述数据库为HBase数据库,所述HBase数据库的行键(Row Key)包括所述用户标识。
在一种可能的实现方式中,所述方法还包括:访问不同数据源的数据接口以获取相应 的数据;将所获取的数据存储在所述数据库中,其中,在与各个用户标识关联的键对应的 存储空间存储所获取的各个数据源的数据中对应于相应用户标识的的数据。
在一种可能的实现方式中,从数据库中取得所请求的数据中的部分或全部由第一进程 执行;访问不同数据源对应的服务器以获取相应数据并将所获取的数据存储在所述数据库 中由第二进程执行,所述第一进程和所述第二进程是并发的不同进程。
在一种可能的实现方式中,所述方法还包括:针对所述多个数据源分别设置加载状态, 所述加载状态包括下列中的一者或多者:该数据源的数据未存储或不可用,并且该数据源 支持异步加载;该数据源的数据未存储或不可用,并且该数据源不支持异步加载;该数据 源的数据是可用的但可能存在更新的版本;该数据源的数据是最新版本。
在一种可能的实现方式中,所述从数据库中与所述用户标识关联的键对应的存储空间 取得所请求的数据中的部分或全部包括:在所述数据库未存储所请求的数据中的全部的情 况下,从所述存储空间取得所请求的数据中已存储在所述数据库的数据;在所述数据库已 存储所请求的数据中的全部的情况下,从所述存储空间取得所请求的数据中的全部。
在一种可能的实现方式中,所述方法还包括:发送数据完整性指示至所述客户端,所 述数据完整性指示用于指示发送至所述客户端的数据是否包括所请求的数据中的全部。
在一种可能的实现方式中,所述方法还包括:在所述数据库未存储所请求的数据中的 全部的情况下,发送取数指示至所述客户端,所述取数指示用于指示所述客户端何时从所 述数据库取剩余的所请求的数据。
在一种可能的实现方式中,所述方法还包括:发送所请求的数据中来自不同数据源的 数据的可用状态至所述客户端,所述可用状态包括下列中的一者或多者:该数据源的数据 是最新版本;该数据源的数据是可用的但可能存在更新的版本;该数据源的数据是不可用 的;未存储来自该数据源的数据。
根据本公开实施例的第二方面,提供一种加载多数据源数据的装置,其特征在于,所 述装置应用于服务器,所述装置包括:数据请求接收模块,被配置为接收来自客户端的数 据请求,所述数据请求携带用户标识,所述数据请求用于请求来自多个数据源的对应于所 述用户标识的数据;数据库取数模块,被配置为从数据库中与所述用户标识关联的键对应 的存储空间取得所请求的数据中的部分或全部,其中,来自不同数据源的数据中对应于所 述用户标识的数据均被存储在与所述用户标识关联的键对应的存储空间;数据发送模块, 被配置为发送所取得的数据至所述客户端。
在一种可能的实现方式中,所述数据库为NoSQL(Not Only SQL)数据库。
在一种可能的实现方式中,所述数据库为HBase数据库,所述HBase数据库的行键(Row Key)包括所述用户标识。
在一种可能的实现方式中,所述装置还包括:多数据源访问模块,被配置为访问不同 数据源的数据接口以获取相应的数据;数据库加载模块,被配置为将所获取的数据存储在 所述数据库中,其中,在与各个用户标识关联的键对应的存储空间存储所获取的各个数据 源的数据中对应于相应用户标识的的数据。
在一种可能的实现方式中,所述数据库取数模块在第一进程中实施;所述多数据源访 问模块和所述数据库加载模块在第二进程中实施,所述第一进程和所述第二进程是并发的 不同进程。
在一种可能的实现方式中,所述装置还包括:加载状态设置模块,被配置为针对所述 多个数据源分别设置加载状态,所述加载状态包括下列中的一者或多者:该数据源的数据 未存储或不可用,并且该数据源支持异步加载;该数据源的数据未存储或不可用,并且该 数据源不支持异步加载;该数据源的数据是可用的但可能存在更新的版本;该数据源的数 据是最新版本。
在一种可能的实现方式中,所述装置还包括:所述数据库取数模块包括:第一取数子 模块,被配置为在所述数据库未存储所请求的数据中的全部的情况下,从所述存储空间取 得所请求的数据中已存储在所述数据库的数据;第二取数子模块,被配置为在所述数据库 已存储所请求的数据中的全部的情况下,从所述存储空间取得所请求的数据中的全部。
在一种可能的实现方式中,所述装置还包括:完整性指示发送模块,被配置为发送数 据完整性指示至所述客户端,所述数据完整性指示用于指示发送至所述客户端的数据是否 包括所请求的数据中的全部。
在一种可能的实现方式中,所述装置还包括:取数指示发送模块,被配置为在所述数 据库未存储所请求的数据中的全部的情况下,发送取数指示至所述客户端,所述取数指示 用于指示所述客户端何时从所述数据库取剩余的所请求的数据。
在一种可能的实现方式中,所述装置还包括:可用状态发送模块,被配置为发送所请 求的数据中来自不同数据源的数据的可用状态至所述客户端,所述可用状态包括下列中的 一者或多者:该数据源的数据是最新版本;该数据源的数据是可用的但可能存在更新的版 本;该数据源的数据是不可用的;未存储来自该数据源的数据。。
根据本公开实施例的第三方面,提供一种加载多数据源数据的装置,包括:处理器; 用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行如上所述的方法。
根据本公开实施例的第四方面,提供一种非临时性计算机可读存储介质,当所述存储 介质中的指令由处理器执行时,使得处理器能够执行如上所述的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:当接收到来自客户端的多数 据源数据请求时,直接从数据库中与用户标识关联的键对应的存储空间取得来自所请求的 数据,而无需分别访问不同数据源的多个的数据接口或数据库中的不同存储空间,解除了 响应客户端的多数据源数据请求与访问不同数据源的数据接口间的耦合关系,有利于提高 多数据源数据的加载和刷新速度,有利于提升客户端的界面加载速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限 制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例, 并与说明书一起用于解释本公开的原理。
图1是根据一实施例的一种加载多数据源数据的方法的流程图。
图2是根据一示例性实施例的一种加载多数据源数据的方法的流程图。
图3是根据一示例性实施例的一种加载多数据源数据的方法的流程图。
图4是根据一实施例的一种加载多数据源数据的装置的框图。
图5是根据一示例性实施例的一种加载多数据源数据的装置的框图。
图6是根据一实施例的一种加载多数据源数据的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图 时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中 所描述的实施方式并不代表与本公开实施例相一致的所有实施方式。相反,它们仅是与如 所附权利要求书中所详述的、本公开实施例的一些方面相一致的装置和方法的例子。
图1是根据一实施例的一种加载多数据源数据的方法的流程图。所述方法可以应用于 服务器。所述方法包括以下步骤。
在步骤102中,接收来自客户端的数据请求,所述数据请求携带用户标识,所述数据 请求用于请求来自多个数据源的对应于所述用户标识的数据。
所述用户标识可以指能够用于唯一地区分标识该数据请求对应的业务的不同用户的 信息,例如,User ID、Subscriber ID等。
在步骤104中,从数据库中与所述用户标识关联的键对应的存储空间取得所请求的数 据中的部分或全部,其中,来自不同数据源的数据中对应于所述用户标识的数据均被存储 在与所述用户标识关联的键对应的存储空间。
在一种可能的实现方式中,所述数据库可以是NoSQL(Not Only SQL)数据库,SQL是Structured Query Language(结构化查询语言)的简称。本实现方式中,采用NoSQL 数据库使得数据存储架构具有高扩展性和很强的可伸缩性,非常适用于大量互联网用户多 数据源数据的存储。
在上述实现方式的一个示例中,所述数据库为HBase数据库,所述HBase数据库的行键(Row Key)包括所述用户标识。HBase数据库是Hadoop Database(Hadoop数据库) 的简称,其是一种高可靠性、高性能、面向列、可伸缩的分布式存储系统。根据本示例, 来自各个数据源的对应于同一个用户标识的数据可存储为HBase数据库中的一行,来自 同一数据源的数据可存储为HBase数据库中的一列。HBase的每一行可有任意数量的列, 非常便于根据需要进行数据伸缩,且在HBase数据库中可基于行键(Row Key)进行快速 查找。在本示例中,HBase数据库中的每个单元(cell)可以是字符串(string)形式的JSON 对象。
在步骤106中,发送所取得的数据至所述客户端。
上述实施例中,当接收到来自客户端的多数据源数据请求时,直接从数据库中与用户 标识关联的键对应的存储空间取得来自所请求的数据,而无需分别访问不同数据源的多个 的数据接口或数据库中的不同存储空间,解除了响应客户端的多数据源数据请求与访问不 同数据源的数据接口间的耦合关系,有利于提高多数据源数据的加载和刷新速度,有利于 提升客户端的界面加载速度。此外,应用本公开可以避免因某个数据源的数据接口不稳定 而可能导致的严重加载延时。
图2是根据一示例性实施例的一种加载多数据源数据的方法的流程图。如图2所示的 示例性实施例还包括步骤108和步骤109。
在步骤108中,访问不同数据源的数据接口以获取相应的数据。
在步骤110中,将所获取的数据存储在所述数据库中,其中,在与各个用户标识关联 的键对应的存储空间存储所获取的各个数据源的数据中对应于相应用户标识的的数据。
例如,设根据本公开实施例的数据库为HBase数据库,根据业务需要该HBase数据库中需存储A、B、C这三个第三方数据源的数据,并用户数量为100,依次用UID1、UID2、……、UID100标识,则可分别访问A、B、C三个数据源的数据接口以获取A、B、 C这三个数据源的数据,并将A、B、C三个数据源的数据中对应于UID1的数据均存储Row Key中包括UID1的行中,将A、B、C三个数据源的数据中对应于UID2的数据均 存储Row Key中包括UID2的行中,……,余者类似。其中,来自A数据源的数据处于 同一列,来自B数据源的数据处于同一列,来自C数据源的数据处于同一列。
在一个示例中,由第一进程执行上述步骤104,即从数据库中取得所请求的数据中的 部分或全部,例如,由第一进程执行步骤102、104和106;由第二进程执行步骤108和 步骤109,所述第一进程和所述第二进程是并发的不同进程,从而使得响应客户端的数据 请求和从第三方数据源加载数据到所述数据库这两个操作彼此独立,有利于进一步加快客户端的加载速度。第一进程可根据需要通知第二进程进行数据加载。例如,当数据库中未存储某数据源的数据时,或数据库中存储的某数据源的数据不可用(例如过期)时,或基 于用户指示要求刷新某数据源的数据时,或预测即将收到关于某数据源的数据请求时,第 一进程均可以通知第二进程进行数据加载。例如,针对HBase数据库,第二进程可基于 列进行加载,换言之,一次加载可更新一列,即更新来自某个数据源的所有数据。
第一和第二进程可以设置在同一设备上,也可以设置在不同设备上。从性能和安全性 考虑,可将服务器和数据库设置在不同设备上。
在一个示例中,所述方法还可以包括针对所述多个数据源分别设置加载状态,所述加 载状态包括下列中的一者或多者:该数据源的数据未存储或不可用,并且该数据源支持异 步加载;该数据源的数据未存储或不可用,并且该数据源不支持异步加载;该数据源的数 据是可用的但可能存在更新的版本;该数据源的数据是最新版本。
例如,上述加载状态可以是由第一进程设置的,并在通知第二进程进行数据加载时将 要加载的数据源对应的加载状态发送给第二进程,第二进程可根据加载状态确定不同数据 源的数据加载顺序和/或加载方式。
上述异步加载可以采用诸如Talos消息队列、RabbitMQ消息队列等消息队列方式。
此处数据源的数据未存储,指上述数据库中未存储该数据源的数据;此处数据源的数 据不可用,指上述数据库中虽存储有该数据源的数据但该数据是不可用的(例如过期等)。 此处数据源的数据未存储和不可用可以用不用标识符表示,也可用同一标识符表示。例如 可以用第一标识表示数据源的数据未存储,并且该数据源支持异步加载,用第二标识表示 数据源的数据不可用,并且该数据源支持异步加载;也可以用同一个标识来表示这两种情 况,本公开实施例对此不作限定。
图3是根据一示例性实施例的一种加载多数据源数据的方法的流程图。以下将参照图 3描述本示例性实施例的多种可能的实现方式。
在一种可能的实现方式中,上述步骤104可以包括步骤1042和步骤1044。
在步骤1042中,在所述数据库未存储所请求的数据中的全部的情况下,从所述存储 空间取得所请求的数据中已存储在所述数据库的数据。
在步骤1044中,在所述数据库已存储所请求的数据中的全部的情况下,从所述存储 空间取得所请求的数据中的全部。
此处,所述数据库未存储所请求的数据中的全部,可以指所请求的数据均尚未存储在 所述数据库中(例如第一次进行数据请求时);也可以指所请求的数据库中的一部分已存 储在所述数据库中,还有一部分(或者说剩余部分)尚未存储在所述数据库中。设所请求 的数据包括来自A、B、C三个数据源的数据,如果数据库中还未存储数据源A的数据, 则认为所请求的来自数据源A的数据未存储在所述数据库中;如果数据库中虽存储有数 据源A的数据,但该数据是不可用的(例如已过期等),同样认为所请求的来自数据源 A的数据未存储在所述数据库中,即此时虽然存储有来自数据源A的数据,但该数据不 是所请求的数据,或者说该数据不是所期望的数据。
根据本实施例,可以将已存储的所请求的数据先发送至客户端,使得客户端至少能够 尽快呈现部分内容。
在一种可能的实现方式中,所述方法还包括步骤112:发送数据完整性指示至所述客 户端,所述数据完整性指示用于指示发送至所述客户端的数据是否包括所请求的数据中的 全部。
在一种可能的实现方式中,所述方法还包括步骤114:发送所请求的数据中来自不同 数据源的数据的可用状态至所述客户端,所述可用状态包括下列中的一者或多者:该数据 源的数据是最新版本;该数据源的数据是可用的但可能存在更新的版本;该数据源的数据 是不可用的;未存储来自该数据源的数据。
例如,所请求的数据包括来自A、B、C、D、E这5个数据源的数据,其中,A数据 源的数据的可用状态为最新版本;B数据源的数据的可用状态为可用但可能存在更新的版 本;C数据源的数据的可用状态为不可用;D数据源的数据的可用状态为未存储,即上述 数据库中未存储来自D数据源的数据。服务器可发送所请求的来自数据源A和B的数据 至客户端,并发送所请求的来自数据源A、B、C和D的可用状态至客户端。
针对B数据源,第一进程可将该信息(例如以上文中加载状态的形式)告知第二进程,由第二进程决定是否重新加载B数据源的数据以及何时加载,第一进程也可直接通 知第二进程加载B数据源的数据,或者基于客户端针对该可用状态的反馈来确定是否加 载B数据源的数据等等,本公开实施例对此不作限定;针对C、D数据源,第一进程可 直接通知第二进程加载C数据源和D数据源的数据,在通知的同时可告知该可用状态(例 如以上文中加载状态的形式)。本公开实施例对此不作限定。
可以根据加载数据的时间戳信息来确定可用状态。例如,确定在某个时间段内加载的 数据的可用状态为最新版本;确定在某个时间段内加载的数据的可用状态为可用但可能存 在更新的版本;确定在某个时间之前加载的数据的可用状态为不可用等等。针对不同数据 源,上述时间段的设置可能是不同的。
在一种可能的实现方式中,所述方法还包括步骤116:在所述数据库未存储所请求的 数据中的全部的情况下,发送取数指示至所述客户端,所述取数指示用于指示所述客户端 何时从所述数据库取剩余的所请求的数据。
例如,当所请求的来自某些数据源的数据未存储在所述数据库中时,或者所请求的来 自某些数据源的数据虽然存储在所述数据库中但这些数据已经不可用时,第一进程可将所 请求的数据中已存储在所述数据库中的数据返回所述客户端,并向所述客户端发送取数指 示,告知所述客户端在多少时间后再来取剩余的数据,同时通知第二进程加载相应数据源 的数据。
根据本实现方式,可以避免客户端因为等待太长时间才来再次取数而导致不必要的加 载耗时,或者因频繁发送数据请求而导致额外开销。
本领域技术人员可以理解的是,发送所请求的数据、发送数据完整性指示、发送可用 状态、发送取数指示间没有必然的先后关系,例如,可以同时发送这些信息(在需要发送相应信息的情况下)。
图4是根据一实施例的一种加载多数据源数据的装置400的框图。所述装置400可以 应用于服务器。参照图4,所述装置400包括数据请求接收模块402、数据库取数模块404和数据发送模块406。
所述数据请求接收模块402被配置为接收来自客户端的数据请求,所述数据请求携带 用户标识,所述数据请求用于请求来自多个数据源的对应于所述用户标识的数据。
所述数据库取数模块404被配置为从数据库中与所述用户标识关联的键对应的存储 空间取得所请求的数据中的部分或全部,其中,来自不同数据源的数据中对应于所述用户 标识的数据均被存储在与所述用户标识关联的键对应的存储空间。
所述数据发送模块406被配置为发送所取得的数据至所述客户端。
在一种可能的实现方式中,所述数据库为NoSQL(Not Only SQL)数据库。
在一种可能的实现方式中,所述数据库为HBase数据库,所述HBase数据库的行键(Row Key)包括所述用户标识。
图5是根据一示例性实施例的一种加载多数据源数据的装置400的框图。以下将参照 图5描述本示例性实施例的多种可能的实现方式。
在一种可能的实现方式中,所述装置400还包括:多数据源访问模块408,被配置为访问不同数据源的数据接口以获取相应的数据;数据库加载模块410,被配置为将所获取的数据存储在所述数据库中,其中,在与各个用户标识关联的键对应的存储空间存储所获取的各个数据源的数据中对应于相应用户标识的的数据。
在一种可能的实现方式中,所述数据库取数模块在第一进程中实施;所述多数据源访 问模块和所述数据库加载模块在第二进程中实施,所述第一进程和所述第二进程是并发的 不同进程。
在一种可能的实现方式中,所述装置400还包括:加载状态设置模块412,被配置为针对所述多个数据源分别设置加载状态,所述加载状态包括下列中的一者或多者:该数据源的数据未存储或不可用,并且该数据源支持异步加载;该数据源的数据未存储或不可用,并且该数据源不支持异步加载;该数据源的数据是可用的但可能存在更新的版本;该数据源的数据是最新版本。
在一种可能的实现方式中,所述数据库取数模块404包括:第一取数子模块4042,被配置为在所述数据库未存储所请求的数据中的全部的情况下,从所述存储空间取得所请求的数据中已存储在所述数据库的数据;第二取数子模块4044,被配置为在所述数据库 已存储所请求的数据中的全部的情况下,从所述存储空间取得所请求的数据中的全部。
在一种可能的实现方式中,所述装置400还包括完整性指示发送模块414,被配置为 发送数据完整性指示至所述客户端,所述数据完整性指示用于指示发送至所述客户端的数 据是否包括所请求的数据中的全部。
在一种可能的实现方式中,所述装置400还包括取数指示发送模块416,被配置为在 所述数据库未存储所请求的数据中的全部的情况下,发送取数指示至所述客户端,所述取 数指示用于指示所述客户端何时从所述数据库取剩余的所请求的数据。
在一种可能的实现方式中,所述装置400还包括可用状态发送模块418,被配置为发 送所请求的数据中来自不同数据源的数据的可用状态至所述客户端,所述可用状态包括下 列中的一者或多者:该数据源的数据是最新版本;该数据源的数据是可用的但可能存在更 新的版本。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实 施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种加载多数据源数据的装置1900的框图。例如, 装置1900可以被提供为服务器。参照图6,装置1900包括处理组件1922,其进一步包括一个或多个处理器,以及由存储器1932所代表的存储器资源,用于存储可由处理组件1922的执行的指令,例如应用程序。存储器1932中存储的应用程序可以包括一个或一个以上 的每一个对应于一组指令的模块。此外,处理组件1922被配置为执行指令,以执行上述 方法。
装置1900还可以包括一个电源组件1926被配置为执行装置1900的电源管理,一个有线或无线网络接口1950被配置为将装置1900连接到网络,和一个输入输出(I/O)接 口1958。装置1900可以操作基于存储在存储器1932的操作系统,例如Windows ServerTM, MacOS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开实施例的 其它实施方案。本申请旨在涵盖本公开实施例的任何变型、用途或者适应性变化,这些变 型、用途或者适应性变化遵循本公开实施例的一般性原理并包括本公开实施例未公开的本 技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开实施 例的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开实施例并不局限于上面已经描述并在附图中示出的精确结构, 并且可以在不脱离其范围进行各种修改和改变。本公开实施例的范围仅由所附的权利要求 来限制。

Claims (22)

1.一种加载多数据源数据的方法,其特征在于,所述方法应用于服务器,所述方法包括:
接收来自客户端的数据请求,所述数据请求携带用户标识,所述数据请求用于请求来自多个数据源的对应于所述用户标识的数据;
从数据库中与所述用户标识关联的键对应的存储空间取得所请求的数据中的部分或全部,其中,来自不同数据源的数据中对应于所述用户标识的数据均被存储在与所述用户标识关联的键对应的存储空间;
发送所取得的数据至所述客户端。
2.根据权利要求1中任意一者所述的方法,其特征在于:
所述数据库为NoSQL(Not Only SQL)数据库。
3.根据权利要求2所述的方法,其特征在于:
所述数据库为HBase数据库,所述HBase数据库的行键(Row Key)包括所述用户标识。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
访问不同数据源的数据接口以获取相应的数据;
将所获取的数据存储在所述数据库中,其中,在与各个用户标识关联的键对应的存储空间存储所获取的各个数据源的数据中对应于相应用户标识的的数据。
5.根据权利要求4所述的方法,其特征在于:
从数据库中取得所请求的数据中的部分或全部由第一进程执行;
访问不同数据源对应的服务器以获取相应数据并将所获取的数据存储在所述数据库中由第二进程执行,所述第一进程和所述第二进程是并发的不同进程。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对所述多个数据源分别设置加载状态,所述加载状态包括下列中的一者或多者:
该数据源的数据未存储或不可用,并且该数据源支持异步加载;
该数据源的数据未存储或不可用,并且该数据源不支持异步加载;
该数据源的数据是可用的但可能存在更新的版本;
该数据源的数据是最新版本。
7.根据权利要求1所述的方法,其特征在于,所述从数据库中与所述用户标识关联的键对应的存储空间取得所请求的数据中的部分或全部包括:
在所述数据库未存储所请求的数据中的全部的情况下,从所述存储空间取得所请求的数据中已存储在所述数据库的数据;
在所述数据库已存储所请求的数据中的全部的情况下,从所述存储空间取得所请求的数据中的全部。
8.根据权利要求1或7所述的方法,其特征在于,所述方法还包括:
发送数据完整性指示至所述客户端,所述数据完整性指示用于指示发送至所述客户端的数据是否包括所请求的数据中的全部。
9.根据权利要求1或7所述的方法,其特征在于,所述方法还包括:
在所述数据库未存储所请求的数据中的全部的情况下,发送取数指示至所述客户端,所述取数指示用于指示所述客户端何时从所述数据库取剩余的所请求的数据。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
发送所请求的数据中来自不同数据源的数据的可用状态至所述客户端,所述可用状态包括下列中的一者或多者:
该数据源的数据是最新版本;
该数据源的数据是可用的但可能存在更新的版本;
该数据源的数据是不可用的;
未存储来自该数据源的数据。
11.一种加载多数据源数据的装置,其特征在于,所述装置应用于服务器,所述装置包括:
数据请求接收模块,被配置为接收来自客户端的数据请求,所述数据请求携带用户标识,所述数据请求用于请求来自多个数据源的对应于所述用户标识的数据;
数据库取数模块,被配置为从数据库中与所述用户标识关联的键对应的存储空间取得所请求的数据中的部分或全部,其中,来自不同数据源的数据中对应于所述用户标识的数据均被存储在与所述用户标识关联的键对应的存储空间;
数据发送模块,被配置为发送所取得的数据至所述客户端。
12.根据权利要求11中任意一者所述的装置,其特征在于:
所述数据库为NoSQL(Not Only SQL)数据库。
13.根据权利要求12所述的装置,其特征在于:
所述数据库为HBase数据库,所述HBase数据库的行键(Row Key)包括所述用户标识。
14.根据权利要求11所述的装置,其特征在于,所述装置还包括:
多数据源访问模块,被配置为访问不同数据源的数据接口以获取相应的数据;
数据库加载模块,被配置为将所获取的数据存储在所述数据库中,其中,在与各个用户标识关联的键对应的存储空间存储所获取的各个数据源的数据中对应于相应用户标识的的数据。
15.根据权利要求14所述的装置,其特征在于:
所述数据库取数模块在第一进程中实施;
所述多数据源访问模块和所述数据库加载模块在第二进程中实施,所述第一进程和所述第二进程是并发的不同进程。
16.根据权利要求11所述的装置,其特征在于,所述装置还包括:
加载状态设置模块,被配置为针对所述多个数据源分别设置加载状态,所述加载状态包括下列中的一者或多者:
该数据源的数据未存储或不可用,并且该数据源支持异步加载;
该数据源的数据未存储或不可用,并且该数据源不支持异步加载;
该数据源的数据是可用的但可能存在更新的版本;
该数据源的数据是最新版本。
17.根据权利要求11所述的装置,其特征在于,所述数据库取数模块包括:
第一取数子模块,被配置为在所述数据库未存储所请求的数据中的全部的情况下,从所述存储空间取得所请求的数据中已存储在所述数据库的数据;
第二取数子模块,被配置为在所述数据库已存储所请求的数据中的全部的情况下,从所述存储空间取得所请求的数据中的全部。
18.根据权利要求11或17所述的装置,其特征在于,所述装置还包括:
完整性指示发送模块,被配置为发送数据完整性指示至所述客户端,所述数据完整性指示用于指示发送至所述客户端的数据是否包括所请求的数据中的全部。
19.根据权利要求11或17所述的装置,其特征在于,所述装置还包括:
取数指示发送模块,被配置为在所述数据库未存储所请求的数据中的全部的情况下,发送取数指示至所述客户端,所述取数指示用于指示所述客户端何时从所述数据库取剩余的所请求的数据。
20.根据权利要求11所述的装置,其特征在于,所述装置还包括:
可用状态发送模块,被配置为发送所请求的数据中来自不同数据源的数据的可用状态至所述客户端,所述可用状态包括下列中的一者或多者:
该数据源的数据是最新版本;
该数据源的数据是可用的但可能存在更新的版本;
该数据源的数据是不可用的;
未存储来自该数据源的数据。
21.一种加载多数据源数据的装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行根据权利要求1-10中任意一者所述的方法。
22.一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得处理器能够执行根据权利要求1-10中任意一者所述的方法。
CN201711319369.9A 2017-12-12 2017-12-12 加载多数据源数据的方法和装置 Pending CN107977448A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711319369.9A CN107977448A (zh) 2017-12-12 2017-12-12 加载多数据源数据的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711319369.9A CN107977448A (zh) 2017-12-12 2017-12-12 加载多数据源数据的方法和装置

Publications (1)

Publication Number Publication Date
CN107977448A true CN107977448A (zh) 2018-05-01

Family

ID=62010132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711319369.9A Pending CN107977448A (zh) 2017-12-12 2017-12-12 加载多数据源数据的方法和装置

Country Status (1)

Country Link
CN (1) CN107977448A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111581305A (zh) * 2020-05-18 2020-08-25 北京字节跳动网络技术有限公司 特征处理方法、装置、电子设备和介质
WO2021103409A1 (zh) * 2019-11-26 2021-06-03 深圳壹账通智能科技有限公司 一种数据生成方法、装置、电子设备及存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021103409A1 (zh) * 2019-11-26 2021-06-03 深圳壹账通智能科技有限公司 一种数据生成方法、装置、电子设备及存储介质
CN111581305A (zh) * 2020-05-18 2020-08-25 北京字节跳动网络技术有限公司 特征处理方法、装置、电子设备和介质
CN111581305B (zh) * 2020-05-18 2023-08-08 抖音视界有限公司 特征处理方法、装置、电子设备和介质

Similar Documents

Publication Publication Date Title
CN109086409B (zh) 微服务数据处理方法、装置、电子设备及计算机可读介质
US8200705B2 (en) Method and apparatus for applying database partitioning in a multi-tenancy scenario
US7349929B2 (en) Accessing data based on user identity
CN107798108B (zh) 一种异步任务查询方法及设备
US11893000B2 (en) Data processing methods, apparatuses and devices
US10417248B2 (en) Field extension in database system
CN109447274B (zh) 用于执行机器学习的分布式系统及其方法
US10320937B2 (en) Community notification based on profile update
US7650609B2 (en) Multi-environment document management system access
CN110309334A (zh) 图数据库的查询方法、系统、计算机设备和可读存储介质
JP2010026653A (ja) データアクセス制御方法、データアクセス制御装置、及びプログラム
US10244068B2 (en) System and method for providing distributed caching in a transactional processing environment
CN105630819A (zh) 一种缓存数据的刷新方法和装置
US20180293257A1 (en) Method for accessing distributed database and distributed data service apparatus
CN107729353B (zh) 用于执行机器学习的分布式系统及其方法
CN106712981A (zh) 一种节点变更通知方法及装置
CN106911782A (zh) 一种数据读取方法及装置
JP2013015991A (ja) 情報処理装置、サーバ選択方法、及びプログラム
CN107977448A (zh) 加载多数据源数据的方法和装置
US9330123B2 (en) Method and system for improving information system performance based on usage patterns
US20230205619A1 (en) Common platform for fulfilling different actions
CN107733709A (zh) 数据存储方法、装置及电子设备
CN112596820A (zh) 一种资源加载方法、装置、设备以及存储介质
CN111506644B (zh) 一种应用数据处理方法、装置和电子设备
CN105760396B (zh) 一种网页加载方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20180501

RJ01 Rejection of invention patent application after publication