CN104156419B - 一种异构数据源的实体化方法及其引擎 - Google Patents
一种异构数据源的实体化方法及其引擎 Download PDFInfo
- Publication number
- CN104156419B CN104156419B CN201410377598.6A CN201410377598A CN104156419B CN 104156419 B CN104156419 B CN 104156419B CN 201410377598 A CN201410377598 A CN 201410377598A CN 104156419 B CN104156419 B CN 104156419B
- Authority
- CN
- China
- Prior art keywords
- data
- hypostazation
- engine
- entity
- entity 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000008569 process Effects 0.000 claims abstract description 14
- 239000000872 buffer Substances 0.000 claims abstract description 11
- 230000003139 buffering effect Effects 0.000 claims abstract description 7
- 238000003860 storage Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 5
- 230000003993 interaction Effects 0.000 claims description 3
- 238000013507 mapping Methods 0.000 claims description 3
- 230000002045 lasting effect Effects 0.000 claims 1
- 230000002688 persistence Effects 0.000 abstract description 3
- 238000004883 computer application Methods 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 6
- 238000013523 data management Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及计算机应用技术领域,特别涉及到一种异构数据源的实体化方法及其引擎。本发明将分布式查询过程中产生在数据缓冲缓存区中的临时表转移到持久数据池中,其核心包括通道控制器、持久数据池两个部分。通道控制器负责管理数据从分布式查询引擎进入实体化引擎;持久化数据池提供数据最终的存储空间。本发明解决了云数据库系统查询过程中产生的中间结果持久化问题;可以用于云数据库系统查询数据的管理上。
Description
技术领域
本发明涉及计算机应用技术领域,特别涉及到一种异构数据源的实体化方法及其引擎。
背景技术
在企业信息化建设过程中,由于各业务系统建设和实施数据管理系统的阶段性、技术性以及其它经济和人为因素的影响,导致企业在发展过程中积累了大量采用不同存储方式的业务数据;包括采用的数据管理系统也大不相同,从简单的文件数据库到复杂的网络数据库,构成了企业的异构数据源。这些分散的不同业务的数据管理系统虽然能够满足业务数据存储和管理要求,但在许多情况下,企业领导要做出一项决策,往往需要查询多个基于各种异构数据源的业务系统和外部系统,进行大量数据分析后才能做出决策。
因此,异构数据源的整合与集成是企业信息化建设过程经常遇到的一个现实问题,也是制约企业各种应用信息系统建设和数据共享程度,以及信息化建设投资重复或负担重的一个重要因素。
云数据库系统是进行异构数据源的整合与集成的重要方法。然而,如何云数据库系统在查询过程中产生的中间结果持久化到一个存储空间中是一个关键问题。
发明内容
本发明解决的技术问题之一在于提供一种支持异构数据源实体化的方法,解决云数据库系统在查询过程中产生的中间结果持久化到一个存储空间问题。
本发明解决的技术问题之二在于提供一种异构数据源的实体化引擎,解决云数据库系统在查询过程中产生的中间结果持久化到一个存储空间问题。
本发明解决上述技术问题之一的技术方案是:
所述方法是将云数据库系统在分布式查询过程中产生在数据缓冲缓存区中的临时表转移到持久数据池中,形成实体表;以保存一段相对较长的时间。
所述的云数据库系统可以是MySQL、Oracle、SQL Server、DB2,涉及的文件系统可以是如Excel文件、KV文件,以及Web Service。
所述的方法对数据实体化过程全生命周期管理,包括创建实体表、数据载入、刷新实体表、删除实体表,以及访问交互表。
所述的实体化在动态访问的过程中被系统自动实现,整个过程无需用户干预。
本发明解决上述技术问题之二的技术方案是:
所述的实体化引擎包括通道控制器、交换表和持久化数据池三个组成部分;
所述的通道控制器,负责管理数据从分布式查询引擎进入实体化引擎的通道;
所述的交换表,存储实体化引擎需要的一些元数据,包括实体表与虚拟表的映射关系、实体表的创建时间、最近一次更新时间、访问次数等;
所述的持久化数据池,存储大量的实体表,是实体化过程中数据最终流向的目的地。
所述的通道控制器包括数据的持久化以及实体表的生命周期管理。
本发明的方法和引擎具有以下有益效果:
1、可以使用存储空间的数据来响应后续的查询请求,从而大幅减少系统的响应时间,提高系统的性能,降低底层数据源的处理压力。
2、可以利用存储空间中的数据提供数据分析以及数据挖掘的能力,支持迭代、回归等算法,增强云数据库系统在OLAP(Online Analytical Processing)方面的能力。本发明支持多种数据库系统(MySQL、Oracle、SQL Server、DB2)以及文件系统(Excel文件、KV文件)。
附图说明
下面结合附图对本发明进一步说明:
图1是本发明的逻辑架构图;
图2是本发明的通道控制原理图。
具体实施方式
云数据库的分布式查询引擎在接收到一个查询请求时,会调用解析器(QueryParser)将请求解析成一个查询计划,然后调用优化器(Query Optimizer)对查询计划进行优化,如过滤条件下推、虚拟索引、视图合并等优化策略,以提高查询计划的执行效率。在执行查询计划的过程中,会将远程的各个数据源(Data Source)中的数据抽取到本地的数据缓冲缓存区(Data Buffer Cache)中,进行计算处理,并返回最终的查询结果。因此,一个查询计划中用到的虚拟表(视图)基本上会缓存到数据缓冲缓存区中,形成相应的临时表(Temp Table)。
实体化本质上是一个数据转移的过程,临时表可以作为实体化的数据来源。实体化的过程就是将分布式查询过程中产生在数据缓冲缓存区(Data Buffer Cache)中的临时表转移到持久数据池中,形成实体表的过程。
实体表和临时表有两个重要的区别:
1.生命周期:实体表是持久存在于存储空间中,生命周期较长,而临时表目的是为了支持查询计划中某些计算必须要在一个集中的点完成,一个查询结束后,临时表的生命周期也就结束了,因此生命周期较短;
2.存放位置:实体表存放在持久数据池中,而临时表存储在数据缓冲缓存区中;
一次查询计划中,只有最顶层的虚拟表(实体)产生的临时表才可能用来作为实体化。因为,系统会对查询计划进行优化,比如将一些过滤条件下推到子虚拟表(视图)上去执行,此时,系统会在运行时改变虚拟表(视图)的定义。而最顶层的虚拟表(视图)的定义在运行时,系统不会改变。
如图所示,为了提高组件的独立性,本发明在设计上将实体化的功能封装成一个单独的服务组件——实体化引擎(Materialize Engine)。实体化引擎包括三个重要的组成部分:
一、通道控制器(Channel Controller):负责管理数据从分布式查询引擎(Distributed Query Engine)进入实体化引擎(Materialize Engine)的通道,具体来说包括数据的持久化以及实体表(Entity Table)的生命周期管理;即通道控制器(channelController)用于管理虚拟表(视图)的数据从数据缓冲缓存区进出持久数据池的通道,负责维护实体表的生命周期,主要提供的功能包括:创建实体表、数据载入、刷新实体表、删除实体表,以及访问交互表。
通道控制器的逻辑架构图2所示,主要包括6个部分:
1.SQL-Based API:主要提供实体表的创建、数据载入、刷新、删除,提供的是SQL的接口;
2.Meta API:提供获取实体表元数据的接口;
3.Load Worker:载入线程,负责将数据从分布式引擎中载入到持久化数据池中;
4.Swap Worker:交换线程,在检测到持久数据池中已用数据量达到一个阈值(MAX_POOL_THRESHOLD)时,启动交换线程,根据LRU算法,删除那些很久没被访问过的“僵尸实体表”;
5.Purge Worker:清理线程,定期扫描Swap Table,删除游离实体表,游离实体表对应的虚拟表已经被删除掉了;
6、Refresh Worker:刷新线程,定期刷新访问频率高的实体表到最新状态
二、交换表(Swap Table):存储实体化引擎需要的一些元数据,包括实体表与虚拟表的映射关系、实体表的创建时间、最近一次更新时间、访问次数等。
三、持久化数据池(Persistent Data Pool):存储大量的实体表,是实体化过程中数据最终流向的目的地。临时表最终会被转移到持久数据池中,形成实体表。在系统中,持久数据池只有一个,是一个基于MySQL Cluster的机群。可以在MySQL Cluster上面创建一个数据库来存储实体表,为了简单起见,所有的实体表都存储在一个数据库中。
持久化数据池中有两个数据库:
1.实体库:存储实体表,所有实体表都存放在实体库中;
2.产出库:存储产出表,所有的产出表都存放在产出库中。
Claims (2)
1.一种异构数据资源的实体化方法,其特征在于:所述方法是将云数据库系统在分布式查询过程中产生在数据缓冲缓存区中的临时表转移到持久数据池中,形成实体表;以保存一段时间;
所述的云数据库系统是MySQL、Oracle、SQL Server、DB2,涉及的文件系统包括Excel文件、KV文件,以及Web Service;
所述的方法对数据实体化过程全生命周期管理,包括创建实体表、数据载入、刷新实体表、删除实体表,以及访问交互表;
所述的实体化在动态访问的过程中被系统自动实现,整个过程无需用户干预;
实体化引擎包括通道控制器、交换表和持久化数据池三个组成部分;
所述的通道控制器,负责管理数据从分布式查询引擎进入实体化引擎的通道;
所述的交换表,存储实体化引擎需要的一些元数据,包括实体表与虚拟表的映射关系、实体表的创建时间、最近一次更新时间、访问次数;
所述的持久化数据池,存储大量的实体表,是实体化过程中数据最终流向的目的地。
2.根据权利要求1所述的实体化方法,其特征在于:所述的通道控制器包括数据的持久化以及实体表的生命周期管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410377598.6A CN104156419B (zh) | 2014-08-03 | 2014-08-03 | 一种异构数据源的实体化方法及其引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410377598.6A CN104156419B (zh) | 2014-08-03 | 2014-08-03 | 一种异构数据源的实体化方法及其引擎 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104156419A CN104156419A (zh) | 2014-11-19 |
CN104156419B true CN104156419B (zh) | 2019-07-26 |
Family
ID=51881918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410377598.6A Active CN104156419B (zh) | 2014-08-03 | 2014-08-03 | 一种异构数据源的实体化方法及其引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104156419B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484452A (zh) * | 2014-12-25 | 2015-04-01 | 广东电子工业研究院有限公司 | 一种多元异构关系型数据库连接复用及统一管控方法 |
CN104462559B (zh) * | 2014-12-25 | 2018-08-07 | 广东电子工业研究院有限公司 | 一种主流关系型数据库表模式对象化和虚拟化方法 |
CN111190899B (zh) * | 2019-11-26 | 2023-08-15 | 泰康保险集团股份有限公司 | 一种埋点数据处理方法、装置、服务器及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103605698A (zh) * | 2013-11-06 | 2014-02-26 | 广东电子工业研究院有限公司 | 一种用于分布异构数据资源整合的云数据库系统 |
CN103617176A (zh) * | 2013-11-04 | 2014-03-05 | 广东电子工业研究院有限公司 | 一种实现多源异构数据资源自动同步的方法 |
CN103617175A (zh) * | 2013-11-04 | 2014-03-05 | 广东电子工业研究院有限公司 | 一种用于大规模分布异构数据的虚拟化方法 |
CN103631870A (zh) * | 2013-11-06 | 2014-03-12 | 广东电子工业研究院有限公司 | 一种用于大规模分布式数据处理的系统及其方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120166953A1 (en) * | 2010-12-23 | 2012-06-28 | Microsoft Corporation | Techniques for electronic aggregation of information |
-
2014
- 2014-08-03 CN CN201410377598.6A patent/CN104156419B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103617176A (zh) * | 2013-11-04 | 2014-03-05 | 广东电子工业研究院有限公司 | 一种实现多源异构数据资源自动同步的方法 |
CN103617175A (zh) * | 2013-11-04 | 2014-03-05 | 广东电子工业研究院有限公司 | 一种用于大规模分布异构数据的虚拟化方法 |
CN103605698A (zh) * | 2013-11-06 | 2014-02-26 | 广东电子工业研究院有限公司 | 一种用于分布异构数据资源整合的云数据库系统 |
CN103631870A (zh) * | 2013-11-06 | 2014-03-12 | 广东电子工业研究院有限公司 | 一种用于大规模分布式数据处理的系统及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104156419A (zh) | 2014-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11169981B2 (en) | Managing data with flexible schema | |
US11100103B2 (en) | Data sharing in multi-tenant database systems | |
CN105630864B (zh) | 存储行标识符值的字典的强制排序 | |
CN105630865B (zh) | 用于内存列式存储的n比特压缩版本化列数据阵列 | |
CN105930428B (zh) | 用于执行多租户存储中的交叉存储连接的方法和系统 | |
US9558229B2 (en) | Transaction private log buffering for high performance of transaction processing | |
US9875024B2 (en) | Efficient block-level space allocation for multi-version concurrency control data | |
CN106716409B (zh) | 一种构建和更新列存储数据库的方法和系统 | |
US11914591B2 (en) | Sharing materialized views in multiple tenant database systems | |
US10885062B2 (en) | Providing database storage to facilitate the aging of database-accessible data | |
CN100437590C (zh) | 预取对象的方法 | |
US10474697B2 (en) | Updating a partitioning column | |
KR101400214B1 (ko) | Hybrid C 인터페이스를 지원하는 장치 | |
EP2981908A1 (en) | Query integration across databases and file systems | |
CN104156419B (zh) | 一种异构数据源的实体化方法及其引擎 | |
US20200183918A1 (en) | Management of Transactions Spanning Different Database Types | |
US11609934B2 (en) | Notification framework for document store | |
US10642756B2 (en) | Database variable size entry container free space handling based on use patterns | |
US20200241792A1 (en) | Selective Restriction of Large Object Pages in a Database | |
US11775543B1 (en) | Heapsort in a parallel processing framework | |
US20230281195A1 (en) | Telemetry for query processing memory usage | |
US11960463B2 (en) | Multi-fragment index scan | |
US11429610B2 (en) | Scaled-out query execution engine | |
US20230376485A1 (en) | Distributed query plan generation | |
US20230281055A1 (en) | Allocation of worker threads in a parallelization framework with result streaming |
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 |