WO2018188196A1 - 一种数据版本控制方法、数据版本控制器、设备及计算机可读存储介质 - Google Patents
一种数据版本控制方法、数据版本控制器、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- WO2018188196A1 WO2018188196A1 PCT/CN2017/090925 CN2017090925W WO2018188196A1 WO 2018188196 A1 WO2018188196 A1 WO 2018188196A1 CN 2017090925 W CN2017090925 W CN 2017090925W WO 2018188196 A1 WO2018188196 A1 WO 2018188196A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- version
- database
- change set
- relational database
- Prior art date
Links
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/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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Definitions
- the present invention relates to the field of data processing technologies, and in particular, to a data version control method, a data version controller, a device, and a computer readable storage medium.
- the invention provides a data version control method, a data version controller, a device and a computer readable storage medium, which can implement version control on data in a relational database.
- an embodiment of the present invention provides a data version control method, where the method includes:
- an embodiment of the present invention provides a data version controller, where the data version controller includes:
- a first reading unit configured to read data in the relational database
- a converting unit configured to convert the data into an intermediate format file by using a preset data structure
- a second reading unit that reads data of the latest version of the data warehouse in the same branch as the data
- a comparison unit configured to compare the data in the converted intermediate format file with the latest version of the data in the same branch of the read data warehouse to obtain a change set, where the change set has the same data structure as the intermediate format file;
- An update unit configured to update the change set to a relational database according to a pre-stored database dialect template, or update the change set to a data warehouse.
- an embodiment of the present invention provides a device, where the device includes a processor, and a memory connected to the processor;
- the memory is configured to store a program for implementing data version control
- the processor is configured to execute a program stored in the memory to perform the method described in the first aspect above.
- an embodiment of the present invention provides a computer readable storage medium storing one or more programs, the one or more programs being executable by one or more processors, To achieve the method described in the first aspect above.
- the embodiment provided by the embodiment of the present invention converts the data in the relational database into an intermediate format file by adding an intermediate format file, and the intermediate format file is compared with the latest version of the data in the same branch of the data warehouse, and then the change set is Update to a data warehouse or update to a relational database to implement version control of relational data.
- FIG. 1 is a schematic flowchart of a data version control method according to an embodiment of the present invention
- FIG. 2 is a schematic diagram of a sub-flow of a data version control method according to an embodiment of the present invention
- FIG. 3 is a schematic diagram of a sub-flow of a data version control method according to an embodiment of the present invention.
- FIG. 4 is a schematic flowchart of a data version control method according to another embodiment of the present invention.
- FIG. 5 is a schematic flowchart of a submitting method according to an embodiment of the present invention.
- FIG. 6 is a schematic flowchart of a detection method according to an embodiment of the present invention.
- FIG. 7 is a schematic flowchart of an update method according to an embodiment of the present invention.
- FIG. 8 is a schematic flowchart of a restoration method according to an embodiment of the present invention.
- FIG. 9 is a schematic flowchart of a data version control method according to another embodiment of the present invention.
- FIG. 10 is a schematic flowchart of a merging method according to an embodiment of the present invention.
- FIG. 11 is a schematic block diagram of a data version control system according to an embodiment of the present invention.
- FIG. 12 is a schematic block diagram of a data version controller according to an embodiment of the present invention.
- FIG. 13 is a schematic block diagram of a conversion unit according to an embodiment of the present invention.
- FIG. 14 is a schematic block diagram of an update unit according to an embodiment of the present invention.
- FIG. 15 is a schematic block diagram of a data version controller according to another embodiment of the present invention.
- 16 is a schematic block diagram of a data version controller according to another embodiment of the present invention.
- FIG. 17 is a schematic block diagram of a data version controller according to another embodiment of the present invention.
- FIG. 18 is a schematic block diagram of an apparatus according to an embodiment of the present invention.
- relational database is simply referred to as a database below.
- FIG. 1 is a schematic flowchart diagram of a data version control method according to an embodiment of the present invention. The method includes S101 ⁇ S105.
- the data in the database includes a data dictionary and relational data.
- reading relational data is to traverse the table to read the relational data in the table.
- the read data includes a data dictionary and relational data.
- the read data dictionary will be stored in the work area. If the data in the database is subsequently read, if there is no change in the data dictionary, such as adding new fields in the table, adding new tables, etc., it is not necessary to read the data. Dictionary, you only need to read relational data. When the data of the data dictionary is needed, it is read in the work area.
- S102 Convert the data into an intermediate format file by using a preset data structure.
- the preset data structure is an XML data structure
- the intermediate format file is an XML file
- the data stored by the XML file is highly portable.
- the data stored in the intermediate format file is a data dictionary and/or relational data converted by the XML data structure.
- S102 includes S201-S202.
- S201. Read a data dictionary to obtain a table structure. Among them, the content of the table structure stored in the data dictionary. If the data read from the database is only relational data, then the data dictionary is read from the workspace to get the table structure.
- S202 Convert the table structure and the relational data into an intermediate format file by using a preset data structure.
- the preset data structure is an XML data structure.
- the latest version of the data in the read data warehouse belongs to the data under the same branch as the data in the database, wherein the data in the data warehouse has the same data structure as the intermediate format file.
- the latest version of the data in the data warehouse may have modified data from other branches of the user, such as multiple databases under the branch, when other branches also use the same database, when the data of other branches is submitted new After the version of the branch, when the data of the branch is updated, there are data modified by users of other branches.
- the data of the latest version in the data warehouse may be read first, then the data of the database under the same branch is read, and the data in the read database is converted into an intermediate format file by using a preset data structure.
- S105 Update the change set to a data warehouse or update the change set to a database according to a pre-stored database dialect template.
- the change set is updated to the data warehouse to make it a new version in the data warehouse.
- updating the change set to the database according to the pre-stored database dialect template includes S301-S304.
- S301 obtaining a database type and version. It can be obtained by reading the database type and version in the database, or by reading the data of the relevant version in the data warehouse (the version and version of the database included in the version data in the data warehouse).
- the database dialect template stores data dialects of different database types and different database versions.
- the data stored in the data warehouse includes the corresponding database type and database version, and the corresponding database dialect of the database type and the database version is searched in the database dialect template.
- S303. Parse the change set according to a corresponding database dialect to generate a script language that the database can execute.
- the scripting language refers to SQL (Structure Query Language) language, including data query language DQL (data query language), data manipulation language DML (data manipulation Language), data definition language (DDL), data control language DCL (Data control One or more of language).
- S304 Execute the scripting language in a database to update the change set to a database.
- the method embodiment above converts the data in the database into an intermediate format file by adding an intermediate format file, compares the data in the data warehouse to obtain a change set, and updates the change set to the data warehouse to form the branch work area.
- a new version to complete the version submission of the database, or to update the changeset to the database to update or restore data in the branch workspace database.
- FIG. 4 is a schematic flowchart diagram of a data version control method according to another embodiment of the present invention.
- the method includes S401 ⁇ S407. This method differs from the method in the embodiment of Fig. 1 in that steps S405-S406 are added.
- the conflict includes multiple different data of the same value. Understandably, different users (under different branches) modify the same value, and the modified value is different. For example, the first user modifies the value to abc, and the second user modifies the value to dfg, so Will conflict. If there is a conflict, S406 is performed; if there is no conflict, S407 is performed.
- the change set is updated to the data warehouse to make it a new version in the data warehouse.
- common data version control operations include commit, update, restore, merge, and so on.
- the submit operation refers to submitting the data that is not versioned by the database to the data warehouse to become a new version, wherein the first commit operation is also called a check-in operation; the update operation refers to downloading the version in the data warehouse.
- the data in the database is updated to the database, and the local operation can be retained.
- the first update operation is also called the checkout operation (the branch work area is empty, or the database is empty);
- the restore operation refers to It is to overwrite a version of the data in the data warehouse to the database;
- the merge operation refers to the consolidation of data from databases in different workspaces into one of the workspaces.
- FIG. 5 is a schematic flowchart of a submit operation method according to an embodiment of the present invention.
- the submit operation method submits the data that is not versioned in the workspace to the data warehouse to become a new data version.
- the submission operation method includes S501-S507.
- the data in the database is read after entering the branch work area, wherein the branch work area is entered according to the branch version number.
- the configuration database information includes the type and version of the configuration database, the username and password to connect to the database, and the tables that may be involved.
- the data in the read database includes the data dictionary and the relational data, and after the first commit is completed, the data of the data dictionary is saved in the branch work area.
- reading relational data is to read the relational data in the table by traversing the table.
- the preset data structure is an XML data structure
- the intermediate format file is an XML file.
- the data is converted into an intermediate format file through a preset data structure. Please refer to the content described in FIG. 2. If the first commit operation is checked in, after the step is executed, submitting the intermediate format file directly to the data warehouse has become a new version in the data warehouse.
- the latest version of the data in the read data warehouse belongs to the data under the same branch as the data in the database, wherein the data in the data warehouse has the same data structure as the intermediate format file.
- the data of the latest version in the data warehouse may be read first, then the data of the database under the same branch is read, and the data in the read database is converted into an intermediate format file by using a preset data structure.
- the prompt version has expired.
- the prompt version has expired to inform other users in the data warehouse to submit a new version, and the submission operation needs to be performed on the new version to avoid data inconsistency.
- the prompt version has expired, resubmit after performing the update operation.
- the flow of the update operation is shown in Figure 7. It should be noted that the update operation mentioned here does not include the step of updating the change set to the database according to the pre-stored database dialect template in FIG. 7.
- FIG. 6 is a schematic flowchart diagram of a detection operation method according to an embodiment of the present invention.
- the checkout operation method is performed after the version data has been submitted in the data warehouse, so that a version in the data warehouse is taken out to become data in the database.
- the detection operation method includes S601-S602.
- S602. Update the latest version of the data to the database according to the pre-stored database dialect template. Specifically, S602 refers to the content described in FIG. 3.
- FIG. 7 is a schematic flowchart diagram of an update operation method according to an embodiment of the present invention.
- the update operation method is to download the incompatible content in the data warehouse and the branch workspace database.
- the update operation method includes S701-S707.
- the preset data structure is an XML data structure
- the intermediate format file is an XML file.
- the data of the latest version in the data warehouse may be read first, then the data of the database under the same branch is read, and the data in the read database is converted into an intermediate format file by using a preset data structure.
- the conflict includes multiple different data of the same value. Understandably, different users (under different branches) modify the same value, and the modified value is different. For example, the first user modifies the value to abc, and the second user modifies the value to dfg, so Will conflict. If there is a conflict, execute S706; if there is no conflict, execute S707.
- Update the change set to the database according to the pre-stored database dialect template The change set is updated to the database to update the content in the database of the branch workspace based on the pre-stored database dialect template.
- update the changeset to the database please refer to the content described in FIG.
- FIG. 8 is a schematic flowchart diagram of a restoration method according to an embodiment of the present invention. This restore method overrides the database of the branch workspace with the latest version in the data warehouse.
- the reduction method includes S801-S805.
- the preset data structure is an XML data structure
- the intermediate format file is an XML file.
- the data of the latest version in the data warehouse may be read first, then the data of the database under the same branch is read, and the data in the read database is converted into an intermediate format file by using a preset data structure.
- Update the change set to a database according to a pre-stored database dialect template The change set is updated to the database to update the content in the database of the branch workspace based on the pre-stored database dialect template.
- update the changeset to the database please refer to the content described in FIG.
- FIG. 9 is a schematic flowchart diagram of a data version control method according to another embodiment of the present invention.
- the method includes at least two branches under the same project, and is performed based on the version data of the two branches already in the operation data warehouse, so as to merge the contents of the data warehouses of the two branches.
- the method includes S901-S904.
- S901 Read data of the latest version of the two branches under the same project in the data warehouse.
- the above embodiment implements the merging of the contents of the data warehouses of the two branches under the same project.
- the merge operation method includes at least a first branch and a second branch under the same project, and a version of the branch that already has two branches in the data warehouse based on the commit operation. After the data is performed, the data of the first branch in the data warehouse is merged into the second branch.
- the merging method includes S111-S116.
- S113 Detect whether there is a conflict in the difference change set. If there is a conflict, S114 is performed; if there is no conflict, S115 is performed.
- FIG. 11 is a schematic block diagram of a data version control system according to an embodiment of the present invention.
- the data version control system 110 includes a data version controller 111 and a data repository 112. among them,
- Data warehouse 112 is used to store data for all versions of all branches. Among them, the data stored in the data warehouse has the same data structure as the intermediate format file.
- the data version controller 111 is configured to read data in the database and convert the data into an intermediate format file, and is also used to read the latest version of the data in the data warehouse under the same branch as the data, and convert the data interaction unit.
- the data in the intermediate format file is compared with the data of the relevant version under the same branch in the data warehouse to obtain the change set, and the change set is updated to the data warehouse or the change set is updated to the database according to the pre-stored database dialect template.
- FIG. 12 is a schematic block diagram of a data version controller according to an embodiment of the present invention.
- the data version controller 120 includes a first reading unit 121, a converting unit 122, a second reading unit 123, a comparing unit 124, and an updating unit 125. among them,
- the first reading unit 121 is configured to read data in a database, wherein the database includes a data dictionary and relational data. Reading relational data in the database is done by traversing the table. Preferably, in the data version control, if the data in the database is read for the first time, the read data includes a data dictionary and relational data.
- the read data dictionary will be stored in the work area. If the data in the database is subsequently read, if there is no change in the data dictionary, such as adding new fields in the table, adding new tables, etc., it is not necessary to read the data. Dictionary, you only need to read relational data. When the data of the data dictionary is needed, it is read in the work area.
- the converting unit 122 is configured to convert the data into an intermediate format file.
- the preset data structure is an XML data structure
- the intermediate format file is an XML file
- the data stored in the XML file is highly portable.
- the data stored in the intermediate format file is a data dictionary and/or relational data converted by the XML data structure.
- the conversion unit 122 includes a data dictionary reading unit 131 and a format conversion unit 132.
- the data dictionary reading unit 131 is configured to read the data dictionary to obtain a table structure. Among them, the content of the table structure stored in the data dictionary.
- the format conversion unit 132 is configured to convert the table structure and the read relational data into an intermediate format file by using a preset data structure.
- the second reading unit 123 is configured to read the latest version of the data in the data warehouse under the same branch as the data, wherein the data in the data warehouse has the same data structure as the intermediate format file.
- the content of the second reading unit may be executed first, and then the contents of the first execution unit and the conversion unit are executed.
- the comparing unit 124 is configured to compare the data in the converted intermediate format file with the latest version of the data in the same branch in the read data warehouse to obtain a change set having the same data structure as the intermediate format file.
- the update unit 125 is configured to update the change set to the database according to the pre-stored database dialect template.
- the update unit 125 includes an acquisition unit 141, a search unit 142, a generation unit 143, and an execution unit 144.
- the obtaining unit 141 is configured to acquire a database type and a version. It can be obtained by reading the database type and version in the database, or by reading the data of the version in the data warehouse (the version and version of the database included in the version data in the data warehouse).
- the searching unit 142 is configured to search for a corresponding database dialect corresponding to the database type and version in the pre-stored database dialect template.
- the database dialect template stores data dialects of different database types and different database versions.
- the data stored in the data warehouse includes the corresponding database type and database version, and the corresponding database dialect of the database type and the database version is searched in the database dialect template.
- the generating unit 143 is configured to parse the change set according to a corresponding database dialect to generate a scripting language that the database can execute.
- the scripting language refers to SQL (Structure Query Language) language, including data query language DQL (data query language), data manipulation language DML (data manipulation Language), data definition language (DDL), data control language DCL (Data control One or more of language).
- Execution unit 144 is operative to execute the scripting language in a database to update the changeset to a database. or
- the update unit 125 is configured to update the change set to the data warehouse to make it a new version in the data warehouse.
- FIG. 15 is a schematic block diagram of a data version controller according to another embodiment of the present invention.
- the data version controller 150 includes a first reading unit 151, a converting unit 152, a second reading unit 153, a comparing unit 154, an updating unit 155, a detecting unit 156, and a modifying unit 157.
- the difference between this embodiment and the embodiment shown in FIG. 12 is that the detecting unit 156 and the modifying unit 157 are added.
- the first reading unit 151, the converting unit 152, the second reading unit 153, and the comparing unit 154 refer to the descriptions of the corresponding units in the embodiment of FIG.
- the detecting unit 156 is configured to detect whether there is a conflict in the change set, and the conflict includes that there are multiple different data of the same value.
- the modifying unit 157 is configured to modify the conflict if the change set has a conflict. After detecting a conflict, modify the conflict and correctly handle the conflict value.
- the update unit 155 is configured to update the change set to the data warehouse or update the change set to the database according to the pre-stored data block dialect template if there is no conflict in the change set.
- FIG. 16 is a schematic block diagram of a data version controller according to another embodiment of the present invention.
- This embodiment corresponds to the submit operation method of the method embodiment.
- Embodiments can submit data that is not versioned in the workspace to the data warehouse as a new data version.
- the data version controller 160 of this embodiment includes a first reading unit 161, a converting unit 162, a second reading unit 163, a comparing unit 164, an updating unit 165, a detecting unit 166, and a prompting unit 167.
- the difference between this embodiment and the embodiment shown in FIG. 12 is that the detecting unit 166 and the prompting unit 167 are added.
- the first reading unit 161, the converting unit 162, the second reading unit 163, and the comparing unit 164 refer to the descriptions of the corresponding units in the embodiment of FIG.
- the detecting unit 166 is configured to detect whether there is a new version in the data warehouse. Understandably, it is detected whether other users have submitted new versions. If there are multiple databases under the branch, and other branches use the same database of the branch, when other branches commit, a new version will appear. .
- the update unit 165 is also used to update the change set to the data warehouse if there is no new version in the data warehouse. Become a new version after updating to the data warehouse. This version records information such as the updated username, time, and the type and version of the database.
- the prompt unit 167 is used to indicate that the version has expired if there is a new version in the data warehouse.
- the prompt version has expired to inform other users in the data warehouse to submit a new version, and the submission operation needs to be performed on the new version to avoid data inconsistency.
- FIG. 17 is a schematic block diagram of a data version controller according to another embodiment of the present invention.
- This embodiment corresponds to the merge operation method in the method embodiment.
- the embodiment includes at least a first branch and a second branch, and is performed based on the version data of the two branches already in the data warehouse, to merge the data of the first branch in the data warehouse into the second branch.
- the data version controller 170 in this embodiment includes a first reading unit 171, a converting unit 172, a second reading unit 173, a comparing unit 174, an updating unit 175, a detecting unit 176, and a modifying unit 177.
- the difference between the embodiment of the present invention and the embodiment of FIG. 15 is as follows:
- the second reading unit 173 is further configured to read data of the latest version of the first branch and the latest version of the second branch from the data warehouse.
- the comparing unit 174 is further configured to compare the data of the latest version of the first branch with the data of the latest version of the second branch to obtain a difference change set.
- the detecting unit 176 is further configured to detect whether the difference change set has a conflict.
- the modification unit 177 is also used to modify the conflict if there is a conflict. After detecting a conflict, modify the conflict and correctly handle the conflict value.
- the update unit 175 is further configured to merge the difference change into the data of the latest version of the second branch if there is no conflict, and update the data of the latest version of the merged second branch into the data warehouse.
- FIG. 18 is a schematic block diagram of an apparatus according to an embodiment of the present invention.
- the device 180 includes an input device 181, an output device 182, a memory 183, and a processor 184.
- the input device 181, the output device 182, the memory 183, and the processor 184 are connected by a bus 185. among them:
- the input device 181 is configured to provide a user editing conflict and modify the conflict.
- the input device 181 of the embodiment of the present invention may include a keyboard, a mouse, a photoelectric input device, a sound input device, a touch input device, and the like.
- the output device 182 is for outputting processed data and the like.
- the output device 182 of the embodiment of the present invention may include a display, a display screen, a touch screen, a sound output device, and the like.
- the memory 183 is used to store programs that implement version control as well as program data.
- the program data stored in the memory 183 in the embodiment of the present invention includes a data dictionary, relational data, an intermediate format file, a change set, a database dialect template, a database type and a version, and the like.
- the memory 183 of the embodiment of the present invention may be a system memory such as volatile (such as RAM), non-volatile (such as ROM, flash memory, etc.), or a combination of the two.
- the memory 183 of the embodiment of the present invention may also be an external memory outside the system, such as a magnetic disk, an optical disk, a magnetic tape, or the like.
- the processor 184 is configured to run a program stored in the memory 183 to perform the following operations:
- Reading data in a relational database the data including a data dictionary and relational data; converting the data into an intermediate format file, wherein the data stored in the intermediate format file includes a data dictionary converted by a preset data structure and Relational data; reading the latest version of the data in the data warehouse under the same branch as the data, wherein the data in the data warehouse has the same data structure as the intermediate format file; the data in the converted intermediate format file Comparing with the latest version of data in the same branch of the read data warehouse to obtain a change set having the same data structure as the intermediate format file; updating the change set to the data warehouse or according to the pre-stored database dialect template Update the changeset to a relational database.
- the processor 184 also performs the following operations:
- Reading a data dictionary to obtain a table structure traversing the table to read relational data in the table; converting the table structure and the relational data into an intermediate format file by a preset data structure.
- the processor 184 also performs the following operations:
- Obtaining a relational database type and version searching a pre-stored database dialect template for a corresponding database dialect corresponding to the relational database type and version; and parsing the change set to generate the relational database according to a corresponding database dialect a scripting language; executing the scripting language in a relational database to update the changeset to a relational database.
- the processor 184 also performs the following operations:
- the processor 184 also performs the following operations:
- the invention also provides a computer readable storage medium storing one or more programs, the one or more programs being executable by one or more processors to implement the steps of:
- Reading data in a relational database the data including a data dictionary and relational data; converting the data into an intermediate format file, wherein the data stored in the intermediate format file includes a data dictionary converted by a preset data structure and Relational data; reading the latest version of the data in the data warehouse under the same branch as the data, wherein the data in the data warehouse has the same data structure as the intermediate format file; the data in the converted intermediate format file Comparing with the latest version of data in the same branch of the read data warehouse to obtain a change set having the same data structure as the intermediate format file; updating the change set to the data warehouse or according to the pre-stored database dialect template Update the changeset to a relational database.
- the step further comprises: reading a data dictionary to obtain a table structure; traversing the table to read relational data in the table; and the table structure and the relational data by a preset data structure Convert to an intermediate format file.
- the step further includes: acquiring a relational database type and version; searching, in the pre-stored database dialect template, a corresponding database dialect corresponding to the relational database type and version; and parsing the change set according to the corresponding database dialect Generating a scripting language executable by the relational database; executing the scripting language in a relational database to update the changeset to a relational database.
- the step further comprises:
- the step further comprises:
- the disclosed data version controller and method may be implemented in other manners.
- the data version controller embodiment described above is merely illustrative.
- the division of the unit is only a logical function division, and the actual implementation may have another division manner, such as multiple units or components. It can be combined or integrated into another system, or some features can be ignored or not executed.
- the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, or an electrical, mechanical or other form of connection.
- the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, may be located in one place, or may be distributed to multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the embodiments of the present invention.
- each functional unit in each embodiment of the present invention may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
- the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
- the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a computer readable storage medium.
- the technical solution of the present invention contributes in essence or to the prior art, or all or part of the technical solution may be embodied in the form of a software product stored in a storage medium.
- Including several instructions to make a computer device may be a personal computer, server, or network device, etc.
- the foregoing storage medium includes: a USB flash drive, a mobile hard disk, and a read only memory. (ROM, Read-Only Memory), random access memory (RAM, Random Access)
- ROM Read-Only Memory
- RAM Random Access
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据版本控制方法、数据版本控制器、设备及计算机可读存储介质。所述方法包括:读取关系型数据库中的数据;将所述数据经过预设数据结构转换为中间格式文件;读取数据仓库中与所述数据在相同分支下的最新版本数据;将转换后的中间格式文件中的数据与读取的数据仓库中相同分支下最新版本的数据进行对比得到变更集;将所述变更集更新到数据仓库或者根据预存的数据库方言模板将所述变更集更新到关系型数据库。所述实施例通过增加中间格式文件,将关系型数据库中的数据转换为中间格式文件,该中间格式文件与数据仓库中相同分支下最新版本的数据进行对比后,将变更集更新到数据仓库或者更新到关系型数据库,以实现关系型数据的版本控制。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据版本控制方法、数据版本控制器、设备及计算机可读存储介质。
背景技术
现有的版本控制系统如git、Subversion等只能对文件进行版本控制,无法对存储在关系型数据库中的数据进行版本控制。
发明内容
本发明提供了一种数据版本控制方法、数据版本控制器、设备及计算机可读存储介质,可以实现对关系型数据库中的数据进行版本控制。
第一方面,本发明实施例提供了一种数据版本控制方法,该方法包括:
读取关系型数据库中的数据;
将所述数据经过预设数据结构转换为中间格式文件;
读取数据仓库中与所述数据在相同分支下的最新版本的数据;
将转换后的中间格式文件中的数据与读取的数据仓库中相同分支下最新版本的数据进行对比得到变更集;
将所述变更集更新到数据仓库或者根据预存的数据库方言模板将所述变更集更新到关系型数据库。
第二方面,本发明实施例提供了一种数据版本控制器,该数据版本控制器包括:
第一读取单元,用于读取关系型数据库中的数据;
转换单元,用于将所述数据经过预设数据结构转换为中间格式文件;
第二读取单元,读取数据仓库中与所述数据在相同分支下的最新版本的数据;
对比单元,用于将转换后的中间格式文件中的数据与读取的数据仓库中相同分支下最新版本的数据进行对比得到变更集,所述变更集有与中间格式文件相同的数据结构;
更新单元,用于根据预存的数据库方言模板将所述变更集更新到关系型数据库,或者将所述变更集更新到数据仓库。
第三方面,本发明实施例提供了一种设备,该设备包括处理器,以及与所述处理器相连的存储器;
所述存储器,用于存储实现数据版本控制的程序;
所述处理器,用于运行所述存储器中存储的程序,以执行上述第一方面所述的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器执行,以实现上述第一方面所述的方法。
本发明实施例提供的实施例,通过增加中间格式文件,将关系型数据库中的数据转换为中间格式文件,该中间格式文件与数据仓库中相同分支下最新版本的数据进行对比后,将变更集更新到数据仓库或者更新到关系型数据库,以实现关系型数据的版本控制。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据版本控制方法的示意流程图;
图2是本发明实施例提供的一种数据版本控制方法的一个子流程示意图;
图3是本发明实施例提供的一种数据版本控制方法的一个子流程示意图;
图4是本发明另一实施例提供的一种数据版本控制方法的示意流程图;
图5是本发明实施例提供的提交方法的示意流程图;
图6是本发明实施例提供的检出方法的示意流程图;
图7是本发明实施例提供的更新方法的示意流程图;
图8是本发明实施例提供的还原方法的示意流程图;
图9是本发明另一实施例提供的一种数据版本控制方法的示意流程图;
图10是本发明实施例提供的合并方法的示意流程图;
图11是本发明实施例提供的一种数据版本控制系统的示意性框图;
图12是本发明实施例提供的一种数据版本控制器的示意性框图;
图13是本发明实施例提供的转换单元的示意性框图;
图14是本发明实施例提供的更新单元的示意性框图;
图15是本发明另一实施例提供的一种数据版本控制器的示意性框图;
图16是本发明另一实施例提供的一种数据版本控制器的示意性框图;
图17是本发明另一实施例提供的一种数据版本控制器的示意性框图;
图18是本发明实施例提供的一种设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和
“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书和所附权利要求书中使用的术语“和/
或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
需要说明的是,以下将关系型数据库简称为数据库。
图1为本发明实施例提供的一种数据版本控制方法的流程示意图。该方法包括S101~S105。
S101,读取数据库中的数据。其中,数据库中的数据包括数据字典和关系型数据。其中,读取关系型数据是通过遍历表以读取表中的关系型数据的。优选地,在数据版本控制中,若是第一次读取数据库中的数据,那么读取的数据包括数据字典和关系型数据。读取的数据字典会存储在工作区中,在后续读取数据库中的数据时,若不涉及到数据字典的变动,如表中新增加字段、增加新的表等,则不需要读取数据字典,只需要读取关系型数据即可。需要数据字典的数据时,在工作区中读取。
S102,将该数据经过预设数据结构转换为中间格式文件。优选地,预设数据结构为XML数据结构,中间格式文件是XML文件,用XML文件存储的数据可移植性很强。可以理解地,中间格式文件存储的数据是经过XML数据结构转换后的数据字典和/或关系型数据。具体地,如图2所示,S102包括S201-S202。S201,读取数据字典以获取表结构。其中,数据字典中存储的有表结构的内容。若从数据库中读取的数据只有关系型数据,那么从工作区中读取数据字典以获取表结构。S202,通过预设数据结构将表结构和关系型数据转换为中间格式文件。其中,预设数据结构为XML数据结构。
S103,读取数据仓库中与该数据在相同分支下的最新版本的数据。其中,读取的数据仓库中的最新版本的数据与数据库中的数据属于同一个分支下的数据,其中,数据仓库中的数据有与中间格式文件相同的数据结构。数据仓库中最新版本的数据中可能有其他分支的用户修改过的数据,如该分支下的数据库有多个,当其他分支也用到其中的相同的数据库时,当其他分支的数据提交了新的版本后,当该分支的数据更新后有其他分支的用户修改过的数据。在其他实施例中,也可以先读取数据仓库中最新版本的数据,再读取相同分支下数据库的数据,将读取的数据库中的数据经过预设数据结构转换为中间格式文件。
S104,将转换后的中间格式文件中的数据与读取的数据仓库中相同分支下最新版本的数据进行对比得到变更集,所述变更集有与中间格式文件相同的数据结构。
S105,将所述变更集更新到数据仓库或者根据预存的数据库方言模板将所述变更集更新到数据库。其中,将所述变更集更新到数据仓库以使其成为数据仓库中的一个新的版本。根据预存的数据库方言模板将所述变更集更新到数据库以更新或者还原分支工作区中的内容。如图3所示,根据预存的数据库方言模板将所述变更集更新到数据库包括S301-S304。S301,获取数据库类型和版本。其中,可通过读取数据库中的数据库类型和版本来获取,也可以通过读取数据仓库中的有关版本的数据来获取(数据仓库中的版本数据中包括数据库的类型和版本)。S302,在预存的数据库方言模板中查找对应数据库类型和版本的对应数据库方言。其中,数据库方言模板中存储有不同数据库类型和不同数据库版本的数据方言。数据仓库中存储的数据中包括有对应数据库类型和数据库版本,在数据库方言模板中查找该数据库类型和数据库版本的对应数据库方言。S303,根据对应数据库方言,解析所述变更集以生成数据库可以执行的脚本语言。其中,脚本语言指的是SQL(Structure
Query Language)语言,包括数据查询语言DQL(data query language),数据操纵语言DML(data manipulation
language),数据定义语言DDL(data definition language),数据控制语言DCL(Data control
language)等的一种或者多种。S304,在数据库中执行所述脚本语言以将所述变更集更新到数据库。
上述方法实施例通过增加中间格式文件,将数据库中的数据转换为中间格式文件,与数据仓库中的数据进行对比得到变更集,将所述变更集更新到数据仓库以形成该分支工作区中的一个新的版本,以完成数据库的版本提交,或者将所述变更集更新到数据库,以更新或者还原分支工作区数据库中的数据。
图4为本发明另一实施例提供的一种数据版本控制方法的流程示意图。该方法包括S401~S407。该方法与图1实施例中的方法不同之处在于:增加了步骤S405-S406。
S405,检测所述变更集是否存在冲突。其中,冲突包括同一个值存在多种不同的数据。可以理解地,不同的用户(不同分支下)对同一个值进行修改,修改的值不一样,如第一个用户将该值修改为abc,第二个用户将该值修改为dfg,因此就会冲突。如果有冲突,执行S406;如果没有冲突,执行S407。
S406,修改该冲突。检测到有冲突了之后,对冲突进行修改,将冲突的值进行正确的处理。
S407,将所述变更集更新到数据仓库或者根据预存的数据库方言模板将所述变更集更新到数据库。其中,将所述变更集更新到数据仓库以使其成为数据仓库中的一个新的版本。根据预存的数据库方言模板将所述变更集更新到数据库以更新或者还原分支工作区数据库中的数据。
对于一个数据版本控制器而言,常见的数据版本控制操作有提交、更新、还原、合并等操作。其中,提交操作指的是将数据库没有版本化的数据提交到数据仓库成为一个新的版本,其中,第一次的提交操作也称为检入操作;更新操作指的是下载数据仓库中的版本中与数据库不同的数据以更新到数据库,可以保留本地的操作,其中,第一次的更新操作也称为检出操作(分支工作区是空的,或者数据库是空的);还原操作指的是把数据仓库中的一个版本的数据覆盖到数据库;合并操作指的是将不同工作区的数据库的数据合并到其中一个工作区的数据库。
图5是本发明实施例提供的一个提交操作方法的流程示意图。该提交操作方法以将工作区没有版本化的数据提交到数据仓库成为一个新的数据版本。该提交操作方法包括S501-S507。
S501,读取数据库中的数据。在进入分支工作区之后读取数据库中的数据,其中,根据分支版本号进入分支工作区。在第一次提交操作,即检入操作时,进入分支工作区后还需要配置数据库的信息。配置数据库信息包括配置数据库的类型和版本、连接数据库的用户名、密码、可能涉及的表等。优选地,在第一次提交操作时,读取数据库中的数据包括数据字典和关系型数据,在第一次提交完成后,数据字典的数据保存在分支工作区。在后续读取数据库中的数据时,如果不涉及到数据字典的变动,如表中新增加字段、增加新的表等,则不需要读取数据字典,只读取关系型数据即可。需要数据字典的数据时,在工作区中读取。其中,读取关系型数据是通过遍历表来读取表中的关系型数据的。
S502,将该数据库中的数据经过预设数据结构转换为中间格式文件。优选地,预设数据结构为XML数据结构,中间格式文件是XML文件。具体地,将该数据经过预设数据结构转换为中间格式文件请参看图2所述的内容。若是第一次提交操作,即检入操作,执行该步骤后,直接将中间格式文件提交到数据仓库已成为数据仓库中的一个新的版本。
S503,读取数据仓库中的相同分支下最新版本的数据。其中,读取的数据仓库中的最新版本的数据与数据库中的数据属于同一个分支下的数据,其中,数据仓库中的数据有与中间格式文件相同的数据结构。在其他实施例中,也可以先读取数据仓库中最新版本的数据,再读取相同分支下数据库的数据,将读取的数据库中的数据经过预设数据结构转换为中间格式文件。
S504,将转换后的中间格式文件中的数据与数据仓库中相同分支下的最新版本的数据进行对比得到变更集。
S505,检测数据仓库中是否有新的版本。可以理解地,检测是否有其他用户提交了新的版本,如该分支下可能有多个数据库,其他分支也用到该分支的相同的数据库时,当其他分支提交后,就会出现新的版本。若有新的版本,执行S507;若没有新的版本,执行S506。
S506,将该变更集更新到数据仓库。更新到数据仓库后成为一个新的版本。该版本会记录更新的用户名、时间以及数据库的类型和版本等信息。
S507,提示版本已过期。提示版本已过期,以告知数据仓库中有其他用户提交了新的版本,执行提交操作时需要在该新的版本上进行,以免造成数据不统一。提示版本已过期后,执行更新操作后重新提交。其中,更新操作的流程请参看图7。需要注意的是,这里提到的更新操作不包括图7中的,根据预存的数据库方言模板将所述变更集更新到数据库的步骤。
图6是本发明实施例提供的一个检出操作方法的流程示意图。该检出操作方法基于提交操作数据仓库中已经有版本数据后进行的,以取出数据仓库中的一个版本成为数据库中的数据。该检出操作方法包括S601-S602。
S601,读取数据仓库中该分支下的最新版本的数据。根据分支版本号进入分支工作区后,读取数据仓库中该分支下的最新版本的数据。
S602,根据预存的数据库方言模板将该最新版本的数据更新到数据库。具体地,S602请参看图3所述的内容。
图7是本发明实施例提供的一个更新操作方法的流程示意图。该更新操作方法以下载数据仓库中与分支工作区数据库中的不容的内容。该更新操作方法包括S701-S707。
S701,读取数据仓库中该分支下的最新版本的数据。根据分支版本号进入分支工作区后,读取数据仓库中该分支下的最新版本的数据。
S702,读取该分支下数据库中的数据,该数据包括数据字典和/或关系型数据。
S703,将该数据库中的数据经过预设数据结构转换为中间格式文件。优选地,预设数据结构为XML数据结构,中间格式文件是XML文件。具体地,将该数据转换为中间格式文件请参看图2所述的内容。在其他实施例中,也可以先读取数据仓库中最新版本的数据,再读取相同分支下数据库的数据,将读取的数据库中的数据经过预设数据结构转换为中间格式文件。
S704,将转换后的中间格式文件中的数据与数据仓库中相同分支下的最新版本的数据进行对比得到变更集。
S705,检测该变更集是否存在冲突。其中,冲突包括同一个值存在多种不同的数据。可以理解地,不同的用户(不同分支下)对同一个值进行修改,修改的值不一样,如第一个用户将该值修改为abc,第二个用户将该值修改为dfg,因此就会冲突。如果有冲突,执行S706;如果没有冲突,执行S707。
S706,修改该冲突。检测到有冲突了之后,对冲突进行修改,将冲突的值进行正确的处理。
S707,根据预存的数据库方言模板将所述变更集更新到数据库。根据预存的数据库方言模板将所述变更集更新到数据库以更新分支工作区的数据库中的内容。具体地,将变更集更新到数据库,请参看图3所述的内容。
图8是本发明实施例提供的一个还原方法的流程示意图。该还原方法以将数据仓库中的最新版本覆盖到分支工作区的数据库。该还原方法包括S801-S805。
S801,读取数据仓库中该分支下的最新版本的数据。根据分支版本号进入分支工作区后读取数据仓库中该分支下的最新版本的数据。
S802,读取该分支下数据库中的数据。
S803,将该数据库中的数据经过预设数据结构转换为中间格式文件。优选地,预设数据结构为XML数据结构,中间格式文件是XML文件。具体地,将该数据转换为中间格式文件请参看图2所述的内容。在其他实施例中,也可以先读取数据仓库中最新版本的数据,再读取相同分支下数据库的数据,将读取的数据库中的数据经过预设数据结构转换为中间格式文件。
S804,将转换后的中间格式文件中的数据与数据仓库中相同分支下的最新版本的数据进行对比得到变更集。
S805,根据预存的数据库方言模板将所述变更集更新到数据库。根据预存的数据库方言模板将所述变更集更新到数据库以更新分支工作区的数据库中的内容。具体地,将变更集更新到数据库,请参看图3所述的内容。
图9是本发明又一实施例提供的一种数据版本控制方法的流程示意图。该方法包括同一个项目下的至少两个分支,同时基于提交操作数据仓库中已经有两个分支的版本数据后进行的,以实现将两个分支的数据仓库的内容进行合并。该方法包括S901-S904。
S901,读取数据仓库中同一个项目下的两个分支的最新版本的数据。
S902,将该两个分支的最新版本的数据进行对比得到差异变更集。
S903,将该差异变更集合并到其中一个分支的最新版本数据中。
S904,将合并后的该其中一个分支的最新版本的数据更新到数据仓库中。
上述实施例以实现将同一个项目下的两个分支的数据仓库的内容进行合并。
图10是本发明实施例提供的一个合并操作方法的流程示意图,该合并操作方法至少包括同一个项目下的第一分支、第二分支,同时基于提交操作数据仓库中已经有两个分支的版本数据后进行的,以将数据仓库中第一分支的数据合并到第二分支中。该合并方法包括S111-S116。
S111,从数据仓库中读取第一分支的最新版本的数据和第二分支的最新版本的数据。
S112,将第一分支的最新版本的数据和第二分支的最新版本的数据进行对比得到差异变更集;
S113,检测该差异变更集是否存在冲突。若存在冲突,执行S114;若不存在冲突,执行S115。
S114,修改该冲突。检测到有冲突了之后,对冲突进行修改,将冲突的值进行正确的处理。
S115,将该差异变更集合并到第二分支的最新版本的数据中。
S116,将合并后的第二分支的最新版本的数据更新到数据仓库中。
图11是本发明实施例提供的一种数据版本控制系统的示意性框图。该数据版本控制系统110包括数据版本控制器111、数据仓库112。其中,
数据仓库112用于存储所有分支的所有版本的数据。其中,数据仓库中存储的数据有与中间格式文件相同的数据结构。
数据版本控制器111用于读取数据库中的数据,以及将该数据转换为中间格式文件,还用于读取数据仓库中与该数据在相同分支下的最新版本的数据,将数据交互单元转换后的中间格式文件中的数据与数据仓库中相同分支下相关版本的数据进行对比得到变更集,以及将该变更集更新到数据仓库或者根据预存的数据库方言模板将该变更集更新到数据库。
图12本发明实施例提供的一种数据版本控制器的示意性框图。如图12所示,数据版本控制器120包括第一读取单元121、转换单元122、第二读取单元123、对比单元124、更新单元125。其中,
第一读取单元121用于读取数据库中的数据,其中,数据库中的包括数据字典和关系型数据。读取数据库中的关系型数据是通过遍历表来读取的。优选地,在数据版本控制中,若是第一次读取数据库中的数据,那么读取的数据包括数据字典和关系型数据。读取的数据字典会存储在工作区中,在后续读取数据库中的数据时,若不涉及到数据字典的变动,如表中新增加字段、增加新的表等,则不需要读取数据字典,只需要读取关系型数据即可。需要数据字典的数据时,在工作区中读取。
转换单元122用于将该数据转换为中间格式文件,优选地,预设数据结构为XML数据结构,中间格式文件是XML文件,用XML文件存储的数据可移植性很强。可以理解地,中间格式文件存储的数据是经过XML数据结构转换后的数据字典和/或关系型数据。如图13所示,转换单元122包括数据字典读取单元131、格式转换单元132。其中,数据字典读取单元131,用于读取数据字典以获取表结构。其中,数据字典中存储的有表结构的内容。格式转换单元132,用于通过预设数据结构将所述表结构和读取的关系型数据转换为中间格式文件。
第二读取单元123用于读取数据仓库中与该数据在相同分支下的最新版本的数据,其中,数据仓库中的数据有与中间格式文件相同的数据结构。在其他实施例中,也可以先执行第二读取单元的内容,再执行第一执行单元和转换单元的内容。
对比单元124用于将转换后的中间格式文件中的数据与读取的数据仓库中相同分支下最新版本的数据进行对比得到变更集,所述变更集有与中间格式文件相同的数据结构。
更新单元125用于根据预存的数据库方言模板将该变更集更新到数据库。如图14所示,更新单元125包括获取单元141、查找单元142、生成单元143、执行单元144。其中,获取单元141用于获取数据库类型和版本。其中,可通过读取数据库中的数据库类型和版本来获取,也可以通过读取数据仓库中的版本的数据来获取(数据仓库中的版本数据中包括数据库的类型和版本)。查找单元142用于在预存的数据库方言模板中查找对应所述数据库类型和版本的对应数据库方言。其中,数据库方言模板中存储有不同数据库类型和不同数据库版本的数据方言。数据仓库中存储的数据中包括有对应数据库类型和数据库版本,在数据库方言模板中查找该数据库类型和数据库版本的对应数据库方言。生成单元143用于根据对应数据库方言,解析所述变更集以生成所述数据库可以执行的脚本语言。其中,脚本语言指的是SQL(Structure
Query Language)语言,包括数据查询语言DQL(data query language),数据操纵语言DML(data manipulation
language),数据定义语言DDL(data definition language),数据控制语言DCL(Data control
language)等的一种或者多种。执行单元144用于在数据库中执行所述脚本语言以将所述变更集更新到数据库。或者
更新单元125用于将该变更集更新到数据仓库,以使其成为数据仓库中的一个新的版本。
图15是本发明另一实施例提供的一种数据版本控制器的示意性框图。该数据版本控制器150包括:第一读取单元151、转换单元152、第二读取单元153、对比单元154、更新单元155、检测单元156、修改单元157。该实施例与图12所示实施例的区别在于:增加了检测单元156、修改单元157。其中,第一读取单元151、转换单元152、第二读取单元153、对比单元154请参看图12所述实施例相应单元描述的内容。
检测单元156用于检测所述变更集是否存在冲突,该冲突包括同一个值存在多种不同的数据。
修改单元157用于若所述变更集存在冲突,修改该冲突。检测到有冲突了之后,对冲突进行修改,将冲突的值进行正确的处理。
更新单元155用于若变更集没有冲突,将该变更集更新到数据仓库或者根据预存的数据块方言模板将该变更集更新到数据库。
图16为本发明另一实施例提供的一种数据版本控制器的示意性框图。该实施例对应方法实施例的提交操作方法。将实施例可以将工作区没有版本化的数据提交到数据仓库成为一个新的数据版本。该实施例的数据版本控制器160包括:第一读取单元161、转换单元162、第二读取单元163、对比单元164、更新单元165、检测单元166、提示单元167。其中,该实施例与图12所示实施例的区别在于:增加了检测单元166、提示单元167。其中,第一读取单元161、转换单元162、第二读取单元163、对比单元164请参看图12所述实施例相应单元描述的内容。
检测单元166用于检测数据仓库中是否有新的版本。可以理解地,检测是否有其他用户提交了新的版本,如该分支下可能有多个数据库,其他分支也用到该分支的相同的数据库时,当其他分支提交后,就会出现新的版本。
更新单元165还用于若数据仓库中没有新的版本,将该变更集更新到数据仓库。更新到数据仓库后成为一个新的版本。该版本会记录更新的用户名、时间以及数据库的类型和版本等信息。
提示单元167用于若数据仓库中有新的版本,提示版本已过期。提示版本已过期,以告知数据仓库中有其他用户提交了新的版本,执行提交操作时需要在该新的版本上进行,以免造成数据不统一。
图17为本发明另一实施例提供的一种数据版本控制器的示意性框图。该实施例对应方法实施例中的合并操作方法。该实施例至少包括第一分支、第二分支,同时基于提交操作数据仓库中已经有两个分支的版本数据后进行的,以将数据仓库中第一分支的数据合并到第二分支中。该实施例中的数据版本控制器170包括第一读取单元171、转换单元172、第二读取单元173、对比单元174、更新单元175、检测单元176、修改单元177。本发明实施例与图15实施例的区别如下:
第二读取单元173还用于从数据仓库中读取第一分支的最新版本的数据和第二分支的最新版本的数据。
对比单元174还用于将第一分支的最新版本的数据和第二分支的最新版本的数据进行对比得到差异变更集。
检测单元176还用于检测该差异变更集是否存在冲突。
修改单元177还用于若存在冲突,修改该冲突。检测到有冲突了之后,对冲突进行修改,将冲突的值进行正确的处理。
更新单元175还用于若不存在冲突,将该差异变更集合并到第二分支的最新版本的数据中,以及将合并后的第二分支的最新版本的数据更新到数据仓库中。
图18为本发明实施例提供的一种设备的示意性框图。该设备180包括包括输入装置181、输出装置182、存储器183以及处理器184,上述输入装置181、输出装置182、存储器183以及处理器184通过总线185连接。其中:
输入装置181用于提供用户编辑冲突,对冲突进行修改。具体实现中,本发明实施例的输入装置181可包括键盘、鼠标、光电输入装置、声音输入装置、触摸式输入装置等。
输出装置182用于输出处理后的数据等。具体实现中,本发明实施例的输出装置182可包括显示器、显示屏、触摸屏、声音输出装置等。
存储器183用于存储实现版本控制的程序以及程序数据。本发明实施例中存储器183存储的程序数据包括数据字典、关系型数据、中间格式文件、变更集、数据库方言模板、数据库类型和版本等。具体实现中,本发明实施例的存储器183可以是系统存储器,比如,挥发性的(诸如RAM),非易失性的(诸如ROM,闪存等),或者两者的结合。具体实现中,本发明实施例的存储器183还可以是系统之外的外部存储器,比如,磁盘、光盘、磁带等。
处理器184用于运行存储器183中存储的程序,以执行如下操作:
读取关系型数据库中的数据,所述数据包括数据字典和关系型数据;将所述数据转换为中间格式文件,其中,中间格式文件存储的数据包括经过预设数据结构转换后的数据字典和关系型数据;读取数据仓库中与所述数据在相同分支下的最新版本的数据,其中,数据仓库中的数据有与中间格式文件相同的数据结构;将转换后的中间格式文件中的数据与读取的数据仓库中相同分支下最新版本的数据进行对比得到变更集,所述变更集有与中间格式文件相同的数据结构;将所述变更集更新到数据仓库或者根据预存的数据库方言模板将所述变更集更新到关系型数据库。
处理器184还执行如下操作:
读取数据字典以获取表结构;遍历所述表以读取所述表中的关系型数据;通过预设数据结构将所述表结构和所述关系型数据转换为中间格式文件。
处理器184还执行如下操作:
获取关系型数据库类型和版本;在预存的数据库方言模板中查找对应所述关系型数据库类型和版本的对应数据库方言;根据对应数据库方言,解析所述变更集以生成所述关系型数据库可以执行的脚本语言;在关系型数据库中执行所述脚本语言以将所述变更集更新到关系型数据库。
处理器184还执行如下操作:
检测所述变更集是否存在冲突,所述冲突包括同一个值存在多种不同的数据;若所述变更集存在冲突,修改所述冲突。
处理器184还执行如下操作:
读取数据仓库中同一个项目下的两个分支的最新版本的数据;将所述两个分支的最新版本的数据进行对比得到变更集;将所述变更集合并到其中一个分支的最新版本的数据中;将合并后的所述其中一个分支的数据更新到数据仓库中。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器执行,以实现以下步骤:
读取关系型数据库中的数据,所述数据包括数据字典和关系型数据;将所述数据转换为中间格式文件,其中,中间格式文件存储的数据包括经过预设数据结构转换后的数据字典和关系型数据;读取数据仓库中与所述数据在相同分支下的最新版本的数据,其中,数据仓库中的数据有与中间格式文件相同的数据结构;将转换后的中间格式文件中的数据与读取的数据仓库中相同分支下最新版本的数据进行对比得到变更集,所述变更集有与中间格式文件相同的数据结构;将所述变更集更新到数据仓库或者根据预存的数据库方言模板将所述变更集更新到关系型数据库。
优选地,所述步骤还包括:读取数据字典以获取表结构;遍历所述表以读取所述表中的关系型数据;通过预设数据结构将所述表结构和所述关系型数据转换为中间格式文件。
优选地,所述步骤还包括:获取关系型数据库类型和版本;在预存的数据库方言模板中查找对应所述关系型数据库类型和版本的对应数据库方言;根据对应数据库方言,解析所述变更集以生成所述关系型数据库可以执行的脚本语言;在关系型数据库中执行所述脚本语言以将所述变更集更新到关系型数据库。
优选地,所述步骤还包括:
检测所述变更集是否存在冲突,所述冲突包括同一个值存在多种不同的数据;若所述变更集存在冲突,修改所述冲突。
优选地,所述步骤还包括:
读取数据仓库中同一个项目下的两个分支的最新版本的数据;将所述两个分支的最新版本的数据进行对比得到变更集;将所述变更集合并到其中一个分支的最新版本的数据中;将合并后的所述其中一个分支的数据更新到数据仓库中。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的数据版本控制器和方法,可以通过其它的方式实现。例如,以上所描述的数据版本控制器实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备
( 可以是个人计算机,服务器,或者网络设备等 ) 执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括 :U 盘、移动硬盘、只读存储器
(ROM,Read-Only Memory)、随机存取存储器 (RAM,Random Access
Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (20)
- 一种数据版本控制方法,其特征在于,所述方法包括:读取关系型数据库中的数据;将所述数据经过预设数据结构转换为中间格式文件;读取数据仓库中与所述数据在相同分支下的最新版本的数据;将转换后的中间格式文件中的数据与读取的数据仓库中相同分支下最新版本的数据进行对比得到变更集;将所述变更集更新到数据仓库或者根据预存的数据库方言模板将所述变更集更新到关系型数据库。
- 如权利要求1所述的方法,其特征在于,关系型数据库中的数据包括数据字典和关系型数据,将所述数据转换为中间格式文件,包括:读取数据字典以获取表结构;通过预设数据结构将所述表结构和所述关系型数据转换为中间格式文件。
- 如权利要求1所述的方法,其特征在于,根据预存的数据库方言模板将所述变更集更新到关系型数据库,包括:获取关系型数据库类型和版本;在预存的数据库方言模板中查找对应所述关系型数据库类型和版本的对应数据库方言;根据对应数据库方言,解析所述变更集以生成所述关系型数据库可以执行的脚本语言;在关系型数据库中执行所述脚本语言以将所述变更集更新到关系型数据库。
- 如权利要求1所述的方法,其特征在于,将转换后的中间格式文件中的数据与读取的数据仓库中相同分支下最新版本的数据进行对比得到变更集之后,所述方法还包括:检测所述变更集是否存在冲突,所述冲突包括同一个值存在多种不同的数据;若所述变更集存在冲突,修改所述冲突。
- 如权利要求1所述的方法,其特征在于,所述方法还包括:读取数据仓库中同一个项目下的两个分支的最新版本的数据;将所述两个分支的最新版本的数据进行对比得到差异变更集;将所述差异变更集合并到其中一个分支的最新版本的数据中;将合并后的所述其中一个分支的最新版本的数据更新到数据仓库中。
- 一种数据版本控制器,其特征在于,所述数据版本控制器包括:第一读取单元,用于读取关系型数据库中的数据;转换单元,用于将所述数据经过预设数据结构转换为中间格式文件;第二读取单元,读取数据仓库中与所述数据在相同分支下的最新版本的数据;对比单元,用于将转换后的中间格式文件中的数据与读取的数据仓库中相同分支下最新版本的数据进行对比得到变更集;更新单元,用于根据预存的数据库方言模板将所述变更集更新到关系型数据库,或者将所述变更集更新到数据仓库。
- 如权利要求6所述的数据版本控制器,其特征在于,关系型数据库中的数据包括数据字典和关系型数据,所述转换单元包括数据字典读取单元、格式转换单元;其中,所述数据字典读取单元用于读取数据字典以获取表结构;所述格式转换单元用于通过预设数据结构将所述表结构和所述关系型数据转换为中间格式文件。
- 如权利要求6所述的数据版本控制器,其特征在于,所述更新单元包括获取单元、查找单元、生成单元、执行单元;其中,所述获取单元用于获取关系型数据库类型和版本;所述查找单元用于在预存的数据库方言模板中查找对应所述关系型数据库类型和版本的对应数据库方言;所述生成单元用于根据对应数据库方言,解析所述变更集以生成所述关系型数据库可以执行的脚本语言;所述执行单元用于在关系型数据库中执行所述脚本语言以将所述变更集更新到关系型数据库。
- 如权利要求6所述的数据版本控制器,其特征在于,所述数据版本控制器还包括检测单元、修改单元;其中,所述检测单元用于检测所述变更集是否存在冲突,所述冲突包括同一个值存在多种不同的数据;所述修改单元用于若所述变更集存在冲突,修改所述冲突。
- 如权利要求6所述的数据版本控制器,其特征在于,所述第二读取单元还用于读取数据仓库中同一个项目下的两个分支的最新版本的数据;所述对比单元还用于将所述两个分支的最新版本的数据进行对比得到差异变更集;所述更新单元还用于将所述差异变更集合并到其中一个分支的最新版本的数据中,以及将合并后的所述其中一个分支的最新版本的数据更新到数据仓库中。
- 一种设备,其特征在于,所述设备包括处理器,以及与所述处理器相连的存储器;所述存储器,用于存储实现数据版本控制的程序;所述处理器,用于运行所述存储器中存储的程序,以执行如下步骤:读取关系型数据库中的数据;将所述数据经过预设数据结构转换为中间格式文件;读取数据仓库中与所述数据在相同分支下的最新版本的数据;将转换后的中间格式文件中的数据与读取的数据仓库中相同分支下最新版本的数据进行对比得到变更集;将所述变更集更新到数据仓库或者根据预存的数据库方言模板将所述变更集更新到关系型数据库。
- 如权利要求11所述的设备,其特征在于,所述处理器还执行如下步骤:读取数据字典以获取表结构;通过预设数据结构将所述表结构和所述关系型数据转换为中间格式文件。
- 如权利要求11所述的设备,其特征在于,所述处理器还执行如下步骤:获取关系型数据库类型和版本;在预存的数据库方言模板中查找对应所述关系型数据库类型和版本的对应数据库方言;根据对应数据库方言,解析所述变更集以生成所述关系型数据库可以执行的脚本语言;在关系型数据库中执行所述脚本语言以将所述变更集更新到关系型数据库。
- 如权利要求11所述的设备,其特征在于,所述处理器还执行如下步骤:检测所述变更集是否存在冲突,所述冲突包括同一个值存在多种不同的数据;若所述变更集存在冲突,修改所述冲突。
- 如权利要求11所述的设备,其特征在于,所述处理器还执行如下步骤:读取数据仓库中同一个项目下的两个分支的最新版本的数据;将所述两个分支的最新版本的数据进行对比得到差异变更集;将所述差异变更集合并到其中一个分支的最新版本的数据中;将合并后的所述其中一个分支的最新版本的数据更新到数据仓库中。
- 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序可被一个或者一个以上的处理器执行,以实现以下步骤:读取关系型数据库中的数据;将所述数据经过预设数据结构转换为中间格式文件;读取数据仓库中与所述数据在相同分支下的最新版本的数据;将转换后的中间格式文件中的数据与读取的数据仓库中相同分支下最新版本的数据进行对比得到变更集;将所述变更集更新到数据仓库或者根据预存的数据库方言模板将所述变更集更新到关系型数据库。
- 如权利要求16所述的计算机可读存储介质,其特征在于,所述步骤还包括:读取数据字典以获取表结构;通过预设数据结构将所述表结构和所述关系型数据转换为中间格式文件。
- 如权利要求16所述的计算机可读存储介质,其特征在于,所述步骤还包括:获取关系型数据库类型和版本;在预存的数据库方言模板中查找对应所述关系型数据库类型和版本的对应数据库方言;根据对应数据库方言,解析所述变更集以生成所述关系型数据库可以执行的脚本语言;在关系型数据库中执行所述脚本语言以将所述变更集更新到关系型数据库。
- 如权利要求16所述的计算机可读存储介质,其特征在于,所述步骤还包括:检测所述变更集是否存在冲突,所述冲突包括同一个值存在多种不同的数据;若所述变更集存在冲突,修改所述冲突。
- 如权利要求16所述的计算机可读存储介质,其特征在于,所述步骤还包括:读取数据仓库中同一个项目下的两个分支的最新版本的数据;将所述两个分支的最新版本的数据进行对比得到差异变更集;将所述差异变更集合并到其中一个分支的最新版本的数据中;将合并后的所述其中一个分支的最新版本的数据更新到数据仓库中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710229586.2A CN107665227B (zh) | 2017-04-10 | 2017-04-10 | 一种数据版本控制方法及数据版本控制器 |
CN201710229586.2 | 2017-04-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018188196A1 true WO2018188196A1 (zh) | 2018-10-18 |
Family
ID=61120730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2017/090925 WO2018188196A1 (zh) | 2017-04-10 | 2017-06-29 | 一种数据版本控制方法、数据版本控制器、设备及计算机可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107665227B (zh) |
WO (1) | WO2018188196A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108920638A (zh) * | 2018-07-02 | 2018-11-30 | 山东浪潮商用系统有限公司 | 基于数据字典配置的web端文件数据采集方法及装置 |
CN110781131A (zh) * | 2018-09-04 | 2020-02-11 | 哈尔滨安天科技集团股份有限公司 | 具有版本控制功能的移动存储方法、装置及存储介质 |
CN109885299B (zh) * | 2019-01-23 | 2024-05-03 | 平安科技(深圳)有限公司 | 模型开发中的模板处理方法、装置、计算机设备和存储介质 |
CN110502563B (zh) * | 2019-08-26 | 2023-09-29 | 腾讯科技(深圳)有限公司 | 一种多数据源的数据的处理方法及装置、存储介质 |
CN110879815A (zh) * | 2019-11-26 | 2020-03-13 | 上海莉莉丝科技股份有限公司 | 游戏数据库服务器的升级方法、装置、设备及存储介质 |
CN112818059B (zh) * | 2021-01-27 | 2024-05-17 | 百果园技术(新加坡)有限公司 | 一种基于容器发布平台的信息实时同步方法及装置 |
CN113110868B (zh) * | 2021-04-07 | 2023-08-08 | 网易(杭州)网络有限公司 | 文件合并方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001167122A (ja) * | 1999-12-13 | 2001-06-22 | Hitachi Kokusai Electric Inc | 情報表示システム、情報提示サーバ、及び記録媒体 |
US20010028603A1 (en) * | 2000-04-07 | 2001-10-11 | Nec Corporation | Usage history registering apparatus and automatic database retrieval statement generating apparatus |
JP2012078993A (ja) * | 2010-09-30 | 2012-04-19 | Hitachi Solutions Ltd | リレーショナルデータベースをスケールアップ及びスケールダウンさせる方法及びシステム |
CN106445949A (zh) * | 2015-08-07 | 2017-02-22 | 北京国双科技有限公司 | 检测数据表中数据变化的方法和装置 |
-
2017
- 2017-04-10 CN CN201710229586.2A patent/CN107665227B/zh active Active
- 2017-06-29 WO PCT/CN2017/090925 patent/WO2018188196A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001167122A (ja) * | 1999-12-13 | 2001-06-22 | Hitachi Kokusai Electric Inc | 情報表示システム、情報提示サーバ、及び記録媒体 |
US20010028603A1 (en) * | 2000-04-07 | 2001-10-11 | Nec Corporation | Usage history registering apparatus and automatic database retrieval statement generating apparatus |
JP2012078993A (ja) * | 2010-09-30 | 2012-04-19 | Hitachi Solutions Ltd | リレーショナルデータベースをスケールアップ及びスケールダウンさせる方法及びシステム |
CN106445949A (zh) * | 2015-08-07 | 2017-02-22 | 北京国双科技有限公司 | 检测数据表中数据变化的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107665227A (zh) | 2018-02-06 |
CN107665227B (zh) | 2019-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018188196A1 (zh) | 一种数据版本控制方法、数据版本控制器、设备及计算机可读存储介质 | |
WO2019100638A1 (zh) | 数据同步方法、装置、设备及存储介质 | |
WO2015035777A1 (zh) | 一种移动终端的软件升级方法和系统 | |
WO2018107610A1 (zh) | 业务数据处理方法、系统、设备及计算机可读存储介质 | |
WO2019037396A1 (zh) | 账户清结算方法、装置、设备及存储介质 | |
WO2017143692A1 (zh) | 智能电视及其语音控制方法 | |
WO2019061612A1 (zh) | 贷款产品推广方法、装置及计算机可读存储介质 | |
WO2019000801A1 (zh) | 数据同步方法、装置、设备及计算机可读存储介质 | |
WO2018120429A1 (zh) | 一种资源更新的方法、终端、计算机可读存储介质及资源更新设备 | |
WO2018120457A1 (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
WO2016127458A1 (zh) | 改进的基于语义词典的词语相似度计算方法和装置 | |
WO2019104876A1 (zh) | 保险产品的推送方法、系统、终端、客户终端及存储介质 | |
WO2019114262A1 (zh) | 加载用户界面的方法、智能电视及计算机可读存储介质 | |
WO2018188342A1 (zh) | 脚本文件生成方法、装置、设备和计算机可读存储介质 | |
WO2012122718A1 (zh) | 一种浏览器预读方法及其系统 | |
WO2019080247A1 (zh) | 产生保单批文的方法、装置、设备及计算机可读存储介质 | |
WO2019024219A1 (zh) | 文档自动生成方法、装置、文档自动生成器及介质 | |
WO2019169814A1 (zh) | 自动生成中文注释的方法、装置、设备及存储介质 | |
WO2019000800A1 (zh) | 制证方法、装置、设备及计算机可读存储介质 | |
WO2019051902A1 (zh) | 终端控制方法、空调器及计算机可读存储介质 | |
WO2019001087A1 (zh) | 案件理赔方法、装置、服务器及计算机可读存储介质 | |
WO2019041851A1 (zh) | 家电售后咨询方法、电子设备和计算机可读存储介质 | |
WO2018233221A1 (zh) | 多窗口声音输出方法、电视机以及计算机可读存储介质 | |
WO2016108407A1 (ko) | 주석 제공 방법 및 장치 | |
WO2018036158A1 (zh) | 保险费用支付方法、装置、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 17905028 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC , EPO FORM 1205A DATED 30.01.2020. |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17905028 Country of ref document: EP Kind code of ref document: A1 |