CN116431654A - 基于湖仓一体化的数据存储方法、装置、介质和计算设备 - Google Patents

基于湖仓一体化的数据存储方法、装置、介质和计算设备 Download PDF

Info

Publication number
CN116431654A
CN116431654A CN202310670792.2A CN202310670792A CN116431654A CN 116431654 A CN116431654 A CN 116431654A CN 202310670792 A CN202310670792 A CN 202310670792A CN 116431654 A CN116431654 A CN 116431654A
Authority
CN
China
Prior art keywords
data
real
offline
time
partition 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.)
Granted
Application number
CN202310670792.2A
Other languages
English (en)
Other versions
CN116431654B (zh
Inventor
杨镭
郭行飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongxin Kuanwei Media Technology Co ltd
Original Assignee
Zhongxin Kuanwei Media Technology 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 Zhongxin Kuanwei Media Technology Co ltd filed Critical Zhongxin Kuanwei Media Technology Co ltd
Priority to CN202310670792.2A priority Critical patent/CN116431654B/zh
Publication of CN116431654A publication Critical patent/CN116431654A/zh
Application granted granted Critical
Publication of CN116431654B publication Critical patent/CN116431654B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index structures
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的实施方式提供了一种基于湖仓一体化的数据存储方法、装置、介质和计算设备。该方法包括:将实时主题中的实时数据存储至实时数据源表中;其中,实时主题为Kafka中创建的主题;实时数据源表为Kafka中的数据源表;将离线主题中的离线数据存储至离线数据源表中;其中,离线主题为Kafka中创建的主题;离线数据源表为Kafka中的数据源表;根据实时数据源表和离线数据源表,对数据仓库中的贴源层分区表进行增量更新,得到目标贴源层分区表;其中,目标贴源层分区表中包括增量更新数据;将目标贴源层分区表中的增量更新数据写入维度分区表、事实分区表以及分区宽表。本发明减少了数据存储使用的资源,从而提升了数据存储的效率。

Description

基于湖仓一体化的数据存储方法、装置、介质和计算设备
技术领域
本发明的实施方式涉及数据存储技术领域,更具体地,本发明的实施方式涉及一种基于湖仓一体化的数据存储方法、装置、介质和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
目前现有数据的存储多依赖列式数据库及Hive或者Kafka实现,需要把数据分两套存储框架进行存储,并且同样的需求需要开发两套一样的代码,无法实现对于一种同时具有离线需求和实时需求的业务数据统一化管理,从而导致现有的数据存储方式使用较多的资源,造成数据存储的效率较低。
发明内容
在本上下文中,本发明的实施方式期望提供一种基于湖仓一体化的数据存储方法、装置、介质和计算设备,能够提升数据存储的效率。
在本发明实施方式的第一方面中,提供了一种基于湖仓一体化的数据存储方法,包括:
将实时主题中的实时数据存储至实时数据源表中;其中,所述实时主题为Kafka中创建的主题;所述实时数据源表为所述Kafka中的数据源表;
将离线主题中的离线数据存储至离线数据源表中;其中,所述离线主题为所述Kafka中创建的主题;所述离线数据源表为所述Kafka中的数据源表;
根据所述实时数据源表和所述离线数据源表,对数据仓库中的贴源层分区表进行增量更新,得到目标贴源层分区表;其中,所述目标贴源层分区表中包括增量更新数据;
将所述目标贴源层分区表中的增量更新数据写入维度分区表、事实分区表以及分区宽表;其中,所述维度分区表和所述事实分区表位于所述数据仓库的维度建模层;所述分区宽表位于所述数据仓库的数据服务层。
在本实施方式的一个实施例中,所述将实时主题中的实时数据存储至实时数据源表中之前,所述方法还包括:
存储所述实时主题的当前实时状态,以及存储所述离线主题的当前离线状态;
对所述实时数据和所述离线数据的存储状态进行监测,得到监测结果;
若所述监测结果表示所述实时数据存储失败,则根据所述当前实时状态对所述实时主题进行还原;
若所述监测结果表示所述离线数据存储失败,则根据所述当前离线状态对所述离线主题进行还原。
在本实施方式的一个实施例中,所述根据所述实时数据源表和所述离线数据源表,对数据仓库中的贴源层分区表进行增量更新,得到目标贴源层分区表,包括:
获取数据仓库中的贴源层分区表的数据格式;
根据所述数据格式对所述实时数据的格式以及所述离线数据的格式进行调整,得到目标实时数据和目标离线数据;
将所述目标实时数据与所述贴源层分区表中的数据进行对比,得到所述目标实时数据中的实时新增数据和/或实时变动数据;
基于所述实时新增数据和/或所述实时变动数据对所述贴源层分区表进行增量更新,得到初更新贴源层分区表;
将所述目标离线数据与所述初更新贴源层分区表中的数据进行对比,得到所述目标离线数据中的离线新增数据和/或离线变动数据;其中,所述实时新增数据和/或所述实时变动数据以及所述离线新增数据和/或所述离线变动数据均为增量更新数据;
基于所述离线新增数据和/或所述离线变动数据对所述贴源层分区表进行增量更新,得到目标贴源层分区表。
在本实施方式的一个实施例中,所述将所述目标贴源层分区表中的增量更新数据写入维度分区表、事实分区表以及分区宽表,包括:
对所述增量更新数据进行修正处理,得到修正数据;
从所述修正数据中确定维度数据和事实数据;其中,所述修正数据由所述维度数据和所述事实数据组成;
将所述维度数据写入所述数据仓库的维度建模层中的维度分区表;
将所述事实数据写入所述维度建模层中的事实分区表;
将所述维度分区表中的维度数据和所述事实分区表中的事实数据进行聚合,得到聚合数据;
将所述聚合数据写入所述数据仓库的数据服务层中的分区宽表。
在本实施方式的一个实施例中,所述将所述聚合数据写入所述数据仓库的数据服务层中的分区宽表之后,所述方法还包括:
获取数据写入的写入位置;
获取与所述写入位置对应的原始记录和写入信息的记录关键字;
若所述原始记录为空,则将所述写入位置与所述记录关键字关联存储至索引表中;
若所述原始记录不为空且所述原始记录与所述记录关键字不匹配,则根据所述记录关键字对所述索引表中与所述写入位置匹配的索引信息进行更新,得到更新后的索引表。
在本发明实施方式的第二方面中,提供了一种基于湖仓一体化的数据存储装置,包括:
第一存储单元,用于将实时主题中的实时数据存储至实时数据源表中;其中,所述实时主题为Kafka中创建的主题;所述实时数据源表为所述Kafka中的数据源表;
第二存储单元,用于将离线主题中的离线数据存储至离线数据源表中;其中,所述离线主题为所述Kafka中创建的主题;所述离线数据源表为所述Kafka中的数据源表;
更新单元,用于根据所述实时数据源表和所述离线数据源表,对数据仓库中的贴源层分区表进行增量更新,得到目标贴源层分区表;其中,所述目标贴源层分区表中包括增量更新数据;
写入单元,用于将所述目标贴源层分区表中的增量更新数据写入维度分区表、事实分区表以及分区宽表;其中,所述维度分区表和所述事实分区表位于所述数据仓库的维度建模层;所述分区宽表位于所述数据仓库的数据服务层。
在本实施方式的一个实施例中,所述第一存储单元还用于:
在将实时主题中的实时数据存储至实时数据源表中之前,存储所述实时主题的当前实时状态,以及存储所述离线主题的当前离线状态;
对所述实时数据和所述离线数据的存储状态进行监测,得到监测结果;
若所述监测结果表示所述实时数据存储失败,则根据所述当前实时状态对所述实时主题进行还原;
若所述监测结果表示所述离线数据存储失败,则根据所述当前离线状态对所述离线主题进行还原。
在本实施方式的一个实施例中,所述更新单元根据所述实时数据源表和所述离线数据源表,对数据仓库中的贴源层分区表进行增量更新,得到目标贴源层分区表的方式具体为:
获取数据仓库中的贴源层分区表的数据格式;
根据所述数据格式对所述实时数据的格式以及所述离线数据的格式进行调整,得到目标实时数据和目标离线数据;
将所述目标实时数据与所述贴源层分区表中的数据进行对比,得到所述目标实时数据中的实时新增数据和/或实时变动数据;
基于所述实时新增数据和/或所述实时变动数据对所述贴源层分区表进行增量更新,得到初更新贴源层分区表;
将所述目标离线数据与所述初更新贴源层分区表中的数据进行对比,得到所述目标离线数据中的离线新增数据和/或离线变动数据;其中,所述实时新增数据和/或所述实时变动数据以及所述离线新增数据和/或所述离线变动数据均为增量更新数据;
基于所述离线新增数据和/或所述离线变动数据对所述贴源层分区表进行增量更新,得到目标贴源层分区表。
在本发明实施方式的第三方面中,提供了一种计算设备,所述计算设备包括:至少一个处理器、存储器和输入输出单元;其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中存储的计算机程序来执行第一方面中任一项所述的方法。
在本发明实施方式的第四方面中,提供了一种计算机可读存储介质,其包括指令,当其在计算机上运行时,使得计算机执行第一方面中任一项所述的方法。
根据本发明实施方式的基于湖仓一体化的数据存储方法、装置、介质和计算设备,能够将实时数据和离线数据使用一套存储方式进行存储,且可以将实时数据和离线数据存储至同一贴源层分区表、维度分区表、事实分区表以及分区宽表中,减少了数据存储使用的资源,从而提升了数据存储的效率。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1为本发明一实施例提供的基于湖仓一体化的数据存储方法的流程示意图;
图2为本发明一实施例提供的基于湖仓一体化的数据存储装置的结构示意图;
图3示意性地示出了本发明实施例的一种介质的结构示意图;
图4示意性地示出了本发明实施例的一种计算设备的结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种基于湖仓一体化的数据存储方法、装置、介质和计算设备。
需要说明的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
示例性方法
下面参考图1,图1为本发明一实施例提供的基于湖仓一体化的数据存储方法的流程示意图。需要注意的是,本发明的实施方式可以应用于适用的任何场景。
图1所示的本发明一实施例提供的基于湖仓一体化的数据存储方法的流程,包括:
步骤S101,将实时主题中的实时数据存储至实时数据源表中。
本发明实施例中,所述实时主题为Kafka中创建的主题;所述实时数据源表为所述Kafka中的数据源表。
举例来说,Kafka中创建实时主题topic_online,Kafka中还可以创建实时数据源表topic_online1。
作为一种可选的实施方式,在执行步骤S101之前,还可以执行以下步骤:
存储所述实时主题的当前实时状态,以及存储所述离线主题的当前离线状态;
对所述实时数据和所述离线数据的存储状态进行监测,得到监测结果;
若所述监测结果表示所述实时数据存储失败,则根据所述当前实时状态对所述实时主题进行还原;
若所述监测结果表示所述离线数据存储失败,则根据所述当前离线状态对所述离线主题进行还原。
其中,实施这种实施方式,可以在实时数据和离线数据存储之前,对实时主题和离线主题的当前实时状态以及当前离线状态进行存储,以避免实时数据和离线数据存储失败时,无法对实时主题和离线主题在存储数据之前的状态进行还原,保证了数据传输失败的情况下,实时主题和离线主题的状态的完整性。
步骤S102,将离线主题中的离线数据存储至离线数据源表中。
本发明实施例中,所述离线主题为所述Kafka中创建的主题;所述离线数据源表为所述Kafka中的数据源表。
举例来说,Kafka中创建离线主题topic_offline,Kafka中还可以创建离线数据源表topic_offline1。
可选的,实时数据可以通过Flink计算引擎调用FlinkKafkaConsumer函数,将topic_online中的实时数据存储至Kafka的topic_online1中,离线数据通过Flink调用FlinkKafkaConsumer函数,将topic_offline中是离线数据推送至Kafka的topic_offline1中。其中,对实时数据和离线数据不做任何处理,保留数据原貌。离线数据存储与实时数据存储过程中均需调用Flink的enableCheckpointing函数以启用检查点,并调用setStateBackend函数,设置状态后端配合检查点的使用,启用检查点维护Kafka主题消费线程的补偿(offset)。
步骤S103,根据所述实时数据源表和所述离线数据源表,对数据仓库中的贴源层分区表进行增量更新,得到目标贴源层分区表。
本发明实施例中,所述目标贴源层分区表中包括增量更新数据。
作为一种可选的实施方式,步骤S103根据所述实时数据源表和所述离线数据源表,对数据仓库中的贴源层分区表进行增量更新,得到目标贴源层分区表的方式具体可以为:
获取数据仓库中的贴源层分区表的数据格式;
根据所述数据格式对所述实时数据的格式以及所述离线数据的格式进行调整,得到目标实时数据和目标离线数据;
将所述目标实时数据与所述贴源层分区表中的数据进行对比,得到所述目标实时数据中的实时新增数据和/或实时变动数据;
基于所述实时新增数据和/或所述实时变动数据对所述贴源层分区表进行增量更新,得到初更新贴源层分区表;
将所述目标离线数据与所述初更新贴源层分区表中的数据进行对比,得到所述目标离线数据中的离线新增数据和/或离线变动数据;其中,所述实时新增数据和/或所述实时变动数据以及所述离线新增数据和/或所述离线变动数据均为增量更新数据;
基于所述离线新增数据和/或所述离线变动数据对所述贴源层分区表进行增量更新,得到目标贴源层分区表。
其中,实施这种实施方式,可以对实时数据和离线数据进行增量更新,以避免将已存储的数据进行重复存储,提升了数据存储的效率。
本发明实施例中,可以在Hudi中构建数据仓库贴源层(Operational Data Store,ODS)分区表hudi_ods,表类型使用MOR(Merge On Read),底层基于Hadoop分布式文件系统(HDFS)进行存储,目的是使用Hudi中delta_commit函数增量更新,使用FlinkSQL配置好Kafka中实时数据源表topic_online1以及离线数据源表topic_offline1与目标表hudi_ods的字段与存储格式分区信息及序列化等,hudi_ods会对于重复数据更新,非重复数据追加,实现增量写入hudi_ods表中,Hudi中存储以日志的形式存储,具体建模为键值对数据集。
步骤S104,将所述目标贴源层分区表中的增量更新数据写入维度分区表、事实分区表以及分区宽表。
本发明实施例中,所述维度分区表和所述事实分区表位于所述数据仓库的维度建模层;所述分区宽表位于所述数据仓库的数据服务层。
作为一种可选的实施方式,步骤S104将所述目标贴源层分区表中的增量更新数据写入维度分区表、事实分区表以及分区宽表的方式具体可以为:
对所述增量更新数据进行修正处理,得到修正数据;
从所述修正数据中确定维度数据和事实数据;其中,所述修正数据由所述维度数据和所述事实数据组成;
将所述维度数据写入所述数据仓库的维度建模层中的维度分区表;
将所述事实数据写入所述维度建模层中的事实分区表;
将所述维度分区表中的维度数据和所述事实分区表中的事实数据进行聚合,得到聚合数据;
将所述聚合数据写入所述数据仓库的数据服务层中的分区宽表。
其中,实施这种实施方式,可以以多种格式对实时数据和离线数据进行存储,以便于不同应用需要调用不同格式的数据时,可以快速获取到需要的格式匹配的数据。
本发明实施例中,Hudi中的数据仓库维度建模层(Data Warehouse Detail,DWD)可以构建维度分区表hudi_dwd_dim和事实分区表hudi_dwd_fact,Hudi中的数据仓库数据服务层(Data WareHouseServce,DWS)可以构建分区宽表hudi_dws,表类型均可以使用MOR。
以及,可以由FlinkSQL对hudi_ods中的数据进行修正处理,将hudi_ods中的数据进行数据仓库技术(Extract, transform, load,ETL)过滤等处理,过滤掉脏数据以及其他字段的规范一致性处理等,将得到的事数据实与维度数据分别写入hudi_dwd_fact与hudi_dwd_dim表中,DWS层将DWD层的事实数据与维度数据进行聚合。同时在数据写入DWD层与DWS层时,同步将数据的索引信息写入索引表(Hbase)中。
可选的,将所述聚合数据写入所述数据仓库的数据服务层中的分区宽表之后,还可以执行以下步骤:
获取数据写入的写入位置;
获取与所述写入位置对应的原始记录和写入信息的记录关键字;
若所述原始记录为空,则将所述写入位置与所述记录关键字关联存储至索引表中;
若所述原始记录不为空且所述原始记录与所述记录关键字不匹配,则根据所述记录关键字对所述索引表中与所述写入位置匹配的索引信息进行更新,得到更新后的索引表。
其中,实施这种实施方式,可以在写入数据的同时,将数据写入的写入位置以及数据的记录关键字在索引表中记录,还可以在对任意一个写入位置处的数据进行变更时,在索引表中对该写入位置对应的记录关键字进行更新,从而保证了索引表的实时性。
本发明实施例中,当联机分析处理(Online Analytical Processing ,OLAP)查询平台基于查询优化模块查询Hudi中DWD层与DWS层数据,先去查询Hbase中存储的位置信息,获取到相应Hudi中的位置,快速定位所需数据。
查询优化模块,基于Hbase进行索引优化处理。通过对Hudi中源码的修改,主要新增方法tagLocation函数以及updateLocation函数,实现类为HoodieIndex。
在写入数据过程中,会调用tagLocation函数给输入记录打位置标签,该方法主要使用了locationTagFunction函数来处理原始记录,locationTagFunction函数中遍历Hudi指定分区上所有记录,然后批量生成recordKey(记录关键字)从Hbase索引表中取对应的信息,然后生成位置信息;当写完数据后,需要调用updateLocation函数更新记录的位置信息,主要方法是updateLocationFunction函数,通过连接Hbase遍历状态信息,获取新的位置信息,通过WriteStatus中的HoodieRecord的位置判断是否需要更新位置信息,对于更新数据无需更新位置信息,对于新插入数据则进行位置更新处理,对于删除操作需要同步删除Hbase中存储的位置信息。
本发明能够减少数据存储使用的资源,从而提升了数据存储的效率。此外,本发明还可以保证数据传输失败的情况下,实时主题和离线主题的状态的完整性。此外,本发明还可以提升数据存储的效率。此外,本发明还可以快速获取到需要的格式匹配的数据。此外,本发明还可以保证索引表的实时性。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,参考图2对本发明示例性实施方式的一种基于湖仓一体化的数据存储装置进行说明,该装置包括:
第一存储单元201,用于将实时主题中的实时数据存储至实时数据源表中;其中,所述实时主题为Kafka中创建的主题;所述实时数据源表为所述Kafka中的数据源表;
第二存储单元202,用于将离线主题中的离线数据存储至离线数据源表中;其中,所述离线主题为所述Kafka中创建的主题;所述离线数据源表为所述Kafka中的数据源表;
更新单元203,用于根据第一存储单元201中的所述实时数据源表和第二存储单元202中的所述离线数据源表,对数据仓库中的贴源层分区表进行增量更新,得到目标贴源层分区表;其中,所述目标贴源层分区表中包括增量更新数据;
写入单元204,用于将更新单元203得到的所述目标贴源层分区表中的增量更新数据写入维度分区表、事实分区表以及分区宽表;其中,所述维度分区表和所述事实分区表位于所述数据仓库的维度建模层;所述分区宽表位于所述数据仓库的数据服务层。
作为一种可选的实施方式,所述第一存储单元201还用于:
在将实时主题中的实时数据存储至实时数据源表中之前,存储所述实时主题的当前实时状态,以及存储所述离线主题的当前离线状态;
对所述实时数据和所述离线数据的存储状态进行监测,得到监测结果;
若所述监测结果表示所述实时数据存储失败,则根据所述当前实时状态对所述实时主题进行还原;
若所述监测结果表示所述离线数据存储失败,则根据所述当前离线状态对所述离线主题进行还原。
其中,实施这种实施方式,可以在实时数据和离线数据存储之前,对实时主题和离线主题的当前实时状态以及当前离线状态进行存储,以避免实时数据和离线数据存储失败时,无法对实时主题和离线主题在存储数据之前的状态进行还原,保证了数据传输失败的情况下,实时主题和离线主题的状态的完整性。
作为一种可选的实施方式,更新单元203根据所述实时数据源表和所述离线数据源表,对数据仓库中的贴源层分区表进行增量更新,得到目标贴源层分区表的方式具体可以为:
获取数据仓库中的贴源层分区表的数据格式;
根据所述数据格式对所述实时数据的格式以及所述离线数据的格式进行调整,得到目标实时数据和目标离线数据;
将所述目标实时数据与所述贴源层分区表中的数据进行对比,得到所述目标实时数据中的实时新增数据和/或实时变动数据;
基于所述实时新增数据和/或所述实时变动数据对所述贴源层分区表进行增量更新,得到初更新贴源层分区表;
将所述目标离线数据与所述初更新贴源层分区表中的数据进行对比,得到所述目标离线数据中的离线新增数据和/或离线变动数据;其中,所述实时新增数据和/或所述实时变动数据以及所述离线新增数据和/或所述离线变动数据均为增量更新数据;
基于所述离线新增数据和/或所述离线变动数据对所述贴源层分区表进行增量更新,得到目标贴源层分区表。
其中,实施这种实施方式,可以对实时数据和离线数据进行增量更新,以避免将已存储的数据进行重复存储,提升了数据存储的效率。
作为一种可选的实施方式,写入单元204将所述目标贴源层分区表中的增量更新数据写入维度分区表、事实分区表以及分区宽表的方式具体可以为:
对所述增量更新数据进行修正处理,得到修正数据;
从所述修正数据中确定维度数据和事实数据;其中,所述修正数据由所述维度数据和所述事实数据组成;
将所述维度数据写入所述数据仓库的维度建模层中的维度分区表;
将所述事实数据写入所述维度建模层中的事实分区表;
将所述维度分区表中的维度数据和所述事实分区表中的事实数据进行聚合,得到聚合数据;
将所述聚合数据写入所述数据仓库的数据服务层中的分区宽表。
其中,实施这种实施方式,可以以多种格式对实时数据和离线数据进行存储,以便于不同应用需要调用不同格式的数据时,可以快速获取到需要的格式匹配的数据。
作为一种可选的实施方式,写入单元204还用于:
在将所述聚合数据写入所述数据仓库的数据服务层中的分区宽表之后,获取数据写入的写入位置;
获取与所述写入位置对应的原始记录和写入信息的记录关键字;
若所述原始记录为空,则将所述写入位置与所述记录关键字关联存储至索引表中;
若所述原始记录不为空且所述原始记录与所述记录关键字不匹配,则根据所述记录关键字对所述索引表中与所述写入位置匹配的索引信息进行更新,得到更新后的索引表。
其中,实施这种实施方式,可以在写入数据的同时,将数据写入的写入位置以及数据的记录关键字在索引表中记录,还可以在对任意一个写入位置处的数据进行变更时,在索引表中对该写入位置对应的记录关键字进行更新,从而保证了索引表的实时性。
本发明能够减少数据存储使用的资源,从而提升了数据存储的效率。此外,本发明还可以保证数据传输失败的情况下,实时主题和离线主题的状态的完整性。此外,本发明还可以提升数据存储的效率。此外,本发明还可以快速获取到需要的格式匹配的数据。此外,本发明还可以保证索引表的实时性。
示例性介质
在介绍了本发明示例性实施方式的方法和装置之后,接下来,参考图3对本发明示例性实施方式的计算机可读存储介质进行说明,请参考图3,其示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会实现上述方法实施方式中所记载的各步骤,例如,将实时主题中的实时数据存储至实时数据源表中;其中,实时主题为Kafka中创建的主题;实时数据源表为Kafka中的数据源表;将离线主题中的离线数据存储至离线数据源表中;其中,离线主题为Kafka中创建的主题;离线数据源表为Kafka中的数据源表;根据实时数据源表和离线数据源表,对数据仓库中的贴源层分区表进行增量更新,得到目标贴源层分区表;其中,目标贴源层分区表中包括增量更新数据;将目标贴源层分区表中的增量更新数据写入维度分区表、事实分区表以及分区宽表;各步骤的具体实现方式在此不再重复说明。
需要说明的是,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
示例性计算设备
在介绍了本发明示例性实施方式的方法、装置和介质之后,接下来,参考图4对本发明示例性实施方式的用于基于湖仓一体化的数据存储的计算设备。
图4示出了适于用来实现本发明实施方式的示例性计算设备40的框图,该计算设备40可以是计算机系统或服务器。图4显示的计算设备40仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,计算设备40的组件可以包括但不限于:一个或者多个处理器或者处理单元401,系统存储器402,连接不同系统组件(包括系统存储器402和处理单元401)的总线403。
计算设备40典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算设备40访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器402可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)4021和/或高速缓存存储器4022。计算设备40可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,ROM4023可以用于读写不可移动的、非易失性磁介质(图4中未显示,通常称为“硬盘驱动器”)。尽管未在图4中示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线403相连。系统存储器402中可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块4024的程序/实用工具4025,可以存储在例如系统存储器402中,且这样的程序模块4024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块4024通常执行本发明所描述的实施例中的功能和/或方法。
计算设备40也可以与一个或多个外部设备404(如键盘、指向设备、显示器等)通信。这种通信可以通过输入/输出(I/O)接口405进行。并且,计算设备40还可以通过网络适配器406与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图4所示,网络适配器406通过总线403与计算设备40的其它模块(如处理单元401等)通信。应当明白,尽管图4中未示出,可以结合计算设备40使用其它硬件和/或软件模块。
处理单元401通过运行存储在系统存储器402中的程序,从而执行各种功能应用以及数据处理,例如,将实时主题中的实时数据存储至实时数据源表中;其中,实时主题为Kafka中创建的主题;实时数据源表为Kafka中的数据源表;将离线主题中的离线数据存储至离线数据源表中;其中,离线主题为Kafka中创建的主题;离线数据源表为Kafka中的数据源表;根据实时数据源表和离线数据源表,对数据仓库中的贴源层分区表进行增量更新,得到目标贴源层分区表;其中,目标贴源层分区表中包括增量更新数据;将目标贴源层分区表中的增量更新数据写入维度分区表、事实分区表以及分区宽表。各步骤的具体实现方式在此不再重复说明。应当注意,尽管在上文详细描述中提及了基于湖仓一体化的数据存储装置的若干单元/模块或子单元/子模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

Claims (10)

1.一种基于湖仓一体化的数据存储方法,包括:
将实时主题中的实时数据存储至实时数据源表中;其中,所述实时主题为Kafka中创建的主题;所述实时数据源表为所述Kafka中的数据源表;
将离线主题中的离线数据存储至离线数据源表中;其中,所述离线主题为所述Kafka中创建的主题;所述离线数据源表为所述Kafka中的数据源表;
根据所述实时数据源表和所述离线数据源表,对数据仓库中的贴源层分区表进行增量更新,得到目标贴源层分区表;其中,所述目标贴源层分区表中包括增量更新数据;
将所述目标贴源层分区表中的增量更新数据写入维度分区表、事实分区表以及分区宽表;其中,所述维度分区表和所述事实分区表位于所述数据仓库的维度建模层;所述分区宽表位于所述数据仓库的数据服务层。
2.根据权利要求1所述的基于湖仓一体化的数据存储方法,所述将实时主题中的实时数据存储至实时数据源表中之前,所述方法还包括:
存储所述实时主题的当前实时状态,以及存储所述离线主题的当前离线状态;
对所述实时数据和所述离线数据的存储状态进行监测,得到监测结果;
若所述监测结果表示所述实时数据存储失败,则根据所述当前实时状态对所述实时主题进行还原;
若所述监测结果表示所述离线数据存储失败,则根据所述当前离线状态对所述离线主题进行还原。
3.根据权利要求1所述的基于湖仓一体化的数据存储方法,所述根据所述实时数据源表和所述离线数据源表,对数据仓库中的贴源层分区表进行增量更新,得到目标贴源层分区表,包括:
获取数据仓库中的贴源层分区表的数据格式;
根据所述数据格式对所述实时数据的格式以及所述离线数据的格式进行调整,得到目标实时数据和目标离线数据;
将所述目标实时数据与所述贴源层分区表中的数据进行对比,得到所述目标实时数据中的实时新增数据和/或实时变动数据;
基于所述实时新增数据和/或所述实时变动数据对所述贴源层分区表进行增量更新,得到初更新贴源层分区表;
将所述目标离线数据与所述初更新贴源层分区表中的数据进行对比,得到所述目标离线数据中的离线新增数据和/或离线变动数据;其中,所述实时新增数据和/或所述实时变动数据以及所述离线新增数据和/或所述离线变动数据均为增量更新数据;
基于所述离线新增数据和/或所述离线变动数据对所述贴源层分区表进行增量更新,得到目标贴源层分区表。
4.根据权利要求1~3任一项所述的基于湖仓一体化的数据存储方法,所述将所述目标贴源层分区表中的增量更新数据写入维度分区表、事实分区表以及分区宽表,包括:
对所述增量更新数据进行修正处理,得到修正数据;
从所述修正数据中确定维度数据和事实数据;其中,所述修正数据由所述维度数据和所述事实数据组成;
将所述维度数据写入所述数据仓库的维度建模层中的维度分区表;
将所述事实数据写入所述维度建模层中的事实分区表;
将所述维度分区表中的维度数据和所述事实分区表中的事实数据进行聚合,得到聚合数据;
将所述聚合数据写入所述数据仓库的数据服务层中的分区宽表。
5.根据权利要求4所述的基于湖仓一体化的数据存储方法,所述将所述聚合数据写入所述数据仓库的数据服务层中的分区宽表之后,所述方法还包括:
获取数据写入的写入位置;
获取与所述写入位置对应的原始记录和写入信息的记录关键字;
若所述原始记录为空,则将所述写入位置与所述记录关键字关联存储至索引表中;
若所述原始记录不为空且所述原始记录与所述记录关键字不匹配,则根据所述记录关键字对所述索引表中与所述写入位置匹配的索引信息进行更新,得到更新后的索引表。
6.一种基于湖仓一体化的数据存储装置,包括:
第一存储单元,用于将实时主题中的实时数据存储至实时数据源表中;其中,所述实时主题为Kafka中创建的主题;所述实时数据源表为所述Kafka中的数据源表;
第二存储单元,用于将离线主题中的离线数据存储至离线数据源表中;其中,所述离线主题为所述Kafka中创建的主题;所述离线数据源表为所述Kafka中的数据源表;
更新单元,用于根据所述实时数据源表和所述离线数据源表,对数据仓库中的贴源层分区表进行增量更新,得到目标贴源层分区表;其中,所述目标贴源层分区表中包括增量更新数据;
写入单元,用于将所述目标贴源层分区表中的增量更新数据写入维度分区表、事实分区表以及分区宽表;其中,所述维度分区表和所述事实分区表位于所述数据仓库的维度建模层;所述分区宽表位于所述数据仓库的数据服务层。
7.根据权利要求6所述的基于湖仓一体化的数据存储装置,所述第一存储单元还用于:
在将实时主题中的实时数据存储至实时数据源表中之前,存储所述实时主题的当前实时状态,以及存储所述离线主题的当前离线状态;
对所述实时数据和所述离线数据的存储状态进行监测,得到监测结果;
若所述监测结果表示所述实时数据存储失败,则根据所述当前实时状态对所述实时主题进行还原;
若所述监测结果表示所述离线数据存储失败,则根据所述当前离线状态对所述离线主题进行还原。
8.根据权利要求6所述的基于湖仓一体化的数据存储装置,所述更新单元根据所述实时数据源表和所述离线数据源表,对数据仓库中的贴源层分区表进行增量更新,得到目标贴源层分区表的方式具体为:
获取数据仓库中的贴源层分区表的数据格式;
根据所述数据格式对所述实时数据的格式以及所述离线数据的格式进行调整,得到目标实时数据和目标离线数据;
将所述目标实时数据与所述贴源层分区表中的数据进行对比,得到所述目标实时数据中的实时新增数据和/或实时变动数据;
基于所述实时新增数据和/或所述实时变动数据对所述贴源层分区表进行增量更新,得到初更新贴源层分区表;
将所述目标离线数据与所述初更新贴源层分区表中的数据进行对比,得到所述目标离线数据中的离线新增数据和/或离线变动数据;其中,所述实时新增数据和/或所述实时变动数据以及所述离线新增数据和/或所述离线变动数据均为增量更新数据;
基于所述离线新增数据和/或所述离线变动数据对所述贴源层分区表进行增量更新,得到目标贴源层分区表。
9.一种计算设备,所述计算设备包括:
至少一个处理器、存储器和输入输出单元;
其中,所述存储器用于存储计算机程序,所述处理器用于调用所述存储器中存储的计算机程序来执行如权利要求1~5中任一项所述的方法。
10.一种计算机可读存储介质,其包括指令,当其在计算机上运行时,使得计算机执行如权利要求1~5中的任一项所述的方法。
CN202310670792.2A 2023-06-08 2023-06-08 基于湖仓一体化的数据存储方法、装置、介质和计算设备 Active CN116431654B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310670792.2A CN116431654B (zh) 2023-06-08 2023-06-08 基于湖仓一体化的数据存储方法、装置、介质和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310670792.2A CN116431654B (zh) 2023-06-08 2023-06-08 基于湖仓一体化的数据存储方法、装置、介质和计算设备

Publications (2)

Publication Number Publication Date
CN116431654A true CN116431654A (zh) 2023-07-14
CN116431654B CN116431654B (zh) 2023-09-08

Family

ID=87089344

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310670792.2A Active CN116431654B (zh) 2023-06-08 2023-06-08 基于湖仓一体化的数据存储方法、装置、介质和计算设备

Country Status (1)

Country Link
CN (1) CN116431654B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112507029A (zh) * 2020-12-18 2021-03-16 上海哔哩哔哩科技有限公司 数据处理系统及数据实时处理方法
CN113051275A (zh) * 2021-03-31 2021-06-29 银盛支付服务股份有限公司 一种兼容实时和离线数据处理的存储架构方法
CN113901037A (zh) * 2021-09-29 2022-01-07 紫金诚征信有限公司 数据管理方法、装置及存储介质
US20220129483A1 (en) * 2020-10-28 2022-04-28 Beijing Zhongxiangying Technology Co., Ltd. Data processing method and device, computing device and medium
CN114579614A (zh) * 2022-02-11 2022-06-03 武汉物易云通网络科技有限公司 一种实时数据全量获取方法、装置及计算机设备
CN115114266A (zh) * 2022-06-29 2022-09-27 徐工汉云技术股份有限公司 一种流批一体的数仓集成方法及系统
US20220398254A1 (en) * 2020-12-25 2022-12-15 Boe Technology Group Co., Ltd. Data processing method, platform, computer-readable storage medium and electronic device
CN115599871A (zh) * 2022-10-19 2023-01-13 上海哔哩哔哩科技有限公司(Cn) 基于湖仓一体的数据处理系统和方法
CN115796914A (zh) * 2022-11-17 2023-03-14 唯品会(广州)软件有限公司 运营数据分析方法、系统、计算机设备及存储介质
CN116089545A (zh) * 2023-04-07 2023-05-09 云筑信息科技(成都)有限公司 一种采集存储介质变更数据入数据仓库的方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220129483A1 (en) * 2020-10-28 2022-04-28 Beijing Zhongxiangying Technology Co., Ltd. Data processing method and device, computing device and medium
CN112507029A (zh) * 2020-12-18 2021-03-16 上海哔哩哔哩科技有限公司 数据处理系统及数据实时处理方法
US20220398254A1 (en) * 2020-12-25 2022-12-15 Boe Technology Group Co., Ltd. Data processing method, platform, computer-readable storage medium and electronic device
CN113051275A (zh) * 2021-03-31 2021-06-29 银盛支付服务股份有限公司 一种兼容实时和离线数据处理的存储架构方法
CN113901037A (zh) * 2021-09-29 2022-01-07 紫金诚征信有限公司 数据管理方法、装置及存储介质
CN114579614A (zh) * 2022-02-11 2022-06-03 武汉物易云通网络科技有限公司 一种实时数据全量获取方法、装置及计算机设备
CN115114266A (zh) * 2022-06-29 2022-09-27 徐工汉云技术股份有限公司 一种流批一体的数仓集成方法及系统
CN115599871A (zh) * 2022-10-19 2023-01-13 上海哔哩哔哩科技有限公司(Cn) 基于湖仓一体的数据处理系统和方法
CN115796914A (zh) * 2022-11-17 2023-03-14 唯品会(广州)软件有限公司 运营数据分析方法、系统、计算机设备及存储介质
CN116089545A (zh) * 2023-04-07 2023-05-09 云筑信息科技(成都)有限公司 一种采集存储介质变更数据入数据仓库的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
花海洋;李一凡;赵怀慈;: "基于分布式数据仓库技术的ETL系统的研究与应用", 微计算机信息, no. 30, pages 151 - 153 *

Also Published As

Publication number Publication date
CN116431654B (zh) 2023-09-08

Similar Documents

Publication Publication Date Title
US11153380B2 (en) Continuous backup of data in a distributed data store
EP3571606B1 (en) Query language interoperability in a graph database
US10229011B2 (en) Log-structured distributed storage using a single log sequence number space
EP3477914B1 (en) Data recovery method and device, and cloud storage system
CN109906448B (zh) 用于促进可插拔数据库上的操作的方法、设备和介质
US9507843B1 (en) Efficient replication of distributed storage changes for read-only nodes of a distributed database
US10216949B1 (en) Dynamic quorum membership changes
US20090012932A1 (en) Method and System For Data Storage And Management
US8924365B2 (en) System and method for range search over distributive storage systems
US9699017B1 (en) Dynamic utilization of bandwidth for a quorum-based distributed storage system
US8214377B2 (en) Method, system, and program for managing groups of objects when there are different group types
CN108509462B (zh) 一种同步活动事务表的方法及装置
CN111124474B (zh) 一种api版本控制方法及装置
US7624117B2 (en) Complex data assembly identifier thesaurus
CN111177143B (zh) 键值数据存储方法、装置、存储介质与电子设备
US11250019B1 (en) Eventually consistent replication in a time-series database
US10909091B1 (en) On-demand data schema modifications
US20110320404A1 (en) Standby index in physical data replication
US20080294673A1 (en) Data transfer and storage based on meta-data
US10303552B2 (en) Method for optimizing index, master database node and subscriber database node
CN113934713A (zh) 一种订单数据索引方法、系统、计算机设备以及存储介质
CN110362590A (zh) 数据管理方法、装置、系统、电子设备及计算机可读介质
CN117033454A (zh) 数据处理方法、装置、设备及介质
CN116431654B (zh) 基于湖仓一体化的数据存储方法、装置、介质和计算设备
US20050066235A1 (en) Automated fault finding in repository management program code

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