WO2017175375A1 - Data cleansing system, method, and program - Google Patents

Data cleansing system, method, and program Download PDF

Info

Publication number
WO2017175375A1
WO2017175375A1 PCT/JP2016/061532 JP2016061532W WO2017175375A1 WO 2017175375 A1 WO2017175375 A1 WO 2017175375A1 JP 2016061532 W JP2016061532 W JP 2016061532W WO 2017175375 A1 WO2017175375 A1 WO 2017175375A1
Authority
WO
WIPO (PCT)
Prior art keywords
ucc
data
data table
record
column
Prior art date
Application number
PCT/JP2016/061532
Other languages
French (fr)
Japanese (ja)
Inventor
健太郎 角井
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2016/061532 priority Critical patent/WO2017175375A1/en
Priority to JP2018510205A priority patent/JP6549786B2/en
Publication of WO2017175375A1 publication Critical patent/WO2017175375A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

Definitions

  • the present invention relates to data cleansing.
  • the master data of many companies is often not suitable for use.
  • the records are not unique due to various reasons such as input errors and operational inadequacies, and duplicate records are included. There are many cases.
  • duplicate records may become a problem when multiple master data are integrated in a corporate merger.
  • the uniqueness of the record is the semantic uniqueness of the entity of the master data.
  • data such as personal names and address notations may be ambiguous as expressions such as fluctuations in names, alternative names, or omissions. obtain.
  • ambiguity due to the diversity of character encoding such as so-called distinction between half-width characters and full-width characters, may occur. Or even if they have the same name and the same name, they may be different people.
  • each record has only one person. It is important that the person corresponds to the person and the same person does not exist in a plurality of records.
  • Duplicate record in master data means that the entity indicated by the record is duplicated regardless of notation. In order to utilize the data in the company, it is necessary to manually investigate and correct such duplicate records that can be included in the master data. This operation is generally called data cleansing.
  • Patent Document 1 discloses a technique for detecting similar records by generating feature vectors from each record of a data table and comparing them with each other.
  • a column that can uniquely identify a record is called a “key”.
  • a key may be created artificially, but if the values stored in the column (called “column values”) are all different (that is, uniqueness is guaranteed), the column can be used as a key. It is. Even if uniqueness cannot be guaranteed with one column, the combination of multiple columns can be used as a composite key if the combination of multiple columns guarantees uniqueness.
  • UCC Unique Column Combination
  • the key (column) that guarantees the uniqueness of the record may not guarantee the uniqueness. .
  • the data cleanser may miss the loss of uniqueness of the composite key. high.
  • an object of the present invention is to improve the work efficiency and / or work accuracy of data cleansing.
  • the data cleansing system includes a processor and a memory.
  • the processor reads the data table from the memory, calculates the similarity between records in the data table, and detects a UCC (Unique Column Combination) that is a set of columns that allows each record of the data table to be uniquely identified. .
  • UCC Unique Column Combination
  • the physical structural example of a data cleansing system is shown.
  • the structural example of the function which a data cleansing system has is shown.
  • generation part is shown. It is a flowchart which shows the example of a data display process. An example of a data table is shown. An example of a similar record matrix is shown. An example of a UCC list is shown. It is a flowchart which shows the example of a metadata production
  • PLI position list index
  • information may be described in terms of “xxx table” or “xxx list”, but the information may be expressed in any data structure. That is, in order to show that the information does not depend on the data structure, the “xxx table” or the “xxx list” can be called “xxx information”. Furthermore, in describing the contents of each information, the expressions “identification information”, “identifier”, “name”, “name”, and “ID” are used, but these can be replaced with each other.
  • the process may be described using “program” as a subject.
  • the program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined process is appropriately performed. Since the processing is performed using at least one of a storage resource (for example, a memory) and a communication interface device, the subject of the processing may be a processor and an apparatus having the processor. Part or all of the processing performed by the processor may be performed by a hardware circuit.
  • the computer program may be installed from a program source.
  • the program source may be a program distribution server or a storage medium (for example, a portable storage medium).
  • FIG. 1 shows a physical configuration example of the data cleansing system 100.
  • the data cleansing system 100 is an example of a computer, and includes a processor 101, a memory 102, a storage 103, a network interface 104, and a console 105.
  • An example of the data cleansing system 100 is a personal computer, a rack mount server, a blade server, or the like.
  • the processor 101 is connected to the memory 102, the storage 103, the network interface 104, and the console 105 so as to be capable of bidirectional communication.
  • the data cleansing system 100 may have only some of these components, or may have multiple identical components.
  • the processor 101 is a hardware arithmetic device such as a CPU (Central Processing Unit), and reads a program from the memory 102 and executes it.
  • a CPU Central Processing Unit
  • the memory 102 is composed of a volatile semiconductor memory, and holds programs and data. Examples of the memory 102 are DRAM (Dynamic Random Access Memory), MRAM (Magnetic Resistive Random Access Memory), and FeRAM (Ferroelectric Random Access Memory).
  • DRAM Dynamic Random Access Memory
  • MRAM Magnetic Resistive Random Access Memory
  • FeRAM Feroelectric Random Access Memory
  • the storage 103 is composed of a non-volatile storage device and holds programs and data.
  • An example of the storage 103 is an HDD (Hard Disk Drive), an SSD (Solid State Drive), or a combination thereof.
  • the network interface 104 is composed of a communication device such as a NIC (Network Interface Controller) and is connected to the network 106, for example.
  • the network interface 104 controls a protocol for communicating with other devices via the network 106.
  • Examples of the network 106 include a wireless network based on the Ethernet (registered trademark), IEEE (Institut of Electrical and Electronics Engineers) 802.11 standard, a SONET / SDH (Synchronous Optical Network / Synchronous Network), A network that combines these multiple network technologies.
  • the console 105 includes, for example, an input device such as a keyboard and a mouse and a display device such as a liquid crystal display panel.
  • the console 105 may receive an operation signal corresponding to an operation input from the input device, and notify the processor 101 of the content of the operation signal. Then, the console 105 displays text information and text and images based on the graphical information output from the processor 101 on the display device.
  • the OS (Operating System) and the user program stored in the storage 103 may be read into the memory 102 when the data cleansing system 100 is started or when it is executed.
  • Various functions of the data cleansing system 100 may be realized by the processor 101 executing the OS and the user program read to the memory 102.
  • a program executed by the processor 101 may be introduced into the data cleansing system 100 via a removable medium (CD-ROM, flash memory, etc.) or a network and stored in the storage 103. For this reason, the data cleansing system 100 may have an interface for reading data from a removable medium.
  • FIG. 2 shows a configuration example of the functions of the data cleansing system 100.
  • the data cleansing system 100 includes a display unit 202, an operation unit 203, a data editing unit 204, an input / output unit 205, and a metadata generation unit 206 as functions. These functions may be realized by a program stored in the memory 102 being executed by the processor 101.
  • the operation unit 203 interprets the operation content input through the console 105 as various commands.
  • the operation unit 203 may pass a data display command to the display unit 202 and a data editing command to the data editing unit 204.
  • the input / output unit 205 reads the data file 107 stored in the storage 103 and stores it in the memory 102 as the data table 201.
  • the metadata generation unit 206 generates metadata 207 based on the data table 201 stored in the memory 102.
  • the metadata generation unit 206 may store the generated metadata 207 in the memory 102. Details of the metadata generation unit 206 will be described later.
  • the display unit 202 displays information related to data cleansing through the console 105.
  • the display unit 202 may display information related to the data table 201 and the metadata 207 through the console 105.
  • the display unit 202 may change the information display mode according to the content of the data display command received from the operation unit 203.
  • the above-described functions may be distributed to a plurality of data cleansing systems 100 in order to distribute processing load and improve availability.
  • the data cleansing system 100 may be composed of one physical computer or a plurality of logical or physical computers.
  • the above-described functions may be realized by a plurality of processors 101 performing communication via the network 106.
  • FIG. 3 shows an example of functions included in the metadata generation unit 206.
  • the metadata generation unit 206 may include a similar record detection unit 208, a UCC detection unit 209, and a hash matrix generation unit 210 as functions.
  • the metadata 207 may include a similar record matrix 250 and a UCC list 260.
  • the hash matrix generation unit 210 generates a hash matrix 301 (see FIG. 9) from the data table 201.
  • the similar record detection unit 208 calculates the similarity between records included in the data table 201 using the hash matrix 301 generated by the hash matrix generation unit 210.
  • the similar record calculation unit 208 may store the calculated similarity in the similar record matrix 250.
  • the UCC detection unit 209 detects the UCC (column set) from the data table 201 using the hash matrix 301 generated by the hash matrix generation unit 210.
  • the UCC detection unit 209 may register the detected UCC in the UCC list 260.
  • the similar record detection unit 208 and the UCC detection unit 209 may use the same hash matrix 301 generated by the hash matrix generation unit 210. Thereby, the processing amount of the entire system can be reduced as compared with a case where a hash matrix for detecting similar records and a hash matrix for detecting UCC are generated separately.
  • FIG. 4 is a flowchart showing an example of data display processing.
  • the input / output unit 205 reads the data file 107 from the storage 103 (step S402).
  • the input / output unit 205 parses the data file 107 serialized in a format such as CSV (Comma-Separated Values) format, for example, and generates a data table 201 (see FIG. 5) (step S404).
  • CSV Common-Separated Values
  • the metadata generation unit 206 generates metadata 207 from the generated data table 201 and stores it in the memory 102 (step S406). Details of this processing will be described later.
  • the display unit 202 displays the data table 201 and the metadata 207 through the console 105 (step S408).
  • the display example will be described later (see FIGS. 17 and 18).
  • FIG. 5 shows an example of the data table 201.
  • the data table 201 is target data for data cleansing in this embodiment. Any data may be stored in the data table 201.
  • the data table 201 includes a plurality of records and a plurality of columns, and a value (referred to as a column value or a cell value) may be stored in each column of the record.
  • a record ID (R001, R002,%) That can uniquely identify the record is assigned to each record.
  • a column ID (C001, C002,%) That can uniquely identify the column is assigned to each column.
  • the record ID and / or the column ID do not need to be included in the original data file 107 and may be given by the parsing process of the input / output unit 205.
  • the record ID may be called a record name.
  • the column ID may be called a column name.
  • the record with the record ID “R001” has a column value “AAA” in the column ID “C001”, a column value “CCC” in the column ID “C002”, and a column value “0” in the column ID “C003”.
  • Column ID “C004” has a column value “0”.
  • FIG. 6 shows an example of the similar record matrix 250.
  • the similar record matrix 250 may be included in the metadata 207.
  • the similar record matrix 250 manages the similarity between two records included in the data table 201.
  • Each record ID included in the data table 201 may be assigned to each row and each column in the similar record matrix 250.
  • the cell at the intersection of the row record ID and the column record ID may store the similarity between the record ID record of the row and the record ID record of the column.
  • the similarity may be a value that can be in the range of 0 to 1, indicating that the larger the value, the more similar.
  • the example of FIG. 6 indicates that the similarity between the record IDs “R002” and “R001” is “0.80” (relatively similar).
  • FIG. 7 shows an example of the UCC list 260.
  • the UCC list 260 may be included in the metadata 207.
  • the UCC list 260 manages a set of column IDs (that is, UCC) that can uniquely identify each record of the data table 201.
  • the column IDs “C001” and “C002” are UCC.
  • a set of column IDs “C001” and “C002” is stored in the UCC list 260.
  • each UCC may be given a UCC ID (U001, U002,%) That can uniquely identify the UCC (a set of column IDs).
  • FIG. 8 is a flowchart showing an example of metadata generation processing.
  • the metadata generation unit 206 calculates a hash value of each column value of the data table 201 using a certain hash function (step S602).
  • the metadata generation unit 206 generates a hash matrix 301 (see FIG. 9) for the data table 201 using the calculated hash value (step S604).
  • the metadata generation unit 206 generates the similar record matrix 250 (see FIG. 6) and the UCC list 260 (see FIG. 7) using the generated hash matrix 301 (step S606).
  • FIG. 9 shows an example of the hash matrix 301.
  • the hash matrix 301 is a matrix composed of hash values calculated by applying a certain hash function to each column value of the data table 201.
  • the hash matrix 301 may be generated for each different hash function.
  • an ID that can uniquely identify each hash function is referred to as a “hash function ID”.
  • the hash matrix 301 may have each record ID and each column ID of the data table 201 in each row and each column. In the cell at the intersection of the row record ID and the column ID of the column, the hash value of the column value of the column ID in the record of the record ID of the data table 201 may be stored.
  • record IDs are assigned to rows and column IDs are assigned to columns for the sake of explanation. Such an ID may not be assigned to the hash matrix 301 actually stored in the memory.
  • FIG. 10 shows an example of the MinHash signature 302.
  • the MinHash signature 302 is used for the MinHash method.
  • the MinHash signature 302 may be generated based on the hash matrix 301.
  • each record ID of the hash matrix 301 may be given to each row of the MinHash signature 302 of FIG. Further, each hash function ID (h1, h2,%) Described in FIG. 9 may be assigned to each column.
  • the cell at the intersection of the record ID and the hash function ID of the MinHash signature 302 has the minimum hash value among the plurality of hash values belonging to the record ID in the hash matrix 301 generated from the hash function of the hash function ID. Is stored. For example, if the hash matrix 301 in FIG. 9 is generated from the hash function with the hash function ID “h1”, the record ID “R001” and the hash function ID “h1” in the MinHash signature 302 in FIG. Is the smallest hash value “1234” among the plurality of hash values “1234”, “4122”, “5628”,... Belonging to the record with the record ID “R001” of the hash matrix 301 of FIG. Is stored.
  • the hash value calculated by the hash function having the hash function ID “h1” is cyclically shifted, XOR is calculated between the cyclically shifted value and the random number, and the calculated value is assigned to the hash function ID “h2”. It may be used as a value corresponding to the hash value.
  • the cell having the hash function ID “h2” may store the minimum value among the values corresponding to the hash value related to the hash function ID “h2”.
  • FIG. 11 shows an example of the position list index (PLI) 303.
  • the PLI 303 may be generated for each column ID of the data table 201.
  • the PLI 303 ⁇ / b> A is a PLI related to the column ID “C001” of the data table 201.
  • PLI 303B, 303C, and 303D The same applies to PLI 303B, 303C, and 303D.
  • the PLI 303 related to a certain column ID manages a plurality of record IDs having the same hash value in the column of the column ID in the hash matrix 301 and the same hash value in association with each other.
  • the PLI 303A indicates that there are a plurality of record IDs “R001” and “R003” having the same hash value “1234” in the column of the column ID “C001” in the hash matrix 301.
  • PLI 303 is similar to a data structure commonly known as a hash table.
  • the PLI 303 may be a table in which a hash table is generated using a hash value of the hash matrix 301 and only a bucket having two or more entries is extracted.
  • FIG. 12 is a flowchart showing an example of the generation process of the similar record matrix 250. This process corresponds to the process in step S606 in FIG.
  • the metadata generation unit 206 generates a MinHash signature 302 corresponding to the data table 201 (step S804).
  • the MinHash signature 302 may be generated as described above with reference to FIG.
  • the metadata generation unit 206 may divide the plurality of columns of the generated MinHash signature 302 into several groups. Here, each divided group is referred to as a “band” (step S806).
  • the metadata generation unit 206 may combine the hash values of the columns belonging to the band for each record ID of the MinHash signature 302. Then, the metadata generation unit 206 may calculate a hash value by applying a predetermined hash function to the combined hash value (step S808). The metadata generation unit 206 may perform this process for each band.
  • This hash value calculation process may be an algorithm known as so-called LSH (Locality Sensitive Hashing). In this case, it is known that a set of records having the same hash value is likely to be similar.
  • LSH Location Sensitive Hashing
  • the metadata generation unit 206 executes the process of step S814 for each set of all records having the same hash value (LOOP2).
  • LOOP2 hash value
  • a set of records selected in each loop process is referred to as a “selected record set”.
  • the metadata generation unit 206 calculates the probability that the hash value of the MinHash signature 302 of the set of selected records matches (step S814). This probability is known to approximate an index of similarity between two sets called the Jaccard distance. Therefore, this probability is set as the similarity and stored in the similar record matrix 250.
  • FIG. 13 is a flowchart showing an example of the extraction process of the UCC candidate column.
  • This process is a process for extracting a column (referred to as a “UCC candidate column”) that is likely to be included in the UCC before the UCC list 260 generation process (see FIG. 14). By performing this process, the processing amount of UCC detection can be reduced.
  • the metadata generation unit 206 executes steps S904 to S908 for all the columns of the hash matrix 301 (LOOP1). A column selected in each loop process is referred to as a “selected column”.
  • the metadata generation unit 206 calculates the cardinality of the selected column of the data table 201 using the hash value of the selected column of the hash matrix 301 (step S904).
  • the cardinality of a column may be the number (different number) of types of column values stored in the column.
  • the HyperLogLog algorithm may be adopted as a method for approximating the cardinality from the hash value.
  • the metadata generation unit 206 determines whether or not the calculated cardinality is equal to or less than a predetermined threshold (step S906). When the determination result is affirmative (step S906: YES), the metadata generation unit 206 excludes the selected column from the UCC candidate (step S908). This is because a column having a low cardinality has a small number of different column values and thus has a low possibility of forming a UCC.
  • step S906 NO
  • the metadata generation unit 206 does not have to do anything.
  • the UCC candidate column is extracted.
  • FIG. 14 is a flowchart illustrating an example of a process for generating the UCC list 260. This process corresponds to the process in step S606 in FIG. This process is an example of a process for generating a UCC list from the UCC candidate columns extracted in the process of FIG.
  • the metadata generation unit 206 executes steps S1004 to S1008 for each of all UCC candidate columns (LOOP1).
  • the UCC candidate column selected in each loop process is referred to as “selected UCC candidate column”.
  • the metadata generation unit 206 generates the PLI 303 for the selected UCC candidate column using the hash value of the hash matrix 301 (step S1004).
  • the metadata generation unit 206 determines whether there is an entry having two or more record IDs in the PLI 303 (step S1006). If there is no entry having two or more record IDs in the PLI 303 (step S1006: NO), the metadata generation unit 206 registers the selected UCC candidate column in the UCC list 260 (step S1008). This is because the selected UCC candidate column alone can guarantee the uniqueness of the record. When there is an entry having two or more record IDs in the PLI 303 (step S1006: YES), the metadata generation unit 206 does not have to do anything.
  • the metadata generation unit 206 executes Steps S1012 to S1016 for each of all the pairs based on the remaining UCC candidate columns that are not registered in the UCC list in the above processing (LOOP2).
  • a set of UCC candidate columns selected in each loop process is referred to as a “selected UCC candidate column set”.
  • the metadata generation unit 206 regards each entry of the PLI 303 regarding the set of selected UCC candidate columns as a set of record IDs, and calculates a common set (step S1012).
  • the metadata generation unit 206 determines whether or not the calculated common set is an empty set (step S1014). When the common set is an empty set (step S1014: YES), the metadata generation unit 206 registers the set of selected UCC candidate columns in the UCC list 260. This is because the selected UCC candidate column set can guarantee the uniqueness of the record in the column set. When the common set is not an empty set (step S1014: NO), the metadata generation unit 206 does not have to do anything.
  • FIG. 15 is a flowchart showing an example of the data editing process.
  • This process is an example of a data editing process and a metadata regeneration process that occurs accordingly.
  • the data editing unit 204 edits the data table 201 (step S1104).
  • This data editing command may be passed to the data editing unit 204 from the operation unit 203 that has received the data editing input operation via the console 105.
  • the metadata generation unit 206 regenerates the metadata 207 (step S1106). Details of this processing will be described later (see FIG. 16).
  • the display unit 202 displays the contents of the edited data table 201 and the regenerated metadata 207 through the console 105 (step S1108).
  • FIG. 16 is a flowchart showing an example of the metadata regeneration process. This processing corresponds to the processing in step S1106 in FIG.
  • a data editing command related to record deletion is issued, for example, when a record determined to be a duplicate record is deleted in a cleansing operation.
  • a data editing command related to cell update is issued, for example, when data is rewritten to unify the notation.
  • the metadata generation unit 206 determines whether the received data editing command is record deletion or cell update (step S1202).
  • the metadata generation unit 206 acquires the hash value of each column value belonging to the record to be deleted from the hash matrix 301 (step S1206).
  • the metadata generation unit 206 deletes the acquired hash value and the record ID to be deleted from the PLI 303 of each column (step S1208).
  • the metadata generation unit 206 deletes the record ID to be deleted from the hash matrix 301, the MinHash signature 302, and the similar record matrix 250 (step S1210). Then, this process ends.
  • the metadata generation unit 206 calculates a hash value from the updated cell value, and updates the hash matrix 301 using the calculated hash value (steps S1222 to S1224).
  • the metadata generation unit 206 updates the PLI 303 of the column including the updated cell value (step S1226).
  • the metadata generation unit 206 determines whether or not the column ID including the updated cell value (referred to as “updated column ID”) is included in the UCC list 260 (step S1228). If the determination result is affirmative (S1228: YES), the metadata generation unit 206 proceeds to the next step S1230, and if negative (step S1228: NO), the process ends.
  • the metadata generation unit 206 performs the processing of the next steps S1232 to S1236 for each UCC including the update column ID (step S1230).
  • the metadata generation unit 206 acquires the updated hash value entry from the PLI 303 of the update column ID. Then, the metadata generation unit 206 calculates a common set between the record ID group of the acquired entry and the record ID group of the entry of another PLI 303 (step S1232).
  • the metadata generation unit 206 determines whether or not the calculated common set is an empty set (step S1234). That is, the metadata generation unit 206 determines whether the acquired record ID group is not included in any other record ID group of the PLI 303, or included in any other record ID group of the PLI 303. It is determined whether or not.
  • step S1234 the metadata generation unit 206 deletes the column ID pair of the PLI 303 that is not the empty set from the UCC list 260 (step S1236). This is because the column ID pair is no longer a UCC due to the update of the cell value.
  • the metadata generation unit 206 does not need to do anything when the common set is an empty set (step S1234: YES).
  • the metadata generation unit 206 may execute an update process of the similar record matrix 250 in addition to the above process.
  • the update process of the UCC list 260 is executed only when the column including the update cell value belongs to the UCC. That is, according to the present embodiment, the update processing amount of the UCC list 260 when the cell value is updated can be reduced.
  • FIG. 17 shows an example of the data table display screen 400. This screen may be displayed by the process of step S408 in FIG. 4 or step S1108 in FIG.
  • the display unit 202 may generate a data table display screen 400 as shown in FIG. 17 based on the data table 201 and display it on the console 105. On the data table display screen 400, the record ID and column ID of the data table 201 may be displayed together.
  • FIG. 18 shows an example of the improved data table display screen 401. This screen may be displayed by the process of step S408 in FIG. 4 or step S1108 in FIG.
  • the display unit 202 may generate an improved data table display screen 401 as shown in FIG. 18 based on the data table 201 and the metadata 207 and display it on the console 105.
  • the improved data table display screen 401 may include a button 402 for selecting a column ID or a column ID group belonging to the UCC list 260.
  • this button 402 When the person in charge of data cleansing presses this button 402, the column corresponding to the column ID or the column ID group selected by the button 402 in the data table is distinguished from other columns (for example, in a different color). It may be highlighted (see shaded area in FIG. 18).
  • the similarity between the records in the similar record matrix 250 may be displayed.
  • the display unit 202 may display a record having a high similarity as high as possible.
  • the display unit 202 may sort and display records in descending order of similarity.
  • the improved data table display screen 401 in FIG. 18 is merely an example of displaying the information included in the metadata 207 on the console 105, and the display mode is not limited to this.
  • a record having a high similarity can be displayed at the top. Therefore, the person in charge of data cleansing can easily find a record that seems to require data cleansing.
  • the columns belonging to the UCC can be displayed in a recognizable manner.
  • the person in charge of data cleansing can easily recognize which cell value is corrected so that the UCC relationship can be lost.
  • records with high similarity and columns belonging to UCC can be displayed together.
  • the person in charge of data cleansing can correct the data while matching the semantic uniqueness of the record with the uniqueness of the notation. That is, the person in charge of data cleansing can efficiently perform the data cleansing work.
  • a part of the configuration of a certain embodiment may be replaced with the configuration of another embodiment.
  • the configuration of another embodiment may be added to the configuration of one embodiment. You may add, delete, or replace another structure with respect to a part of structure of each Example.
  • each of the configurations, functions, processing units, processing means, and the like in the above-described embodiments may be realized in hardware by designing a part or all of them, for example, with an integrated circuit. It may be realized by software by interpreting and executing a program for realizing the function. Information such as programs, tables, and files that realize each function can be stored in a storage device such as a memory, a hard disk drive, or an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD. .
  • a storage device such as a memory, a hard disk drive, or an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.
  • control lines and / or information lines which are considered necessary for the description are shown, and not all control lines and / or information lines necessary for mounting are shown. That is, even if not shown, almost all the components may be connected to each other.
  • Data cleansing system 201 Data table 206: Metadata generation unit 208: Similar record detection unit 209: UCC detection unit 210: Hash matrix generation unit

Abstract

The present invention improves the efficiency of data cleansing work. This data cleansing system reads out a data table from memory, calculates the degree of similarity between records of the data table, detects a unique column combination (UCC) that is a set of columns by which each of the records of the data table is uniquely identifiable, and displays the degree of similarity and the UCC.

Description

データクレンジングシステム、方法、及び、プログラムData cleansing system, method, and program
 本発明は、データクレンジングに関する。 The present invention relates to data cleansing.
 企業内に散在するデータを統合し、業務分析に活用するソリューションが注目されている。その実現のためには、トランザクションデータに含まれる属性が過不足なく格納されているマスタデータが必要である。マスタデータは、それが表現するエンティティのインスタンスとレコードとが1対1に対応付けられている必要がある。すなわち、各レコードは、他のレコードに対して一意に識別可能である必要がある。 -A solution that integrates data scattered throughout the company and uses it for business analysis is attracting attention. In order to realize this, master data in which attributes included in transaction data are stored without excess or deficiency is necessary. In the master data, it is necessary that the entity instance and the record represented by the master data are associated with each other on a one-to-one basis. That is, each record needs to be uniquely identifiable with respect to other records.
 しかし、多くの企業のマスタデータは、活用に適さない状態であることが多い。すなわち、多くのマスタデータが、人間によって入力されたデータを基に作成されているため、入力ミスや運用上の不備などの様々な原因により、レコードの一意性を失っており、重複レコードを含んでいることが多い。それ以外にも、企業合併等で複数のマスタデータを統合する際に、重複レコードが問題となることもある。 However, the master data of many companies is often not suitable for use. In other words, because a lot of master data is created based on data entered by humans, the records are not unique due to various reasons such as input errors and operational inadequacies, and duplicate records are included. There are many cases. In addition, duplicate records may become a problem when multiple master data are integrated in a corporate merger.
 なお、レコードの一意性とは、マスタデータのエンティティに関する意味論上の一意性であることに注意する。例えば、従業員マスタや顧客マスタなど、人物をエンティティの単位とするマスタデータの場合、個人名や住所表記などのデータには、表記の揺れ、別称、又は省略など、表現としての曖昧さが生じ得る。また、いわゆる半角文字と全角文字の区別など、文字符号化の多様性による曖昧さも生じ得る。または、全くの同姓同名であっても別人ということも生じ得る。したがって、人物をエンティティの単位とするマスタデータでは、このような表記上の曖昧さが存在することを前提として(可能ならば一定のルールに従って表記を統一した上で)、各レコードがただ一人の人物に対応しており、同一人物が複数のレコードに存在しないことが重要である。 Note that the uniqueness of the record is the semantic uniqueness of the entity of the master data. For example, in the case of master data that uses a person as the entity unit, such as employee masters and customer masters, data such as personal names and address notations may be ambiguous as expressions such as fluctuations in names, alternative names, or omissions. obtain. In addition, ambiguity due to the diversity of character encoding, such as so-called distinction between half-width characters and full-width characters, may occur. Or even if they have the same name and the same name, they may be different people. Therefore, in the master data with a person as a unit of entity, it is assumed that there is such ambiguity in the notation (if the notation is unified according to a certain rule if possible), each record has only one person. It is important that the person corresponds to the person and the same person does not exist in a plurality of records.
 マスタデータにおける重複レコードとは、表記上の異同に関わらず、そのレコードの示すエンティティが重複していることをいう。企業内のデータを活用するためには、マスタデータに含まれ得るこのような重複レコードを、人手で調査及び修正する作業が必要である。この作業は、一般にデータクレンジングと呼ばれる。 重複 Duplicate record in master data means that the entity indicated by the record is duplicated regardless of notation. In order to utilize the data in the company, it is necessary to manually investigate and correct such duplicate records that can be included in the master data. This operation is generally called data cleansing.
 データクレンジングを支援する技術として、類似するレコードを検出する技術が知られている。重複レコードは、表記上の曖昧さを含むため、単純な文字列マッチングで検出できるとは限らない。しかし、レコード間の表記上の差異が少ないもの、すなわち、類似するレコード同士は、重複レコードである可能性が高い。特許文献1には、データテーブルの各レコードから特徴ベクトルを生成して相互に比較することにより、類似するレコードを検出する技術が開示されている。 A technique for detecting similar records is known as a technique for supporting data cleansing. Since duplicate records include ambiguity in notation, they cannot always be detected by simple character string matching. However, there is a high possibility that records with little difference in notation between records, that is, similar records are duplicate records. Patent Document 1 discloses a technique for detecting similar records by generating feature vectors from each record of a data table and comparing them with each other.
 データテーブルにおいて、レコードを一意に識別可能とするカラムは、「キー」と呼ばれる。キーは人工的に作成することもあるが、カラムに格納されている値(「カラム値」という)が全て異なる場合(つまり一意性が保証されている場合)、当該カラムは、キーとして採用可能である。また、1つのカラムでは一意性を保証できなくとも、複数のカラムの組み合わせが一意性を保証するならば、当該複数のカラムの組み合わせは、複合キーとして採用可能である。このような、レコードを一意に識別可能とするカラムの組み合わせをUCC(Unique Column Combination)と呼ぶ。特許文献2には、UCCを検出する技術が開示されている。 In the data table, a column that can uniquely identify a record is called a “key”. A key may be created artificially, but if the values stored in the column (called "column values") are all different (that is, uniqueness is guaranteed), the column can be used as a key. It is. Even if uniqueness cannot be guaranteed with one column, the combination of multiple columns can be used as a composite key if the combination of multiple columns guarantees uniqueness. Such a combination of columns that makes it possible to uniquely identify a record is called UCC (Unique Column Combination). Patent Document 2 discloses a technique for detecting UCC.
米国特許出願公開第2007/0005556号明細書US Patent Application Publication No. 2007/0005556 国際公開第2014/191059号International Publication No. 2014/19159
 マスタデータのデータクレンジングを支援するために上述の類似するレコードを検出する技術を採用したとしても、或るレコードを重複レコードと見做して削除すべきか、それともそのレコード自体は残し、表記揺れ等を修正すべきかなどの最終的な判断は、データクレンジングの担当者が行う。データクレンジングの担当者は、目視で重複レコードを発見し、レコードを削除すべきか、それとも表記を修正すべきかなどを判断する必要がある。しかしながら、企業内マスタデータが、100個を超えるような多数のカラムで構成されていたり、多くのカラムが用途不明であったりすることも多い。このような場合、データクレンジングの担当者の作業負担は、非常に大きい。 Even if the above-described technology for detecting similar records is used to support data cleansing of master data, whether or not a certain record should be deleted as a duplicate record, or the record itself should be left, notation fluctuation, etc. The person in charge of data cleansing makes a final decision as to whether or not the data should be corrected. The person in charge of data cleansing must visually detect a duplicate record and determine whether to delete the record or correct the notation. However, in-house master data is often composed of a large number of columns exceeding 100, or many columns are unclear for use. In such a case, the work burden of the person in charge of data cleansing is very large.
 また、表記揺れの統一や全角文字と半角文字との統一など、データテーブルを修正した結果、レコードの一意性を保証していたキー(カラム)が、一意性を保証しなくなることが発生し得る。特に、レコードの一意性を保証している複合キーが、データテーブルの修正によって一意性を保証しなくなった場合、データクレンジング担当者が、その複合キーの一意性の喪失を見落としてしまう可能性が高い。 In addition, as a result of correcting the data table, such as unification shaking and unification of full-width and half-width characters, the key (column) that guarantees the uniqueness of the record may not guarantee the uniqueness. . In particular, if a composite key that guarantees the uniqueness of a record no longer guarantees uniqueness due to a modification of the data table, the data cleanser may miss the loss of uniqueness of the composite key. high.
 すなわち、従来技術では、データクレンジング担当者の作業負担が大きく、また、当該担当者の修正作業によって生じ得るキー又は複合キーの喪失が見落とされてしまうおそれがある。そこで本発明の目的は、データクレンジングの作業効率及び/又は作業精度を向上させることにある。 That is, in the conventional technique, the work load of the person in charge of data cleansing is large, and the loss of keys or composite keys that may be caused by the correction work of the person in charge may be overlooked. Accordingly, an object of the present invention is to improve the work efficiency and / or work accuracy of data cleansing.
 一実施例に係るデータクレンジングシステムは、プロセッサ及びメモリを有する。当該プロセッサは、メモリからデータテーブルを読み出し、データテーブルのレコード間の類似度を算出し、前記データテーブルの各レコードを一意に識別可能とするカラムの組であるUCC(Unique Column Combination)を検出する。 The data cleansing system according to one embodiment includes a processor and a memory. The processor reads the data table from the memory, calculates the similarity between records in the data table, and detects a UCC (Unique Column Combination) that is a set of columns that allows each record of the data table to be uniquely identified. .
 本発明によれば、データクレンジングの作業効率及び/又は作業精度を向上させることができる。 According to the present invention, it is possible to improve the work efficiency and / or work accuracy of data cleansing.
データクレンジングシステムの物理的な構成例を示す。The physical structural example of a data cleansing system is shown. データクレンジングシステムが有する機能の構成例を示す。The structural example of the function which a data cleansing system has is shown. メタデータ生成部に含まれる機能の例を示す。The example of the function contained in a metadata production | generation part is shown. データ表示処理の例を示すフローチャートである。It is a flowchart which shows the example of a data display process. データテーブルの例を示す。An example of a data table is shown. 類似レコードマトリクスの例を示す。An example of a similar record matrix is shown. UCCリストの例を示す。An example of a UCC list is shown. メタデータ生成処理の例を示すフローチャートである。It is a flowchart which shows the example of a metadata production | generation process. ハッシュ行列の例を示す。An example of a hash matrix is shown. MinHashシグネチャの例を示す。An example of a MinHash signature is shown. ポジションリストインデックス(PLI)の例を示す。An example of a position list index (PLI) is shown. 類似レコードマトリクスの生成処理の一例を示すフローチャートである。It is a flowchart which shows an example of the production | generation process of a similar record matrix. UCC候補カラムの抽出処理の一例を示すフローチャートである。It is a flowchart which shows an example of the extraction process of a UCC candidate column. UCCリストの生成処理の一例を示すフローチャートである。It is a flowchart which shows an example of the production | generation process of a UCC list. データ編集処理の一例を示すフローチャートである。It is a flowchart which shows an example of a data edit process. メタデータ再生成処理の一例を示すフローチャートである。It is a flowchart which shows an example of a metadata reproduction process. データテーブル表示画面の例を示す。An example of a data table display screen is shown. 改良データテーブル表示画面の例を示す。An example of an improved data table display screen is shown.
 以下、実施例を説明する。以下の説明では、「xxxテーブル」又は「xxxリスト」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxテーブル」又は「xxxリスト」を「xxx情報」と呼ぶことができる。さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いるが、これらについてはお互いに置換が可能である。 Hereinafter, examples will be described. In the following description, information may be described in terms of “xxx table” or “xxx list”, but the information may be expressed in any data structure. That is, in order to show that the information does not depend on the data structure, the “xxx table” or the “xxx list” can be called “xxx information”. Furthermore, in describing the contents of each information, the expressions “identification information”, “identifier”, “name”, “name”, and “ID” are used, but these can be replaced with each other.
 また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び通信インターフェイスデバイスのうちの少なくとも1つを用いながら行うため、処理の主語が、プロセッサ、そのプロセッサを有する装置とされてもよい。プロセッサが行う処理の一部又は全部が、ハードウェア回路で行われてもよい。コンピュータプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。 In the following description, the process may be described using “program” as a subject. However, the program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined process is appropriately performed. Since the processing is performed using at least one of a storage resource (for example, a memory) and a communication interface device, the subject of the processing may be a processor and an apparatus having the processor. Part or all of the processing performed by the processor may be performed by a hardware circuit. The computer program may be installed from a program source. The program source may be a program distribution server or a storage medium (for example, a portable storage medium).
 また、以下の説明では、同種の要素を区別して説明する場合には、「PLI303A」、「PLI303B」のように、参照符号を使用し、同種の要素を区別しないで説明する場合には、「PLI303」のように参照符号のうちの共通番号のみを使用することがある。 Further, in the following description, when the same type of elements are described separately, reference numerals are used like “PLI303A” and “PLI303B”, and when the same type of elements are not distinguished, In some cases, only a common number among the reference symbols is used, such as “PLI303”.
 図1は、データクレンジングシステム100の物理的な構成例を示す。 FIG. 1 shows a physical configuration example of the data cleansing system 100.
 データクレンジングシステム100は、計算機の一例であり、プロセッサ101、メモリ102、ストレージ103、ネットワークインタフェース104及びコンソール105を有する。データクレンジングシステム100の例は、パーソナルコンピュータ、ラックマウントサーバ又はブレードサーバ等である。プロセッサ101は、メモリ102、ストレージ103、ネットワークインタフェース104及びコンソール105と、双方向通信可能に接続されている。データクレンジングシステム100は、これらの構成要素の一部のみを有しても良いし、複数の同じ構成要素を有してもよい。 The data cleansing system 100 is an example of a computer, and includes a processor 101, a memory 102, a storage 103, a network interface 104, and a console 105. An example of the data cleansing system 100 is a personal computer, a rack mount server, a blade server, or the like. The processor 101 is connected to the memory 102, the storage 103, the network interface 104, and the console 105 so as to be capable of bidirectional communication. The data cleansing system 100 may have only some of these components, or may have multiple identical components.
 プロセッサ101は、CPU(Central Processing Unit)等のハードウェアによる演算装置であり、メモリ102からプログラムを読み出して実行する。 The processor 101 is a hardware arithmetic device such as a CPU (Central Processing Unit), and reads a program from the memory 102 and executes it.
 メモリ102は、揮発性の半導体メモリから構成され、プログラムやデータなどを保持する。メモリ102の例は、DRAM(Dynamic Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)である。 The memory 102 is composed of a volatile semiconductor memory, and holds programs and data. Examples of the memory 102 are DRAM (Dynamic Random Access Memory), MRAM (Magnetic Resistive Random Access Memory), and FeRAM (Ferroelectric Random Access Memory).
 ストレージ103は、不揮発性の記憶装置から構成され、プログラムやデータなどを保持する。ストレージ103の例は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又はこれらの組み合わせなどである。 The storage 103 is composed of a non-volatile storage device and holds programs and data. An example of the storage 103 is an HDD (Hard Disk Drive), an SSD (Solid State Drive), or a combination thereof.
 ネットワークインタフェース104は、例えば、NIC(Network Interface Controller)等の通信デバイスで構成され、ネットワーク106と接続される。ネットワークインタフェース104は、ネットワーク106を介して他の装置と通信するためのプロトコルを制御する。ネットワーク106の例は、イーサネット(登録商標)、IEEE(Institute of Electrical and Electronics Engineers)802.11規格に基づく無線ネットワーク、SONET/SDH(Synchronous Optical Network/Synchronous Digital Hierarchy)規格に基づく広域ネットワーク、又は、これら複数のネットワーク技術を組み合わせたネットワークなどである。 The network interface 104 is composed of a communication device such as a NIC (Network Interface Controller) and is connected to the network 106, for example. The network interface 104 controls a protocol for communicating with other devices via the network 106. Examples of the network 106 include a wireless network based on the Ethernet (registered trademark), IEEE (Institut of Electrical and Electronics Engineers) 802.11 standard, a SONET / SDH (Synchronous Optical Network / Synchronous Network), A network that combines these multiple network technologies.
 コンソール105は、例えば、キーボード及びマウス等の入力装置と、液晶表示パネル等のディスプレイ装置とから構成される。コンソール105は、入力装置から入力された操作に対応する操作信号を受信し、その操作信号の内容をプロセッサ101に通知してよい。そして、コンソール105は、プロセッサ101から出力される、テキスト情報、グラフィカル情報に基づくテキスト及び画像等を、ディスプレイ装置に表示する。 The console 105 includes, for example, an input device such as a keyboard and a mouse and a display device such as a liquid crystal display panel. The console 105 may receive an operation signal corresponding to an operation input from the input device, and notify the processor 101 of the content of the operation signal. Then, the console 105 displays text information and text and images based on the graphical information output from the processor 101 on the display device.
 ストレージ103に格納されているOS(Operating System)やユーザプログラムは、データクレンジングシステム100の起動時又はそれ自身の実行時に、メモリ102に読み出されてよい。そして、プロセッサ101が、メモリ102に読み出されたOS及びユーザプログラムを実行することによって、データクレンジングシステム100の有する各種機能が実現されてよい。プロセッサ101が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリ等)又はネットワークなどを介してデータクレンジングシステム100に導入され、ストレージ103に格納されてよい。このため、データクレンジングシステム100は、リムーバブルメディアからデータを読み込むインターフェースを有してよい。 The OS (Operating System) and the user program stored in the storage 103 may be read into the memory 102 when the data cleansing system 100 is started or when it is executed. Various functions of the data cleansing system 100 may be realized by the processor 101 executing the OS and the user program read to the memory 102. A program executed by the processor 101 may be introduced into the data cleansing system 100 via a removable medium (CD-ROM, flash memory, etc.) or a network and stored in the storage 103. For this reason, the data cleansing system 100 may have an interface for reading data from a removable medium.
 図2は、データクレンジングシステム100が有する機能の構成例を示す。 FIG. 2 shows a configuration example of the functions of the data cleansing system 100.
 データクレンジングシステム100は、機能として、表示部202、操作部203、データ編集部204、入出力部205及びメタデータ生成部206を有する。これらの機能は、メモリ102に格納されたプログラムがプロセッサ101で実行されることにより実現されてよい。 The data cleansing system 100 includes a display unit 202, an operation unit 203, a data editing unit 204, an input / output unit 205, and a metadata generation unit 206 as functions. These functions may be realized by a program stored in the memory 102 being executed by the processor 101.
 操作部203は、コンソール105を通じて入力された操作内容を、各種命令として解釈する。操作部203は、データ表示命令を表示部202に渡し、データ編集命令をデータ編集部204に渡してよい。 The operation unit 203 interprets the operation content input through the console 105 as various commands. The operation unit 203 may pass a data display command to the display unit 202 and a data editing command to the data editing unit 204.
 入出力部205は、ストレージ103に格納されているデータファイル107を読み出し、データテーブル201としてメモリ102に格納する。 The input / output unit 205 reads the data file 107 stored in the storage 103 and stores it in the memory 102 as the data table 201.
 メタデータ生成部206は、メモリ102に格納されているデータテーブル201に基づいて、メタデータ207を生成する。メタデータ生成部206は、その生成したメタデータ207をメモリ102に格納してよい。メタデータ生成部206の詳細については後述する。 The metadata generation unit 206 generates metadata 207 based on the data table 201 stored in the memory 102. The metadata generation unit 206 may store the generated metadata 207 in the memory 102. Details of the metadata generation unit 206 will be described later.
 表示部202は、コンソール105を通じてデータクレンジングに関する情報を表示する。表示部202は、データテーブル201及びメタデータ207に係る情報を、コンソール105を通じて表示してよい。また、表示部202は、操作部203から受領したデータ表示命令の内容に応じて、情報の表示態様を変えてよい。 The display unit 202 displays information related to data cleansing through the console 105. The display unit 202 may display information related to the data table 201 and the metadata 207 through the console 105. In addition, the display unit 202 may change the information display mode according to the content of the data display command received from the operation unit 203.
 なお、処理負荷の分散や可用性の向上等のため、上述の機能の一部又は全部は、複数のデータクレンジングシステム100に分散されてもよい。また、データクレンジングシステム100は、1つの物理的な計算機で、又は、複数の論理的又は物理的な計算機で構成されてもよい。データクレンジングシステム100が複数の物理計算機で構成される場合、上述の機能は、複数のプロセッサ101がネットワーク106を介して通信を行うことで、実現されてよい。 Note that part or all of the above-described functions may be distributed to a plurality of data cleansing systems 100 in order to distribute processing load and improve availability. Further, the data cleansing system 100 may be composed of one physical computer or a plurality of logical or physical computers. When the data cleansing system 100 is configured by a plurality of physical computers, the above-described functions may be realized by a plurality of processors 101 performing communication via the network 106.
 図3は、メタデータ生成部206に含まれる機能の例を示す。 FIG. 3 shows an example of functions included in the metadata generation unit 206.
 メタデータ生成部206は、機能として、類似レコード検出部208、UCC検出部209、ハッシュ行列生成部210を含んでよい。メタデータ207は、類似レコードマトリクス250、UCCリスト260を含んでよい。 The metadata generation unit 206 may include a similar record detection unit 208, a UCC detection unit 209, and a hash matrix generation unit 210 as functions. The metadata 207 may include a similar record matrix 250 and a UCC list 260.
 ハッシュ行列生成部210は、データテーブル201から、ハッシュ行列301(図9参照)を生成する。 The hash matrix generation unit 210 generates a hash matrix 301 (see FIG. 9) from the data table 201.
 類似レコード検出部208は、ハッシュ行列生成部210が生成したハッシュ行列301を用いて、データテーブル201に含まれるレコード間の類似度を算出する。類似レコード算出部208は、その算出した類似度を、類似レコードマトリクス250に格納してよい。 The similar record detection unit 208 calculates the similarity between records included in the data table 201 using the hash matrix 301 generated by the hash matrix generation unit 210. The similar record calculation unit 208 may store the calculated similarity in the similar record matrix 250.
 UCC検出部209は、ハッシュ行列生成部210が生成したハッシュ行列301を用いて、データテーブル201からUCC(カラムのセット)を検出する。UCC検出部209は、その検出したUCCを、UCCリスト260に登録してよい。 The UCC detection unit 209 detects the UCC (column set) from the data table 201 using the hash matrix 301 generated by the hash matrix generation unit 210. The UCC detection unit 209 may register the detected UCC in the UCC list 260.
 類似レコード検出部208とUCC検出部209とは、ハッシュ行列生成部210が生成した同じハッシュ行列301を用いてよい。これにより、類似レコード検出用のハッシュ行列と、UCC検出用のハッシュ行列とを別々に生成する場合と比較して、システム全体の処理量を減らすことができる。 The similar record detection unit 208 and the UCC detection unit 209 may use the same hash matrix 301 generated by the hash matrix generation unit 210. Thereby, the processing amount of the entire system can be reduced as compared with a case where a hash matrix for detecting similar records and a hash matrix for detecting UCC are generated separately.
 図4は、データ表示処理の例を示すフローチャートである。 FIG. 4 is a flowchart showing an example of data display processing.
 入出力部205は、ストレージ103からデータファイル107を読み出す(ステップS402)。 The input / output unit 205 reads the data file 107 from the storage 103 (step S402).
 入出力部205は、例えば、CSV(Comma-Separated Values)形式等のフォーマットでシリアライズされているデータファイル107をパージングして、データテーブル201(図5参照)を生成する(ステップS404)。 The input / output unit 205 parses the data file 107 serialized in a format such as CSV (Comma-Separated Values) format, for example, and generates a data table 201 (see FIG. 5) (step S404).
 メタデータ生成部206は、その生成したデータテーブル201からメタデータ207を生成し、メモリ102に格納する(ステップS406)。当該処理の詳細については後述する。 The metadata generation unit 206 generates metadata 207 from the generated data table 201 and stores it in the memory 102 (step S406). Details of this processing will be described later.
 表示部202は、データテーブル201及びメタデータ207を、コンソール105を通じて表示する(ステップS408)。当該表示例については後述する(図17、図18参照)。 The display unit 202 displays the data table 201 and the metadata 207 through the console 105 (step S408). The display example will be described later (see FIGS. 17 and 18).
 図5は、データテーブル201の例を示す。 FIG. 5 shows an example of the data table 201.
 データテーブル201は、本実施例におけるデータクレンジングの対象データである。データテーブル201には、どのようなデータが格納されていてもよい。データテーブル201は、複数のレコードと複数のカラムとから構成されており、レコードの各カラムには、値(カラム値又はセル値という)が格納されてよい。 The data table 201 is target data for data cleansing in this embodiment. Any data may be stored in the data table 201. The data table 201 includes a plurality of records and a plurality of columns, and a value (referred to as a column value or a cell value) may be stored in each column of the record.
 本実施例では、説明のために、各レコードに、レコードを一意に識別可能なレコードID(R001、R002、…)を付与する。また、各カラムに、カラムを一意に識別可能なカラムID(C001、C002、…)を付与する。レコードID及び/又はカラムIDは、元のデータファイル107に含まれている必要はなく、入出力部205のパージング処理によって付与されてよい。レコードIDはレコード名と呼んでもよい。カラムIDはカラム名と呼んでもよい。 In this embodiment, for the sake of explanation, a record ID (R001, R002,...) That can uniquely identify the record is assigned to each record. Further, a column ID (C001, C002,...) That can uniquely identify the column is assigned to each column. The record ID and / or the column ID do not need to be included in the original data file 107 and may be given by the parsing process of the input / output unit 205. The record ID may be called a record name. The column ID may be called a column name.
 図5の例は、レコードID「R001」のレコードは、カラムID「C001」にカラム値「AAA」、カラムID「C002」にカラム値「CCC」、カラムID「C003」にカラム値「0」、カラムID「C004」にカラム値「0」を有することを示す。 In the example of FIG. 5, the record with the record ID “R001” has a column value “AAA” in the column ID “C001”, a column value “CCC” in the column ID “C002”, and a column value “0” in the column ID “C003”. , Column ID “C004” has a column value “0”.
 図6は、類似レコードマトリクス250の例を示す。類似レコードマトリクス250は、メタデータ207に含まれてよい。 FIG. 6 shows an example of the similar record matrix 250. The similar record matrix 250 may be included in the metadata 207.
 類似レコードマトリクス250は、データテーブル201に含まれる2つのレコード間の類似度を管理する。 The similar record matrix 250 manages the similarity between two records included in the data table 201.
 類似レコードマトリクス250における各行と各列には、それぞれ、データテーブル201に含まれる各レコードIDが付与されてよい。行のレコードIDと列のレコードIDとの交点のセルには、当該行のレコードIDのレコードと、当該列のレコードIDのレコードとの間の類似度が格納されてよい。 Each record ID included in the data table 201 may be assigned to each row and each column in the similar record matrix 250. The cell at the intersection of the row record ID and the column record ID may store the similarity between the record ID record of the row and the record ID record of the column.
 類似度は、値が大きいほど類似することを示す、0~1の範囲を取り得る値であってよい。図6の例は、レコードID「R002」と「R001」との間の類似度が「0.80」である(比較的類似している)ことを示す。 The similarity may be a value that can be in the range of 0 to 1, indicating that the larger the value, the more similar. The example of FIG. 6 indicates that the similarity between the record IDs “R002” and “R001” is “0.80” (relatively similar).
 図7は、UCCリスト260の例を示す。UCCリスト260は、メタデータ207に含まれてよい。 FIG. 7 shows an example of the UCC list 260. The UCC list 260 may be included in the metadata 207.
 UCCリスト260は、データテーブル201の各レコードを一意に識別可能なカラムIDの組(つまりUCC)を管理する。 The UCC list 260 manages a set of column IDs (that is, UCC) that can uniquely identify each record of the data table 201.
 例えば、カラムID「C001」のカラム値とカラムID「C002」のカラム値との組によって、データテーブル201の全てのレコードを一意に識別可能な場合、そのカラムID「C001」及び「C002」の組は、UCCである。この場合、UCCリスト260には、カラムID「C001」及び「C002」の組が格納される。 For example, when all the records of the data table 201 can be uniquely identified by the combination of the column value of the column ID “C001” and the column value of the column ID “C002”, the column IDs “C001” and “C002” The set is UCC. In this case, a set of column IDs “C001” and “C002” is stored in the UCC list 260.
 UCCリスト260において、各UCCには、UCC(カラムIDの組)を一意に識別可能なUCC ID(U001、U002、…)が付与されてよい。 In the UCC list 260, each UCC may be given a UCC ID (U001, U002,...) That can uniquely identify the UCC (a set of column IDs).
 図8は、メタデータ生成処理の例を示すフローチャートである。 FIG. 8 is a flowchart showing an example of metadata generation processing.
 メタデータ生成部206は、或るハッシュ関数を用いて、データテーブル201の各カラム値のハッシュ値を算出する(ステップS602)。 The metadata generation unit 206 calculates a hash value of each column value of the data table 201 using a certain hash function (step S602).
 メタデータ生成部206は、その算出したハッシュ値を用いて、データテーブル201に対するハッシュ行列301(図9参照)を生成する(ステップS604)。 The metadata generation unit 206 generates a hash matrix 301 (see FIG. 9) for the data table 201 using the calculated hash value (step S604).
 メタデータ生成部206は、その生成したハッシュ行列301を用いて、類似レコードマトリクス250(図6参照)及びUCCリスト260(図7参照)を生成する(ステップS606)。 The metadata generation unit 206 generates the similar record matrix 250 (see FIG. 6) and the UCC list 260 (see FIG. 7) using the generated hash matrix 301 (step S606).
 図9は、ハッシュ行列301の例を示す。 FIG. 9 shows an example of the hash matrix 301.
 ハッシュ行列301は、データテーブル201の各カラム値に対して、或るハッシュ関数を適用して算出されるハッシュ値で構成される行列である。ハッシュ行列301は、異なるハッシュ関数毎に生成されてよい。本実施例では、各ハッシュ関数を一意に識別可能なIDを「ハッシュ関数ID」と呼ぶ。 The hash matrix 301 is a matrix composed of hash values calculated by applying a certain hash function to each column value of the data table 201. The hash matrix 301 may be generated for each different hash function. In this embodiment, an ID that can uniquely identify each hash function is referred to as a “hash function ID”.
 ハッシュ行列301は、各行と各列に、それぞれ、データテーブル201の各レコードIDと各カラムIDとを有してよい。行のレコードIDと列のカラムIDとの交点のセルには、データテーブル201の当該レコードIDのレコードにおける、当該カラムIDのカラム値のハッシュ値が格納されてよい。 The hash matrix 301 may have each record ID and each column ID of the data table 201 in each row and each column. In the cell at the intersection of the row record ID and the column ID of the column, the hash value of the column value of the column ID in the record of the record ID of the data table 201 may be stored.
 なお、図9では、説明のために、行にレコードID、列にカラムIDが付与されている。実際にメモリに格納されるハッシュ行列301には、このようなIDが付与されていなくてもよい。 In FIG. 9, record IDs are assigned to rows and column IDs are assigned to columns for the sake of explanation. Such an ID may not be assigned to the hash matrix 301 actually stored in the memory.
 図10は、MinHashシグネチャ302の例を示す。 FIG. 10 shows an example of the MinHash signature 302.
 MinHashシグネチャ302は、MinHash法に用いられる。MinHashシグネチャ302は、ハッシュ行列301に基づいて生成されてよい。 The MinHash signature 302 is used for the MinHash method. The MinHash signature 302 may be generated based on the hash matrix 301.
 説明のために、図10のMinHashシグネチャ302の各行には、ハッシュ行列301の各レコードIDが付与されてよい。また、各列には、図9で述べた各ハッシュ関数ID(h1、h2、…)が付与されてよい。 For explanation, each record ID of the hash matrix 301 may be given to each row of the MinHash signature 302 of FIG. Further, each hash function ID (h1, h2,...) Described in FIG. 9 may be assigned to each column.
 MinHashシグネチャ302のレコードIDとハッシュ関数IDとの交点のセルには、そのハッシュ関数IDのハッシュ関数から生成されたハッシュ行列301における、そのレコードIDに属する複数のハッシュ値のうちの最小のハッシュ値が格納される。例えば、図9のハッシュ行列301が、ハッシュ関数ID「h1」のハッシュ関数から生成されたものであるとすると、図10のMinHashシグネチャ302における、レコードID「R001」とハッシュ関数ID「h1」との交点のセルには、図9のハッシュ行列301のレコードID「R001」のレコードに属する複数のハッシュ値「1234」、「4122」、「5628」、…、のうちの最小のハッシュ値「1234」が格納される。同様に、レコードID「R001」とハッシュ関数ID「h2」との交点の欄には、ハッシュ関数ID「h2」のハッシュ関数から生成ハッシュ行列のレコードID「R001」に属する複数のハッシュ値のうちの最小のハッシュ値が格納される。 The cell at the intersection of the record ID and the hash function ID of the MinHash signature 302 has the minimum hash value among the plurality of hash values belonging to the record ID in the hash matrix 301 generated from the hash function of the hash function ID. Is stored. For example, if the hash matrix 301 in FIG. 9 is generated from the hash function with the hash function ID “h1”, the record ID “R001” and the hash function ID “h1” in the MinHash signature 302 in FIG. Is the smallest hash value “1234” among the plurality of hash values “1234”, “4122”, “5628”,... Belonging to the record with the record ID “R001” of the hash matrix 301 of FIG. Is stored. Similarly, in the column of the intersection of the record ID “R001” and the hash function ID “h2”, among the hash values belonging to the record ID “R001” of the generated hash matrix from the hash function of the hash function ID “h2” The minimum hash value of is stored.
 なお、ハッシュ関数ID「h1」のハッシュ関数で算出したハッシュ値を循環シフトし、その循環シフトした値と乱数との間でXORを算出し、その算出した値を、ハッシュ関数ID「h2」に係るハッシュ値に相当する値として用いてもよい。この場合、MinHashシグネチャ302において、ハッシュ関数ID「h2」のセルには、ハッシュ関数ID「h2」に係るハッシュ値に相当する値のうちの最小値が格納されてよい。 Note that the hash value calculated by the hash function having the hash function ID “h1” is cyclically shifted, XOR is calculated between the cyclically shifted value and the random number, and the calculated value is assigned to the hash function ID “h2”. It may be used as a value corresponding to the hash value. In this case, in the MinHash signature 302, the cell having the hash function ID “h2” may store the minimum value among the values corresponding to the hash value related to the hash function ID “h2”.
 図11は、ポジションリストインデックス(PLI)303の例を示す。 FIG. 11 shows an example of the position list index (PLI) 303.
 PLI303は、データテーブル201のカラムID毎に生成されてよい。図11の例において、PLI303Aはデータテーブル201のカラムID「C001」に係るPLIである。PLI303B、303C、303Dについても同様である。 The PLI 303 may be generated for each column ID of the data table 201. In the example of FIG. 11, the PLI 303 </ b> A is a PLI related to the column ID “C001” of the data table 201. The same applies to PLI 303B, 303C, and 303D.
 或るカラムIDに係るPLI303は、ハッシュ行列301における当該カラムIDの列に同一ハッシュ値を有する複数のレコードIDと、当該同一ハッシュ値と、を対応付けて管理する。 The PLI 303 related to a certain column ID manages a plurality of record IDs having the same hash value in the column of the column ID in the hash matrix 301 and the same hash value in association with each other.
 図11の例において、PLI303Aは、ハッシュ行列301において、カラムID「C001」の列に同一ハッシュ値「1234」を有する複数のレコードID「R001」及び「R003」が存在することを示す。 In the example of FIG. 11, the PLI 303A indicates that there are a plurality of record IDs “R001” and “R003” having the same hash value “1234” in the column of the column ID “C001” in the hash matrix 301.
 PLI303の構造は、一般にハッシュテーブルとして知られるデータ構造に類似していることに注目されたい。PLI303は、ハッシュ行列301が有するハッシュ値を活用してハッシュテーブルを生成し、二つ以上のエントリがあるバケットのみを取り出したものであってよい。 Note that the structure of PLI 303 is similar to a data structure commonly known as a hash table. The PLI 303 may be a table in which a hash table is generated using a hash value of the hash matrix 301 and only a bucket having two or more entries is extracted.
 図12は、類似レコードマトリクス250の生成処理の一例を示すフローチャートである。当該処理は、図8のステップS606の処理に相当する。 FIG. 12 is a flowchart showing an example of the generation process of the similar record matrix 250. This process corresponds to the process in step S606 in FIG.
 メタデータ生成部206は、データテーブル201に対応するMinHashシグネチャ302を生成する(ステップS804)。MinHashシグネチャ302は、上述の図10で説明したように生成されてよい。 The metadata generation unit 206 generates a MinHash signature 302 corresponding to the data table 201 (step S804). The MinHash signature 302 may be generated as described above with reference to FIG.
 メタデータ生成部206は、その生成したMinHashシグネチャ302の複数の列を、幾つかのグループに分割してよい。ここでは、分割された各グループを、「バンド」と呼ぶ(ステップS806)。 The metadata generation unit 206 may divide the plurality of columns of the generated MinHash signature 302 into several groups. Here, each divided group is referred to as a “band” (step S806).
 メタデータ生成部206は、MinHashシグネチャ302の各レコードIDについて、バンドに属する列のハッシュ値を結合してよい。そして、メタデータ生成部206は、その結合したハッシュ値に対して所定のハッシュ関数を適用し、ハッシュ値を算出してよい(ステップS808)。メタデータ生成部206は、各バンドに対してこの処理を実行してよい。このハッシュ値の算出過程は、いわゆるLSH(Locality Sensitive Hashing:局所性鋭敏型ハッシング)として知られるアルゴリズムであってよい。この場合、ハッシュ値が同一なレコードの組は、類似している可能性が高いことが知られている。 The metadata generation unit 206 may combine the hash values of the columns belonging to the band for each record ID of the MinHash signature 302. Then, the metadata generation unit 206 may calculate a hash value by applying a predetermined hash function to the combined hash value (step S808). The metadata generation unit 206 may perform this process for each band. This hash value calculation process may be an algorithm known as so-called LSH (Locality Sensitive Hashing). In this case, it is known that a set of records having the same hash value is likely to be similar.
 メタデータ生成部206は、そのハッシュ値が同一な全てのレコードの組のそれぞれについて、ステップS814の処理を実行する(LOOP2)。各ループ処理で選択されるレコードの組を「選択レコードの組」という。 The metadata generation unit 206 executes the process of step S814 for each set of all records having the same hash value (LOOP2). A set of records selected in each loop process is referred to as a “selected record set”.
 メタデータ生成部206は、選択レコードの組のMinHashシグネチャ302のハッシュ値が一致する確率を算出する(ステップS814)。この確率は、Jaccard距離と呼ばれる2集合間の類似度の指標を近似することが知られている。そこでこの確率を類似度とし、類似レコードマトリクス250に格納する。 The metadata generation unit 206 calculates the probability that the hash value of the MinHash signature 302 of the set of selected records matches (step S814). This probability is known to approximate an index of similarity between two sets called the Jaccard distance. Therefore, this probability is set as the similarity and stored in the similar record matrix 250.
 図13は、UCC候補カラムの抽出処理の一例を示すフローチャートである。 FIG. 13 is a flowchart showing an example of the extraction process of the UCC candidate column.
 本処理は、UCCリスト260の生成処理(図14参照)の前に、UCCに含まれる可能性の高いカラム(「UCC候補カラム」という)を抽出する処理である。この処理を行うことにより、UCC検出の処理量を減らすことができる。 This process is a process for extracting a column (referred to as a “UCC candidate column”) that is likely to be included in the UCC before the UCC list 260 generation process (see FIG. 14). By performing this process, the processing amount of UCC detection can be reduced.
 メタデータ生成部206は、ハッシュ行列301の全カラムのそれぞれについて、ステップS904~S908を実行する(LOOP1)。各ループ処理で選択されるカラムを「選択カラム」という。 The metadata generation unit 206 executes steps S904 to S908 for all the columns of the hash matrix 301 (LOOP1). A column selected in each loop process is referred to as a “selected column”.
 メタデータ生成部206は、ハッシュ行列301の選択カラムのハッシュ値を用いて、データテーブル201の当該選択カラムのカーディナリティを算出する(ステップS904)。カラムのカーディナリティは、当該カラムに格納されているカラム値の種類の数(異なり数)であってよい。ハッシュ値からカーディナリティを近似する方法として、HyperLogLogアルゴリズムを採用してもよい。 The metadata generation unit 206 calculates the cardinality of the selected column of the data table 201 using the hash value of the selected column of the hash matrix 301 (step S904). The cardinality of a column may be the number (different number) of types of column values stored in the column. As a method for approximating the cardinality from the hash value, the HyperLogLog algorithm may be adopted.
 メタデータ生成部206は、その算出したカーディナリティが所定の閾値以下であるか否かを判定する(ステップS906)。当該判定結果が肯定的な場合(ステップS906:YES)、メタデータ生成部206は、選択カラムをUCC候補から除外する(ステップS908)。カーディナリティが低いカラムは、カラム値の異なり数が少ないため、UCCを構成する可能性が低いからである。 The metadata generation unit 206 determines whether or not the calculated cardinality is equal to or less than a predetermined threshold (step S906). When the determination result is affirmative (step S906: YES), the metadata generation unit 206 excludes the selected column from the UCC candidate (step S908). This is because a column having a low cardinality has a small number of different column values and thus has a low possibility of forming a UCC.
 当該判定結果が否定的な場合(ステップS906:NO)、メタデータ生成部206は、特に何もしなくてよい。以上の処理により、UCC候補カラムが抽出される。 If the determination result is negative (step S906: NO), the metadata generation unit 206 does not have to do anything. Through the above processing, the UCC candidate column is extracted.
 図14は、UCCリスト260の生成処理の一例を示すフローチャートである。当該処理は、図8のステップS606の処理に相当する。本処理は、図13の処理で抽出されたUCC候補カラムから、UCCリストを生成する処理の例である。 FIG. 14 is a flowchart illustrating an example of a process for generating the UCC list 260. This process corresponds to the process in step S606 in FIG. This process is an example of a process for generating a UCC list from the UCC candidate columns extracted in the process of FIG.
 メタデータ生成部206は、全てのUCC候補カラムのそれぞれについて、ステップS1004~S1008を実行する(LOOP1)。各ループ処理で選択されるUCC候補カラムを、「選択UCC候補カラム」という。 The metadata generation unit 206 executes steps S1004 to S1008 for each of all UCC candidate columns (LOOP1). The UCC candidate column selected in each loop process is referred to as “selected UCC candidate column”.
 メタデータ生成部206は、選択UCC候補カラムについて、ハッシュ行列301のハッシュ値を用いて、PLI303を生成する(ステップS1004)。 The metadata generation unit 206 generates the PLI 303 for the selected UCC candidate column using the hash value of the hash matrix 301 (step S1004).
 メタデータ生成部206は、PLI303に、2以上のレコードIDを有するエントリが存在するか否かを判定する(ステップS1006)。PLI303に、2以上のレコードIDを有するエントリが存在しない場合(ステップS1006:NO)、メタデータ生成部206は、選択UCC候補カラムを、UCCリスト260に登録する(ステップS1008)。選択UCC候補カラムは、単独でレコードの一意性を保証し得るからである。PLI303に、2以上のレコードIDを有するエントリが存在する場合(ステップS1006:YES)、メタデータ生成部206は、特に何もしなくて良い。 The metadata generation unit 206 determines whether there is an entry having two or more record IDs in the PLI 303 (step S1006). If there is no entry having two or more record IDs in the PLI 303 (step S1006: NO), the metadata generation unit 206 registers the selected UCC candidate column in the UCC list 260 (step S1008). This is because the selected UCC candidate column alone can guarantee the uniqueness of the record. When there is an entry having two or more record IDs in the PLI 303 (step S1006: YES), the metadata generation unit 206 does not have to do anything.
 次に、メタデータ生成部206は、上述の処理においてUCCリストに登録されなかった残りのUCC候補カラムによる全ての組のそれぞれについて、ステップS1012~S1016を実行する(LOOP2)。各ループ処理で選択されるUCC候補カラムの組を、「選択UCC候補カラムの組」という。 Next, the metadata generation unit 206 executes Steps S1012 to S1016 for each of all the pairs based on the remaining UCC candidate columns that are not registered in the UCC list in the above processing (LOOP2). A set of UCC candidate columns selected in each loop process is referred to as a “selected UCC candidate column set”.
 メタデータ生成部206は、選択UCC候補カラムの組に関するPLI303の各エントリをレコードIDの集合とみなし、共通集合を算出する(ステップS1012)。 The metadata generation unit 206 regards each entry of the PLI 303 regarding the set of selected UCC candidate columns as a set of record IDs, and calculates a common set (step S1012).
 メタデータ生成部206は、その算出した共通集合が空集合であるか否かを判定する(ステップS1014)。共通集合が空集合の場合(ステップS1014:YES)、メタデータ生成部206は、選択UCC候補カラムの組を、UCCリスト260に登録する。この選択UCC候補カラムの組は、当該カラムの組でレコードの一意性を保証し得るからである。共通集合が空集合でない場合(ステップS1014:NO)、メタデータ生成部206は、特に何もしなくてよい。 The metadata generation unit 206 determines whether or not the calculated common set is an empty set (step S1014). When the common set is an empty set (step S1014: YES), the metadata generation unit 206 registers the set of selected UCC candidate columns in the UCC list 260. This is because the selected UCC candidate column set can guarantee the uniqueness of the record in the column set. When the common set is not an empty set (step S1014: NO), the metadata generation unit 206 does not have to do anything.
 図15は、データ編集処理の一例を示すフローチャートである。 FIG. 15 is a flowchart showing an example of the data editing process.
 データテーブル201が編集(修正)されると、それに応じてメタデータ207の内容も変化し得る。本処理は、データ編集処理と、それに応じて発生するメタデータ再生成処理の例である。 When the data table 201 is edited (corrected), the content of the metadata 207 can change accordingly. This process is an example of a data editing process and a metadata regeneration process that occurs accordingly.
 データ編集部204は、データ編集命令を受領すると(ステップS1102)、データテーブル201を編集する(ステップS1104)。このデータ編集命令は、コンソール105を通じてデータ編集の入力操作を受け付けた操作部203から、データ編集部204に渡されてよい。 When receiving the data editing command (step S1102), the data editing unit 204 edits the data table 201 (step S1104). This data editing command may be passed to the data editing unit 204 from the operation unit 203 that has received the data editing input operation via the console 105.
 メタデータ生成部206は、メタデータ207を再生成する(ステップS1106)。当該処理の詳細については後述する(図16参照)。 The metadata generation unit 206 regenerates the metadata 207 (step S1106). Details of this processing will be described later (see FIG. 16).
 表示部202は、編集されたデータテーブル201及び再生成されたメタデータ207の内容を、コンソール105を通じて表示する(ステップS1108)。 The display unit 202 displays the contents of the edited data table 201 and the regenerated metadata 207 through the console 105 (step S1108).
 図16は、メタデータ再生成処理の一例を示すフローチャートである。当該処理は、図15のステップS1106の処理に相当する。 FIG. 16 is a flowchart showing an example of the metadata regeneration process. This processing corresponds to the processing in step S1106 in FIG.
 ここでは、レコード削除に係るデータ編集命令を受領した場合の例と、セル更新に係るデータ編集命令を受領した場合の例を示す。レコード削除に係るデータ編集命令は、例えば、クレンジング作業において、重複レコードと判定されたレコードを削除する場合に発行される。セル更新に係るデータ編集命令は、例えば、表記を統一するためにデータを書き換える場合に発行される。 Here, an example when a data editing command related to record deletion is received and an example when a data editing command related to cell update is received are shown. A data editing command related to record deletion is issued, for example, when a record determined to be a duplicate record is deleted in a cleansing operation. A data editing command related to cell update is issued, for example, when data is rewritten to unify the notation.
 メタデータ生成部206は、受領したデータ編集命令が、レコード削除及びセル更新の何れであるかを判定する(ステップS1202)。 The metadata generation unit 206 determines whether the received data editing command is record deletion or cell update (step S1202).
 まず、レコード削除に係るデータ編集命令を受領した場合について説明する。当該処理では、PLI303と類似レコードマトリクス250とを更新する処理が実行される。 First, the case where a data editing command related to record deletion is received will be described. In this processing, processing for updating the PLI 303 and the similar record matrix 250 is executed.
 メタデータ生成部206は、削除対象のレコードに属する各カラム値のハッシュ値を、ハッシュ行列301から取得する(ステップS1206)。 The metadata generation unit 206 acquires the hash value of each column value belonging to the record to be deleted from the hash matrix 301 (step S1206).
 メタデータ生成部206は、各カラムのPLI303から、それぞれ、その取得したハッシュ値と、削除対象のレコードIDとを削除する(ステップS1208)。 The metadata generation unit 206 deletes the acquired hash value and the record ID to be deleted from the PLI 303 of each column (step S1208).
 メタデータ生成部206は、削除対象のレコードIDを、ハッシュ行列301、MinHashシグネチャ302、及び、類似レコードマトリクス250から削除する(ステップS1210)。そして、本処理を終了する。 The metadata generation unit 206 deletes the record ID to be deleted from the hash matrix 301, the MinHash signature 302, and the similar record matrix 250 (step S1210). Then, this process ends.
 次に、セル値の更新に係るデータ編集命令を受領した場合について説明する。当該処理では、UCCリスト260の更新処理が実行される。本処理の説明において、更新されたセル値を「更新セル値」という。 Next, a case where a data editing command related to cell value update is received will be described. In this process, an update process for the UCC list 260 is executed. In the description of this process, the updated cell value is referred to as “updated cell value”.
 メタデータ生成部206は、更新セル値からハッシュ値を算出し、その算出したハッシュ値を用いてハッシュ行列301を更新する(ステップS1222~S1224)。 The metadata generation unit 206 calculates a hash value from the updated cell value, and updates the hash matrix 301 using the calculated hash value (steps S1222 to S1224).
 メタデータ生成部206は、更新セル値を含むカラムのPLI303を更新する(ステップS1226)。 The metadata generation unit 206 updates the PLI 303 of the column including the updated cell value (step S1226).
 メタデータ生成部206は、その更新セル値を含むカラムID(「更新カラムID」という)が、UCCリスト260に含まれているかを判定する(ステップS1228)。当該判定結果が肯定的な場合(S1228:YES)、メタデータ生成部206は、次のステップS1230の処理に進み、否定的な場合(ステップS1228:NO)、本処理を終了する。 The metadata generation unit 206 determines whether or not the column ID including the updated cell value (referred to as “updated column ID”) is included in the UCC list 260 (step S1228). If the determination result is affirmative (S1228: YES), the metadata generation unit 206 proceeds to the next step S1230, and if negative (step S1228: NO), the process ends.
 メタデータ生成部206は、更新カラムIDを含む各UCCについて、次のステップS1232~S1236の処理を行う(ステップS1230)。 The metadata generation unit 206 performs the processing of the next steps S1232 to S1236 for each UCC including the update column ID (step S1230).
 すなわち、メタデータ生成部206は、更新カラムIDのPLI303から、更新されたハッシュ値のエントリを取得する。そして、メタデータ生成部206は、その取得したエントリのレコードID群と、他のPLI303のエントリのレコードID群との間の共通集合を算出する(ステップS1232)。 That is, the metadata generation unit 206 acquires the updated hash value entry from the PLI 303 of the update column ID. Then, the metadata generation unit 206 calculates a common set between the record ID group of the acquired entry and the record ID group of the entry of another PLI 303 (step S1232).
 メタデータ生成部206は、その算出した共通集合が空集合であるか否かを判定する(ステップS1234)。すなわち、メタデータ生成部206は、その取得したレコードID群が、他の何れのPLI303のレコードID群にも含まれていないか、それとも、他の何れかのPLI303のレコードID群に含まれているかを判定する。 The metadata generation unit 206 determines whether or not the calculated common set is an empty set (step S1234). That is, the metadata generation unit 206 determines whether the acquired record ID group is not included in any other record ID group of the PLI 303, or included in any other record ID group of the PLI 303. It is determined whether or not.
 メタデータ生成部206は、共通集合が空集合で無い場合(ステップS1234:NO)、その空集合でないPLI303のカラムIDの組を、UCCリスト260から削除する(ステップS1236)。このカラムIDの組は、セル値の更新によってUCCでなくなったからである。 If the common set is not an empty set (step S1234: NO), the metadata generation unit 206 deletes the column ID pair of the PLI 303 that is not the empty set from the UCC list 260 (step S1236). This is because the column ID pair is no longer a UCC due to the update of the cell value.
 メタデータ生成部206は、共通集合が空集合の場合(ステップS1234:YES)、特に何もしなくてよい。 The metadata generation unit 206 does not need to do anything when the common set is an empty set (step S1234: YES).
 なお、メタデータ生成部206は、上記の処理に加えて、類似レコードマトリクス250の更新処理を実行してもよい。 Note that the metadata generation unit 206 may execute an update process of the similar record matrix 250 in addition to the above process.
 以上の処理では、更新セル値を含むカラムがUCCに属する場合にのみ、UCCリスト260の更新処理が実行される。すなわち、本実施例によれば、セル値が更新された場合におけるUCCリスト260の更新処理量を減らすことができる。 In the above process, the update process of the UCC list 260 is executed only when the column including the update cell value belongs to the UCC. That is, according to the present embodiment, the update processing amount of the UCC list 260 when the cell value is updated can be reduced.
 図17は、データテーブル表示画面400の例を示す。本画面は、図4のステップS408又は図15のステップS1108の処理によって表示されてよい。 FIG. 17 shows an example of the data table display screen 400. This screen may be displayed by the process of step S408 in FIG. 4 or step S1108 in FIG.
 表示部202は、データテーブル201に基づいて、図17に示すようなデータテーブル表示画面400を生成し、コンソール105に表示してよい。データテーブル表示画面400には、データテーブル201のレコードIDとカラムIDとが合わせて表示されてよい。 The display unit 202 may generate a data table display screen 400 as shown in FIG. 17 based on the data table 201 and display it on the console 105. On the data table display screen 400, the record ID and column ID of the data table 201 may be displayed together.
 図18は、改良データテーブル表示画面401の例を示す。本画面は、図4のステップS408又は図15のステップS1108の処理によって表示されてよい。 FIG. 18 shows an example of the improved data table display screen 401. This screen may be displayed by the process of step S408 in FIG. 4 or step S1108 in FIG.
 表示部202は、データテーブル201及びメタデータ207に基づいて、図18に示すような改良データテーブル表示画面401を生成し、コンソール105に表示してよい。 The display unit 202 may generate an improved data table display screen 401 as shown in FIG. 18 based on the data table 201 and the metadata 207 and display it on the console 105.
 改良データテーブル表示画面401には、UCCリスト260に属するカラムID又はカラムID群を選択可能なボタン402が含まれてよい。データクレンジングの担当者がこのボタン402を押下すると、データテーブルにおけるそのボタン402によって選択されたカラムID又はカラムID群に相当する列が、他の列と区別可能な態様で(例えば異なる色で)強調表示されてよい(図18の斜線部分を参照)。 The improved data table display screen 401 may include a button 402 for selecting a column ID or a column ID group belonging to the UCC list 260. When the person in charge of data cleansing presses this button 402, the column corresponding to the column ID or the column ID group selected by the button 402 in the data table is distinguished from other columns (for example, in a different color). It may be highlighted (see shaded area in FIG. 18).
 また、改良データテーブル表示画面401のレコード間の類似度表示エリア403には、類似レコードマトリクス250における当該レコード間の類似度が表示されてよい。このとき、表示部202は、類似度が高いレコードをできるだけ上位に表示してよい。例えば、表示部202は、類似度が高い順にレコードをソートして表示してよい。 Also, in the similarity display area 403 between records on the improved data table display screen 401, the similarity between the records in the similar record matrix 250 may be displayed. At this time, the display unit 202 may display a record having a high similarity as high as possible. For example, the display unit 202 may sort and display records in descending order of similarity.
 なお、図18の改良データテーブル表示画面401は、あくまでメタデータ207に含まれる情報をコンソール105に表示する一例であり、その表示態様はこれに限定されるものではない。 Note that the improved data table display screen 401 in FIG. 18 is merely an example of displaying the information included in the metadata 207 on the console 105, and the display mode is not limited to this.
 本実施例によれば、類似度の高いレコードを上位に表示することができる。これにより、データクレンジングの担当者は、データクレンジングが必要と思われるレコードを容易に見つけることができる。 According to the present embodiment, a record having a high similarity can be displayed at the top. Thereby, the person in charge of data cleansing can easily find a record that seems to require data cleansing.
 また、本実施例によれば、UCCに属するカラムを認識可能な態様で表示することができる。これにより、データクレンジングの担当者は、何れのセル値を修正するとUCCの関係が喪失し得るのかを容易に認識することができる。 Further, according to the present embodiment, the columns belonging to the UCC can be displayed in a recognizable manner. As a result, the person in charge of data cleansing can easily recognize which cell value is corrected so that the UCC relationship can be lost.
 さらに、本発明によれば、類似度の高いレコードとUCCに属するカラムとを合わせて表示することができる。これにより、データクレンジングの担当者は、レコードの意味論上の一意性と表記上の一意性とを一致させつつ、データを修正することができる。すなわち、データクレンジングの担当者は、データクレンジングの作業を効率的に行うことができる。 Furthermore, according to the present invention, records with high similarity and columns belonging to UCC can be displayed together. Thereby, the person in charge of data cleansing can correct the data while matching the semantic uniqueness of the record with the uniqueness of the notation. That is, the person in charge of data cleansing can efficiently perform the data cleansing work.
 上述した実施例は、本発明の説明のための例示であり、本発明の範囲を実施例にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。 The above-described embodiments are examples for explaining the present invention, and are not intended to limit the scope of the present invention only to the embodiments. Those skilled in the art can implement the present invention in various other modes without departing from the gist of the present invention.
 例えば、或る実施例の構成の一部を他の実施例の構成に置き換えてもよい。或る実施例の構成に他の実施例の構成を加えてもよい。各実施例の構成の一部に対して、他の構成を追加、削除又は置換してもよい。 For example, a part of the configuration of a certain embodiment may be replaced with the configuration of another embodiment. The configuration of another embodiment may be added to the configuration of one embodiment. You may add, delete, or replace another structure with respect to a part of structure of each Example.
 また、上述した実施例における各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。 In addition, each of the configurations, functions, processing units, processing means, and the like in the above-described embodiments may be realized in hardware by designing a part or all of them, for example, with an integrated circuit. It may be realized by software by interpreting and executing a program for realizing the function. Information such as programs, tables, and files that realize each function can be stored in a storage device such as a memory, a hard disk drive, or an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD. .
 また、図面には、説明のために必要と考えられる制御線及び/又は情報線が示されており、実装において必要な全ての制御線及び/又は情報線が示されているわけではない。すなわち、図示されていない場合であっても、ほぼ全ての構成が相互に接続されていてよい。 In the drawings, control lines and / or information lines which are considered necessary for the description are shown, and not all control lines and / or information lines necessary for mounting are shown. That is, even if not shown, almost all the components may be connected to each other.
 100:データクレンジングシステム 201:データテーブル 206:メタデータ生成部 208:類似レコード検出部 209:UCC検出部 210:ハッシュ行列生成部 100: Data cleansing system 201: Data table 206: Metadata generation unit 208: Similar record detection unit 209: UCC detection unit 210: Hash matrix generation unit

Claims (9)

  1.  データクレンジングを行うシステムであって、プロセッサ及びメモリを有し、
     前記プロセッサは、
      前記メモリからデータテーブルを読み出し、
      前記データテーブルのレコード間の類似度を算出し、
      前記データテーブルの各レコードを一意に識別可能とするカラムの組であるUCC(Unique Column Combination)を検出し、
      前記類似度及びUCCを表示する
    データクレンジングシステム。
    A data cleansing system having a processor and a memory,
    The processor is
    Reading a data table from the memory;
    Calculating the similarity between records in the data table;
    Detecting a UCC (Unique Column Combination) that is a set of columns that uniquely identify each record of the data table;
    A data cleansing system displaying the similarity and UCC.
  2.  前記プロセッサは、
      前記データテーブルからハッシュ行列を生成し、
      その生成したハッシュ行列を用いて、前記類似度の算出及び前記UCCの検出を行う
    請求項1に記載のデータクレンジングシステム。
    The processor is
    Generating a hash matrix from the data table;
    The data cleansing system according to claim 1, wherein the similarity is calculated and the UCC is detected using the generated hash matrix.
  3.  前記プロセッサは、MinHash法に基づいて、前記データテーブルのレコード間の類似度を算出する
    請求項2に記載のデータクレンジングシステム。
    The data cleansing system according to claim 2, wherein the processor calculates a similarity between records in the data table based on a MinHash method.
  4.  前記プロセッサは、
      その生成したハッシュ行列から、前記データテーブルの各カラムのカーディナリティを算出し、
      その算出したカーディナリティが所定の閾値以下のカラムをUCCの候補から除外する
    請求項2に記載のデータクレンジングシステム。
    The processor is
    From the generated hash matrix, the cardinality of each column of the data table is calculated,
    The data cleansing system according to claim 2, wherein a column whose calculated cardinality is equal to or less than a predetermined threshold is excluded from UCC candidates.
  5.  前記プロセッサは、
      前記データテーブルの内容を表示するにあたり、類似度の高いレコードを上位に表示すると共に、前記UCCに含まれるカラムを他のカラムと区別可能な態様で表示し、
      前記データテーブルの値の変更を受け付ける
    請求項1に記載のデータクレンジングシステム。
    The processor is
    In displaying the contents of the data table, a record with high similarity is displayed at the top, and a column included in the UCC is displayed in a manner distinguishable from other columns,
    The data cleansing system according to claim 1, wherein a change in the value of the data table is received.
  6.  前記プロセッサは、
      複数のUCCが存在する場合、UCCの選択を受け付け、
      その選択されたUCCに含まれるカラムを他のカラムと区別可能な態様で表示する
    請求項5に記載のデータクレンジングシステム。
    The processor is
    If there are multiple UCCs, accept UCC selection,
    The data cleansing system according to claim 5, wherein columns included in the selected UCC are displayed in a manner distinguishable from other columns.
  7.  前記プロセッサは、
      前記UCCに含まれるカラムの値が変更された場合、UCCの再検出を行う
    請求項5に記載のデータクレンジングシステム。
    The processor is
    The data cleansing system according to claim 5, wherein when a column value included in the UCC is changed, UCC is re-detected.
  8.  データクレンジングを行う方法であって、
     データテーブルを取得し、
     前記データテーブルのレコード間の類似度を算出し、
     前記データテーブルの各レコードを一意に識別可能とするカラムの組であるUCC(Unique Column Combination)を検出し、
     前記類似度及びUCCを表示する
    データクレンジング方法。
    A method of performing data cleansing,
    Get the data table,
    Calculating the similarity between records in the data table;
    Detecting a UCC (Unique Column Combination) that is a set of columns that uniquely identify each record of the data table;
    A data cleansing method for displaying the similarity and UCC.
  9.  データクレンジングを行うシステムに、
     データテーブルを取得し、
     前記データテーブルのレコード間の類似度を算出し、
     前記データテーブルの各レコードを一意に識別可能とするカラムの組であるUCC(Unique Column Combination)を検出し、
     前記類似度及びUCCを表示する
    ことを実行させるためのコンピュータプログラム。
    For systems that perform data cleansing,
    Get the data table,
    Calculating the similarity between records in the data table;
    Detecting a UCC (Unique Column Combination) that is a set of columns that uniquely identify each record of the data table;
    A computer program for executing display of the similarity and UCC.
PCT/JP2016/061532 2016-04-08 2016-04-08 Data cleansing system, method, and program WO2017175375A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2016/061532 WO2017175375A1 (en) 2016-04-08 2016-04-08 Data cleansing system, method, and program
JP2018510205A JP6549786B2 (en) 2016-04-08 2016-04-08 Data cleansing system, method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/061532 WO2017175375A1 (en) 2016-04-08 2016-04-08 Data cleansing system, method, and program

Publications (1)

Publication Number Publication Date
WO2017175375A1 true WO2017175375A1 (en) 2017-10-12

Family

ID=60001074

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/061532 WO2017175375A1 (en) 2016-04-08 2016-04-08 Data cleansing system, method, and program

Country Status (2)

Country Link
JP (1) JP6549786B2 (en)
WO (1) WO2017175375A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024009404A1 (en) * 2022-07-05 2024-01-11 日本電信電話株式会社 Log data analysis device, log data analysis method, and log data analysis program

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113568894A (en) * 2020-04-28 2021-10-29 中移动信息技术有限公司 Data redundancy processing method and device for database, electronic equipment and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011257854A (en) * 2010-06-07 2011-12-22 Hitachi Ltd Medical information management system, medical information management method and medical information management program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011257854A (en) * 2010-06-07 2011-12-22 Hitachi Ltd Medical information management system, medical information management method and medical information management program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
FUKUDA: "IBM infosphere identity insight solutions: Intelligent Solution for Fighting Threat and fraud", PROVISION, vol. 65, 21 May 2010 (2010-05-21), pages 45 - 51 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024009404A1 (en) * 2022-07-05 2024-01-11 日本電信電話株式会社 Log data analysis device, log data analysis method, and log data analysis program

Also Published As

Publication number Publication date
JP6549786B2 (en) 2019-07-24
JPWO2017175375A1 (en) 2019-01-17

Similar Documents

Publication Publication Date Title
US20200356901A1 (en) Target variable distribution-based acceptance of machine learning test data sets
US7949938B2 (en) Comparing and merging multiple documents
US8099553B2 (en) Refactoring virtual data storage hierarchies
CN104731896A (en) Data processing method and system
CN102004690A (en) Method and device for facilitating deduplication product testing
JPWO2011077858A1 (en) System, method and program for checking pointer consistency in hierarchical database
JP5962736B2 (en) Information processing system, classification method, and program therefor
US20180329873A1 (en) Automated data extraction system based on historical or related data
WO2017175375A1 (en) Data cleansing system, method, and program
CN104063171B (en) Information Processing Apparatus, Information Processing Method
KR20100083778A (en) Acquisition and expansion of storage area network interoperation relationships
KR20210023636A (en) Method and system for long-term relevant document clustering
WO2016117007A1 (en) Database system and database management method
CN105354506A (en) File hiding method and apparatus
US20150006498A1 (en) Dynamic search system
US10162500B2 (en) Dynamically render large dataset in client application
CN111857883B (en) Page data checking method and device, electronic equipment and storage medium
JP7381290B2 (en) Computer system and data management method
JP2018109898A (en) Data migration system
JP6123372B2 (en) Information processing system, name identification method and program
CN107408104A (en) The statement cascade rearrangement of pattern
JP2008210068A (en) Data processor, data processing method and program
JP6547341B2 (en) INFORMATION PROCESSING APPARATUS, METHOD, AND PROGRAM
JPWO2014168199A1 (en) Logic operation method and information processing apparatus
KR102338300B1 (en) Method and system for automatically managing change in web system

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 2018510205

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16897931

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16897931

Country of ref document: EP

Kind code of ref document: A1