CN107122364B - 数据操作方法和数据管理服务器 - Google Patents
数据操作方法和数据管理服务器 Download PDFInfo
- Publication number
- CN107122364B CN107122364B CN201610103689.XA CN201610103689A CN107122364B CN 107122364 B CN107122364 B CN 107122364B CN 201610103689 A CN201610103689 A CN 201610103689A CN 107122364 B CN107122364 B CN 107122364B
- Authority
- CN
- China
- Prior art keywords
- data
- database
- tenant
- query language
- structured query
- 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.)
- Active
Links
- 238000013523 data management Methods 0.000 title claims abstract description 72
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012545 processing Methods 0.000 claims description 22
- 238000013507 mapping Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000013499 data model Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24532—Query optimisation of parallel queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24535—Query rewriting; Transformation of sub-queries or views
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种数据操作方法和数据管理服务器。方法包括:获取租户的标识和数据操作请求,数据操作请求用于请求对租户的数据进行数据操作,数据操作请求包括数据对应的第一表名;根据租户的标识和第一表名确定数据在第一数据库中对应的数据表的第二表名,其中第一数据库用于存储多个租户各自的数据表,每个租户的数据表与每个租户的标识相对应,该租户为多个租户之一;将数据操作请求对应的第一SQL中的第一表名替换为第二表名;请求第一数据库执行替换后的第一SQL,以完成对数据的数据操作。本发明实施例能够避免复杂的SQL重写过程,提高数据操作效率,同时还能够防止租户之间数据干扰,保证数据安全。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据操作方法和数据管理服务器。
背景技术
基于资源最大化共享的目的,在数据库存储数据时,软件即服务(Software as aservice,简称SaaS)提供商优先选择共享数据库、共享数据表模式,即在数据库中的一个数据表中同时存储多个租户的数据,通过租户标识字段识别数据所属的租户,这样能够实现数据库资源共享程度最高、资源开销最小,从而支持大规模中小企业达到收益最大化。现有技术中,在共享数据库、共享数据表模式下租户定制字段有着有巨大的差异性,导致实现租户定制需求非常复杂。
现有技术在解决租户灵活定制的同时带来数据读写复杂的问题,而这种复杂性是不应该被用户感知的,用户只需知道表的所有字段(基线字段和租户的定制字段),并不需要关注数据库扩展的复杂数据存储模型。为了避免租户进行数据处理的复杂性并提高开发效率,现有数据管理模型需要对用户提交的数据操作结构化查询语言(Structured QueryLanguage,简称SQL)先解析,再根据定制元数据翻译重写面向实际存储模型的SQL,这个步骤一般都比较复杂,并且每次SQL请求都要重复该步骤,这样在大并发量时会消耗大量的性能资源,并降低系统性能。另外,由于多租户共享数据表,为了隔离租户数据,会在重写SQL时增加租户标识(Identification,简称ID)进行过滤,但这只是逻辑上隔离,数据并未进行物理隔离。在这种情况下,有可能出现在增加租户ID进行过滤之前,通过SQL注入等攻击方法绕过根据租户ID过滤的现象,发生租户之间的数据泄露干扰,因此存在潜在的数据安全隐患。
发明内容
本发明提供了一种数据操作方法和数据管理服务器,能够避免复杂的SQL重写过程,提高数据操作效率,同时能够保证租户的数据安全。
第一方面,提供了一种数据操作方法,所述方法包括:获取租户的标识和数据操作请求,所述数据操作请求用于请求对所述租户的数据进行数据操作,所述数据操作请求包括所述数据对应的第一表名;根据所述租户的标识和所述第一表名确定所述数据在所述第一数据库中对应的数据表的第二表名,其中所述第一数据库用于存储多个租户各自的数据表,每个租户的数据表与所述每个租户的标识相对应,所述租户为所述多个租户之一;将所述数据操作请求对应的第一结构化查询语言SQL中的所述第一表名替换为所述第二表名;请求所述第一数据库执行替换后的第一SQL,完成对所述数据的所述数据操作。其中,所述数据操作为读操作或写操作。
可选地,获取租户的标识包括:接收SaaS应用服务器发送的租户的标识。
可选地,获取数据操作请求对包括:接收SaaS应用服务器发送的数据操作请求。
需要说明的是,所述数据操作请求可以为SQL,也可以为其他查询语言,例如领域特定语言(Domain Specific Language,简称DSL)。
当所述数据操作请求为SQL时,所述第一SQL即为所述数据操作请求本身;当所述数据操作请求为其他查询语言时,所述方法还包括:将所述数据操作请求转换为SQL,得到所述第一SQL。
可选地,所述第一数据库为内存数据库。通过内存计算能够进一步提高数据操作性能。
本发明中,数据管理服务器只需将SQL中的数据对应的表名替换为该数据在数据库中对应的表名,然后请求数据库执行替换后的SQL即可对数据进行数据操作,能够避免复杂的SQL重写过程,提高数据操作效率。同时,由于在数据库中每个租户的数据表相互隔离,能够防止租户之间数据干扰,保证数据安全。
结合第一方面,在第一方面的第一种可能的实现方式中,在所述获取第一SQL之前,所述方法还包括:获取基线表的元数据;根据所述租户的标识和基线表的表名生成所述第二表名;根据所述第二表名和所述基线表的元数据生成第二SQL,所述第二SQL用于创建所述数据表;请求所述第一数据库执行所述第二SQL。
这样能够在第一数据库中为租户创建数据表。
例如,数据管理服务器可以被配置为当监测到所述租户开通了服务之后,根据所述租户的标识和所述基线表的表名生成所述第二表名,并根据所述第二表名和所述基线表的元数据生成用于创建所述数据表的第二SQL。此时,所述数据表包括基线字段。
可选地,当所述第一数据库创建的所述数据表无法满足所述租户的需求时,数据管理服务器可以获取所述租户提交的(例如通过SaaS应用服务器提交)更新数据表的请求。所述请求中可以包括所述租户的定制字段的元数据,所述数据管理服务器根据所述租户的定制字段的元数据生成用于更新所述数据表的SQL,并请求所述第一数据库执行所述SQL,即可完成所述租户的数据表的更新和扩展。这样能够满足多租户共享数据库情况下表结构的灵活扩展。此时,所述数据表包括基线字段和所述租户的定制字段。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述数据操作为写操作,所述方法还包括:获取所述数据表的数据更新信息;根据所述数据表的数据更新信息,对所述数据表中更新的数据进行备份。
其中,所述数据更新信息可以包括更新的字段名称以及更新的值。
当对第一数据库中的数据表进行写操作时,数据表中的数据会发生变化,此时获取数据表的数据更新信息,对数据表中更新的数据进行备份能保证数据的持久化存储。
可选地,当所述数据操作为读操作时,对第一数据库中的数据表进行数据读操作,此时数据表中的数据不发生变化。
通过对第一数据库中存储的租户的数据表中的数据进行备份,能够保证数据安全,以对数据进行持久化的存储。
结合的第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据所述数据表的数据更新信息,对所述数据表中更新的数据进行备份包括:根据所述数据表的数据更新信息,请求第二数据库更新备份的所述数据表中的数据。
所述第二数据库用于对所述第一数据库中的所述多个租户的数据表中的数据进行备份。第一数据库也可以称为主数据库,第二数据库也可以称为从数据库。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,在所述第二数据库中所述多个租户各自的数据表中的数据存储在共享的业务数据表中,所述根据所述数据更新信息,请求第二数据库更新备份的所述数据表的数据包括:获取基线表的元数据;根据所述数据更新信息和所述基线表的元数据生成第三SQL,所述第三SQL用于更新所述业务数据表中所述数据表的数据;请求所述第二数据库执行所述第三SQL。
可选地,如果所述数据表为根据所述租户的定制字段更新后的数据表,此时所述数据表包括所述租户的定制字段,则所述方法还包括:
获取所述租户的定制字段的元数据和映射元数据,所述映射元数据用于指示所述数据表中所述租户的定制字段在所述业务数据表中所对应的字段;
所述根据所述数据更新信息和所述基线表的元数据生成第三SQL包括:
根据所述数据更新信息、所述基线表的元数据、所述租户的定制字段的元数据和所述映射元数据生成所述第三SQL。
所述第二数据库中可以采用共享的业务数据表存储多个租户的数据表中的数据,此时第二数据库的数据模型与第一数据库的数据模型不同,因此数据管理服务器需要根据第一数据库中的数据更新信息生成适用于第二数据库的SQL,以用于第二数据库更新数据的SQL。
可选地,在所述第二数据库中还可以分别存储多个租户各自的数据表,即所述第二数据库可以采用第一数据库相同的数据模型存储多个租户的数据。此时数据管理服务器请求第二数据库执行替换后的第一SQL即可完成对所述数据的所述数据操作。
结合第一方面的第二种至第四种可能的实现方式中的任一种可能的实现方式,在第一方面的第五种可能的实现方式中,所述获取所述数据表的数据更新信息包括:解析所述替换后的第一SQL,获取所述数据表的数据更新信息;或者,读取日志文件,获取所述数据表的数据更新信息。
例如,数据管理服务器可以定时检测第一数据库连接,获取数据操作的SQL。或者,数据管理服务器还可以定时读取日志文件更新时间或文件大小判断日志发生变更,读取变更后的数据进行分析获取数据更新信息。
结合第一方面或第一方面的上述任一种可能的实现方式,在第一方面的第六种可能的实现方式中,还包括:当所述第一数据库中的基线表的元数据和/或所述租户的定制字段的元数据发生变更时,根据变更后的基线表的元数据和/或所述租户的定制字段的元数据生成第四SQL,所述第四SQL用于更新所述数据表;请求所述第一数据库执行所述第四SQL。
通过根据变更后的基线表的元数据和/或租户的定制字段的元数据生成SQL,并在第一数据库中执行该SQL,能够实现基线表升级和/或租户再次定制数据表的同步。
第二方面,提供了一种数据管理服务器,包括用于执行第一方面或第一方面的任一种可能实现方式所述的方法的单元。
第三方面,提供了一种数据管理服务器,包括:处理器、存储器和总线系统,所述处理器和所述存储器通过所述总线系统相连,所述存储器用于存储指令,所述处理器用于执行该存储器存储的指令,使得所述数据管理服务器执行如第一方面或第一方面的任一种可能的实现方式所述的方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有程序,所述程序使得数据管理服务器执行上述第一方面或第一方面的任一种可能的实现方式所述的方法。
第五方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码被数据管理服务器运行时,使得所述数据管理服务器执行上述第一方面或第一方面的任一种可能的实现方式所述的方法。
本发明中,数据管理服务器只需将SQL中数据对应的表名替换为该数据在数据库中对应的表名,然后请求数据库执行替换后的SQL即可对数据进行数据操作,能够避免复杂的SQL重写过程,提高数据操作效率。同时,由于在数据库中每个租户的数据表相互隔离,能够防止租户之间数据干扰,保证数据安全。
附图说明
图1是根据本发明实施例的网络部署示意图;
图2是根据本发明实施例的数据管理服务器的结构示意图;
图3是根据本发明实施例的数据操作方法的示意性流程图;
图4是根据本发明另一实施例的数据管理服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
为方便理解本发明实施例,首先介绍本发明实施例描述中涉及到的术语:
基线表(Baseline Table)的元数据:定义基线表的信息描述,包括但不限于表名、字段名(Field Name)、字段类型(Field Type)、索引、主键、外键等;
定制字段的元数据:定义定制字段的信息描述,包括但不限于字段名、字段类型、索引等;
定制表的元数据:定义定制表的信息描述,包括但不限于表名、字段名、字段类型、索引、主键、外键等,其中定制表由多个定制字段组成;
租户:订购使用SaaS应用系统的企业,企业职员为用户。
例如,字段类型可以为“int”、“string”等。以租户的数据表为职员表为例,租户的数据表中字段名可以包括Name(姓名)、Age(年龄)、Sex(性别)、Tel(电话)等。
下文中将基线表中的字段描述为基线字段。数据库创建的每个租户的数据表中均包括基线字段,根据租户的个性化定制需求,还可以包括租户的定制字段。
本发明实施例中在多租户共享的数据库中面向租户进行数据建模,根据租户定制扩展模型构建租户特有的数据模型,为租户提供数据读写。每个租户的数据作为独立的数据表进行存储,每个租户的数据表和每个租户的标识相对应,使得各个租户的数据表之间形成物理隔离。也就是说,每个数据表只存一个租户的数据,每个数据表包括基线字段和一个租户所有的定制字段。同时,租户的数据读写操作重定向到数据库中该租户的数据表,无需进行复杂的SQL解析、重写过程,提升了操作的灵活性。另外租户的数据表从物理上进行隔离能够避免数据泄露干扰,保证数据安全。
为了保证数据的持久化存储,还可以对数据库中存储的租户的数据表进行备份。
例如,可以采用文件存储的方式对该数据库中所有租户的数据进行备份,如可以采用Json格式或XML(Extensible Markup Language,可扩展标记语言)格式的文件存储。还可以采用磁盘存储的方式对该数据库中所有租户的数据进行备份。
还可以通过另一数据库中对租户的数据进行备份。例如,主数据库用于存储多个租户各自的数据表,每个租户的数据表与每个租户的标识相对应,从数据库用于对主数据库中存储的租户的数据进行备份。例如,从数据库中所有租户可以共享业务数据表,该业务数据表包括所有租户的数据表中的数据;或者从数据库中也可以按照主数据库中的数据模型存储多个租户的数据表。
图1是本发明实施例的网络部署示意图。应注意,图1所示仅以从数据库对主数据库备份为例进行描述,还可以采用上述其他方式对主数据库中的数据进行备份。
租户的用户可以通过SaaS应用服务器发起数据操作请求。
SaaS应用服务器可以根据发起数据操作请求的用户所属的租户的标识,请求数据管理服务器按租户读、写数据。
数据管理服务器可以监听SaaS应用服务器发起的连接,获取租户发起的数据操作请求,并请求主数据库执行相应的数据操作。数据管理服务器还可以根据基线表的元数据、租户的定制字段的元数据请求主数据库为租户创建包含基线字段和租户的定制字段的数据表。
主数据库面向租户进行数据建模,根据租户的定制扩展模型构建租户特有的数据模型,为租户提供数据操作。租户的数据读写都重定向到数据库中租户的数据表,能够避免复杂的SQL重写过程,提高数据操作效率。主数据库可以包括多个租户各自的数据表。每个租户的数据表与每个租户的标识相对应。主数据库可以根据数据管理服务器的请求对租户的数据表执行相应的数据操作。
由于租户的数据表形成了物理隔离,使得租户只能对租户自身的数据表进行数据操作,防止了租户之间的数据干扰,保证了租户的数据安全。
每个租户的数据表可以包括基线表字段和租户的定制字段。基线表字段和租户的定制字段的类型可以一致。
从数据库可以用于备份主数据库。例如,从数据库可以存储多个租户共享的业务数据表,业务数据表包括数据库中的多个租户的数据表的数据,通过租户的标识字段值进行租户数据隔离。从数据库中表结构可以保持不变,以固定模型存储多租户数据,可以实现对主数据库中的数据进行稳定长久的存储。
主数据库在对数据表进行数据操作时,对数据表的数据写操作通过异步的方式把写的数据更新到从数据库中进行存储。例如,数据管理服务器监听到主数据库完成对数据的数据操作并把操作结果反馈给SaaS应用服务器之后,数据管理服务器再请求从数据库执行主数据库中的数据操作。
另外,为了保证主数据库和从数据库的数据同步保持一致,如果从数据在执行更新数据的备份过程中失败时,数据管理服务器还可以请求主数据库将数据恢复到更新之前的值。
需要说明的是,当主数据库可用时,数据管理服务器可以优先在主数据库中进行数据操作。当主数据库不可用时,数据管理服务器还可以通过SQL翻译、重写直接请求从数据库进行数据操作。
本发明实施例中,可以建立包括主数据库和从数据库的二级数据库,以从数据库作为一级数据库构建租户数据扩展模型并根据扩展模型存储租户数据且保证数据结构的固定性;以主数据库作为二级数据库面向租户进行数据建模,根据租户定制扩展模型构建租户特有的数据模型,为租户提供数据读写,所有租户数据读写都重定向到主数据库中租户的数据表,能够避免复杂的SQL重写过程,提高数据操作效率,同时能够保证租户的数据安全。
图2所示为根据本发明实施例的数据管理服务器200的结构示意图。如图2所示,数据管理服务器200可包括处理器201、存储器202、网络接口203和总线系统204。
数据管理服务器200可以通过网络接口203与SaaS应用服务器进行通信。
处理器201控制数据管理服务器200的操作,处理器201还可以称为中央处理单元(Central Processing Unit,简称CPU)。存储器202可以包括只读存储器和随机存取存储器,并向处理器201提供指令和数据。存储器202的一部分还可以包括非易失性随机存取存储器(NVRAM)。具体的应用中,客户端200的各个组件通过总线系统204耦合在一起,其中总线系统204除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统204。
在本发明实施例中,处理器201可以通过调用存储器202存储的操作指令,使得数据管理服务器执行根据本发明实施例的数据操作方法的相应流程,具体可参考下文图3所示的根据本发明实施例的数据操作方法300的相关描述,为避免重复,在此不再赘述。
下文中本发明实施例揭示的数据操作方法300可以应用于处理器201中,或者由处理器201实现。处理器201可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器201中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器201可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器202,处理器201读取存储器202中的信息,结合其硬件完成本发明实施例所公开的方法的步骤。
存储器202中还可以存储创建数据表所需的数据,例如,基线表的元数据、定制字段的元数据、定制表的元数据、映射元数据等。
图3是根据本发明实施例的数据操作方法300的示意性流程图。如图3所示,数据操作方法300包括如下内容。
301、租户的用户向SaaS应用服务器提交请求信息,请求对租户的数据进行数据操作。
具体的,数据操作为读操作或写操作。
302、SaaS应用服务器根据用户提交的请求信息,确定该数据操作对应的SQL,该SQL中包括该数据对应的第一表名。
第一表名可以为租户获知的表名。例如,第一表名可以为呈现给租户的表名。第一表名可以与基线表的表名一致。
另外,SaaS应用服务器还可以根据用户的标识确定该用户所属的租户的标识。
303、SaaS应用服务器与数据管理服务器建立连接,向数据管理服务器发送该SQL。
可选地,还可以向数据管理服务器发送该租户的标识。
需要说明的是,SaaS应用服务器可以同时发送SQL和租户的标识,也可以分开发送SQL和租户的标识,本发明实施例对此并不限定。
304、数据管理服务器接收SaaS应用服务器发送的SQL和租户的标识,根据租户的标识和第一表名确定该数据在主数据库中对应的数据表的第二表名,并将该SQL中的第一表名替换为第二据表名。
第二表名为该数据对应的数据表在第一数据库中存储的表名。第一表名与租户的标识无关,第二表名与租户的标识相关。例如,第一表名为“职员表”,第二表名为“职员表-租户A”。
305、数据管理服务器请求主数据库中执行替换后的SQL。
306、主数据库执行替换后的SQL,完成对该租户的数据的数据操作。
具体的,主数据库根据第二表名确定执行数据操作的数据表,对该数据表中的数据进行数据操作。
本发明实施例中,数据管理服务器只需将SQL中数据对应的表名替换为该数据在数据库中对应的表名,然后请求数据库执行替换后的SQL即可对数据进行数据操作,能够避免复杂的SQL重写过程,提高数据操作效率。同时,由于在数据库中每个租户的数据表相互隔离,能够防止租户之间数据干扰,保证数据安全。
需要说明的是,当数据操作为写操作时,由于主数据库中数据表的数据发生了变更,需要将发生变更的信息同步到从数据库中。此时,还需要执行以下步骤307~309。
307、数据管理服务器获取数据表的数据更新信息。
数据更新信息可以包括更新的字段名称和更新的值。
308、数据管理服务器根据数据表的数据更新信息,请求从数据库更新存储的数据。
例如,从数据库中多个租户的数据存储在共享的业务数据表中。具体地,数据管理服务器可以获取基线表的元数据、租户的定制字段元数据和映射元数据,该映射元数据用于指示数据表中租户的定制字段在从数据库存储的业务数据表中所对应的字段;根据数据更新信息、基线表的元数据、租户的定制字段的元数据和映射元数据生成SQL,该SQL用于更新该数据表;请求从数据库执行该SQL。
例如,映射元数据中可以包括租户的标识、租户的定制字段与业务数据表中的字段的对应关系。表1所示为租户的定制字段的元数据的例子,表2所示为映射元数据的例子,表3所示为从数据库中租户共享的业务数据表的例子,根据表2即可确定各租户的定制字段在业务数据表中所对应的字段。
表1
租户(Tenant) | 表名(Table Name) | 字段名(Field Name) | 类型(Type) |
A | 职员表 | 性别 | string |
B | 职员表 | 年龄 | int |
B | 职员表 | ID | string |
C | 职员表 | string | |
C | 职员表 | 电话 | string |
C | 职员表 | 年龄 | int |
表2
租户 | 表名 | 字段名 | 映射字段名 |
A | 职员表 | 性别 | flex0 |
B | 职员表 | 年龄 | flex0 |
B | 职员表 | ID | flex1 |
C | 职员表 | flex0 | |
C | 职员表 | 电话 | flex1 |
C | 职员表 | 年龄 | flex2 |
表3
租户 | 表名 | flex0 | flex1 | flex2 | … | flex n |
A | 职员表 | 男性 | ||||
B | 职员表 | 25 | 100A | |||
C | 职员表 | 1452 | 135… | 30 |
需要说明的是,如果租户的数据表中只包括基线字段时,数据管理服务器根据数据更新信息和基线表的元数据生成用于更新数据的SQL,请求从数据库执行该SQL即可完成更新。
309、从数据库更新业务数据表的数据。
需要说明的是,在步骤301之前,数据管理服务器还需要在主数据库中为每个租户创建数据表。具体地,数据管理服务器根据租户的标识和基线表的表名生成租户的数据表在主数据库中存储的表名(即第二表名),并根据该租户的数据表的表名和基线表的元数据生成用于创建该租户的数据表的SQL,然后请求所述主数据库执行该SQL,创建该租户的数据表。此时,创建的该租户的数据表中只包括基线字段。
可选地,当第一数据库创建的数据表无法满足租户的需求时,租户可以提交(例如通过SaaS应用服务器提交)更新数据表的请求,相应地数据管理服务器可以获取该更新数据表的请求。该请求中可以包括租户的定制字段的元数据,数据管理服务器根据租户的定制字段的元数据生成用于更新数据表的SQL,并请求所述第一数据库执行该SQL,即可完成租户的数据表的更新和扩展,这样能够满足多租户共享数据库情况下表结构的灵活扩展。此时,更新后的数据表包括基线字段和租户的定制字段。
可选地,初始启动从数据库时,如果从数据库检测到主数据库中数据表创建完成,则从数据库会按租户将初始化数据同步到租户在主数据库中的数据表中。将初始化数据同步到租户的数据表中之后,用户可以通过数据管理服务器对主数据库中的数据表进行数据操作。其中,初始化数据可以包括系统通用数据以及初始化运行所需的数据。
相应地,数据管理服务器还可以接收从数据库的数据同步请求,并根据该数据同步请求,请求主数据库中将该初始化数据同步到为租户创建的数据表中。
图4是根据本发明实施例的数据管理服务器的结构示意图。如图4所示,数据管理服务器400包括:获取单元410和处理单元420。
获取单元410用于获取租户的标识和数据操作请求,数据操作请求用于请求对租户的数据进行数据操作,数据操作请求包括数据对应的第一表名。
处理单元420用于根据获取单元410获取的租户的标识和第一表名确定数据在第一数据库中对应的数据表的第二表名,其中第一数据库用于存储多个租户的数据表,每个租户的数据表与每个租户的标识相对应,该租户为多个租户之一。
第一数据库可以为内存数据库,这样能够进一步提高数据的读写操作效率。
处理单元420还用于将数据操作请求对应的第一SQL中的第一表名替换为第二表名;并请求第一数据库执行替换后的第一SQL,以完成对数据表中数据的数据操作。
本发明实施例中,数据管理服务器只需将SQL中的表名替换为在数据库中的表名,然后请求数据库执行替换后的SQL即可对数据进行读写操作,能够避免复杂的SQL重写过程,提高数据操作效率。同时,由于在数据库中每个租户的数据表相互隔离,能够防止租户之间数据干扰,保证数据安全。
可选地,获取单元410还用于,在获取第一SQL之前,获取基线表的元数据。相应地,处理单元420还用于:根据租户的标识和该基线表的表名生成第二表名;根据第二表名和基线表的元数据生成第二SQL,第二SQL用于创建数据表;请求第一数据库执行第二SQL。
可选地,数据管理服务器400还可以包括存储单元430,存储单元430可用于存储创建租户的数据表所需的数据,如基线表的元数据、租户的定制字段的元数据等。获取单元410可以具体用于从存储单元430获取基线表的元数据和租户的定制字段的元数据。
可选地,数据操作为写操作。相应地,获取单元410还用于,获取数据表的数据更新信息;处理单元420还用于,根据数据表的数据更新信息,对数据表中更新的数据进行备份。
可选地,处理单元420具体用于:根据数据表的数据更新信息,请求第二数据库更新备份的数据表的数据。
可选地,在第二数据库中多个租户各自的数据表中的数据可以存储在共享的业务数据表中。相应地,获取单元410还用于,获取基线表的元数据。处理单元420还用于:根据数据更新信息和基线表的元数据生成第三SQL,第三SQL用于更新第二数据库中存储的业务数据表的数据;请求第二数据库执行第三SQL。
可选地,获取单元410具体用于:根据替换后的第一SQL,获取数据表的数据更新信息;或者,根据日志文件,获取数据表的数据更新信息。
可选地,处理单元420还用于:当第一数据库中的基线表的元数据和/或租户的定制字段的元数据发生变更时,根据变更后的基线表的元数据和/或租户的定制字段的元数据生成第四SQL,第四SQL用于更新数据表;请求第一数据库执行第四SQL。
根据本发明实施例的数据管理服务器400可对应于方法300中的数据管理服务器,并且数据管理服务器400中的各个单元的上述和其他操作和/或功能分别为了实现图3所示的方法300的相应流程。为了简洁,在此不再赘述。
应注意,本发明实施例中的获取单元410和处理单元420可以由图2所示的数据管理服务器200中的处理器201实现。存储单元430可以由图2所示的数据管理服务器200中的存储器202实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种数据操作方法,其特征在于,包括:
获取租户的标识和数据操作请求,所述数据操作请求用于请求对所述租户的数据进行数据操作,所述数据操作请求包括所述数据对应的第一表名;
根据所述租户的标识和所述第一表名确定所述数据在第一数据库中对应的数据表的第二表名,其中所述第一数据库用于存储多个租户各自的数据表,每个租户的数据表与所述每个租户的标识相对应,所述租户为所述多个租户之一;
将所述数据操作请求对应的第一结构化查询语言中的所述第一表名替换为所述第二表名,所述第一结构化查询语言中的其他内容不进行替换;
请求所述第一数据库执行替换后的第一结构化查询语言,以完成对所述数据的所述数据操作;
所述方法还包括:
在第二数据库中对所述第一数据库中的数据进行备份,所述第二数据库用于存储所述多个租户共享的业务数据表,所述业务数据表包括所述多个租户各自的数据表中的数据,在所述业务数据表中所述多个租户各自的数据表中的数据通过租户的标识字段值进行隔离。
2.根据权利要求1所述的方法,其特征在于,在所述获取租户的标识和数据操作请求之前,所述方法还包括:
获取基线表的元数据;
根据所述租户的标识和所述基线表的表名生成所述第二表名;
根据所述第二表名和所述基线表的元数据生成第二结构化查询语言,所述第二结构化查询语言用于创建所述数据表;
请求所述第一数据库执行所述第二结构化查询语言。
3.根据权利要求1或2所述的方法,其特征在于,所述数据操作为写操作,所述方法还包括:
获取所述数据表的数据更新信息;
根据所述数据表的数据更新信息,对所述数据表中更新的数据进行备份。
4.根据权利要求3所述的方法,其特征在于,所述根据所述数据表的数据更新信息,对所述数据表中更新的数据进行备份包括:
根据所述数据表的数据更新信息,请求第二数据库更新备份的所述数据表中的数据。
5.根据权利要求4所述的方法,其特征在于,在所述第二数据库中所述多个租户各自的数据表中的数据存储在共享的业务数据表中,所述根据所述数据更新信息,请求第二数据库更新备份的所述数据表的数据包括:
获取基线表的元数据;
根据所述数据更新信息和所述基线表的元数据生成第三结构化查询语言,所述第三结构化查询语言用于更新所述第二数据库中存储的所述业务数据表的数据;
请求所述第二数据库执行所述第三结构化查询语言。
6.根据权利要求1或2所述的方法,其特征在于,所述获取所述数据表的数据更新信息包括:
根据所述替换后的第一结构化查询语言,获取所述数据表的数据更新信息;或者,
根据日志文件,获取所述数据表的数据更新信息。
7.根据权利要求2或5所述的方法,其特征在于还包括:
当所述基线表的元数据和/或所述租户的定制字段的元数据发生变更时,根据变更后的基线表的元数据和/或所述租户的定制字段的元数据生成第四结构化查询语言,所述第四结构化查询语言用于更新所述数据表;
请求所述第一数据库执行所述第四结构化查询语言。
8.根据权利要求1或2所述的方法,其特征在于,所述第一数据库为内存数据库。
9.一种数据管理服务器,其特征在于,包括:
获取单元,用于获取租户的标识和数据操作请求,所述数据操作请求用于请求对所述租户的数据进行数据操作,所述和数据操作请求包括所述数据对应的第一表名;
处理单元,用于根据所述获取单元获取的所述租户的标识和所述第一表名确定所述数据在第一数据库中对应的数据表的第二表名,其中所述第一数据库用于存储多个租户各自的数据表,每个租户的数据表与所述每个租户的标识相对应,所述租户为所述多个租户之一;
所述处理单元还用于,将所述数据操作请求对应的第一结构化查询语言中的所述第一表名替换为所述第二表名,所述第一结构化查询语言中的其他内容不进行替换;
所述处理单元还用于,请求所述第一数据库执行替换后的第一结构化查询语言,以完成对所述数据的所述数据操作;
所述处理单元还用于,在第二数据库中对所述第一数据库中的数据进行备份,所述第二数据库用于存储所述多个租户共享的业务数据表,所述业务数据表包括所述多个租户各自的数据表中的数据,在所述业务数据表中所述多个租户各自的数据表中的数据通过租户的标识字段值进行隔离。
10.根据权利要求9所述的数据管理服务器,其特征在于,
所述获取单元还用于,在所述获取单元获取租户的标识和数据操作请求之前,获取基线表的元数据;
所述处理单元还用于:根据所述租户的标识和所述基线表的表名生成所述第二表名;根据所述第二表名和所述基线表的元数据生成第二结构化查询语言,所述第二结构化查询语言用于创建所述数据表;请求所述第一数据库执行所述第二结构化查询语言。
11.根据权利要求9或10所述的数据管理服务器,其特征在于,所述数据操作为写操作,
所述获取单元还用于,获取所述数据表的数据更新信息;
所述处理单元还用于,根据所述数据表的数据更新信息,对所述数据表中更新的数据进行备份。
12.根据权利要求11所述的数据管理服务器,其特征在于,所述处理单元具体用于:根据所述数据表的数据更新信息,请求第二数据库更新备份的所述数据表的数据。
13.根据权利要求12所述的数据管理服务器,其特征在于,在所述第二数据库中所述多个租户各自的数据表中的数据存储在共享的业务数据表中,
所述获取单元还用于,获取基线表的元数据;
所述处理单元还用于:根据所述数据更新信息和所述基线表的元数据生成第三结构化查询语言,所述第三结构化查询语言用于更新所述第二数据库中存储的所述业务数据表的数据;请求所述第二数据库执行所述第三结构化查询语言。
14.根据权利要求9或10所述的数据管理服务器,其特征在于,所述获取单元具体用于:
根据所述替换后的第一结构化查询语言,获取所述数据表的数据更新信息;或者,
根据日志文件,获取所述数据表的数据更新信息。
15.根据权利要求10或13所述的数据管理服务器,其特征在于,所述处理单元还用于:
当所述基线表的元数据和/或所述租户的定制字段的元数据发生变更时,根据变更后的基线表的元数据和/或所述租户的定制字段的元数据生成第四结构化查询语言,所述第四结构化查询语言用于更新所述数据表;
请求所述第一数据库执行所述第四结构化查询语言。
16.根据权利要求9或10所述的数据管理服务器,其特征在于,所述第一数据库为内存数据库。
17.一种数据管理服务器,其特征在于,包括:
处理器、存储器和总线系统,所述处理器和所述存储器通过所述总线系统相连,所述存储器用于存储指令,所述处理器用于执行所述存储器存储的指令,使得所述数据管理服务器执行如权利要求1至8中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610103689.XA CN107122364B (zh) | 2016-02-25 | 2016-02-25 | 数据操作方法和数据管理服务器 |
PCT/CN2016/111520 WO2017143844A1 (zh) | 2016-02-25 | 2016-12-22 | 数据操作方法和数据管理服务器 |
EP16891292.1A EP3407205B1 (en) | 2016-02-25 | 2016-12-22 | Data operation method and data management server |
US16/112,064 US11100101B2 (en) | 2016-02-25 | 2018-08-24 | Data operation method and data management server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610103689.XA CN107122364B (zh) | 2016-02-25 | 2016-02-25 | 数据操作方法和数据管理服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107122364A CN107122364A (zh) | 2017-09-01 |
CN107122364B true CN107122364B (zh) | 2021-05-18 |
Family
ID=59684709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610103689.XA Active CN107122364B (zh) | 2016-02-25 | 2016-02-25 | 数据操作方法和数据管理服务器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11100101B2 (zh) |
EP (1) | EP3407205B1 (zh) |
CN (1) | CN107122364B (zh) |
WO (1) | WO2017143844A1 (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688664B (zh) * | 2017-09-25 | 2020-04-03 | 平安科技(深圳)有限公司 | 图表生成方法、装置、计算机设备和存储介质 |
US10621167B2 (en) * | 2017-10-26 | 2020-04-14 | Sap Se | Data separation and write redirection in multi-tenancy database systems |
CN107612763B (zh) * | 2017-11-08 | 2020-10-02 | 浪潮通用软件有限公司 | 元数据管理方法、应用服务器、业务系统、介质及控制器 |
CN108287886B (zh) * | 2018-01-16 | 2022-04-08 | 创新先进技术有限公司 | 同步数据变更信息的方法及装置 |
CN108563693A (zh) * | 2018-03-16 | 2018-09-21 | 阿里巴巴集团控股有限公司 | 一种事务的处理方法、装置及设备 |
CN110555030B (zh) * | 2018-03-28 | 2024-06-18 | 北京京东尚科信息技术有限公司 | 一种sql语句的处理方法和装置 |
CN110399368B (zh) * | 2018-04-23 | 2022-08-19 | 华为技术有限公司 | 一种定制数据表的方法、数据操作方法及装置 |
CN109240993A (zh) * | 2018-07-24 | 2019-01-18 | 郑州云海信息技术有限公司 | 元数据管理方法以及存储服务器 |
CN109800224A (zh) * | 2018-12-18 | 2019-05-24 | 北京航天福道高技术股份有限公司 | 通过主从数据库实现多租户软件的系统及方法 |
CN110032598B (zh) * | 2018-12-20 | 2020-05-12 | 阿里巴巴集团控股有限公司 | 字段更新方法及装置、电子设备 |
CN111898139B (zh) * | 2018-12-20 | 2024-04-16 | 创新先进技术有限公司 | 数据读写方法及装置、电子设备 |
CN110287169B (zh) * | 2019-06-28 | 2022-02-01 | 四川长虹电器股份有限公司 | 一种云应用之间的主数据迁移方法 |
CN111026584A (zh) * | 2019-12-23 | 2020-04-17 | 重庆紫光华山智安科技有限公司 | 一种解决键值数据库文件损坏的装置、方法和设备 |
CN112596857B (zh) * | 2020-12-25 | 2024-06-21 | 北京知因智慧科技有限公司 | 一种SaaS多租户数据隔离的方法、装置、设备及介质 |
CN113672618A (zh) * | 2021-08-12 | 2021-11-19 | 广州有信科技有限公司 | 一种基于元数据表的多租户数据处理方法及装置 |
US20230195744A1 (en) * | 2021-11-11 | 2023-06-22 | Sigma Computing, Inc. | Editing data-warehouse tables using managed input tables |
CN114490594A (zh) * | 2022-02-16 | 2022-05-13 | 中银金融科技有限公司 | 一种数据库管理方法、装置、电子设备及计算机存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102737020A (zh) * | 2011-03-31 | 2012-10-17 | 国际商业机器公司 | 一种初始化多租户数据库的方法和装置 |
CN102929899A (zh) * | 2011-12-31 | 2013-02-13 | 网神信息技术(北京)股份有限公司 | 一种基于中间表的分布式报表系统 |
CN104881280A (zh) * | 2015-05-13 | 2015-09-02 | 南京邮电大学 | 一种支持多查询的密文数据库中间件的设计方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7779039B2 (en) | 2004-04-02 | 2010-08-17 | Salesforce.Com, Inc. | Custom entities and fields in a multi-tenant database system |
US7281023B2 (en) * | 2003-12-15 | 2007-10-09 | At&T Knowledge Ventures, L.P. | Architecture of database application with robust online recoverability |
CN100369038C (zh) * | 2005-02-24 | 2008-02-13 | 中兴通讯股份有限公司 | 一种实时数据库事务操作的实现方法 |
CN101256578B (zh) | 2008-04-08 | 2010-06-09 | 中兴通讯股份有限公司 | 一种内存数据库的多用户实现方法 |
CN102193922B (zh) * | 2010-03-04 | 2013-07-24 | 杭州华三通信技术有限公司 | 一种对数据库进行访问的方法和装置 |
CN102200977B (zh) | 2010-03-23 | 2014-10-29 | 国际商业机器公司 | 多租户环境下扩展数据库表的方法和系统 |
US8886766B2 (en) * | 2010-10-25 | 2014-11-11 | Salesforce.Com, Inc. | Systems and methods for tracking responses on an online social network |
CN102467421B (zh) * | 2010-11-19 | 2014-04-16 | 深圳市金蝶友商电子商务服务有限公司 | 一种基于租户数据的处理方法及计算机 |
US9460176B2 (en) * | 2010-12-29 | 2016-10-04 | Sap Se | In-memory database for multi-tenancy |
GB201206722D0 (en) * | 2012-04-17 | 2012-05-30 | Dataline Software Ltd | Methods of querying a relational database |
US20140244680A1 (en) * | 2013-02-28 | 2014-08-28 | Lakshmy Chandran | Sql query parsing and translation |
CN104216893B (zh) | 2013-05-31 | 2018-01-16 | 中国电信股份有限公司 | 多租户共享数据表的分区管理方法、服务器与系统 |
CN105205053A (zh) * | 2014-05-30 | 2015-12-30 | 阿里巴巴集团控股有限公司 | 一种数据库增量日志解析方法及系统 |
CN105335450B (zh) * | 2014-08-14 | 2020-06-05 | 中兴通讯股份有限公司 | 数据存储处理方法及装置 |
CN104462362B (zh) * | 2014-12-08 | 2018-03-06 | 曙光信息产业(北京)有限公司 | 一种数据存储、查询、加载方法及装置 |
CN104484621B (zh) * | 2014-12-31 | 2017-09-29 | 中博信息技术研究院有限公司 | 基于sql的数据权限控制方法 |
CN104679886A (zh) * | 2015-03-17 | 2015-06-03 | 浪潮集团有限公司 | 一种多租户模式下Hive数据隔离的方法和装置 |
US20170139960A1 (en) * | 2015-11-18 | 2017-05-18 | Sap Se | Table migration to updated structures without creating an intermediate copy of the table data |
US10496632B2 (en) * | 2015-12-09 | 2019-12-03 | Vinyl Development LLC | Query processor |
US10296505B2 (en) * | 2015-12-30 | 2019-05-21 | Sap Se | Framework for joining datasets |
-
2016
- 2016-02-25 CN CN201610103689.XA patent/CN107122364B/zh active Active
- 2016-12-22 EP EP16891292.1A patent/EP3407205B1/en active Active
- 2016-12-22 WO PCT/CN2016/111520 patent/WO2017143844A1/zh active Application Filing
-
2018
- 2018-08-24 US US16/112,064 patent/US11100101B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102737020A (zh) * | 2011-03-31 | 2012-10-17 | 国际商业机器公司 | 一种初始化多租户数据库的方法和装置 |
CN102929899A (zh) * | 2011-12-31 | 2013-02-13 | 网神信息技术(北京)股份有限公司 | 一种基于中间表的分布式报表系统 |
CN104881280A (zh) * | 2015-05-13 | 2015-09-02 | 南京邮电大学 | 一种支持多查询的密文数据库中间件的设计方法 |
Also Published As
Publication number | Publication date |
---|---|
US11100101B2 (en) | 2021-08-24 |
EP3407205A4 (en) | 2018-11-28 |
EP3407205B1 (en) | 2021-08-25 |
US20180365288A1 (en) | 2018-12-20 |
CN107122364A (zh) | 2017-09-01 |
WO2017143844A1 (zh) | 2017-08-31 |
EP3407205A1 (en) | 2018-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107122364B (zh) | 数据操作方法和数据管理服务器 | |
US9110899B2 (en) | Multi-tenancy in database namespace | |
US8583701B2 (en) | Uniform data model and API for representation and processing of semantic data | |
US9020949B2 (en) | Method and system for centralized issue tracking | |
US10353878B1 (en) | Method and system for cloning enterprise content management systems | |
CN113297320B (zh) | 分布式数据库系统及数据处理方法 | |
US20160283331A1 (en) | Pooling work across multiple transactions for reducing contention in operational analytics systems | |
CN110795399B (zh) | 一种为应用产生机器id的方法、装置和系统 | |
US9459843B1 (en) | Methods and apparatuses for providing dynamic definition and selection of metric applications | |
GB2513528A (en) | Method and system for backup management of software environments in a distributed network environment | |
US10725799B2 (en) | Big data pipeline management within spreadsheet applications | |
US20220311757A1 (en) | Cross-regional replication of keys | |
CN111090803A (zh) | 一种数据处理方法、装置、电子设备和存储介质 | |
CN111538573A (zh) | 异步任务处理方法、装置及计算机可读存储介质 | |
CN111159227B (zh) | 数据查询方法、装置、设备及存储介质 | |
WO2021147773A1 (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
US9785659B2 (en) | Protecting storage data during system migration | |
CN110908644A (zh) | 状态节点的配置方法、装置、计算机设备和存储介质 | |
US8832110B2 (en) | Management of class of service | |
CN115048456A (zh) | 用户标签的生成方法、装置、计算机设备及可读存储介质 | |
CN108205531B (zh) | 数据抽取方法和数据抽取系统 | |
CN108664634B (zh) | 数据管理方法、装置、计算机设备及存储介质 | |
CA3102814A1 (en) | System and method for data ingestion and workflow generation | |
CN117009327B (zh) | 一种数据处理方法、装置及计算机设备、介质 | |
US20220414565A1 (en) | Methods and systems for service request management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |