Job updating apparatus, job updating method, and job updating program

The job updating device addresses the inability of existing systems to adapt ETL jobs to database structure changes by generating compatible versions, ensuring their executability.

JP2025141438APending Publication Date: 2025-09-29NEC CORP
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2024041367
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-15
Publication Date
2025-09-29

AI Technical Summary

Technical Problem

The data analysis server described in Patent Document 1 cannot recommend an ETL job that accompanies a change in the structure of a database when such a change occurs.

Method used

A job updating device that includes an analysis unit to detect changes in the database structure and generate an executable ETL job based on the change and failure patterns, updating the existing ETL job to a compatible version.

Benefits of technology

Enables the updating of ETL jobs in response to database structure changes, ensuring their executability and compatibility.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025141438000001_ABST
    Figure 2025141438000001_ABST
Patent Text Reader

Abstract

To provide a job updating apparatus for updating an ELT job in response to change of a structure of a database.SOLUTION: A job updating apparatus according to the present invention has analysis means for, upon detection of change of structure of a database in response to a processing request from a user, analyzing a first ETL job executed by the database to determine whether or not the first ETL job can be executed, and updating means for, if it is determined that the first ETL job cannot be executed, based on the change, the first ETL job, and a failure pattern of the processing request, generating a second ETL job capable of being executed in the database to update the first ETL job with the second ETL job.SELECTED DRAWING: Figure 8
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present disclosure relates to a job updating device, a job updating method, and a job updating program. [Background technology]

[0002] Patent Document 1 describes a data analysis server that allows a user to acquire data from a database using Extract, Transform, and Load jobs (hereinafter referred to as ETL jobs) and store the data in a data warehouse. The data analysis server described in Patent Document 1 recommends ETL jobs that operate on a database to users who are not very familiar with data analysis applications. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Special Publication No. 2019-519027 Summary of the Invention [Problem to be solved by the invention]

[0004] However, the data analysis server described in Patent Document 1 cannot recommend an ETL job that accompanies a change in the structure of a database that it references when that change occurs.

[0005] The present disclosure aims to provide a job updating device that solves the above-mentioned problems. [Means for solving the problem]

[0006] According to one aspect of the present disclosure, there is provided a job update device including: an analysis means for, when detecting a change in the structure of a database due to a processing request from a user, analyzing a first ETL job to be executed in the database and determining whether the first ETL job is executable; and an update means for, when the first ETL job is not executable, generating a second ETL job that is executable in the database based on the change, the first ETL job, and a failure pattern of the processing request, and updating the first ETL job to the second ETL job.

[0007] According to one aspect of the present disclosure, there is provided a job update method including: an analysis step of, when a change in the structure of a database due to a processing request from a user is detected, analyzing a first ETL job executed in the database and determining whether the first ETL job is executable; and an update step of, if the first ETL job is not executable, generating a second ETL job that is executable in the database based on the change, the first ETL job, and a failure pattern of the processing request, and updating the first ETL job to the second ETL job.

[0008] According to one aspect of the present disclosure, there is provided a job update program including: an analysis step of, when a change in a database structure due to a processing request from a user is detected, analyzing a first ETL job to be executed in the database and determining whether the first ETL job is executable; and an update step of, when the first ETL job is not executable, generating a second ETL job that is executable in the database based on the change, the first ETL job, and a failure pattern of the processing request, and updating the first ETL job to the second ETL job. [Effects of the Invention]

[0009] According to the present disclosure, it is possible to provide a job updating device that updates an ETL job in response to a change in the structure of a database. [Brief explanation of the drawings]

[0010] [Figure 1] 1 is a schematic diagram illustrating an example of a job updating system according to an embodiment of the present disclosure. [Figure 2] FIG. 2 is a block diagram showing a hardware configuration of a terminal according to an embodiment of the present disclosure. [Figure 3] FIG. 2 is a block diagram illustrating a hardware configuration of a server according to an embodiment of the present disclosure. [Figure 4] FIG. 2 is a block diagram illustrating functional units of a job updating device according to an embodiment of the present disclosure. [Figure 5] FIG. 2 is a schematic diagram illustrating an example of a database according to an embodiment of the present disclosure. [Figure 6] FIG. 2 is a schematic diagram illustrating an example of a database according to an embodiment of the present disclosure. [Figure 7] FIG. 2 is a schematic diagram illustrating an example of a database according to an embodiment of the present disclosure. [Figure 8] 1 is a sequence chart of a job updating system according to an embodiment of the present disclosure. [Figure 9] 10 is a flowchart illustrating an update process for an ETL job according to an embodiment of the present disclosure. [Figure 10] 1 is a block diagram illustrating a job updating device according to an embodiment of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0011] A sound source generating device according to an embodiment of the present disclosure will be described below with reference to the drawings. In all the drawings, the same or corresponding components are designated by the same reference numerals, and common descriptions will be omitted.

[0012] [First embodiment] 1 is a schematic diagram illustrating an example of a job updating system according to an embodiment of the present disclosure. The job updating system 1 includes one or more terminals 2, a server 3, one or more databases 4, and a data warehouse 5. The terminals 2, the server 3, the database 4, and the data warehouse 5 are communicatively connected to each other via a network 9.

[0013] The terminal 2 is an information processing device operated by a user, and may be, for example, a personal computer, a laptop computer, a tablet computer, a smartphone, a mobile phone, a workstation, or the like. The terminal 2 can communicate directly or indirectly with the server 3, the database 4, and the data warehouse 5 via the network 9. The user can operate the terminal 2 to send processing requests (also called "queries") to the database 4 or the data warehouse 5. Furthermore, when the user sends multiple processing requests to the database 4 or the data warehouse 5, ETL jobs corresponding to the multiple processing requests may be registered in the terminal 2. The terminal 2 can execute the ETL job in response to a user operation or automatically.

[0014] In this embodiment, when communication is performed between the terminal 2 and the database 4 or the data warehouse 5, the terminal 2 communicates with the database 4 or the data warehouse 5 via the server 3. That is, the terminal 2 sends a processing request or an ETL job for the database 4 or the data warehouse 5 to the server 3, and the server 3 executes the processing request or the ETL job for the database 4 or the data warehouse 5.

[0015] A plurality of terminals 2 may be provided in the job updating system 1. The plurality of terminals 2 may be operated by a plurality of users. For example, as shown in FIG. 1 , one user may operate terminal 2A and communicate with database 4 or data warehouse 5 via server 3. Another user may operate terminal 2B and communicate with database 4 or data warehouse 5 via server 3. The one user and the other user may operate terminal 2A and terminal 2B, respectively, and execute processing requests or ETL jobs on database 4 or data warehouse 5 independently of each other.

[0016] A processing request from one user and a processing request from another user may conflict with each other. For example, a processing request for database 4 sent by one user may prevent a processing request for database 4 sent by another user from being executed. Similarly, an ETL job from one user and an ETL job from another user may conflict with each other. For example, an ETL job for database 4 sent by one user may prevent an ETL job for database 4 sent by another user from being executed. Therefore, a processing request from one user and an ETL job from another user may conflict with each other.

[0017] The server 3 is an information processing device, and may be, for example, a personal computer, a workstation, a hardware server, a software server, or the like. If the server 3 is a hardware server, the server 3 may be, for example, a network server or a cloud server. If the server 3 is a software server, the server 3 may be, for example, server software or a server program. The server 3 receives a processing request or an ETL job from the terminal 2 and executes the processing request or ETL job on the database 4 or the data warehouse 5. The server 3 may also directly execute the processing request or ETL job on the database 4 or the data warehouse 5. For example, a user operating the terminal 2 may register an ETL job on the server 3, and the server 3 may execute the ETL job on the database 4 or the data warehouse 5 periodically or irregularly.

[0018] The database 4 is an information processing device, and may be, for example, a personal computer, a workstation, a hardware server, a software server, or the like. If the database 4 is a hardware server, the database 4 may be, for example, a network server or a cloud server. If the database 4 is a software server, the database 4 may be, for example, server software or a server program. The database 4 stores and accumulates structured information in a predetermined storage area. The form of the information stored and accumulated by the database 4 may be, for example, a relational database, an object-oriented database, a distributed database, a NoSQL (Not Only Structured Query Language) database, a graph database, an OLTP (Online Transaction Processing) database, an open source database, a cloud database, a multi-model database, or the like. The job update system 1 may be provided with multiple databases 4. The multiple databases 4 may store and accumulate structured information in a distributed manner. The information stored and accumulated by the database 4 may be, for example, a customer list, customer visit dates and times, product sales records, and weather and temperature measurement records for each region.

[0019] Hereinafter, this embodiment will be described assuming that some or all of the information stored and accumulated in the database 4 is referred to as a "table" and the information contained in the table is referred to as an "element" (also called a "field"). Furthermore, a set of elements arranged in a column direction in a table may be referred to as a "column," and a set of elements arranged in a row direction in a table may be referred to as a "record" or a "row."

[0020] The data warehouse 5 is an information processing device, such as a personal computer, a workstation, a hardware server, or a software server. If the data warehouse 5 is a hardware server, the data warehouse 5 may be, for example, a network server or a cloud server. If the data warehouse 5 is a software server, the data warehouse 5 may be, for example, server software or a server program. The data warehouse 5 periodically or irregularly extracts some or all of the tables or elements stored in the database 4, converts them into a predetermined format, and stores the converted tables or elements in the storage area of ​​the data warehouse 5. The tables or elements stored in the data warehouse 5 are extracted, converted, and stored in the storage area by executing an ETL job on the database 4.

[0021] As described above, a user may execute an ETL job on the terminal 2. A user may register an ETL job in the server 3, and the server 3 may execute the ETL job. Similarly, a user may register an ETL job in the data warehouse 5, and the ETL job may be executed in the data warehouse 5. In this embodiment, a user registers an ETL job in the server 3, and the server 3 executes the ETL job on the database 4 or the data warehouse 5 periodically or irregularly. Furthermore, multiple users separately send processing requests to the server 3 and execute the processing requests on the database 4. Here, as described above, a processing request from one user may conflict with an ETL job from another user. Therefore, when the server 3 executes an ETL job on the database 4, it does not necessarily mean that the ETL job is executable on the database 4. For example, before an ETL job on the database 4 is executed, a user may send a processing request to the server 3 to change the data structure of a table stored in the database 4 (e.g., the number of rows in the table, the number of columns in the table, etc.). If a processing request from a user deletes a table row, a table column, or a table element required for executing an ETL job, the ETL job may become unable to be executed.

[0022] 2 is a block diagram showing a hardware configuration of a terminal 2 according to an embodiment of the present disclosure. The terminal 2 includes a CPU 21, a ROM 22, a RAM 23, a storage device 24, an input / output IF (Interface) 25, and a communication IF 26. The CPU 21, the ROM 22, the RAM 23, the storage device 24, the input / output IF 25, and the communication IF 26 are connected via a bus 29 so as to be able to communicate with each other.

[0023] The CPU 21 is a central processing unit. The CPU 21 controls each part of the terminal 2 using an application program. The ROM 22 is a read only memory. The ROM 22 is made up of non-volatile memory and stores application programs for controlling each part of the terminal 2. The RAM 23 is a random access memory. The RAM 23 provides a memory area necessary for the operation of the CPU 21. The storage device 24 is a large-capacity storage device such as a hard disk drive.

[0024] The input / output IF 25 is an input / output interface that receives voice input from the user of the terminal 2, outputs voice to the user, and transmits and receives data between the terminal 2 and other devices. The input / output IF 25 may include a mouse, a touch panel, a trackball, a keyboard, earphones, headphones, speakers, a display, etc. The user can operate the terminal 2 via the input / output IF 25. The communication IF 26 communicates between the terminal 2 and the server 3 or the database 4 via wired communication and / or wireless communication. Note that the terminals 2A and 2B in FIG. 1 may have the same hardware configuration or different hardware configurations. In this embodiment, for simplicity of explanation, it is assumed that the terminals 2A and 2B have the same hardware configuration.

[0025] 3 is a block diagram showing a hardware configuration of a server 3 according to an embodiment of the present disclosure. The server 3 includes a CPU 31, a ROM 32, a RAM 33, a storage device 34, an input / output IF (Interface) 35, and a communication IF 36. The CPU 31, the ROM 32, the RAM 33, the storage device 34, the input / output IF 35, and the communication IF 36 are connected via a bus 39 so as to be able to communicate with each other.

[0026] The CPU 31 is a central processing unit. The CPU 31 controls each part of the server 3 using an application program. The ROM 32 is a read-only memory. The ROM 32 is made up of non-volatile memory and stores application programs for controlling each part of the server 3. The RAM 33 is a random access memory. The RAM 33 provides a memory area necessary for the operation of the CPU 31. The storage device 34 is a large-capacity storage device such as a hard disk drive.

[0027] The input / output IF 35 is an input / output interface that transmits and receives data between the server 3 and other devices. The input / output IF 35 may include a mouse, a trackball, a touch panel, a keyboard, a speaker, etc. A user can directly operate the server 3 via the input / output IF 35. The communication IF 36 performs mutual data communication between the server 3, the database 4, and the data warehouse 5 via wired communication and / or wireless communication. A user can also send commands and the like to the server 3 using a terminal 2 connected to the network 9, and the server 3 can execute processing in accordance with the commands via the communication IF 36. Note that the database 4 and the data warehouse 5 may have the same hardware configuration as the server 3.

[0028] 4 is a block diagram showing functional units of a job updating device according to an embodiment of the present disclosure. Functional unit 300 includes a control unit 301, an analysis unit 302, a feature extraction unit 303, an update unit 304, a definition unit 305, a virtual execution unit 306, and a storage unit 307. Functional unit 300 can be implemented in server 3. When functional unit 300 is implemented in server 3, CPU 31 executes a program to realize the functions of functional unit 300.

[0029] The control unit 301 controls each function of the functional unit 300. For example, the control unit 301 manages the transmission and reception of data between each functional unit of the functional unit 300, the processing order, reception of a processing request or an ETL job from the terminal 2, transmission of a processing request or an ETL job to the database 4, reception of a part or all of a table or table elements from the database 4, transmission of table elements to the data warehouse 5, transmission of the execution results of the ETL job to the terminal 2, etc.

[0030] The analysis unit 302 analyzes the processing request sent from the terminal 2 and the ETL job registered in the server 3. For example, when a user sends a processing request for the database 4 from the terminal 2 to the server 3, the analysis unit 302 analyzes the syntax, arguments, and return value of the processing request. Furthermore, when the processing request for the database 4 is not executable, the analysis unit 302 analyzes an execution error or the like for the processing request. The analysis unit 302 may analyze the date and time when the processing request for the database 4 was sent, information about the user who sent the processing request, and information about the terminal 2 that sent the processing request. The analysis unit 302 stores the analysis results in the storage unit 307.

[0031] The analysis unit 302 analyzes whether an ETL job can be executed on the database 4. For example, if a user executes a processing request on the database 4, deleting some of the rows, columns, or elements of a table stored and accumulated in the database 4, making the ETL job unexecutable, the analysis unit 302 analyzes an execution error, etc. for the ETL job and extracts arguments related to the execution error and information on the database 4 corresponding to the arguments (e.g., the table row number, the table column number, the table element, or the table index). The analysis unit 302 may analyze a history of processing requests on the database 4 before the ETL job became unexecutable. The analysis unit 302 may analyze the cause of the ETL job becoming unexecutable from the processing request history, etc., and select a syntax, argument, processing request for the database 4, etc. that will make the ETL job executable. The syntax, argument, processing request, etc. selected by the analysis unit 302 may be defined in the definition unit 305. The analysis unit 302 transmits the analyzed syntax of the ETL job, arguments, a processing request for the database 4, and the like to the update unit 304.

[0032] The feature extraction unit 303 calculates feature quantities for some or all of the tables stored and accumulated in the database 4 and stores the calculated feature quantities in the storage unit 307. The feature extraction unit 303 calculates feature quantities for the tables stored and accumulated in the database 4 before and after a processing request for the database 4 is executed. Furthermore, if the feature quantities for the tables stored and accumulated in the database 4 after a processing request for the database 4 is executed differ from the feature quantities for the tables stored and accumulated in the database 4 before the processing request for the database 4 is executed, the feature extraction unit 303 detects a change in the tables stored and accumulated in the database 4 and notifies the analysis unit 302 and the virtual execution unit 306 that there has been a change in the tables stored and accumulated in the database 4. The feature extraction unit 303 may also calculate feature quantities for elements included in the tables stored and accumulated in the database 4, or may calculate feature quantities for each row and each column of the table. The feature quantities may be, for example, the average value of the named entity vectors of the elements, the average value of the semantic vectors of the elements, the frequency of occurrence of ASCII characters appearing in the elements, etc.

[0033] Note that the functions of the analysis unit 302 and the feature extraction unit 303 may partially overlap. For example, the analysis unit 302 may calculate the feature amounts of tables stored and accumulated in the database 4 before a processing request is executed, and the feature extraction unit 303 may calculate the feature amounts of tables stored and accumulated in the database 4 after the processing request is executed. Alternatively, if a processing request for the database 4 is not executable, the analysis unit 302 may calculate the feature amounts of some or all of the tables in the database 4 that correspond to the arguments included in the processing request.

[0034] If an ETL job registered in the server 3 is not executable, the update unit 304 updates the non-executable ETL job to an executable ETL job. The update unit 304 updates the non-executable ETL job to an executable ETL job based on the analysis results of the processing request and the analysis results of the ETL job by the analysis unit 302, the feature amounts of the tables stored and accumulated in the database 4 before and after the processing request for the database 4 is executed by the feature extraction unit 303, and the failure pattern of the processing request defined in the definition unit 305.

[0035] The definition unit 305 defines examples of processing requests that are not executable for the database 4 and examples of suggestions for modifying the inexecutable processing requests. That is, it defines failure patterns of processing requests for the database 4 and modification suggestion logic for the processing requests corresponding to the failure patterns. The combination of failure patterns of processing requests and modification suggestion logic does not necessarily have a one-to-one correspondence. For example, for a failure pattern such as "element Y (first element) does not exist in table X," the modification suggestion logic may be "search for an element (second element) similar to the character string of element Y (first element) and replace the searched element with element Y," "extract element Z that matches the character string of element Y (first element) from the elements of past table X, search for an element (second element) having a row element similar to the row element of element Z in current table X, and replace the searched element with element Y," or "search for a table (second element) similar to the name of table X (first element) and replace table X with the searched table," etc. For example, for a failure pattern where "element Z (first element) that joins table X and table Y does not exist in table X," the correction suggestion logic may be "search for an element (second element) similar to the string of element Z (first element) and replace element Z with the searched element," or "search for a table similar to the name of table X and replace table X with the searched table." For example, for a failure pattern where "table X and table Y cannot be merged because the number of rows or columns of table X and table Y are different," the correction suggestion logic may be "search for a table with the same number of rows or columns as table X or table Y." For example, for a failure pattern where "authorization to reference part or all of table X is not authorized," the correction suggestion logic may be "reference by an authorized user."

[0036] Note that the "first element" or "second element" described above does not only refer to an element of a table, but may also refer to, for example, a table name, a variable name, etc. Alternatively, the "first element" or "second element" may be the number of columns or rows indicating multiple elements in a table, or may be a processing request command indicating deletion, joining, integration, etc.

[0037] The failure pattern and correction suggestion logic are not limited to those described above. For example, if a user executes a first processing request that is not executable, and then modifies the content of the first processing request and executes a second processing request that is executable, the analysis unit 302 analyzes the first processing request and the second processing request. Based on the analysis result of the analysis unit 302, the definition unit 305 may define the first processing request as a failure pattern. The definition unit 305 may also define a second processing request corresponding to the first processing request as correction suggestion logic corresponding to the failure pattern. The processing request sent by the user may be input to a machine learning model, and the machine learning model may learn the failure pattern. The machine learning model may input an infeasible processing request and output an executable processing request. For example, the machine learning model may learn using the infeasible first processing request as input and the second processing request modified so that the first processing request is executable as training data.

[0038] The virtual execution unit 306 executes an ETL job for a database 4 registered on the server 3 without sending the execution results of the ETL job to the data warehouse 5. In other words, the virtual execution unit 306 can verify whether an ETL job can be executed for the database 4. The virtual execution unit 306 may have some or all of the tables stored in the database 4. The configuration of the virtual execution unit 306 is not particularly limited as long as it is a configuration that allows the virtual execution unit 306 to execute an ETL job for the database 4. For example, if the ETL job performs processing to extract rows 1 to 20 from a table stored in the database 4, the virtual execution unit 306 may have table elements corresponding to rows 1 to 20 of the table.

[0039] When the virtual execution unit 306 receives a notification from the feature extraction unit 303 about a change to a table stored and accumulated in the database 4, the virtual execution unit 306 acquires some or all of the tables in the database 4 after the change. The virtual execution unit 306 executes an ETL job on the acquired tables in the database 4. If an ETL job can be executed on the acquired tables in the database 4, the virtual execution unit 306 notifies the analysis unit 302 that the ETL job can be executed. If an ETL job cannot be executed on the acquired tables in the database 4, the virtual execution unit 306 notifies the analysis unit 302 that the ETL job cannot be executed.

[0040] The virtual execution unit 306 may be configured as part of the analysis unit 302. In the following description, for simplicity of explanation, this embodiment will be described assuming that the virtual execution unit 306 is configured as part of the analysis unit 302, and that the analysis unit 302 executes the processing of the virtual execution unit 306. In other words, the analysis unit 302 can verify whether or not the ELT job is executable.

[0041] The storage unit 307 stores in the storage device 34 or the like the date and time when the processing request for the database 4 analyzed by the analysis unit 302 was sent, information about the user who sent the processing request, and information about the terminal 2 that sent the processing request. The storage unit 307 may also store the analysis results of the analysis unit 302 and the feature amounts calculated by the feature extraction unit 303. For example, the storage unit 307 may store the names of multiple tables joined by the processing request and the elements (join keys) used in the join, the names of multiple unioned tables, the names of the searched table and columns, etc.

[0042] 5-7 are schematic diagrams showing an example of a database according to an embodiment of the present disclosure. In this embodiment, the operation of the functional unit 300 will be described using an example in which the database 4 stores and accumulates a list of customers who shop at a store. A user can send a processing request to the database 4, add information (table elements) to the customer list (table of the database 4), organize the information, and update the information. The database 4 has a customer table 41, a store visit date table 42 for each customer, and a purchased item table 43 for each store visit date.

[0043] 5 shows a customer table 41. The customer table 41 includes a customer name 411, a customer email address 412, a customer address 413, a customer telephone number 414, a customer date of birth 415, a customer gender 416, and a customer occupation 417. The customer information included in the customer table 41 is not limited to the above. For example, the customer table 41 may further include the customer's height, weight, place of work, etc.

[0044] The name 411 is the name of the customer registered in the customer table 41. The name 411 is a character string expressed using hiragana, katakana, kanji, alphanumeric characters, and symbols. The name 411 is expressed, for example, as "Yamada Taro," "Sato Hanako," or "John Smith," and it is desirable that the family name and given name are written separably. The name 411 may also have furigana, which is expressed in hiragana or katakana.

[0045] The email address 412 is the email address of the customer registered in the customer table 41. The email address 412 is a character string expressed using alphanumeric characters and symbols. For example, the email address 412 is expressed as "yamada@*****" (* corresponds to the domain name), and it is desirable that the domain name and the character string unique to the customer are written so that they can be separated by an at sign.

[0046] Address 413 is the address or residence of a customer registered in customer table 41. Address 413 includes prefecture, city, town, village, street address, and building name. Phone number 414 is the phone number of a customer registered in customer table 41. Phone number 414 includes a landline or mobile phone number. Date of birth 415 is the date of birth of a customer registered in customer table 41. Date of birth 415 is a date expressed using the Gregorian calendar or the Japanese calendar. Gender 416 is the gender of a customer registered in customer table 41. Occupation 417 is the occupation of a customer registered in customer table 41.

[0047] A customer with name 411A is associated with email address 412A, address 413A, phone number 414A, date of birth 415A, gender 416A, and occupation 417A. A customer with name 411B is associated with email address 412B, address 413B, phone number 414B, date of birth 415B, gender 416B, and occupation 417B. Similarly, a customer with name 411C, a customer with name 411D, a customer with name 411E, a customer with name 411A', and a customer with name 411B' are associated with corresponding email address 412, address 413, phone number 414, date of birth 415, gender 416, and occupation 417, respectively.

[0048] FIG. 6 shows a visit date table 42 for each customer. The visit date table 42 includes a customer name 421 and customer visit dates 422-426. The visit dates 422-426 are the dates when the customer visited the store and are expressed using the Gregorian or Japanese calendar. The visit dates 422-426 may further include the time when the customer arrived at the store and the time when the customer left the store. The structure of the customer name 421 may be the same as the structure of the customer name 411 in the customer table 41.

[0049] The configuration of visit date table 42 will be explained using the visit date of customer with name 411A as an example. When customer with name 411A visits the store, the visit date is entered in visit date 422-426 fields. Customer with name 411A has previously visited the store on visit date 422A and visit date 423A. When customer with name 411A visits the store, the visit date is entered in visit date 424 field for customer with name 411A. The same is true for other customers. Customer with name 411A has visited the store twice in the past, customer with name 411B three times in the past, customer with name 411C once in the past, customer with name 411D three times in the past, customer with name 411E four times in the past, customer with name 411A' twice in the past, and customer with name 411B' five times in the past.

[0050] FIG. 7 shows a purchased item table 43 for each visit date. The purchased item table 43 includes a customer name 431, a visit date 432, and purchased items 433-436. The visit date 432 is the date on which the customer visited the store and is expressed using the Gregorian or Japanese calendar. The visit date 432 may further include the time the customer arrived at the store and the time the customer left the store. The customer name 431 includes the customer name included in the customer name 411 in the customer table 41 or the customer name 421 in the visit date table 42. The visit date 432 includes the visit date included in the visit dates 422-426 in the visit date table 42.

[0051] The configuration of purchased item table 43 will be described using visit date 422A of customer with name 411A as an example. As explained with reference to visit date table 42 in FIG. 6, customer with name 411A previously visited the store on visit date 422A and visit date 423A. On visit date 422A, customer with name 411A purchased purchased item A1 and purchased item A2. Purchased item table 43 associates the name of customer with name 411A, the visit date, purchased item A1, and purchased item A2, and purchase item A1 and purchased item A2 are entered in the purchased item 433 and purchased item 434 columns. If customer with name 411A also purchased purchased item A3 on visit date 422A, purchased item A3 is entered in the purchased item 435 column. The same applies to other customers and other visit dates.

[0052] For the sake of simplicity, customer table 41, visit date table 42, and purchased item table 43 are shown with name 411, name 421, and name 431 as the basis (leftmost column), but the configuration of the tables stored and accumulated in database 4 is not limited to the example in Figure 5-7. For example, purchased item table 43 may be based on purchased items (leftmost column), with the names of customers who purchased the items listed as row elements.

[0053] As described with reference to FIG. 1 , a user can execute a processing request to database 4. For example, if a new customer with name 411F visits the store on visit date 422F and purchases purchased item F1, the user can enter the customer's name 411F in customer table 41, as well as email address 412F, address 413F, telephone number 414F, date of birth 415F, gender 416F, and occupation 417F. Similarly, the user can enter name 411F and visit date 422F in visit date table 42, and name 411F, visit date 422F, and purchased item F1 in purchased item table 43. That is, the user can store information in customer table 41, visit date table 42, and purchased item table 43. Similarly, the user can delete information stored in customer table 41, visit date table 42, and purchased item table 43. Furthermore, the user can combine or separate some or all of the customer table 41, the visit date table 42, and the purchased item table 43.

[0054] FIG. 8 is a sequence chart of a job updating system according to an embodiment of the present disclosure. Referring to FIG. 8, the processing of the job updating system will be described using the following example. Database 4 has a customer table 41, a store visit date table 42, and a purchased item table 43. A user can send a processing request to server 3 via terminal 2 and manipulate customer table 41, store visit date table 42, and purchased item table 43. ETL jobs are registered in advance in server 3, which periodically executes the ETL jobs on database 4 and stores the execution results in data warehouse 5. The ETL job is a process of "obtaining customer information and purchased item information for customers who have visited the store three or fewer times."

[0055] In customer table 41, it is assumed that the customer with name 411A and the customer with name 411A' are the same person, and that due to an input error by the user, the customer with name 411A and the customer with name 411A' are stored as different customers. The name 411A is "Taro Tanaka," the email address 412A is "tanaka@domain.com," the address 413A is "Minato-ku, Tokyo...," the telephone number 414A is "080-****-****," the date of birth 415A is "May 5, 2000," the gender 416A is "male," and the occupation 417A is "company employee." Assume that name 411A' is "Tanaka Taro," email address 412A' is "tanaka@domain.com," address 413A' is "Minato-ku, Tokyo...," phone number 414A' is "080-****-****," date of birth 415A' is "May 5, 2000," gender 416A' is "male," and occupation 417A' is "company employee." That is, because a user mistakenly inputs name 411A' as "Tanaka Taro" instead of name 411A, the customer with name 411A and the customer with name 411A' are stored as different customers in customer table 41. The elements of the row for name 411A and the elements of the row for name 411A' are identical except for name 411A and name 411A'.

[0056] The feature extraction unit 303 refers to the tables stored and accumulated in the database 4 (step S100), and calculates in advance the feature amounts for the tables stored and accumulated in the database 4 (step S101). That is, the feature extraction unit 303 calculates the feature amounts of the customer table 41, the visit date table 42, and the purchase item table 43 included in the database 4.

[0057] When the feature extraction unit 303 refers to the database 4, it may acquire some or all of the tables in the database 4 that the analysis unit 302 uses when verifying the ETL job. If the storage device 34 of the server 3 has sufficient capacity, it may acquire all of the tables in the database 4. The feature extraction unit 303 may store the acquired tables in the database 4 in the storage unit 307 as a history of the database 4.

[0058] The feature extraction unit 303 calculates, for example, the number of rows and columns in the customer table 41, the number of elements in the visit date table 42, and the number of elements in the purchased item table 43. Furthermore, the feature extraction unit 303 may calculate the feature amount of each element in the customer table 41, the feature amount of each element in the visit date table 42, and the feature amount of each element in the purchased item table 43.

[0059] The feature extraction unit 303 may calculate the feature quantity by, for example, calculating the semantic vector of the element using Word2vec or the like. If the element is a character string, the two-byte code of the character string or the like may be acquired. For example, the feature extraction unit 303 may acquire the two-byte code "Tanaka Taro" = {147, 99, 146, 135, 129, 64, 145, 190, 152, 89} of the name 411A and the two-byte code "Tanaka Taro" = {147, 99, 146, 134, 129, 64, 145, 190, 152, 89} of the name 411A'. Furthermore, the above-mentioned two-byte code may be regarded as a number sequence, and the feature quantity of the number sequence may be acquired. The features calculated by the feature extraction unit 303 are not particularly limited as long as they are features that allow for comparison between the features of the tables stored and accumulated in database 4 after a processing request to database 4 has been executed and the features of the tables stored and accumulated in database 4 before a processing request to database 4 has been executed.

[0060] A user transmits a processing request to the server 3 via the terminal 2 (step S102). For example, a user who manages the database 4 notices that the customer with the name 411A and the customer with the name 411A' are stored as separate customers in the customer table 41, and transmits a processing request to the server 3 to integrate the elements for the customer with the name 411A with the elements for the customer with the name 411A'. The user may also transmit a processing request to the server 3 to delete either the elements for the customer with the name 411A or the elements for the customer with the name 411A'. For simplicity of explanation, it is assumed that the user transmits a processing request to the server 3 to delete the elements for the customer with the name 411A'. For example, the command in the processing request may be "delete," and the arguments may include "name 411A'," "all row elements," and "customer table 41."

[0061] If the user were to delete the elements of the customer with name 411A', the user would have to merge the elements of the customer with name 411A and the elements of the customer with name 411A' in visit date table 42. For example, the user would have to send a processing request to server 3 to combine the elements of the row for name 411A and the elements of the row for name 411A' in visit date table 42. Furthermore, the user would have to modify the elements of the customer with name 411A and the elements of the customer with name 411A' in purchased item table 43. For example, the user would have to send a processing request to server 3 to replace name 411A' with name 411A in purchased item table 43. However, in step S102, the user would only send a processing request to server 3 to delete the elements of the customer with name 411A' in customer table 41. Therefore, although customer table 41 does not have an element for customer with name 411A', visit date table 42 and purchased item table 43 have elements for the visit date of customer with name 411A' and elements for the purchased items of customer with name 411A'. In the processing of step S105 described below, the above-mentioned difference in the associations between customer table 41, visit date table 42, and purchased item table 43 is realized.

[0062] The server 3 analyzes the processing request received from the terminal 2 in the analysis unit 302 (step S103). In step S102, the processing request sent by the user has the command "delete," the argument "Name 411A'," the argument "all row elements," and the argument "Customer Table 41." The analysis unit 302 analyzes the command and the argument, and acquires information about the processing request executed by the user, which indicates that the processing request deletes all row elements of Name 411A' in the customer table 41. Furthermore, the analysis unit 302 acquires the date and time when the user sent the processing request, user information (e.g., identification information, authority information, etc.), and information about the terminal 2 that sent the processing request. The analysis unit 302 transmits information related to the processing request from the user to the storage unit 307. The storage unit 307 stores the information related to the processing request as a history of processing requests from the user.

[0063] The server 3 executes the processing request and transmits a command corresponding to the processing request to the database 4 (step S104). The processing request transmitted by the user in step S102 is a processing request to delete each element for the customer with the name 411A' in the customer table 41. Therefore, the server 3 transmits a command to the database 4 to delete each element for the customer with the name 411A' in the customer table 41.

[0064] The database 4 receives a command corresponding to the processing request from the server 3 and executes the command (step S105). The database 4 deletes each element for the customer with name 411A' in the customer table 41. As described above, in step S102, the user sends to the server 3 only a processing request to delete each element for the customer with name 411A' in the customer table 41. Therefore, even though the customer table 41 does not have an element for the customer with name 411A', the visit date table 42 and the purchase item table 43 contain elements for the visit date of the customer with name 411A' and elements for the purchased items of the customer with name 411A'. Here, because one row has been deleted from the customer table 41, the feature value of the customer table 41 is changed. In other words, the feature value for the number of rows in the customer table 41 is changed.

[0065] In steps S102 to S105, the user does not necessarily send one processing request. For example, multiple processing requests that the user has previously implemented in terminal 2 may be executed in step S102. In such a case, the processing from step S102 to step S105 may be executed multiple times.

[0066] When an instruction corresponding to the processing request is executed in step S105, the feature extraction unit 303 references the tables stored and accumulated in the database 4 (step S106) and calculates feature quantities for the tables stored and accumulated in the database 4 (step S107). The feature extraction unit 303 calculates differences between the feature quantities of the customer table 41, the feature quantities of the visit date table 42, and the feature quantities of the purchased item table 43 calculated in step S101 and the feature quantities of the customer table 41, the feature quantities of the visit date table 42, and the feature quantities of the purchased item table 43 calculated in step S106. In this embodiment, the difference in feature quantities before and after the execution of the instruction is the difference in the number of rows in the table, but the difference in feature quantities is not limited to the difference in the number of rows in the table. For example, the difference may be the difference in the number of columns in the table before and after the execution of the instruction, the difference in the number of elements included in the table, the difference in feature quantities of the elements included in the table, or the presence or absence of a table.

[0067] The feature extraction unit 303 detects the difference in the feature amounts before and after the execution of the command in step S105, and notifies the analysis unit 302 of the change in the table (step S110). The feature extraction unit 303 transmits the calculated feature amounts to the analysis unit 302 together with the notification.

[0068] The analysis unit 302 receives from the feature extraction unit 303 a notification that a table stored and accumulated in the database 4 has been changed, and the feature amount of the database 4. The analysis unit 302 executes an ETL job registered in advance in the server 3, and analyzes whether the ETL job is executable (step S111).

[0069] As described above, an ETL job is a process of "obtaining customer information and purchased product information for customers who have visited the store three or less times." The ETL job includes, as a combination of processing instructions, for example, obtaining the name of a customer for whom the date and time of visit is not entered in the visit date 425 in the visit date table 42 (process P1), obtaining customer information corresponding to the obtained name in the customer table 41 (process P2), and obtaining purchased product elements corresponding to the obtained name in the purchased product table 43 (process P3).

[0070] In process P1, customers who have visited the store three or fewer times are the customer with name 411A, the customer with name 411B, the customer with name 411C, the customer with name 411D, and the customer with name 411A'. In process P1, the analysis unit 302 acquires a set of names {name 411A, name 411B, name 411C, name 411D, name 411A'}.

[0071] In process P2, each element of the set of names is searched for in the customer table 41, and the email address 412, address 413, telephone number 414, date of birth 415, gender 416, and occupation 417 corresponding to each element of the set of names are obtained. Here, because the row corresponding to the name 411A' was deleted in step S105, the ETL job cannot execute process P2. The ETL job outputs an execution error and interrupts process P2. The analysis unit 302 obtains, as the execution results of the ETL job, that the ETL job is not executable and that there is no row element corresponding to the name 411A' in the customer table 41. The analysis unit 302 sends the ETL job, the execution result of the ETL job including the execution error, and the analysis results in step S103 to the update unit 304 (step S112).

[0072] When the update unit 304 acquires from the analysis unit 302 the ETL job, the execution result of the ETL job, the processing request sent by the user before executing the ETL job, and the feature quantities of the database 4 before and after executing the command in step S105, the update unit 304 executes update processing of the ETL job (step S113). The update unit 304 references the failure patterns stored in the definition unit 305 and acquires a failure pattern corresponding to the execution error of the ETL job. For example, if the execution error of the ETL job is "name 414A' does not exist in customer table 41," the update unit 304 references the failure pattern "element Y does not exist in table X" stored in the definition unit 305. Assume that the definition unit 305 detects correction proposal logic corresponding to the above failure patterns as follows: "search for an element similar to the character string of element Y, and replace element Y with the searched element" (proposal L1), "extract element Z that matches the character string of element Y from the elements of past table X, search current table X for an element having a row element similar to the row element of element Z, and replace element Y with the searched element" (proposal L2), or "search for a table similar to the name of table X, and replace table X with the searched table" (proposal L3). The update unit 304 updates the ETL job based on at least one of the features of database 4 in step S101, the information about the processing request analyzed in step S103, the features of database 4 in step S107, the analysis results of the ETL job, and the proposals L1 to L3 defined in the definition unit 305.

[0073] For proposals L1-L3, customer table 41 corresponds to "table X" and name 411A' corresponds to "element Y." In processing proposal L1, update unit 304 calculates, for example, the similarity between name 411A' and another name 411. The similarity may be expressed using a distance measure between two elements, such as cosine similarity or Euclidean distance.

[0074] As an example of the processing of proposal L1, a calculation example will be shown in which the distance of the two-byte code of the name 411 is used as the similarity. If name 411A is "Tanaka Taro", name 411A' is "Tanaka Taro", and name 411B is "Sato Ichiro", the two-byte code of name 411A' is "Tanaka Taro" = {147, 99, 146, 134, 129, 64, 145, 190, 152, 89}, the two-byte code of name 411A is "Tanaka Taro" = {147, 99, 146, 135, 129, 64, 145, 190, 152, 89}, and the two-byte code of name 411B is "Sato Ichiro" = {141, 178, 147, 161, 129, 64, 136, 234, 152, 89}. The distance between name 411A' and name 411A is 1, and the distance between name 411A' and name 411B is 166. Because the distance between name 411A' and name 411A is smaller than the distance between name 411A' and name 411B, a correction to replace name 411A with name 411A' is proposed in the processing of proposal L1.

[0075] Similarly, in processing proposal L2, the update unit 304 calculates the similarity between the elements in the row of name 411A' in past customer table 41 and the elements in each row of name 411 in current customer table 41. The processing request sent by the user in step S102 is a processing request to delete each element for the customer with name 411A' in customer table 41. The correspondence between name 411A' and the past processing request may be searched for, and the update unit 304 may refer to the past table. Alternatively, because the feature quantities of customer table 41 have been changed by the processing request sent by the user in step S102, the update unit 304 may refer to the customer table 41 before the feature quantities were changed as the past table. As described above, the elements in the row of name 411A and the elements in the row of name 411A' are identical except for name 411A and name 411A'. Therefore, the distance between the line of name 411A' and the line of name 411A is smaller than the distance between the line of name 411A' and the lines of other names 411. In the processing of proposal L2, a correction is also proposed to replace name 411A with name 411A'.

[0076] In the process of proposal L3, a table with a name similar to that of the customer table 41 is searched for. The update unit 304 calculates, for example, the distance between the "customer table" and the "visit date table" or the "purchased item table." While the calculation is not described here, the distance between the "customer table" and the "visit date table" (for example, 623) and the distance between the "customer table" and the "purchased item table" (for example, 940) are not small enough to be considered similar to the "customer table." In the process of proposal L3, a process of replacing the customer table 41 with the visit date table 42 may be proposed. Note that if the calculated distance is large (i.e., the similarity is small), for example, if the calculated distance is larger than a predetermined threshold, the update unit 304 may not adopt the proposal.

[0077] When there are multiple correction proposals for a failure pattern, the updating unit 304 may weight the similarity calculated for each proposal and adopt the proposal. Alternatively, the updating unit 304 may adopt the proposal with the smallest distance (highest similarity). In this embodiment, the correction of replacing the name 411A with the name 411A' is adopted. The updating unit 304 updates the ETL job sent from the analyzing unit 302 and sends it to the terminal 2 (step S114). Note that if there is no ETL job update that the updating unit 304 can propose, the updating unit 304 may notify the terminal 2 and the user in step S114 of information about the processing request immediately before the ETL job became unexecutable, information about the user who sent the processing request, and changes to the database 4 or table.

[0078] The terminal 2 checks the ETL job updated by the update unit 304 (step S120). If the user accepts the updated ETL job, the user sends a message to the update unit 304 indicating that the update is permitted (step S121). The update unit 304 updates the ETL job for the database 4, and the server 3 sends a command (step S122) and periodically executes the ETL job for the database 4 (step S123). The ETL job executed for the database 4 extracts elements from tables stored and accumulated in the database 4 according to the processing content of the ETL job, converts them into a predetermined format, and sends the execution results to the data warehouse 5 (step S124). The data warehouse 5 stores the received execution results in a storage area or the like (step S125). Note that the update unit 304 may automatically update the ETL job without performing the processing of steps S120 and S121.

[0079] The job update device calculates feature quantities before and after a change in the structure of the database 4, and if there is a change in the feature quantities, the job update device analyzes and verifies the ETL job. The job update device updates the ETL job based on the analysis and verification results, predefined failure patterns, and correction suggestion logic. As a result, even if the user does not fully understand the structure of the database 4, the job update device can propose ETL processing that corresponds to the change in the structure of the database 4 and update the ETL processing.

[0080] 9 is a flowchart showing an ETL job update process according to an embodiment of the present disclosure. First, the feature extraction unit 303 calculates the feature amounts of the database 4 (step S201). The feature extraction unit 303 may calculate the feature amounts of the database 4 every time a user sends a processing request, or every time a user sends a predetermined number of processing requests. Alternatively, the feature extraction unit 303 may calculate the feature amounts of the database 4 periodically. The process of step S201 corresponds to the process of the feature extraction unit 303 in step S101 and the process of the feature extraction unit 303 in step S107 in FIG. 8.

[0081] The feature extraction unit 303 detects whether there is a change between the feature amount of database 4 calculated immediately before and the feature amount of database 4 newly calculated (step S202). If the feature extraction unit 303 detects a change (YES in step S202), the analysis unit 302 analyzes whether the ETL job is executable (step S203). The process of step S203 corresponds to the process of the analysis unit 302 in step S111 of Fig. 8. On the other hand, if the feature extraction unit 303 does not detect a change (NO in step S202), the control unit 301 assumes that the ETL job is executable and ends the update process.

[0082] In the process of step S203, the analysis unit 302 analyzes whether the ETL job is executable (step S204). If the ETL job is executable (YES in step S204), the control unit 301 ends the update process. On the other hand, if the ETL job is not executable (NO in step S204), as described in step S113 of FIG. 8, the analysis unit 302 acquires the ETL job, the execution result of the ETL job, the processing request sent by the user before executing the ETL job, and the feature values ​​of the database 4 before and after the execution of the command in step S105, and the update unit 304 executes the update process of the ETL job (step S205). The update unit 304 updates the ETL job based on at least one of the feature values ​​of the database 4 in step S101, the information about the processing request analyzed in step S103, the feature values ​​of the database 4 in step S107, the analysis result of the ETL job, and the proposals L1-L3 defined in the definition unit 305.

[0083] Note that ETL job update suggestions are not limited to the above examples. For example, if a user does not have access rights to a table or a column, the update unit 304 may suggest an accessible table or column. If no arguments are present in the ETL job processing request, elements with high access frequencies may be suggested. The table suggested to the user may be a table that the user has frequently retrieved (viewed). When integrating multiple tables, if the element types are different, it may be suggested to convert one of the element types to another type.

[0084] The job update device calculates feature quantities before and after a change in the structure of the database 4 or the structure of a table included in the database 4, and if there is a change in the feature quantities, the job update device analyzes and verifies the ETL job. The job update device updates the ETL job based on the analysis results and verification results, predefined failure patterns, and correction suggestion logic. As a result, even if the user does not fully understand the structure of the database 4 and the changes to the tables, the job update device can propose ETL processing that corresponds to the changes in the structure of the database 4 and the changes in the table structure, and update the ETL processing.

[0085] [Other embodiments] FIG. 10 is a block diagram showing a job updating device according to an embodiment of the present disclosure. The job updating device 100 includes an analysis unit 101 and an update unit 102. The analysis unit 101 detects changes to the structure of a database due to a processing request from a user and analyzes an ETL job to be executed in the database. Furthermore, the analysis unit 101 determines whether an ETL job can be executed for the database. If an ETL job cannot be executed for the database, the update unit 102 generates an ETL job that can be executed for the database based on the changes to the structure of the database, the ETL job, and the failure pattern of the processing request. The update unit 102 updates the ETL job to the generated ETL job.

[0086] Furthermore, the scope of each embodiment also includes a processing method in which a program that operates the configuration of each embodiment to realize the functions of the above-described embodiments is recorded on a recording medium, the program recorded on the recording medium is read as code, and the program is executed on a computer. In other words, a computer-readable recording medium is also included in the scope of each embodiment. Furthermore, each embodiment includes not only a recording medium on which the above-described computer program is recorded, but also the computer program itself.

[0087] Examples of the recording medium that can be used include a floppy disk, a hard disk, an optical disk, a magneto-optical disk, a CD-ROM (Compact Disc-Read Only Memory), a magnetic tape, a non-volatile memory card, and a ROM. In addition, the scope of each embodiment is not limited to programs that execute processing by themselves recorded on the recording medium, but also includes programs that execute processing by operating on an OS (Operating System) in cooperation with other software and functions of an expansion board.

[0088] Although the present disclosure has been described above with reference to the embodiments, the present disclosure is not limited to the above-described embodiments. Various modifications that can be understood by those skilled in the art can be made to the configuration and detailed description of the present disclosure within the scope of the present disclosure. Furthermore, each embodiment can be combined with other embodiments as appropriate.

[0089] Some or all of the above-described embodiments can be described as, but are not limited to, the following supplementary notes.

[0090] (Appendix 1) an analysis means for analyzing a first ETL job to be executed in the database when a change in the structure of the database due to a processing request from a user is detected, and determining whether the first ETL job is executable; and an updating means for, if the first ETL job is not executable, generating a second ETL job that is executable in the database based on the change, the first ETL job, and a failure pattern of the processing request, and updating the first ETL job to the second ETL job.

[0091] (Appendix 2) further comprising a storage means for storing a history of processing requests from the user; The job update device described in Appendix 1, wherein if the first ETL job cannot be executed because it cannot reference a first element in the database, the update means generates the second ETL job based on a second element used in the history and similar to the first element.

[0092] (Appendix 3) further comprising a storage means for storing a history of processing requests from the user; 2. A job update device as described in Appendix 1, wherein if the first ETL job cannot be executed due to an inability to reference a first element in the database, the update means generates the second ETL job based on a second element that is most recently used in the history and is similar to the first element.

[0093] (Appendix 4) When the first ETL job is not executable because the first element of the database cannot be referenced, the update unit acquires a first feature amount of the first element; The job update device according to claim 1, wherein the update means generates the second ETL job based on a second element having a second feature amount similar to the first feature amount.

[0094] (Appendix 5) further comprising a storage means for storing a part or all of the database before the processing request is executed as a past database; When the first ETL job cannot be executed because the first element of the database cannot be referenced, the update unit references the past database and acquires a first feature amount of a row or column including the first element; The job update device described in Appendix 1, wherein the update means generates the second ETL job based on a second element included in a row or column having a second feature similar to the first feature.

[0095] (Appendix 6) further comprising a storage means for storing a history of processing requests from the user; The job update device described in Appendix 1, wherein if the first ETL job cannot be executed because the first element of the database cannot be referenced, the update means generates the second ETL job based on the second element that is referenced most frequently in the history.

[0096] (Appendix 7) The job update device described in Appendix 4, wherein the first feature is at least one of an average value of the eigenvalue vector of the first element, an average value of the semantic vector of the first element, and an appearance frequency of ASCII characters in the first element.

[0097] (Appendix 8) 2. The job updating device according to claim 1, wherein if the updating means is unable to generate the second ETL job, it notifies the user, the processing request, and the change.

[0098] (Appendix 9) an analysis step of analyzing a first ETL job to be executed in the database when a change in the structure of the database due to a processing request from a user is detected, and determining whether the first ETL job is executable; and an updating step of, if the first ETL job is not executable, generating a second ETL job that is executable in the database based on the change, the first ETL job, and a failure pattern of the processing request, and updating the first ETL job to the second ETL job.

[0099] (Appendix 10) a storage step for storing a history of processing requests from the user; 10. The job update method of claim 9, wherein if the first ETL job is not executable due to an inability to reference a first element of the database, the updating step generates the second ETL job based on a second element used in the history that is similar to the first element.

[0100] (Appendix 11) a storage step for storing a history of processing requests from the user; 10. The job update method of claim 9, wherein if the first ETL job is not executable due to an inability to reference a first element in the database, the updating step generates the second ETL job based on a second element that is most recently used in the history and is similar to the first element.

[0101] (Appendix 12) If the first ETL job is not executable because the first element of the database cannot be referenced, the updating step acquires a first feature of the first element; 10. The job update method of claim 9, wherein the updating step generates the second ETL job based on a second element having a second feature similar to the first feature.

[0102] (Appendix 13) a storage step of storing a part or all of the database before the processing request is executed as a past database; If the first ETL job cannot be executed because the first element of the database cannot be referenced, the updating step refers to the past database and acquires a first feature value of a row or column including the first element; 10. The job update method of claim 9, wherein the updating step generates the second ETL job based on a second element included in a row or column having a second feature similar to the first feature.

[0103] (Appendix 14) a storage step for storing a history of processing requests from the user; 13. The job update method of claim 12, wherein if the first ETL job is not executable due to an inability to reference a first element of the database, the updating step generates the second ETL job based on a second element that is most referenced in the history.

[0104] (Appendix 15) 5. The job update method according to claim 4, wherein the first feature is at least one of an average value of the named entity vector of the first element, an average value of the semantic vector of the first element, and an occurrence frequency of ASCII characters in the first element.

[0105] (Appendix 16) 10. The job updating method of claim 9, wherein if the updating step is unable to generate the second ETL job, notifying the user, the processing request, and the change.

[0106] (Appendix 17) an analysis step of analyzing a first ETL job to be executed in the database when a change in the structure of the database due to a processing request from a user is detected, and determining whether the first ETL job is executable; and an updating step of generating a second ETL job that is executable in the database based on the change, the first ETL job, and a failure pattern of the processing request, if the first ETL job is not executable, and updating the first ETL job to the second ETL job.

[0107] (Appendix 18) a storage step for storing a history of processing requests from the user; 18. The job update program of claim 17, wherein if the first ETL job is not executable due to an inability to reference a first element in the database, the updating step generates the second ETL job based on a second element used in the history that is similar to the first element.

[0108] (Appendix 19) a storage step for storing a history of processing requests from the user; 18. The job update program of claim 17, wherein if the first ETL job is not executable due to an inability to reference a first element in the database, the updating step generates the second ETL job based on a second element that is most recently used in the history and is similar to the first element.

[0109] (Appendix 20) If the first ETL job is not executable because the first element of the database cannot be referenced, the updating step acquires a first feature of the first element; 18. The job update program of claim 17, wherein the updating step generates the second ETL job based on a second element having a second feature similar to the first feature.

[0110] (Appendix 21) a storage step of storing a part or all of the database before the processing request is executed as a past database; If the first ETL job cannot be executed because the first element of the database cannot be referenced, the updating step refers to the past database and acquires a first feature value of a row or column including the first element; 18. The job update program of claim 17, wherein the updating step generates the second ETL job based on a second element included in a row or column having a second feature similar to the first feature.

[0111] (Appendix 22) a storage step for storing a history of processing requests from the user; 21. The job update program of claim 20, wherein if the first ETL job is not executable due to an inability to reference a first element of the database, the updating step generates the second ETL job based on a second element that is most referenced in the history.

[0112] (Appendix 23) 5. The job update program according to claim 4, wherein the first feature is at least one of an average value of a named entity vector of the first element, an average value of a semantic vector of the first element, and an appearance frequency of an ASCII character in the first element.

[0113] (Appendix 24) 18. The job update program of claim 17, wherein if the updating step is unable to generate the second ETL job, notifying the user, the processing request, and the change. [Explanation of symbols]

[0114] 1: Job Update System 2: Terminal 3: Server 300: Functional section 301: Control unit 302:Analysis Department 303: Feature extraction unit 304: Update Department 305: Definition part 306: Virtual Execution Unit 307: Storage section 4: Database 5: Data warehouse 9: Network

Claims

1. an analysis means for analyzing a first ETL job executed in the database when detecting a change in the structure of the database due to a processing request from a user, and determining whether the first ETL job is executable; and an update means for generating a second ETL job that is executable in the database based on the change, the first ETL job, and a failure pattern of the processing request if the first ETL job is not executable, and updating the first ETL job to the second ETL job.

2. further comprising a storage means for storing a history of processing requests from the user; 2. The job update device according to claim 1, wherein when the first ETL job cannot be executed because a first element of the database cannot be referenced, the update means generates the second ETL job based on a second element used in the history and similar to the first element.

3. further comprising a storage means for storing a history of processing requests from the user; 2. The job update device according to claim 1, wherein when the first ETL job cannot be executed due to an inability to reference a first element in the database, the update means generates the second ETL job based on a second element that is most recently used in the history and is similar to the first element.

4. When the first ETL job cannot be executed because the first element of the database cannot be referenced, the update unit acquires a first feature amount of the first element, The job updating device according to claim 1 , wherein the updating means generates the second ETL job based on a second element having a second feature amount similar to the first feature amount.

5. further comprising a storage means for storing a part or all of the database before the processing request is executed as a past database; When the first ETL job cannot be executed because the first element of the database cannot be referenced, the update unit references the past database and acquires a first feature amount of a row or column including the first element; The job update device according to claim 1 , wherein the update means generates the second ETL job based on a second element included in a row or column having a second feature amount similar to the first feature amount.

6. further comprising a storage means for storing a history of processing requests from the user; 2. The job update device according to claim 1, wherein when the first ETL job cannot be executed because a first element of the database cannot be referenced, the update means generates the second ETL job based on a second element that is referenced most frequently in the history.

7. 5. The job updating device according to claim 4, wherein the first feature is at least one of an average value of a named entity vector of the first element, an average value of a semantic vector of the first element, and an appearance frequency of ASCII characters in the first element.

8. 2. The job updating device according to claim 1, wherein if the updating means is unable to generate the second ETL job, it notifies the user, the processing request, and the change.

9. an analysis step of analyzing a first ETL job to be executed in the database when a change in the structure of the database due to a processing request from a user is detected, and determining whether the first ETL job is executable; a job update method comprising: if the first ETL job is not executable, generating a second ETL job that is executable in the database based on the change, the first ETL job, and a failure pattern of the processing request, and updating the first ETL job to the second ETL job.

10. an analysis step of analyzing a first ETL job to be executed in the database when a change in the structure of the database due to a processing request from a user is detected, and determining whether the first ETL job is executable; and an updating step of generating a second ETL job that is executable in the database based on the change, the first ETL job, and a failure pattern of the processing request, if the first ETL job is not executable, and updating the first ETL job to the second ETL job.

Citation Information

Patent Citations

  • Learning from historical logs and recommending database operations for data assets within ETL tools

    JP2019519027A