Synonym column candidate selection device, and synonym column candidate selection method
The synonymous column candidate selection device and method effectively addresses the challenge of selecting synonymous columns in data conversion by utilizing a candidate selection unit and intermediate table generation to enhance data integration in resource sharing services.
Patent Information
- Application Number
- JP2024068390
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-19
- Publication Date
- 2025-10-30
AI Technical Summary
Existing technologies struggle to easily and appropriately select synonymous column candidates for data conversion between factory site data models and a common data model in resource sharing intermediation services.
A synonymous column candidate selection device and method that includes a candidate selection unit, a table relation management unit, and an intermediate table generation unit to identify and manage table relations, determine primary keys, and define intermediate tables for data model mapping, allowing for accurate selection of synonymous columns.
Enables easy and appropriate selection of synonymous column candidates, improving data integration efficiency and accuracy in resource sharing intermediation services by facilitating seamless data conversion between different data models.
Smart Images

Figure 2025164417000001_ABST
Abstract
Description
[Technical Field]
[0001] The present invention relates to a synonymous column candidate selection device and is suitable for application to, for example, a synonymous column candidate selection device and method for selecting synonymous column candidates in a plurality of data models. [Background technology]
[0002] In recent years, the problem of long periods of downtime of factory resources (people and equipment) and reduced profits due to equipment maintenance costs has become a problem, and there is a demand for sharing resources among multiple factories. Therefore, there is a demand for an intermediary service for resource sharing (hereinafter referred to as a "resource sharing intermediary service"). For example, by sharing resources such as equipment and manpower among factories, it is possible to improve the equipment utilization rate, and several other benefits are also generated.
[0003] For example, if a factory has a process that is backlogged waiting for equipment with a 100% operating rate to complete a process, the lead time can be reduced by borrowing resources from another factory. Also, if you want to temporarily use expensive manufacturing equipment, you can reduce the cost of purchasing new equipment by borrowing it from another factory.
[0004] To realize such a resource sharing intermediation service, it is necessary to collect various data (CSV, spreadsheet data, RDB (Relational Database), etc.) such as information about equipment and production plans from factory sites and store them in a common data model (RDB, XML (Extensible Markup Language), etc.) used in the resource sharing intermediation service. However, in such a resource sharing intermediation service, the data model of the factory site data (hereinafter also referred to as the "factory data model") differs from the common data model, so it is necessary to convert the factory site data into common data of the common data model.
[0005] As a technology for supporting data conversion, for example, Patent Document 1 describes a technology for detecting synonymous columns using rare words used in naming tables, i.e., words in a table that characterize the table configuration. [Prior art documents] [Patent documents]
[0006] [Patent Document 1] JP 2018-106400 A Summary of the Invention [Problem to be solved by the invention]
[0007] However, with the technology described in Patent Document 1, it is difficult to determine whether the column characteristics, such as the name or type of the column, are similar, and therefore it is not possible to easily and appropriately select candidates for synonymous columns to be matched to the column in question.
[0008] The present invention has been made in consideration of the above points, and aims to propose a synonymous column candidate selection device and a synonymous column candidate selection method that can easily and appropriately select synonymous column candidates to be associated with a certain column from other data models. [Means for solving the problem]
[0009] In order to solve the above problem, the present invention includes a candidate selection unit that receives a first data model and a second data model, selects a predetermined table from the second data model, and for each column of the predetermined table, selects a mapping candidate table to be a mapping candidate from among the tables of the first data model based on the characteristics of each column, and determines that a primary key is set in the mapping candidate table if a primary key of a table of the first data model is similar to the characteristics of a column of the primary key of the selected mapping candidate table; a table relation management unit that extracts table relations related to the mapping candidate table and accumulates them in a relational table; and an intermediate table generation unit that determines, for the mapping candidate table in which the primary key is set, whether the mapping candidate table can be absorbed based on the table relations and a predetermined absorption feasibility determination table, and if it is determined that the mapping candidate table can be absorbed, defines an intermediate table to be used provisionally during absorption and the relational table related to the intermediate table, and adds columns of the intermediate table as columns of the mapping candidate table using the primary key.
[0010] Furthermore, in the present invention, the method includes a candidate selection step in which a candidate selection unit receives a first data model and a second data model, selects a predetermined table from the second data model, and for each column of the predetermined table, selects a mapping candidate table to be a mapping candidate from among the tables of the first data model based on characteristics of each column, and determines that a primary key is set in the mapping candidate table if a primary key of a table of the first data model is similar to characteristics of a column of the primary key of the selected mapping candidate table; a table relation management step in which a table relation management unit extracts table relations related to the mapping candidate table and accumulates them in a relational table; and a column addition step in which an intermediate table generation unit determines, for the mapping candidate table in which the primary key is set, whether the mapping candidate table can be absorbed based on the table relations and a predetermined absorption feasibility determination table, and, if it is determined that absorption is possible, defines an intermediate table to be temporarily used during absorption and the relational table related to the intermediate table, and adds a column of the intermediate table as a column of the mapping candidate table using the primary key. [Effects of the Invention]
[0011] According to the present invention, candidates for synonymous columns to be associated with a given column can be easily and appropriately selected from other data models. [Brief explanation of the drawings]
[0012] [Figure 1] FIG. 1 is a configuration diagram illustrating an example of a computer system according to an embodiment of the present invention. [Figure 2] FIG. 2 is a diagram illustrating an example of a factory data model and a common data model according to the embodiment. [Figure 3A] FIG. 10 is a diagram illustrating an example of a factory data table. [Figure 3B] FIG. 10 is a diagram illustrating an example of a factory data table. [Figure 3C] FIG. 10 is a diagram illustrating an example of a factory data table. [Figure 3D] FIG. 10 is a diagram illustrating an example of a factory data table. [Figure 3E] FIG. 10 is a diagram illustrating an example of a factory data table. [Figure 3F] FIG. 10 is a diagram illustrating an example of a factory data table. [Figure 4] 10 is a flowchart illustrating an example of a procedure for a mapping candidate selection process. [Figure 5A] FIG. 10 is a diagram illustrating an example of a relationship table according to the embodiment. [Figure 5B] FIG. 10 is a diagram illustrating an example of a relationship table according to the embodiment. [Figure 6A] FIG. 10 is a diagram illustrating an example of an intermediate table. [Figure 6B] FIG. 10 is a diagram illustrating an example of a relationship table. [Figure 6C] FIG. 10 is a diagram illustrating an example of a relationship table. [Figure 7A] FIG. 10 is a diagram illustrating an example of a table obtained as a result of inputting data from a factory data model into a common data model. [Figure 7B] FIG. 10 is a diagram illustrating an example of a table obtained as a result of inputting data from a factory data model into a common data model. DETAILED DESCRIPTION OF THE INVENTION
[0013] Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. 1 is a system configuration diagram showing an example of the configuration of a computer system including a data integration server 10 according to this embodiment. The computer system includes the data integration server 10, multiple (three in the illustrated example) factory servers 20, 21, and 22, and multiple (three in the illustrated example) clients 30, 31, and 32.
[0014] The data integration server 10 and the factory servers 20, 21, and 22 are connected via a network 11. The data integration server 10 and the clients 30, 31, and 32 are connected via a network 12. The networks 11 and 12 may be, for example, a wide area network (WAN), a local area network (LAN), or any other network. The clients 30, 31, and 32 have similar configurations.
[0015] The factory server 20 is a server computer installed at a first base, the factory server 21 is a server computer installed at a second base, and the factory server 22 is a server computer installed at a third base. Since the factory servers 20, 21, and 22 have similar configurations, the following description will mainly focus on the factory server 20.
[0016] The factory server 20 includes, for example, a CPU (Central Processing Unit) 201, a main memory device 202, a network interface (hereinafter abbreviated as “I / F”) 203, and a storage device 204.
[0017] The main memory device 202 is, for example, a RAM, and stores programs executed by the CPU 201 and necessary information. The CPU 201 executes various processes in accordance with the programs and information stored in the main memory device 202. The network I / F 203 is an interface for communicating with other devices such as the data integration server 10 via the network 11.
[0018] The storage device 204 is, for example, an SSD (Solid State Drive) or a hard disk drive, and stores programs executed by the CPU 201 and data used by the CPU 201. The storage device 204 has a factory data model 210. The factory data model 210 is an example of a first data model. The factory data model 210 is, for example, a data model that stores various data (hereinafter also referred to as "factory data") generated in a factory. The data model is, for example, an RDB (Relational Database) or EML (Extensible Markup Language) that manages factory data in a table format that manages data groups using columns and rows. Details of the factory data will be described later.
[0019] The data integration server 10 is an example of a synonymous column candidate selection device, and executes a process (synonymous column candidate selection process) for selecting candidates (hereinafter referred to as "synonymous column candidates") for columns in the common data model 140 that are synonymous with columns in the factory data model 210 (hereinafter referred to as "synonymous columns") based on the factory data model 210 transmitted from the factory servers 20, 21, and 22 and the common data model 140 as an example of a second data model. A synonymous column is a column that belongs to a data model different from the data model to which a certain column belongs, and is synonymous with the certain column. Note that a synonymous column refers to a column that stores the same type of data as the data stored in a certain column.
[0020] Factory data includes information about workers working in the factory, manufacturing equipment, and products. Each data model includes multiple tables. Each table includes multiple columns. One of the multiple columns may be designated as a primary key. A primary key is set as a column among the columns of a table to uniquely identify a record (data). Hereinafter, a column that is set as a primary key will be referred to as "having a primary key," and a table that does not have a primary key will be referred to as "not having a primary key." A column is a field for storing information. Columns may include, for example, the name of a worker, the date and time that equipment is in operation, and product parts.
[0021] The common data model 140 is a data model used to mediate factory data as common data in, for example, a resource sharing mediation service. For example, when mediating factory data in a resource sharing service, the common data includes information such as the names of workers working in the factory and the operating hours of equipment, as well as various other information described below.
[0022] The data integration server 10 includes a CPU 101, a main memory device 102, a storage device 103, and a network interface (hereinafter abbreviated as "I / F") 104. The network I / F 104 is an interface for communicating with other devices such as the factory server 20 via the network 11, and with other devices such as the client 30 via the network 12. The CPU 101 executes various processes, including a synonymous column candidate selection process (described later), in accordance with a program stored in the main memory device 102.
[0023] The storage device 103 is, for example, a hard disk drive or a flash memory, and stores programs executed by the CPU 101 and data used by the CPU 101. In this embodiment, the storage device 103 stores a common data model 140.
[0024] The main memory device 102 is, for example, a RAM (Random Access Memory). The main memory device 102 stores programs executed by the CPU 101 and necessary information. The main memory device 102 stores, as programs, for example, a candidate selection unit 110, a table relation management unit 120, an intermediate table generation unit 130, and a column determination unit 150. Furthermore, although not shown in FIG. 1, the main memory device 102 stores a relation table and an absorption feasibility determination table, which will be described later. The relation table manages the table relations between multiple tables. The absorption feasibility determination table manages information for determining whether a mapping candidate table can be absorbed.
[0025] The candidate selection unit 110 executes a process (column mapping process) for selecting synonymous column candidates as mapping candidates based on the results of a column feature determination that determines whether the features of a column in a table of a certain data model are similar to the features of a column in a table of another data model, and a process for determining the mapping type (hereinafter referred to as the "mapping type determination process"). Column features refer to information that characterizes a column, such as a column name, which is the name of the column, or a table name, which is the name of the table to which the column belongs. In this embodiment, the column feature determination uses "similarity" as the degree to which the features of a column in a table of a certain data model are similar to the features of a column in a table of another data model.
[0026] The candidate selection unit 110 performs the column feature determination based on the similarity as the degree to which the column features of the table in the factory data model 210 are similar to the column features of the table in the common data model 140 .
[0027] The candidate selection unit 110 determines whether or not a primary key is set in the mapping candidate table according to the following mapping type.
[0028] Here, the mapping type mentioned above indicates whether a primary key is set in a column of the target table. The mapping type determination process determines whether the mapping is for a case where a primary key is set in a column of the target table (mapping with primary key), or for a case where a primary key is not set in any column of the target table (mapping without primary key). Note that the column characteristics are determined in this way depending on whether or not a primary key is present because the likelihood of similarity varying greatly depending on whether or not a primary key is present affects the accuracy of the column mapping process.
[0029] In determining column features, the candidate selection unit 110 calculates the similarity of tables using, for example, the following similarity calculation method. This similarity calculation method involves evaluating the similarity of column names using, for example, natural language processing. Specifically, the candidate selection unit 110 calculates, for example, the similarity of the first similar column + the similarity of the second similar column +... + the similarity of the Nth similar column, and sets the calculation result as the similarity of the tables (N is a natural number). Note that a "similar column" refers to a column in the target table that is provisionally matched to a column in the other table to be compared.
[0030] In the column feature determination, the similarity of column features is calculated for a pair of columns (column pairs) of multiple data models. The candidate selection unit 110, for example, selects a table from the common data model 140, and for the selected table, selects a table (hereinafter referred to as a "mapping candidate table") to be used as a mapping candidate for matching with each table of the factory data model 210 based on the result (similarity) of the column feature determination for the features of each column of the selected table.
[0031] In the mapping type determination process, if the primary key of a table in the factory data model 210 is similar to the primary key of a table in the selected common data model 140, the candidate selection unit 110 determines that the mapping candidate table is a mapping candidate table with a primary key, but otherwise determines that the mapping candidate table is a mapping candidate table without a primary key.
[0032] The table relation management unit 120 stores the relations between the tables of each data model (hereinafter referred to as "table relations"). The table relations are, for example, the relationships between the tables in the same data model (e.g., many-to-one, one-to-many, one-to-one, etc.). The table relations may also be, for example, information about table relations customized by the user (e.g., parent-child relationships, copy relationships).
[0033] The intermediate table generation unit 130 determines whether the mapping candidate table can be absorbed based on the mapping type (mapping with primary key or mapping without primary key) obtained by the above-mentioned mapping type determination process and the above-mentioned table relationships.
[0034] If the intermediate table generation unit 130 determines that a mapping candidate table can be absorbed based on the table relationships, it defines an intermediate table (not shown) and a relationship table of the intermediate table (hereinafter simply referred to as a "relationship table"), and adds the columns of the intermediate table to the mapping candidate table.
[0035] Based on the above-mentioned relational table, the column determination unit 150 extracts the table of the common data model 140 to which the column of the table of the mapping destination data model belongs and the table of the factory data model 210, and performs column mapping processing by comparing the similarity of the tables while taking into account the above-mentioned relational table.
[0036] The client 30 includes a CPU 301, a main memory device 302, a user I / F 303, a network I / F 304, and a storage device 305. The clients 31 and 32 have the same configuration as the client 30, and therefore a description thereof will be omitted.
[0037] The CPU 301 executes various processes in accordance with programs stored in the main memory device 302. The main memory device 302 is, for example, a RAM, and stores the programs executed by the CPU 301 and necessary information. The network I / F 304 is an interface for communicating with other devices such as the data integration server 10 via the network 12.
[0038] The storage device 305 is, for example, a hard disk drive or flash memory, and stores programs executed by the CPU 301 and data used by the CPU 301. The user interface (user I / F) 303 displays output results from processing in the data integration server 10 and also accepts input from the user.
[0039] Fig. 2 is a diagram showing an example of each table of the factory data model 210 and the common data model 140. Figs. 3A to 3D show an example of each table of the factory data model 210 shown in Fig. 2, and Figs. 3E and 3F are diagrams showing an example of each table of the common data model 140. In the illustrated example, columns marked with "*" are set as primary keys, and are items for uniquely identifying data (rows, records) in the database.
[0040] 2, the factory data model 210 includes multiple factory data tables 2101, 2102, 2103, and 2104. Each of the factory data tables 2101, 2102, 2103, and 2104 includes one or more columns and manages factory data. Hereinafter, these columns are also referred to as "factory data columns." A factory data column is a column that holds information related to factory data (specifically, data values).
[0041] The factory data model 210 has factory data tables containing various columns, such as a factory data table 2101 with the table name "ProductRoute" shown in FIG. 3A, a factory data table 2102 with the table name "AssembblyRoute" shown in FIG. 3B, a factory data table 2103 with the table name "AssemblyOperation" shown in FIG. 3C, and a factory data table 2104 with the table name "OperationType" shown in FIG. 3D.
[0042] 2, the common data model 140 includes multiple common data tables 1401 and 1402. The common data tables 1401 and 1402 have, for example, a "one-to-many" relationship and include one or more common data columns (e.g., "Route ID"). The common data columns are columns that hold information about data (hereinafter also referred to as "common data") that are common to the columns of the multiple common data tables 1401 and 1402.
[0043] The common data model 140 has, as common data tables including various columns, for example, a common data table 1401 with the table name "Route" shown in FIG. 3E and a common data table 1402 with the table name "Operation" shown in FIG. 3F.
[0044] The factory data tables 2101, 2102, 2103, and 2104 each have a primary key indicated by an "*" mark, and each includes a table name representing the name of the table, a column name representing the name of the column, a primary key, and data. The table name is the name of the factory data table. The column name is the name of the column. The data is the specific data value for the column.
[0045] For example, the factory data table 2101, whose table name is "ProductRoute", includes the columns "ProductRouteID", "ProductID", "ProductRouteVal", and "ProductRouteType". The data in the column "ProductRouteID" is "ProductRoute1", etc.
[0046] The data integration server 10 and the like according to this embodiment are configured as described above. Next, an example of a method for selecting synonymous column candidates by the data integration server 10 and the like will be described. The synonymous column candidate selection method is outlined as follows: the candidate selection unit 110 receives a factory data model 210 as an example of a first data model and a common data model 140 as an example of a second data model, selects a predetermined table from the common data model 140, and for each column of the predetermined table, selects a mapping candidate table from among the tables in the factory data model 210 to be a mapping candidate based on the characteristics of each column. If the primary key of a table in the factory data model 210 is similar to the characteristics of the primary key column of the selected mapping candidate table, the mapping candidate table is determined to have a primary key set (a mapping candidate table with a primary key). The method includes a candidate selection step, a table relationship management step in which the table relationship management unit 120 extracts table relationships related to each mapping candidate table and stores them in a relationship table 501 (601), and a column addition step in which the intermediate table generation unit 130 determines whether the mapping candidate table, for which a primary key is set, can be absorbed based on the table relationships and a preset absorption feasibility determination table 502. If it is determined that absorption is possible, the method defines an intermediate table to be used temporarily during absorption and a relationship table 501 (601) related to the intermediate table, and adds columns of the intermediate table as columns of the mapping candidate table using the primary key. The synonym column candidate selection method includes a mapping candidate selection process and a mapping type determination process. A detailed description is given below.
[0047] Fig. 4 is a flowchart showing an example of the procedure for the mapping candidate selection process. In this embodiment, an example of the mapping candidate selection process will be described, in which the mapping candidate selection process is performed on each factory data table of the factory data model 210 shown in Fig. 2. Examples of each factory data table include the factory data tables 2101 to 2104 shown in Figs. 3A to 3D.
[0048] The client 30 instructs the data integration server 10 to acquire the factory data model 210 and the common data model 140 via the network 12. In step S10, the data integration server 10 receives the factory data model 210 and the common data model 140.
[0049] Specifically, in response to an instruction received from the client 30, the data integration server 10 requests the factory server 20 to transmit the factory data model 210 via the network 11. The factory server 20 acquires the factory data model 210 from the storage device 204 and transmits it to the data integration server 10 via the network 11.
[0050] The data integration server 10 receives the factory data model 210 from the factory server 20 and stores it in the main storage device 102. The data integration server 10 also acquires the common data model 140 from the storage device 103 and stores it in the main storage device 102 (step S10).
[0051] Next, in step S20, the candidate selection unit 110 of the data integration server 10 selects a table from the common data model 140 as a mapping candidate table selection process, and for the selected table, selects a mapping candidate table to be a mapping candidate from among the tables in the factory data model 210 based on the result of column feature determination (similarity) regarding the features of each column of the selected table. A specific description will be given below.
[0052] In the common data model 140, for example, the candidate selection unit 110 selects the factory data table 2102 with the table name "AssemblyRoute" and the factory data table 2101 with the table name "ProductRoute" as mapping candidate tables for the common data table 1401 with the table name "Route" because they share the character string "Route" as a column feature.
[0053] In addition, the candidate selection unit 110 selects, as mapping candidate tables for the common data table 1402 with the table name "Operation" in the common data model 140, the factory data table 2103 with the table name "AssemblyOperation" and the factory data table 2104 with the table name "OperationType" in the factory data model 210.
[0054] Here, the former factory data table 2103 was selected because the characteristics of the columns "AssemblyOperationID", "AssemblyRouteID", and "AssemblyOperationVal" in the factory data table 2103 with the table name "AssemblyOperation" were determined to be similar to the characteristics of the columns "OperationID", "RouteID", and "OperationVal" in the table name "Operation" 1402 in that some character strings match.
[0055] The latter factory data table 2104 was selected because the characteristics of the "TypeVal" column in the factory data table 2104 with the table name "OperationType" were judged to be similar to "OperationType" in the common data table 1402 with the table name "Operation" in that some of the character strings match.
[0056] Next, in step S30, as a mapping type determination process, the candidate selection unit 110 determines that the mapping candidate table is a mapping candidate table with a primary key if the primary key of a table in the factory data model 210 is similar to the characteristics of the primary key column of the selected mapping candidate table.
[0057] For example, in the factory data model 210, the column characteristics of the primary key "ProductRouteID" of the factory data table 2101 with the table name "ProductRoute", which is a mapping candidate table, and the primary key "AssemblyRouteID" of the factory data table 2102 with the table name "AssemblyRoute", which is a mapping candidate table, are similar to the primary key "RouteID" of the common data table 1401 with the table name "Route" in the common data model 140 (as the mapping destination data model, for example), and therefore the candidate selection unit 110 determines that the factory data table 2101 with the table name "ProductRoute" and the factory data table 2102 with the table name "AssemblyRoute" are mapping candidate tables with primary keys.
[0058] In addition, the candidate selection unit 110 determines that the column "AssemblyOperationID" also has a primary key because the column characteristics of the primary key "AssemblyOperationID" of the mapping candidate table "AssemblyOperation" 2103 of the factory data model 210 are similar to the primary key "OperationID" of the common data table 1402 with the table name "Operation" in the common data model 140 (for example, as the mapping destination data model).
[0059] On the other hand, the candidate selection unit 110 determines that the column "OperationType" does not have a primary key because the column characteristics of the primary key "AssemblyOperationType" of the factory data table 2104 of the mapping candidate table "OperationType" of the factory data model 210 are not similar to the primary key "OperationID" of the common data table 1402 of the table name "Operation" of the common data model 140 (for example, as the mapping destination data model).
[0060] Next, in step S40, table relation management unit 120 extracts table relations relating to mapping candidate tables and the like, and stores them in relation table 501 shown in FIG. 5A (step S40).
[0061] Here, we will explain table relationships. A "one-to-one" relationship indicates that there is a one-to-one correspondence between a column in a first table and a column in a second table. A "one-to-many" relationship indicates that a column in a first table may be related to multiple columns in a second table, but that a column in a second table can only be related to a column in a maximum of one record with a column in the first table. A "many-to-one" relationship indicates that a column in a second table may be related to multiple columns in a first table, but that a column in a first table can only be related to a column in a maximum of one record with a column in the second table. A "none" relationship indicates that there are no related columns.
[0062] Next, in step S50, the intermediate table generation unit 130 determines whether or not the mapping candidate table with primary key can be absorbed based on the table relationships described above and the pre-set absorption feasibility determination table 502 shown in FIG. 5B.
[0063] If the intermediate table generating unit 130 determines that the mapping candidate table cannot be absorbed, it executes step S70, whereas if it determines that the mapping candidate table can be absorbed, it executes step S60.
[0064] In step S60, the intermediate table generation unit 130 defines an intermediate table to be temporarily used during absorption and a relational table 501 related to the intermediate table, and adds the columns of the intermediate table as columns of the mapping candidate table using the primary key.
[0065] Specifically, the intermediate table generation unit 130 determines that for the common data table 1401 with the table name "Route" in the common data model 140 (for example, as a mapping destination data model), the factory data table 2101 with the table name "ProductRoute" in the factory data model 210 and the factory data table 2102 with the table name "AssemblyRoute" are mapping candidate tables with primary keys.
[0066] The intermediate table generation unit 130 determines that the factory data table 2101 with the table name "ProductRoute" and the factory data table 2102 with the table name "AssemblyRoute" cannot be absorbed because they are not defined in the relational table 501, for example.
[0067] Furthermore, the intermediate table generation unit 130 determines that for the common data table 1402 with the table name "Operation" in the common data model 140 (for example, as a mapping destination common data model), the factory data table 2103 with the table name "AssemblyOperation" in the factory data model 210 is a mapping candidate table with a primary key, and the factory data table 2104 with the table name "OperationType" is a mapping candidate table without a primary key.
[0068] By referring to the relationship table 501 and the absorption possibility determination table 502, the intermediate table generation unit 130 can understand that there is a many-to-one relationship between the factory data table 2103 with the table name "AssemblyOperation" and the factory data table 2104 with the table name "OperationType", and that "AssemblyOperation" 2103 can absorb the factory data table 2104 with the table name "OperationType".
[0069] The intermediate table generation unit 130 generates an intermediate table to be used temporarily during the absorption and a relationship table 501 related to the intermediate table, and adds the columns of the intermediate table to the mapping candidate table (step S40). That is, the intermediate table generation unit 130 extends the relationship records of the absorbing table by using the primary key of the table to be absorbed. Then, the intermediate table generation unit 130 inherits the table relationships of the absorbed table and deletes the table relationships of the absorbed table from the relationship table 501, thereby updating the relationship table 501 related to the intermediate table.
[0070] For example, the intermediate table 601 with the table name "AssemblyOperation+OperationType" shown in FIG. 6A shows the result of the factory data table 2103 with the table name "AssemblyOperation" absorbing the factory data table 2104 with the table name "OperationType".
[0071] Here, the intermediate table generating unit 130 performs the above-mentioned absorption using the primary key "AssemblyOperationType" of the factory data table 2104 with the table name "OperationType."
[0072] The intermediate table generation unit 130 extracts the table relationship between the factory data table 2103 with the table name "AssemblyOperation" and the factory data table 2104 with the table name "OperationType" from the table relationship 602 (see FIG. 6B). The intermediate table generation unit 130 extracts the many-to-one relationship between the factory data table 2103 with the table name "AssemblyOperation" and the factory data table 2104 with the table name "OperationType", and the one-to-many relationship between the factory data table 2104 with the table name "OperationType" and the factory data table 2103 with the table name "AssemblyOperation", and deletes the table relationship related to the absorbed factory data table 2104 with the table name "OperationType" from the relationship table 603.
[0073] The intermediate table generation unit 130 absorbs the intermediate table with the table name "AssemblyOperation+OperationType" into the mapping candidate table and adds it as a column of the intermediate table of the factory data table 2102 with the table name "AssemblyRoute" shown in the relationship table 603. In step S70, the column determination unit 150 performs the column mapping process again, taking into account the relationship table 603.
[0074] In this embodiment, the method for calculating the similarity of tables can also be, for example, similarity = table similarity + coefficient 1 * (similarity of tables with the same table relationship) + coefficient 2 * (similarity of tables with the same table relationship) + ··· + table similarity = similarity of first similar column + similarity of second similar column + ··· + similarity of Nth similar column.
[0075] For example, the mapping candidate table for the common data table 1401 with the table name "Route" in the common data model 140 is based on the factory data table 2101 with the table name "ProductRoute" and the factory data table 2102 with the table name "AssemblyRoute" in the factory data model 210.
[0076] In the common data model 140, the table that has a one-to-many relationship with the common data table 1401 with the table name "Route" is the common data table 1402 with the table name "Operation." Since the common data table 1402 does not have a one-to-many relationship with the factory data table 2101 with the table name "ProductRoute," the similarity is 0.
[0077] On the other hand, the table that has a one-to-many relationship with the factory data table 2102 with the table name "AssemblyRoute" is the factory data table 2103 with the table name "AssemblyOperation", and since the column characteristics of the common data table 1402 with the table name "Operation" are similar, the result of the similarity of the tables when compared with the common data table 1401 with the table name "Route" is the same, but the factory data table 2102 with the table name "AssemblyRoute" is mapped to the common data table 1401 with the table name "Route".
[0078] In addition, in the common data model 140, the mapping candidate tables for the common data table 1402 with the table name “Operation” are the factory data table 2103 with the table name “AssemblyOperation” in the factory data model 210, the factory data table 2104 with the table name “OperationType”, and the intermediate table 601 with the table name “AssemblyOperation+OperationType”.
[0079] In terms of table similarity alone, the similarity between the fourth similar column "AssemblyOperationType" in the intermediate table 601 with the table name "AssembblyOperation" and the fourth similar column "OperationType" in the common data table 1402 with the table name "Operation" is lower than the similarity between the fourth similar column "TypeVal" in the intermediate table 601 with the table name "AssemblyOperation+OperationType" and the fourth similar column "OperationType" in the common data table 1402 with the table name "Operation", so the intermediate table 601 with the table name "AssemblyOperation+OperationType" has a higher table similarity.
[0080] Furthermore, in terms of the similarity of tables with the same table relationship, the table with a many-to-one relationship with the column "Operation" is the common data table 1401 with the table name "Route," and the factory data table 2103 with the table name "AssemblyOperation" and the intermediate table 601 with the table name "AssemblyOperation+OperationType" have the same table relationship "many-to-one," i.e., the factory data table 2102 with the table name "AssemblyRoute." Therefore, for example, the similarity values of tables with the same table relationship are the same. The column determination unit 150 compares the similarity of tables together with the similarity of tables with the same table relationship, and the intermediate table 601 with the table name "AssemblyOperation+OperationType" is mapped to the common data table 1402 with the table name "Operation."
[0081] Next, in accordance with the result of the mapping, the column determination unit 150 adds columns related to the mapping candidate table to the table of the common data model 140 (step S80). Specifically, the column determination unit 150 copies (record data of) each column of the mapping candidate table and adds them as (record data of) columns of the table to be mapped in the common data model 140.
[0082] For example, the record data of the columns of the factory data table 2102 with the table name "AssemblyRoute", which is the mapping source table in the factory data model 210, is integrated into the common data table 1401 with the table name "Route", which is the mapping destination table in the factory data model 210, and as a result of this integration, a table 701 with the table name "Route" shown in Fig. 7A is obtained. The data of the columns of the intermediate table 601 with the table name "AssemblyOperation+OperationType" is integrated into a similar column of the common data table 1402 with the table name "Operation", which is the mapping destination table, and as a result of this integration, a table 702 with the table name "Operation" shown in Fig. 7B is obtained.
[0083] In this way, the data integration server 10 can grasp candidates for synonymous columns between the tables of the factory data model 210 and the tables of the common data model 140, and can more accurately integrate the two tables.
[0084] The data integration server 10 according to this embodiment receives the factory data model 210 and the common data model 140, selects a predetermined table from the common data model 140, and for each column of the predetermined table, selects a mapping candidate table to be a mapping candidate from among the tables of the factory data model 210 based on the characteristics of each column. If the primary key of a table of the factory data model 210 is similar to the characteristics of the column of the primary key of the selected mapping candidate table, the candidate selection unit 11 determines that a primary key is set in the mapping candidate table (a mapping candidate table with a primary key). 0, a table relation management unit 120 that extracts table relations related to the mapping candidate table and stores them in a relation table 501 (601), and an intermediate table generation unit 130 that determines whether the mapping candidate table, for which a primary key is set, can be absorbed based on the table relations and a preset absorption feasibility determination table 502, and if it is determined that the mapping candidate table can be absorbed, defines an intermediate table to be used provisionally during absorption and a relation table 501 (601) related to the intermediate table, and adds columns of the intermediate table as columns of the mapping candidate table using the primary key.
[0085] In this way, by selecting a mapping candidate table to be used as a mapping candidate from among the tables in the factory data model 210, it is possible to easily and appropriately select a synonymous column candidate to be associated with a certain column in a table in the factory data model 210 from the common data model 140.
[0086] In this embodiment, the table relation management unit 120 manages one-to-one, one-to-many, and many-to-one relationships as table relations between tables in a relational table. In this way, it is possible to create a more suitable intermediate table taking these table relations into consideration.
[0087] In this embodiment, the candidate selection unit 110 selects candidates for synonymous columns as mapping candidates according to the results of a column feature determination that determines whether the characteristics of the columns of the table in the factory data model 210 are similar to the characteristics of the columns of the table in the common data model 140. In this way, it is possible to more accurately select candidates for synonymous columns according to the results of the column feature determination.
[0088] In this embodiment, the candidate selection unit 110 performs column feature determination based on similarity, which is the degree to which the column features of the table in the factory data model 210 are similar to the column features of the table in the common data model 140. In this way, the column feature determination can be performed more accurately.
[0089] In this embodiment, the candidate selection unit 110 selects a table from the common data model 140, and for the selected table, selects a mapping candidate table to be used as a mapping candidate for associating it with each table in the factory data model 210 based on the result of the column feature determination. In this way, it is possible to use a suitable mapping candidate table selected based on the result of the column feature determination.
[0090] In this embodiment, the candidate selection unit 110 determines whether a primary key is set in a mapping candidate table according to the mapping type, which indicates whether a primary key is set in a column of a target table. In this way, it is possible to use a mapping candidate table that is suitably selected according to the mapping type.
[0091] The present invention is not limited to the above-described embodiments, and includes various modifications and equivalent configurations within the spirit and scope of the appended claims. For example, the above-described embodiments have been described in detail to clearly explain the present invention, and the present invention is not necessarily limited to those including all of the described configurations. Furthermore, the elements described in parallel in the present embodiment may be configured such that at least one of the elements is connected in series to the other elements. [Industrial Applicability]
[0092] The present invention can be applied to, for example, a synonymous column candidate selection device that selects synonymous column candidates in a plurality of data models. [Explanation of symbols]
[0093] 10...Data integration server, 20...Factory server, 110...Candidate selection unit, 120...Table relationship management unit, 130...Intermediate table generation unit, 150...Column determination unit, 140...Common data model, 210...Factory data model
Claims
1. a candidate selection unit that receives a first data model and a second data model, selects a predetermined table from the second data model, and for each column of the predetermined table, selects a mapping candidate table to be a mapping candidate from among the tables of the first data model based on the characteristics of each column, and determines that a primary key is set in the mapping candidate table if a primary key of the table of the first data model is similar to the characteristics of a column of a primary key of the selected mapping candidate table; a table relation management unit that extracts table relations related to the mapping candidate tables and stores the extracted table relations in a relation table; an intermediate table generation unit that determines whether the mapping candidate table in which the primary key is set can be absorbed based on the table relationship and a preset absorption possibility determination table, and if it is determined that the mapping candidate table can be absorbed, defines an intermediate table to be used provisionally during absorption and the relational table related to the intermediate table, and adds columns of the intermediate table as columns of the mapping candidate table using the primary key; A synonymous column candidate selection device comprising:
2. The table relation management unit As the table relationships between the tables, one-to-one, one-to-many, and many-to-one relationships are managed in a relational table.
2. The synonymous column candidate selection device according to claim 1.
3. The candidate selection unit Selecting candidates for synonymous columns as mapping candidates according to a result of a column characteristic determination that determines whether or not characteristics of columns in the table of the first data model are similar to characteristics of columns in the table of the second data model.
2. The synonymous column candidate selection device according to claim 1.
4. The candidate selection unit The column characteristic determination is performed based on a similarity as a degree to which a column characteristic of a table of the first data model is similar to a column characteristic of a table of the second data model.
4. The synonymous column candidate selection device according to claim 3.
5. The candidate selection unit A table is selected from the second data model, and for the selected table, a mapping candidate table is selected as a mapping candidate to be associated with each table of the first data model based on the result of the column feature determination.
2. The synonymous column candidate selection device according to claim 1.
6. The candidate selection unit It is determined whether a primary key is set in the mapping candidate table according to a mapping type indicating whether a primary key is set in the column of the target table.
2. The synonymous column candidate selection device according to claim 1.
7. a candidate selection step in which a candidate selection unit receives a first data model and a second data model, selects a predetermined table from the second data model, and for each column of the predetermined table, selects a mapping candidate table to be a mapping candidate from among the tables of the first data model based on the characteristics of each column, and determines that a primary key is set in the mapping candidate table if a primary key of the table of the first data model is similar to the characteristics of a column of the primary key of the selected mapping candidate table; a table relation management step in which a table relation management unit extracts table relations related to the mapping candidate tables and stores the extracted table relations in a relation table; a column addition step in which an intermediate table generation unit determines whether the mapping candidate table in which the primary key is set can be absorbed based on the table relation and a preset absorption possibility determination table, and if it determines that the mapping candidate table can be absorbed, defines an intermediate table to be temporarily used during absorption and the relational table related to the intermediate table, and adds a column of the intermediate table as a column of the mapping candidate table using the primary key; A method for selecting synonymous column candidates, comprising:
Citation Information
Patent Citations
Synonymous column candidate selection device, synonymous column candidate selection method and synonymous column candidate selection program
JP2018106400A