CN115803729A - 中间件生成的记录的直接数据加载 - Google Patents

中间件生成的记录的直接数据加载 Download PDF

Info

Publication number
CN115803729A
CN115803729A CN202180048813.6A CN202180048813A CN115803729A CN 115803729 A CN115803729 A CN 115803729A CN 202180048813 A CN202180048813 A CN 202180048813A CN 115803729 A CN115803729 A CN 115803729A
Authority
CN
China
Prior art keywords
dbms
memory
file
middleware
data
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
CN202180048813.6A
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN115803729A publication Critical patent/CN115803729A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/172Caching, prefetching or hoarding of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24549Run-time optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • 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
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

Landscapes

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

Abstract

提出了一种用于减少中间件的数据加载开销以促进直接数据加载到数据库管理系统(DBMS)的计算机实现的方法。该方法包括:在数据加载时,如果对应的内部写入是针对顶点的,则将外部写入发送到基于存储器的DBMS,将所有的外部写入导出到基于磁盘的DBMS作为导出文件,以及如果中间件请求数据,则将针对顶点的外部读取发送到内存DBMS。该方法还包括,在数据加载结束时,从导出文件生成用于基于磁盘的DBMS的原始数据的文件,并将所生成的原始文件发送给基于磁盘的DBMS。

Description

中间件生成的记录的直接数据加载
背景技术
本发明总体上涉及数据库管理系统,并且更具体地涉及将中间件生成的记录的数据加载引导到数据库管理系统。
在当今日益竞争的市场中快速果断地采取行动的能力对于组织的成功至关重要。企业可获得的信息量迅速增加,而且常常不堪重负。有效且高效地管理这些海量数据并使用这些信息来做出商业决定的那些组织将实现市场中的竞争优势。这种竞争优势可以通过使用数据库管理系统(DBMS)来实现,数据库管理系统(DBMS)存储大量数据以支持不同的工作负荷和异构应用程序。DBMS有益于商业事务处理和决策,且可并入促进保持数据高度可用的策略。
DBMS是使用对数据编目、检索和运行查询的标准方法的数据库程序。DBMS管理传入数据,组织数据,并提供数据可由用户或其他程序修改或提取的方式。DBMS提供一种允许用户交互地询问关系数据库的查询语言和报告书写器。这些必要组件使用户能够根据需要访问所有管理信息。DBMS将所输入的文本应用到数据库作为准则以标识和报告数据库中满足准则的记录。将文本输入到DBMS的字段中需要用户理解DBMS以及DBMS如何表示数据库中的数据。例如,对于给定的搜索项,用户必须知道DBMS中的哪个字段适于搜索该项。对于具有多个搜索项的搜索查询,用户必须熟悉DBMS中的多个字段,以及这些字段将如何交互以限制或以其他方式定义搜索。而且,用户必须知道数据库表格和用于将表格链接在一起的键之间的分层结构。
DBMS的共同目标是在交易吞吐量和交易等待时间方面提供高性能以最小化硬件成本、等待时间并且增加每单位时间的交易数量。即使对于硬件的大量投资,要达到预期的性能往往代价高昂,有时甚至是不可能的。DBMS的另一共同目标是降低关于应用程序开发过程的复杂度,并且因此节省时间和金钱,以及降低错误的风险。
然而,传统的DBMS是建立在数据加载是“一次性交易”的假设之上的。数据加载被认为是关键路径之外的离线过程,其中用户定义模式并且在提交任何查询之前“一次性”加载大部分数据。当此架构设计假设是结合爆炸性的数据增长,结果是数据加载成为DBMS数据分析流水线的瓶颈。
然而,一些分析需要预先将数据加载到DBMS。如果DBMS提供用于分析的简单应用程序编程接口(API),则中间件会很有用。然而,当发生数据加载时,中间件还会出现开销。由此,DBMS中的数据加载可导致瓶颈。因此,有必要采取一些方法来减少DBMS中的数据加载。
发明内容
根据实施例,提供了一种用于减少中间件的数据加载开销以便于直接将数据加载到数据库管理系统(DBMS)的方法。该方法包括:在数据加载时,如果对应的内部写入是针对顶点的,则将外部写入发送到基于存储器的DBMS,将所有的外部写入导出到基于磁盘的DBMS作为导出文件,以及如果中间件需要数据,则将针对顶点的外部读取发送到内存DBMS。该方法还包括,在数据加载结束时,从导出文件生成用于基于磁盘的DBMS的原始数据的文件,并将生成的原始文件发送给基于磁盘的DBMS。
根据另一实施例,提供了一种用于减少中间件的数据加载开销以促进直接将数据加载到数据库管理系统(DBMS)的系统。该系统包括存储器和与该存储器通信的一个或多个处理器,该一个或多个处理器被配置为,在数据加载时,如果对应的内部写入是针对顶点的,则向基于存储器的DBMS发送外部写入,将所有的外部写入导出到基于磁盘的DBMS作为导出文件,以及如果中间件需要数据,则向内存DBMS发送针对顶点的外部读取。在数据加载结束时,系统进一步从导出文件中生成用于基于磁盘的DBMS的原始数据的文件,并将所生成的原始文件发送给基于磁盘的DBMS。
根据又一实施例,提出了一种包括用于减少中间件的数据加载开销以促进直接数据加载到数据库管理系统(DBMS)的计算机可读程序的非暂时性计算机可读存储介质。非暂时性计算机可读存储介质执行以下步骤:在数据加载时,如果对应的内部写入是针对顶点,则将外部写入发送到基于存储器的DBMS,将所有外部写入导出到基于磁盘的DBMS作为导出文件,以及如果中间件需要数据,则向内存DBMS发送针对顶点的外部读取。非暂时性计算机可读存储介质执行以下步骤:在数据加载结束时,从导出文件生成用于基于磁盘的DBMS的原始数据的文件,并将所生成的原始文件发送到基于磁盘的DBMS。
根据实施例,提供了一种用于减少中间件的数据加载开销以促进直接数据加载到数据库管理系统(DBMS)的方法。该方法包括:在中间件的导出扩展中接收内部写入;确定内部写入是否针对顶点;当内部写入针对顶点时,将内部写入发送到内存DBMS;以及将内部写入附加到恢复文件。
在一个优选的方面,如果内部写入不是针对顶点,则将内部写入附加到导出文件。
根据另一实施例,提供了一种用于减少中间件的数据加载开销以促进直接数据加载到数据库管理系统(DBMS)的方法。该方法包括:在中间件的导出扩展中接收内部读取;将内部读取发送到内存DBMS以接收结果;确定结果是否包括记录;以及如果结果没有记录,则将内部读取发送到基于磁盘的DBMS。
在一个优选的方面,如果结果包括记录,则将结果返回给调用者。
本发明的优点包括经由中间件减少数据加载。本发明的优点还包括更高效的中央处理单元(CPU)使用和更高效的输入/输出(I/O)带宽使用。数据加载是DBMS为了能够支持高效的查询执行而必须承担的前期投资。考虑到现今应用收集的数据量,重要的是最小化数据加载的开销以防止数据加载变成数据分析流水线中的瓶颈。这导致非结构化数据的存储容量更高、处理更快和传输速度更好。进一步的优点包括更高的质量、更低的成本、更清晰的范围、更快的性能、更少的应用程序错误以及更少的数据错误。
在一个优选的方面,在数据加载的同时,所述外部写入步骤的发送还包括将所述内部写入导出为恢复文件。
在另一优选的方面,在数据加载的开始,如果存在所述恢复文件,则从所述恢复文件生成对所述基于存储器的DBMS的外部写入,并将所生成的外部写入发送至所述基于存储器的DBMS。
在另一优选方面,在数据加载时,发送外部读取步骤进一步包括如果内存DBMS未取回任何外部读取则将该外部读取发送到基于磁盘的DBMS。
在另一优选方面,中间件的导出扩展支持基于磁盘的DBMS和基于存储器的DBMS。
在另一优选的方面,中间件的导出扩展处理内部写入和内部读取。
在又一优选方面,如果内部写入不是针对顶点的,则内部写入被附加到导出文件。
应注意,示例性实施方式是参考不同的主题来描述的。具体地,参照方法类型权利要求描述了一些实施例,而参照装置类型权利要求描述了其他实施例。然而,本领域的技术人员将从以上和以下描述中得出,除非另外指出,否则除了属于一种类型的主题的特征的任何组合之外,涉及不同主题的特征之间(特别是,方法类型权利要求的特征与装置类型权利要求的特征之间)的任何组合也被认为是在本文档内描述的。
这些和其他特征和优点将从以下结合附图阅读的示例性实施例的详细描述中变得显而易见。
附图说明
本发明将参考以下附图在优选实施例的以下描述中进行详细说明,其中:
图1是根据本发明的实施例的用于将中间件生成的记录直接数据加载到数据库管理系统(DBMS)的示例性中间件架构;
图2是示出根据本发明的实施例的接收内部写入时的方法的示例性流程图;
图3是示出了根据本发明的实施例的接收内部读取时的方法的示例性流程图;
图4是示出了根据本发明实施例的用于开始导出扩展的初始化的方法的示范性流程图;
图5是根据本发明的实施例的示例性中间件图;
图6是示出根据本发明的实施例的请求/响应循环的示例图;
图7是根据本发明的实施例的示例性JanusGraph架构;
图8是根据本发明的实施例的示例性处理系统;
图9是根据本发明的实施例的示例性云计算环境的框图/流程图;
图10是根据本发明的实施例的示例性抽象模型层的示意图;
图11是根据本发明的实施例的用于将图1的中间件架构与物联网(IoT)系统/设备/基础设施一起应用的方法的框图/流程图;
图12是根据本发明的实施例的用于收集与图1的中间件架构相关的数据/信息的示例性IoT传感器的框图/流程图;以及
图13是根据本发明的实施例的用于将中间件生成的记录直接数据加载到DBMS中的示例性方法的框/流程图。
在整个附图中,相同或相似的附图标记表示相同或相似的元件。
具体实施方式
根据本发明的实施例提供了用于将中间件生成的记录直接加载到数据库管理系统(DBMS)的方法和设备。DBMS是相互关联的数据he和用于以容易且有效的方式存储和访问这些数据的程序集合的总括。数据库系统是为处理大量数据而开发的。在处理大量数据时,有两件事情需要优化,即数据存储和数据检索。数据加载是涉及取得转换后的数据并加载转换后的数据的过程,其中用户可访问此类转换后的数据。数据加载被认为是“一次性交易”,这是在查询执行的关键路径之外的离线过程。DBMS的架构符合该假设。然而,现今产生和收集数据的速率已经使“一次性”假设无效,并且使数据加载成为数据分析流水线的瓶颈。
本发明的示例性实施例有利地假设中间件将更新(内部写入)的内部表示转换成用于DBMS的更新(外部写入)的一个或多个命令。此外,可以在数据加载中有利地标识顶点的内部写入,中间件可以有利地支持基于磁盘和基于存储器的DBMS,并且基于磁盘的DBMS有利地提供直接为其原始数据添加文件的方式。
本发明的示例性实施例有利地采用用于同时管理基于磁盘的DBMS和基于存储器的DBMS的中间件的扩展。在数据加载时,如果对应的内部写入是针对顶点的,则扩展将外部写入发送到基于存储器的DBMS,将内部写入导出为文件(恢复文件),将所有外部写入导出到基于磁盘的DBMS作为文件(导出文件),并且如果中间件要求/请求数据,则将针对顶点的外部读取发送到内存DBMS。在另一选择中,如果内存DBMS未取回任何东西,则扩展将外部读取发送到基于磁盘的DBMS。在数据加载结束时,扩展或其他组件有利地从导出文件生成用于基于磁盘的DBMS的原始数据的文件,并将它们发送给基于磁盘的DBMS。在另一实施例中,在数据加载的开始,如果恢复文件退出,则扩展程序有利地从文件生成外部写入至基于存储器的DBMS,并将它们发送到基于存储器的DBMS。
应当理解,将根据给定的说明性架构来描述本发明;然而,在本发明的范围内可以改变其他架构、结构、衬底材料和工艺特征和步骤/框。应注意,为了清楚起见,某些特征不能在所有附图中示出。这不旨在解释为限制任何具体实施例、或说明、或权利要求书的范围。
图1是根据本发明的实施例的用于将中间件生成的记录直接数据加载到数据库管理系统(DBMS)的示例性中间件架构。
中间件架构10包括数据加载应用12,其中图形的顶点和边缘被馈送到TinkerPopTMAPI13中。图形是由顶点和边组成的结构。顶点和边都可以具有任意数量的称为属性的键/值对。顶点表示诸如人、地点或事件的离散对象。边表示顶点之间的关系。例如,一人可能知道另一人、已经参与事件、和/或最近去过已的特定地点。属性表达关于顶点和边的非关系信息。示例属性包括具有名称和年龄的顶点以及具有时间戳和/或权重的边。前面提到的图一起称为属性图,它是Apache TinkerPopTM的基础数据结构。ApacheTinkerPopTM是图形数据库(OLTP)和图形分析系统(OLAP)的图形计算框架。
TinkerPopTMAPI 13可以与JanusGraph 20集成。JanusGraph 20是可扩展的图形数据库,其被优化用于存储和查询包括分布在多机群集上的数百亿个顶点和边的图形。JanusGraph20包括JanusGraph核心22、第一存储管理器SPI23和第二存储管理器SPI40。JanusGraph核心22向存储管理器SPI 23提供内部读取和内部写入。存储管理器23有利地包括导出扩展24。导出扩展24接收内部写入和内部读取并处理它们。导出扩展24是支撑SPI23、40的组件。导出扩展24协调多个支持SPI 23、40的扩展,具有预加载和导出数据的功能。由于导出扩展24仅使用SPI 23、40来访问其他扩展,所以不需要对JanusGraph 20进行修改。
导出扩展24接收恢复文件30,并且在数据加载该扩展时,如果在数据加载时其对应的内部写入是针对顶点,则将外部写入发送给基于存储器中的DBMS44。如果内部写入是针对顶点的,则内部写入被发送到存储器DBMS扩展44中。在第一选项中,当内部写入是针对顶点时,内部写入有利地导出为恢复文件32。在第二选项中,当内部写入不是针对顶点时,该方法有利地将所有外部写入导出到基于磁盘的DBMS扩展42作为导出文件34,并且如果中间件要求/请求它,则通过基于磁盘的DBMS驱动器46将针对顶点的外部读取发送到内存DBMS。
内存中数据库44基于直接将其数据集合存储在一个或多个计算机的工作存储器中的数据库管理系统。使用随机存取存储器(RAM)的关键优势在于内存数据库的访问速度要快得多。然后,在需要时可以非常快速地获得所存储的数据。使用内存数据库的最大优势是由于使用RAM而产生的显著更高的访问速度。这也导致更快的数据分析。然而,优化数据分析不仅是减少的提取时间。内存DB有利地使来自任何系统的结构化和非结构化数据的评估成为可能。
在数据加载结束时,扩展24有利地从导出文件34生成用于基于磁盘的DBMS56的原始数据的文件52。扩展24有利地经由基于磁盘的DBMS工具54将原始文件52发送到基于磁盘的DBMS56,由此提供使用基于磁盘的DBMS直接为其原始数据添加文件的方式。转换器50有利地将导出文件34转换成原始文件52。
图2是示出根据本发明的实施方式的接收内部写入时的方法的示例性流程图。
在框102,接收内部写入。
在框104,确定内部写入是否与顶点相关。
如果否,则过程进行到框110。如果是,则过程进行到框106。
在框106,将内部写入发送到内存DBMS扩展。
在框108,当内部写入是针对顶点时,将内部写入附加到恢复文件。
在框110,当内部写入不是针对顶点时,将内部写入附加到导出文件。
图3是示出了根据本发明的实施方式的接收内部读取时的方法的示例性流程图。
在框152处,接收内部读取。
在框154,将内部读取发送到内存DBMS扩展并接收结果。
在框156,确定结果是否包括记录。
如果是,那么过程进行到框160。如果否,那么过程进行到框158。
在框158,将内部读取发送到基于磁盘的DBMS扩展并接收结果。
在框160,将结果返回给调用者。
图4是示出了根据本发明实施例的用于开始导出扩展的初始化的方法的示例性流程图。
关于将内部写入附加到恢复文件或块108,进行以下操作。
在框182,导出扩展的初始化开始。
在框184,确定恢复文件是否存在。
如果是,则过程进行到框190。如果否,那么过程进行到框186。
在框186处,将所有内部写入发送到内存DBMS扩展。
在框188,将所有内部写入复制到新的恢复文件。
在框190,导出扩展的初始化结束。
图5是根据本发明的实施例的示例性中间件图。
中间件可以被描述为结合两个分离的、已经存在的软件程序的粘合体。通常,中间件可以是各种不同的、专门设计的软件。中间件是使得软件开发者更易于在这两个程序之间实现通信和输入/输出的一种类型的软件,因此软件开发者可以专注于它们的应用的特定目的。作为现有操作系统的扩展,中间件有助于在应用程序和服务之间集成软件。
中间件可以用于连接任何两个软件。中间件通过允许在二者之间传递数据来工作。使用中间件的一个示例是把中间件用于将数据库系统与web服务器连接。这允许用户使用在web浏览器上显示的表单从数据库请求数据。中间件是为操作系统提供的应用程序之外的应用程序提供通用服务和功能的软件。数据管理、应用服务、消息传送、认证和API管理全部通常由中间件处理。此外,中间件帮助开发者更有效地构建应用。中间件像应用程序、数据和用户之间的结缔组织一样起作用。对于具有多云和容器化环境的组织,中间件可以使得大规模地开发和运行应用变得经济高效。
在中间件图200中,中间件210有利地将参与系统220与记录240的系统连接。参与系统220可以包括但不限于公共云系统222、移动终端系统224、物联网(IoT)系统226、社交媒体系统228、附属机构230和网站232。记录的系统可包括但不限于私有云242、客户关系管理(CRM)244、服务器246、数据库248、后台进程250和应用编程接口(API)服务252。
下面的图11和12将示出IoT系统226相关的一个实际应用,其有利地使用中间件210来连接记录系统240。
图6是示出根据本发明的实施方式的请求/响应循环的示例性示图。
在图260中,针对应用270的请求262和响应264由中间件272处理。“中间件”272是在每个请求262被任何特定路径操作处理之前与每个请求一起工作,并且还在返回每个响应之前与每个响应一起工作的功能。中间件272取得到达应用270的每个请求262。中间件272随后可对该请求262做某事或运行任何所需代码。然后,中间件272传递要由应用270的剩余部分(通过某些路径操作)处理的请求262。中间件272然后取得由应用270(通过某些路径操作)生成的响应264。中间件272可以对该响应264做一些什么或者运行任何需要的代码。然后,中间件272返回响应264。
图7是根据本发明的实施例的示例性JanusGraph架构。
JanusGraph是一个可扩展的事务属性图数据库。属性图是实体(被称为顶点)通过其关系(被称为边)之间的映射。属性图查询可以遍历多个边和顶点以帮助阐明实体之间的关系。因此,JanusGraph是可扩展的图形数据库,该数据库具有被优化用于存储和查询图形的优点,这些图形包括分布在多机器集群上的数百亿个顶点和边。
JanusGraph架构300包括被馈送到JanusGraph 310和Gremlin图形计算机330中的应用程序302。Gremlin图形计算机330与大数据平台335进行通信。
存储后端340是可插拔的并且至少支持Cassandra、HBase、BerkeleyDB、GoogleBigTable和内存存储选项。存储后端340是数据实际存储的位置。考虑到其与许多数据库引擎一起工作的灵活性,存储后端340具有允许用户选择可能已经由用户部署或拥有过专业知识的选项的优势。仅存在一个存储后端340。
接下来,对于外部索引后端350,支持至少Elasticsearch、Solr和Lucene。外部索引后端350是可选的,但是对于索引多个属性、全文本和字符串搜索以及地理映射是必需的。同样,仅存在一个外部索引后端350。
在存储后端340、350之后,在Gremlin框310中的TinkerPopTMAPI321表示用户如何与图形交互。它通常被称为Gremlin控制台并且是调用TinkerPopTMAPI 321的应用程序的示例。这是用于与JanusGraph交互的命令行接口。
最后,310表示JanusGraph服务器。这个片段用命名为gremlin_server.sh的脚本运行。Gremlin服务器是Apache TinkerPopTM项目的一部分。JanusGraph基本上具有充当Gremlin服务器插件的优点,并且告诉Gremlin服务器如何以及在何处存储图形数据。JanusGraph服务器310有利地包括管理API320、内部API层322、数据库层324、存储和索引接口层326以及OLAP输入/输出(I/O)接口328。
Gremlin是Titan的查询语言,用于从图形中检索数据和修改图形中的数据的。Gremlin是面向路径的语言,简要地表达复杂的图形遍历和变异操作。Gremlin是一种功能语言,其中遍历运算符被链接在一起以形成类路径表达式。Gremlin用于基于在线事务处理(OLTP)的图形数据库以及基于在线分析处理(OLAP)的图形处理器。Gremlin的自动机和功能语言基础使得Gremlin能够自然地支持命令式和声明式查询、主机语言诊断学、用户定义的域特定语言、可扩展编译器/优化器、单机和多机执行模型、以及混合深度和广度优先评估。
总之,本发明的示例性实施例有利地假设中间件将更新(内部写入)的内部表示转换成用于DBMS的更新(外部写入)的一个或多个命令。此外,可以在数据加载中有利地标识顶点的内部写入,中间件可以有利地支持基于磁盘和基于存储器的DBMS,并且基于磁盘的DBMS有利地提供直接为其原始数据添加文件的方式。本发明的示例性实施例有利地采用管理基于磁盘的DBMS和基于存储器的DBMS两者的中间件的扩展。在数据加载时,如果扩展程序对应的内部写入是针对顶点的,则扩展程序将外部写入发送到基于存储器的DBMS,将内部写入导出为文件(恢复文件),将所有外部写入导出到基于磁盘的DBMS作为文件(导出文件),并且如果中间件需要数据,则将针对顶点的外部读取发送到内存DBMS。在另一选项中,如果内存DBMS未获取任何内容,则扩展向基于磁盘的DBMS发送外部读取。在数据加载结束时,扩展或另一组件从导出文件生成用于基于磁盘的DBMS的原始数据的文件,并将它们发送给基于磁盘的DBMS。在另一实施例中,在数据加载的开始,如果恢复文件退出,那么扩展程序从文件生成到基于存储器的DBMS的外部写入,并将它们发送到基于存储器的DBMS。
本发明的优点包括经由中间件减少数据加载。本发明的优点还包括更高效的CPU利用率和更有效的I/O带宽利用率。数据加载是DBMS为了能够支持高效的查询执行而必须承担的前期投资。考虑到由应用收集的数据量,最小化数据加载的开销以防止数据加载变成数据分析流水线中的瓶颈至关重要。这导致非结构化数据的存储容量更高、处理更快和传输速度更好。其他优势包括更高的质量、更低的成本、更清楚晰的范围、更快的性能、更少的应用错误以及更少的数据错误。
图8是根据本发明实施方式的用于处理流算法的示例性处理系统。
现在参见图8,该图示出了根据本发明的实施例的计算系统600的硬件配置。如所看到的,该硬件配置具有至少一个处理器或中央处理单元(CPU)611。CPU611通过系统总线612互连到随机存取存储器(RAM)614、只读存储器(ROM)616、输入/输出(I/O)适配器618(用于将诸如磁盘单元621和磁带驱动器640的外围设备连接到总线612),用户接口适配器622(用于将键盘624、鼠标626、扬声器628、麦克风632和/或其他用户接口设备连接至总线612),通信适配器634,用于将系统600连接至数据处理网络,互联网、内联网、局域网(LAN)等;以及显示适配器636,用于将总线612连接至显示设备638和/或打印机639(例如,数字打印机等)。
图9是根据本发明的一个实施方式的示例性云计算环境的框图/流程图。
图9是根据本发明的一个实施方式的示例性云计算环境的框图/流程图。
应当理解,尽管本发明包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知的或以后开发的任何其他类型的计算环境来实现。
云计算是服务交付的模型,用于使得能够方便地、按需地网络访问可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池,所述可配置计算资源可以以最小的管理努力或与所述服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特性如下:
按需自助服务:云消费者可以单方面地根据需要自动地提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者的人工交互。
广泛的网络接入:能力可通过网络获得并且通过标准机制接入,该标准机制促进异构瘦客户机平台或厚客户机平台(例如,移动电话、膝上型计算机和PDA)的使用。
资源池化:提供者的计算资源被池化以使用多租户模型来服务于多个消费者,其中不同的物理和虚拟资源根据需要动态地指派和重新指派。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或知识,但是能够以更高的抽象级别(例如,国家、州、或数据中心)指定位置。
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地快速缩小和快速释放以快速放大。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从不同客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建的或获取的使用由提供商支持的编程语言和工具创建的应用部署到云基础设施上。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其他基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对所选联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础架构仅为组织运作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础架构被若干组织共享并支持共享了关注(例如,任务、安全要求、策略、和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公共云:使云基础架构对公众或大型行业组可用,并且由出售云服务的组织拥有。
混合云:云基础架构是两个或更多个云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,集中于无状态、低耦合、模块化和语义互操作性。云计算的核心是包括互连节点网络的基础设施。
现在参见图9,描绘了用于实现本发明的使用情况的说明性云计算环境750。如所示,云计算环境750包括由云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点710,本地计算设备诸如例如个人数字助理(PDA)或蜂窝电话754A、台式计算机754B、膝上型计算机754C和/或汽车计算机系统754N。节点710可以彼此通信。它们可以物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上所述的私有云、社区云、公共云或混合云、或其组合。这允许云计算环境750提供基础架构、平台和/或软件作为服务,云消费者无需为其维护本地计算设备上的资源。应当理解,图9中所示的计算设备754A-N的类型旨在仅是说明性的,并且计算节点710和云计算环境750可以通过任何类型的网络和/或网络可寻址连接(例如,使用网络浏览器)与任何类型的计算机化设备通信。
图10是根据本发明的实施例的示例性抽象模型层的示意图。应提前理解,图10中所示的组件、层和功能旨在仅是说明性的,并且本发明的实施例不限于此。如所描述,提供以下层和对应功能:
硬件和软件层860包括硬件和软件组件。硬件组件的示例包括:大型机861;基于RISC(精简指令集计算机)架构的服务器862;服务器863;刀片服务器864;存储设备865;以及网络和网络组件866。在一些实施例中,软件组件包括网络应用服务器软件867和数据库软件868。
虚拟化层870提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器871;虚拟存储872;虚拟网络873,包括虚拟专用网络;虚拟应用和操作系统874;以及虚拟客户端875。
在一个示例中,管理层880可以提供以下描述的功能。资源供应881提供计算资源和用于在云计算环境内执行任务的其他资源的动态采购。计量和定价882在云计算环境内利用资源时提供成本跟踪,并为这些资源的消费开账单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户883为消费者和系统管理员提供对云计算环境的访问。服务水平管理884提供云计算资源分配和管理,使得满足所需的服务水平。服务水平协议(SLA)规划和履行885提供云计算资源的预安排和采购,根据该SLA预期该云计算资源的未来要求。
工作负载层890提供可以利用云计算环境的功能的示例。可以从该层提供的工作负荷和功能的示例包括:地图和导航891;软件开发和生命周期管理892;虚拟课堂教育交付893;数据分析处理894;事务处理895;以及直接数据加载896。
图11是根据本发明的实施例的用于将图1的中间件架构与物联网(IoT)系统/设备/基础设施一起应用的方法的框图/流程图。
根据本发明的一些实施方式,使用IoT方法实现网络。例如,直接数据加载902可被并入到例如可穿戴、可植入或可摄取的电子设备和物联网(IoT)传感器中。可穿戴、可植入或可摄取的装置可至少包括健康和健康监测装置以及健身装置。可穿戴、可植入或可摄取的装置可进一步包括至少可植入装置、智能手表、头戴式装置、安全和防止装置以及游戏和生活方式装置。IoT传感器可被结合到至少家庭自动化应用、汽车应用、用户界面应用、生活方式和/或娱乐应用、城市和/或基础设施应用、玩具、医疗保健、健身、零售标签和/或跟踪器、平台和组件等中。本文中描述的直接数据加载902可被结合到任何类型的电子设备中以用于任何类型的使用或应用或操作。
IoT系统允许用户在系统内实现更深的自动化、分析和集成。IoT改善了这些区域的覆盖及其准确度。IoT利用现有的和新兴的技术用于感测、联网和机器人。IoT的特征包括人工智能、连通性、传感器、主动参与以及小型设备使用。在各种实施例中,本发明的直接数据加载902可以结合到各种不同的设备和/或系统中。例如,直接数据加载902可被合并到可穿戴或便携式电子设备904中。可穿戴/便携式电子设备904可以包括可植入设备940,诸如智能服装943。可穿戴/便携式设备904可以包括智能手表942以及智能珠宝945。可穿戴/便携式设备904可进一步包括健身监测设备944、健康和保健监测设备946、头戴式设备948(例如,智能眼镜949)、安全和预防系统950、游戏和生活方式设备952、智能电话/平板计算机954、媒体播放器956和/或计算机/计算设备958。
本发明的直接数据加载902可进一步结合到物联网(IoT)传感器906中以用于不同应用,诸如家庭自动化920、汽车922、用户界面924、生活方式和/或娱乐926、城市和/或基础设施928、零售910、标签和/或跟踪器912、平台和组件914、玩具930和/或医疗保健932以及健身934。IoT网络传感器906可采用直接数据加载902。当然,本领域技术人员可预期将此类直接数据加载902并入到任何类型的电子装置中用于任何类型的应用,不限于本文中所描述的应用。
图12是根据本发明的实施例的用于收集与图1的中间件架构相关的数据/信息的示例性IoT传感器的框图/流程图。
没有传感器,IoT就失去了它的特色。IoT网络传感器用作定义将IoT从设备的标准无源网络转换成能够进行现实世界整合的有源系统的仪器。
IoT网络传感器906可采用直接数据加载902经由网络908连续地和实时地向任何类型的分布式系统传输信息/数据。示例性IoT传感器906可包括但不限于位置/存在/邻近度传感器1002、运动/速度传感器1004、位移传感器1006(诸如加速度/倾斜传感器1007)、温度传感器1008、湿度/水分传感器1010、以及流量传感器1011、声学/声音/振动传感器1012、化学/气体传感器1014、力/负载/扭矩/应变/压力传感器1016、和/或电/磁传感器1018。本领域技术人员可以设想使用此类传感器的任何组合来收集分布式系统的数据/信息以用于进一步处理。本领域技术人员可设想使用其他类型的IoT传感器,诸如但不限于磁力计、陀螺仪、图像传感器、光传感器、射频识别(RFID)传感器和/或微流量传感器。IoT网络传感器还可包括能量模块、功率管理模块、RF模块和感测模块。RF模块通过其信号处理、WiFi、
Figure BDA0004043866540000151
无线电收发器、双工器等管理通信。
图13是根据本发明的实施方式的用于学习多个事件类型之间的关系的示例性方法的框图/流程图。
在框1302处,在数据加载时,如果对应的内部写入是针对顶点,则将外部写入发送到基于存储器的数据库管理系统(DBMS),将所有外部写入导出到基于磁盘的DBMS作为文件(导出文件),并且如果中间件需要数据,则将针对顶点的外部读取发送到内存DBMS。
在框1304处,在数据加载结束时,从导出文件生成用于基于磁盘的DBMS的原始数据的文件,并将所生成的文件传输到基于磁盘的DBMS。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
计算机可读存储介质可为可保留和存储供指令执行装置使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式紧凑盘只读存储器(CD-ROM)、数字通用盘(DVD)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输媒体传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(如Smaltalk、C++等)和常规的过程式程序设计语言(如“C”程序设计语言或类似的程序设计语言)。计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者可连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的至少一个处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或多个块或模块中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框或模块中所指定的功能/动作的各方面的指令的制造品。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作块/步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置或其他设备上执行的指令实现在流程图和/或框图的或多个块或模块中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些备选实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
说明书中对本原理的“一个实施例”或“实施例”以及其其他变型的引用意味着结合该实施例所描述的特定特征、结构、特性等包括在本原理的至少一个实施例中。因此,在整个说明书的各个地方出现的短语“在一个实施方式中”或“在实施方式中”以及任何其他变型不一定都指相同的实施方式。
应当理解的是,例如,在“A/B”、“A和/或B”以及“A和B中的至少一个”的情况下,使用任何以下“/”、“和/或”以及“中的至少一个”旨在包括仅选择第一列出项(A)、或仅选择第二列出项(B)、或选择两个选项(A和B)。作为另一个实例,在“A、B、和/或C”以及“A、B、和C中的至少一个”的情况下,这种措辞旨在仅涵盖第一个列出的选项(A)的选择,或仅选择第二列出选项(B),或仅选择第三列出选项(C),或仅选择第一和第二列出选项(A和B),或者仅选择第一列出项和第三列出项(A和C),或者仅选择第二列出项和第三列出项(B和C),或者选择所有三个选项(A和B和C)。对于本领域普通技术人员而言显而易见的是,对于所列出的许多项目,这可以被扩展。
已经描述了用于减少中间件的数据加载开销以促进直接数据加载到数据库管理系统(DBMS)(其旨在是说明性的而非限制性的)的系统和方法的优选实施例,注意,本领域技术人员可以根据上述教导进行修改和变型。因此,应当理解的是,在所附权利要求概述的本发明的范围内,可以在所描述的具体实施例中进行改变。因此已经描述了具有专利法所要求的细节和特征的本发明的各个方面,并且在权利要求中阐述了所要求的以及期望由专利证书所保护的内容。

Claims (25)

1.一种在处理器上执行的计算机实现的方法,用于减少中间件的数据加载开销以促进直接数据加载到数据库管理系统(DBMS),所述方法包括:
在数据加载时:
将外部写入发送到基于存储器的DBMS,如果对应的内部写入是针对顶点的;
将所有所述外部写入导出到基于磁盘的DBMS作为导出文件;以及
将针对顶点的外部读取发送到内存DBMS,如果中间件请求数据;以及
在数据加载结束时:
从所述导出文件生成用于所述基于磁盘的DBMS的原始数据的文件;以及
将生成的原始文件发送到所述基于磁盘的DBMS。
2.根据权利要求1所述的方法,其中,在数据加载时,发送外部写入步骤进一步包括将所述内部写入导出为恢复文件。
3.根据权利要求2所述的方法,其中,在数据加载开始时,如果存在恢复文件:
从所述恢复文件生成对基于存储器的DBMS的外部写入;以及
将生成的外部写入发送到基于存储器的DBMS。
4.根据权利要求1所述的方法,其中,在数据加载时,发送外部读取步骤进一步包括:如果所述内存DBMS未获取任何内容,则将所述外部读取发送到所述基于磁盘的DBMS。
5.根据权利要求1所述的方法,其中,所述中间件的导出扩展支持基于磁盘的DBMS和基于存储器的DBMS两者。
6.根据权利要求1所述的方法,其中,所述中间件的导出扩展处理所述内部写入和内部读取。
7.根据权利要求1所述的方法,其中,如果内部写入不是针对顶点,则将所述内部写入附加到所述导出文件。
8.一种非暂态计算机可读存储介质,包括在处理器上执行的计算机可读程序,用于减少中间件的数据加载开销以促进直接数据加载到数据库管理系统(DBMS),其中,当在所述处理器上执行所述计算机可读程序时,所述计算机可读程序使计算机执行以下步骤:
在数据加载时:
将外部写入发送到基于存储器的DBMS,如果对应的内部写入是针对顶点的;
将所有所述外部写入导出到基于磁盘的DBMS作为导出文件;以及
将针对顶点的外部读取发送到内存DBMS,如果中间件请求数据;以及
在数据加载结束时:
从所述导出文件生成用于所述基于磁盘的DBMS的原始数据的文件;以及
将生成的原始文件发送到所述基于磁盘的DBMS。
9.根据权利要求8所述的非暂态计算机可读存储介质,其中,在数据加载时,发送外部写入步骤进一步包括将内部写入导出为恢复文件。
10.根据权利要求9所述的非暂态计算机可读存储介质,其中,在数据加载开始时,如果存在恢复文件:
从所述恢复文件生成对基于存储器的DBMS的外部写入;以及
将生成的外部写入发送到基于存储器的DBMS。
11.根据权利要求8所述的非暂态计算机可读存储介质,其中,在数据加载时,发送外部读取步骤进一步包括:如果所述内存DBMS未获取任何内容,则将所述外部读取发送到所述基于磁盘的DBMS。
12.根据权利要求8所述的非暂态计算机可读存储介质,其中所述中间件的导出扩展支持基于磁盘的DBMS和基于存储器的DBMS两者。
13.根据权利要求8所述的非暂态计算机可读存储介质,其中,所述中间件的导出扩展处理所述内部写入和内部读取。
14.根据权利要求8所述的非暂态计算机可读存储介质,其中,如果内部写入不是针对顶点,则将所述内部写入附加到所述导出文件。
15.一种用于减少中间件的数据加载开销以促进直接数据加载到数据库管理系统(DBMS)的系统,所述系统包括:
存储器;以及
与所述存储器通信的一个或多个处理器,被配置为:
在数据加载时:
将外部写入发送到基于存储器的DBMS,如果对应的内部写入是针对
顶点的;
将所有所述外部写入导出到基于磁盘的DBMS作为导出文件;以及
将针对顶点的外部读取发送到内存DBMS,如果中间件请求数据;以及
在数据加载结束时:
从所述导出文件生成用于所述基于磁盘的DBMS的原始数据的文件;以及
将生成的原始文件发送到所述基于磁盘的DBMS。
16.根据权利要求15所述的系统,其中,在数据加载时,发送外部写入步骤进一步包括导出所述内部写入作为恢复文件。
17.根据权利要求16所述的系统,其中,在数据加载开始时,如果存在恢复文件:
从所述恢复文件生成对基于存储器的DBMS的外部写入;以及
将生成的外部写入发送到基于存储器的DBMS。
18.根据权利要求15所述的系统,其中,在数据加载时,发送外部读取步骤进一步包括:如果所述内存DBMS未获取任何内容,则将所述外部读取发送到所述基于磁盘的DBMS。
19.根据权利要求15所述的系统,其中,所述中间件的导出扩展支持基于磁盘的DBMS和基于存储器的DBMS两者。
20.根据权利要求15所述的系统,其中,所述中间件的导出扩展处理所述内部写入和内部读取。
21.根据权利要求15所述的系统,其中,如果内部写入不是针对顶点,则将所述内部写入附加到所述导出文件。
22.一种在处理器上执行的用于减少中间件的数据加载开销以促进直接数据加载到数据库管理系统(DBMS)的计算机实现的方法,所述方法包括:
在所述中间件的导出扩展中接收内部写入;
确定所述内部写入是否针对顶点;
当所述内部写入是针对顶点时,将所述内部写入发送到内存DBMS;以及
将所述内部写入附加到恢复文件。
23.根据权利要求22所述的方法,其中,如果所述内部写入不是针对顶点,则将所述内部写入附加到导出文件。
24.一种在处理器上执行的计算机实现的方法,用于减少中间件的数据加载开销以促进直接数据加载到数据库管理系统(DBMS),所述方法包括:
在所述中间件的导出扩展中接收内部读取;
将所述内部读取发送到内存DBMS以接收结果;
确定所述结果是否包括记录;以及
如果所述结果没有记录,则将所述内部读取发送到基于磁盘的DBMS。
25.根据权利要求24所述的方法,其中,如果所述结果包括记录,则将所述结果返回至调用者。
CN202180048813.6A 2020-07-27 2021-07-19 中间件生成的记录的直接数据加载 Pending CN115803729A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/939,149 US11423025B2 (en) 2020-07-27 2020-07-27 Direct data loading of middleware-generated records
US16/939,149 2020-07-27
PCT/IB2021/056489 WO2022023867A1 (en) 2020-07-27 2021-07-19 Direct data loading of middleware-generated records

Publications (1)

Publication Number Publication Date
CN115803729A true CN115803729A (zh) 2023-03-14

Family

ID=79688261

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180048813.6A Pending CN115803729A (zh) 2020-07-27 2021-07-19 中间件生成的记录的直接数据加载

Country Status (6)

Country Link
US (1) US11423025B2 (zh)
JP (1) JP2023535608A (zh)
CN (1) CN115803729A (zh)
DE (1) DE112021003273T5 (zh)
GB (1) GB2612727B (zh)
WO (1) WO2022023867A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11423025B2 (en) * 2020-07-27 2022-08-23 International Business Machines Corporation Direct data loading of middleware-generated records

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768577A (en) * 1994-09-29 1998-06-16 International Business Machines Corporation Performance optimization in a heterogeneous, distributed database environment
US6321374B1 (en) * 1997-11-07 2001-11-20 International Business Machines Corporation Application-independent generator to generate a database transaction manager in heterogeneous information systems
US6167405A (en) * 1998-04-27 2000-12-26 Bull Hn Information Systems Inc. Method and apparatus for automatically populating a data warehouse system
GB2339036A (en) * 1998-07-03 2000-01-12 Ibm Set of objects for extracting data from a database, and visual builder
US6285997B1 (en) * 1998-11-16 2001-09-04 International Business Machines Corporation Query optimization with deferred update and autonomous sources
US7209921B2 (en) * 2000-09-01 2007-04-24 Op40, Inc. Method and system for deploying an asset over a multi-tiered network
AU2001288757A1 (en) * 2000-09-01 2002-03-13 Op40, Inc. System, method, uses, products, program products, and business methods for distributed internet and distributed network services
US20030084134A1 (en) * 2000-09-01 2003-05-01 Pace Charles P. System and method for bridging assets to network nodes on multi-tiered networks
US7136857B2 (en) * 2000-09-01 2006-11-14 Op40, Inc. Server system and method for distributing and scheduling modules to be executed on different tiers of a network
WO2002019131A1 (en) * 2000-09-01 2002-03-07 Op40, Inc. System and method for collaboration using web browsers
US7685577B2 (en) * 2000-09-01 2010-03-23 Op40, Inc. System and method for translating an asset for distribution over multi-tiered networks
US20030074207A1 (en) * 2000-09-01 2003-04-17 Pace Charles P. Method and system for deploying an asset over a multi-tiered network
WO2002071260A1 (en) * 2001-03-01 2002-09-12 Aalborg Universitet Adaptable query optimization and evaluation in temporal middleware
US20030158937A1 (en) * 2002-02-20 2003-08-21 Johal Sumer Singh Methods and systems for using distributed business data using observation technology to avoid the need to integrate servers and clients
JP2004178035A (ja) * 2002-11-25 2004-06-24 Hitachi Ltd データベース運用管理方法
TWI337310B (en) 2003-08-21 2011-02-11 Microsoft Corp Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US7197496B2 (en) * 2004-01-20 2007-03-27 International Business Machines Corporation Macro-based dynamic discovery of data shape
US7774298B2 (en) * 2004-06-30 2010-08-10 Sap Ag Method and system for data extraction from a transaction system to an analytics system
US8103624B2 (en) * 2005-01-13 2012-01-24 International Business Machines Corporation Apparatus and method for automating the logging of table changes in a database
JP4615344B2 (ja) * 2005-03-24 2011-01-19 株式会社日立製作所 データ処理システム及びデータベースの管理方法
WO2008056438A1 (fr) * 2006-11-06 2008-05-15 Nec Corporation Système informatique
US8244747B2 (en) * 2006-12-05 2012-08-14 International Business Machines Corporation Middleware for query processing across a network of RFID databases
US8805895B2 (en) * 2008-04-30 2014-08-12 International Business Machines Corporation Adaptive methodology for updating solution building block architectures and designs
US8812458B2 (en) * 2008-04-30 2014-08-19 International Business Machines Corporation Adaptive methodology for updating solution building block architectures and associated tooling
US9336263B2 (en) 2010-06-04 2016-05-10 Yale University Data loading systems and methods
US9251211B2 (en) * 2010-10-01 2016-02-02 Telefonaktiebolaget L M Ericsson (Publ) Generation of a query plan for accessing a database
US8938480B2 (en) 2011-12-29 2015-01-20 Teradata Us, Inc. Techniques for fast loading of data from an external distributed file system to a database management system
US20160154812A1 (en) 2014-12-02 2016-06-02 Altibase Corp. Hybrid database management system
US10606833B2 (en) * 2014-11-18 2020-03-31 Oracle International Corporation Context sensitive indexes
US10152558B2 (en) 2014-12-23 2018-12-11 Intel Corporation Graph operations
CN106130759B (zh) * 2016-06-22 2021-02-09 白杨 面向服务的模块化系统体系架构
US10963512B2 (en) 2017-01-20 2021-03-30 Amazon Technologies, Inc. Query language interoperability in a graph database
US10909097B2 (en) 2017-02-05 2021-02-02 Veritas Technologies Llc Method and system for dependency analysis of workloads for orchestration
US11675761B2 (en) * 2017-09-30 2023-06-13 Oracle International Corporation Performing in-memory columnar analytic queries on externally resident data
US10691658B2 (en) 2018-05-09 2020-06-23 International Business Machines Corporation Automatically optimizing resource usage on a target database management system to increase workload performance
CN111427901B (zh) 2020-03-23 2023-10-31 浪潮通用软件有限公司 交互式知识图谱数据编辑方法、计算机设备和存储介质
US11423025B2 (en) * 2020-07-27 2022-08-23 International Business Machines Corporation Direct data loading of middleware-generated records

Also Published As

Publication number Publication date
JP2023535608A (ja) 2023-08-18
US11423025B2 (en) 2022-08-23
DE112021003273T5 (de) 2023-06-29
US20220027370A1 (en) 2022-01-27
GB202301419D0 (en) 2023-03-15
GB2612727A (en) 2023-05-10
GB2612727B (en) 2023-08-23
WO2022023867A1 (en) 2022-02-03

Similar Documents

Publication Publication Date Title
JP7271734B2 (ja) 分散イベント処理システムにおけるデータシリアライズ
JP6521973B2 (ja) 多重入力データストリームにわたるパターンマッチング
JP6871943B2 (ja) モバイルクラウドサービスのための予め形成された命令
US10832457B2 (en) Interface for data analysis
US20190303487A1 (en) System and platform for computing and analyzing big data
WO2018169430A1 (en) Integrating logic in micro batch based event processing systems
WO2016083932A1 (en) Searching in a database
US20190310978A1 (en) Supporting a join operation against multiple nosql databases
US11455337B2 (en) Preventing biased queries by using a dictionary of cause and effect terms
CN115803729A (zh) 中间件生成的记录的直接数据加载
US20170344454A1 (en) Determining dynamic statistics based on key value patterns
US11082520B2 (en) Process broker for executing web services in a system of engagement and system of record environments
US11636111B1 (en) Extraction of relationship graphs from relational databases
US10621205B2 (en) Pre-request execution based on an anticipated ad hoc reporting request
US20190220532A1 (en) Data processing with nullable schema information
WO2022041996A1 (en) Intelligent backup and restoration of containerized environment
US20220188105A1 (en) Compressing multi-attribute vector into a single eigenvalue for ranking subject matter experts
US11204923B2 (en) Performance for query execution
US11138273B2 (en) Onboarding services
US10503731B2 (en) Efficient analysis of distinct aggregations
US11893015B2 (en) Optimizing query performance in virtual database
US11520842B2 (en) Figure driven search query
US20210349902A1 (en) Database query processing
US10896193B2 (en) Cache fetching of OLAP based data using client to client relationships and data encoding
Roehl Cloud Based IoT Architecture

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