Information processing device, method and program
By altering the arguments of table join instructions in an information processing device, the size of intermediate tables is reduced, addressing the challenge of increased processing loads during data aggregation and combination, resulting in more efficient data processing.
Patent Information
- Application Number
- JP2023526708
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-06-09
- Publication Date
- 2025-01-17
- Estimated Expiration
- 2041-06-09
AI Technical Summary
Existing technologies do not address the reduction of the size of intermediate tables generated during the aggregation and combination of multiple data tables, leading to increased processing loads.
Implementing a second table join instruction that alters the arguments of a first table join instruction to generate intermediate tables, utilizing an information processing device with conversion means to set data tables generated by intermediate table generation instructions as arguments for subsequent join instructions.
Reduces the size of intermediate tables, thereby reducing processing load when obtaining final tables with aggregated feature values.
Smart Images

Figure 0007616373000001 
Figure 0007616373000002 
Figure 0007616373000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates to an information processing device, method, and program Regarding. [Background technology]
[0002] Patent Document 1 describes that in order to efficiently extract data characteristics from huge amounts of data, when heterogeneous tables PQR are input, the three tables can be combined into one table by first combining PR and then combining Q, and that the combined table can be used to analyze the relationship between the data values in fields B and D. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2019-168820 A Summary of the Invention [Problem to be solved by the invention]
[0004] The invention described in Patent Document 1 does not mention reducing the size of intermediate tables generated during the process of aggregating and joining multiple tables.
[0005] In view of the above circumstances, the present invention provides an information processing device, method, and program The purpose is to provide. [Means for solving the problem]
[0006] (1) One aspect of the present disclosure is an information processing device including: a join conversion means for, when a data table serving as a first argument of a second table join instruction, which is a table join instruction executed subsequent to a first table join instruction, which is a table join instruction, in a program to be converted, is a data table generated by the first table join instruction, and a data table serving as a second argument of the second table join instruction is a data table generated by a first intermediate table generation instruction, which is an intermediate table generation instruction having as an argument the data table serving as the first argument of the first table join instruction, setting the data table serving as the first argument of the first table join instruction to be input as a first argument of the second table join instruction, setting the data table generated by the first intermediate table generation instruction as the second argument of the first table join instruction, and setting the data table generated by the first table join instruction after the argument has been changed as the second argument of the second table join instruction.
[0007] (2) One aspect of the present disclosure is a method used on a computer, the method including the steps of: when a data table serving as a first argument of a second table join instruction, which is a table join instruction executed following a first table join instruction, which is a table join instruction, in a program to be converted, is a data table generated by the first table join instruction; and a data table serving as a second argument of the second table join instruction is a data table generated by a first intermediate table generation instruction, which is an intermediate table generation instruction having as an argument the data table serving as the first argument of the first table join instruction; setting the data table serving as the first argument of the first table join instruction to be input as a first argument of the second table join instruction; setting the data table generated by the first intermediate table generation instruction as the second argument of the first table join instruction; and setting the data table generated by the first table join instruction after the argument has been changed as a second argument of the second table join instruction.
[0008] (3) One aspect of the present disclosure is a recording medium having recorded thereon a program for causing a computer to execute the steps of: when a data table serving as a first argument of a second table join instruction, which is a table join instruction executed following a first table join instruction, which is a table join instruction, in a program to be converted, is a data table generated by the first table join instruction, and a data table serving as a second argument of the second table join instruction is a data table generated by a first intermediate table generation instruction, which is an intermediate table generation instruction having as an argument the data table serving as the first argument of the first table join instruction, setting the data table serving as the first argument of the first table join instruction to be input as a first argument of the second table join instruction, setting the data table generated by the first intermediate table generation instruction to be input as the second argument of the first table join instruction, and setting the data table generated by the first table join instruction after the argument has been changed to be the second argument of the second table join instruction. Effect of the Invention
[0009] According to the present disclosure, when generating an intermediate table and obtaining a final table containing the results of aggregating the features of input data, the size of the intermediate table can be reduced, thereby reducing the processing load. [Brief description of the drawings]
[0010] [Figure 1] FIG. 2 is a diagram illustrating an outline of the operation of the information processing device 1 according to the first embodiment. [Diagram 2] 1 is a block diagram showing a hardware configuration of an information processing device 1 according to a first embodiment. [Diagram 3] 1 is a functional block diagram of an information processing device 1 according to a first embodiment. [Figure 4] FIG. 4 is a schematic diagram showing aggregation and merging processing in the first embodiment. [Diagram 5]FIG. 4 is a schematic diagram showing aggregation and merging processing in the first embodiment. [Figure 6] 4 is a flowchart showing the process flow of process flow 1 in the first embodiment. [Figure 7] FIG. 4 is a schematic diagram showing aggregation and merging processing in the first embodiment. [Figure 8] 5 is a flowchart showing the flow of a program conversion process in the first embodiment. [Figure 9] 13 is a flowchart showing the flow of a program conversion process in the second embodiment. [Figure 10] 13 is a flowchart showing the flow of a program conversion process in the third embodiment. [Figure 11] 13 is a flowchart showing the flow of a program conversion process in the fourth embodiment. [Figure 12] 13 is a flowchart showing the flow of a program conversion process in the fifth embodiment. [Figure 13] 13 is a flowchart showing the flow of a program conversion process in the fifth embodiment. [Figure 14] FIG. 2 is a diagram illustrating a minimum configuration of an information processing device 1 according to the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0011] Hereinafter, the embodiments will be described in detail with reference to the accompanying drawings. Note that the following embodiments do not limit the invention according to the claims, and not all combinations of features described in the embodiments are essential to the invention. Two or more features among the multiple features described in the embodiments may be arbitrarily combined. In addition, the same reference numbers are used for the same or similar configurations, and duplicated descriptions are omitted.
[0012] (First embodiment) Fig. 1 is a diagram showing an outline of the operation of the information processing device 1 in the first embodiment. The information processing of the present disclosure relates to a technique for performing selection, grouping, and aggregation processing on an input table, and combining data (feature amounts) obtained as a result of the aggregation with the input table. In the information processing of the present disclosure, the aggregation conversion unit 113 and the combination conversion unit 114 included in the information processing device 1 convert a program for executing a first processing flow (processing flow 1) shown in Fig. 1 into a program for executing a second processing flow (processing flow 2). Note that the conversion of the program may be realized by only the combination conversion unit 114.
[0013] As will be described later, the processing load of the process flow 2 is lighter than that of the process flow 1. Therefore, in order to reduce the processing load, the aggregation conversion unit 113 and the combination conversion unit 114 execute the conversion process as described above. The program is written in a program language including a high-level language, a low-level language, and an assembly language. The processing by the aggregation conversion unit 113 and the combination conversion unit 114 will be described later.
[0014] In this embodiment, the input table includes elements of two or more rows and elements of at least two columns. The elements of the first column include time information. The elements of the second column include price information corresponding to the time included in each row of the first column. The price may be, for example, the price of a virtual currency, the stock price of a specific brand, or the unit price of an investment trust. The aggregation and merge processing unit 112 provided in the information processing device 1 selects the price column included in the input table and groups (groupby) by time zones divided into one-hour intervals. Note that the contents of the rows and columns may be interchanged. That is, for example, price information corresponding to each time included in each column of the first row may be included in the second row.
[0015] The aggregation and combination processor 112 generates features by aggregating the prices in each group. The features include the average, maximum, or minimum price in each group. The aggregation and combination processor 112 combines the features into a new column for the row that includes the time included in each group.
[0016] In Fig. 1, the initial table T0 is a table including initial input data. The acquisition unit 111 included in the information processing device 1 acquires the initial table T0. The intermediate table T1 is an intermediate table obtained after the aggregation join processing unit 112 selects, from the initial table T0, target columns on which aggregation processing is to be performed, and performs grouping and aggregation processing. Taking the initial letters of these terms, a series of processing related to input / selection, grouping, and aggregation is also referred to as SGA processing (or simply SGA). Details of SGA will be described later.
[0017] Intermediate table T0' is an intermediate table obtained when the aggregation join processing unit 112 performs a first join process to join intermediate table T1 to the initial table T0. The join process is also referred to as JOIN. The first join process is also referred to as JOIN1. Details of the JOIN process will be described later. The aggregation join processing unit 112 performs a second SGA process (SGA2) on the intermediate table T0' to obtain intermediate table T2. The aggregation join processing unit 112 performs a second JOIN process (JOIN2) using the initial table T0' and intermediate table T2 to obtain the final table T0''.
[0018] The initial table T0 is a table including elements with multiple rows and multiple columns. The intermediate tables T1 and T2 include features of the input tables. The aggregation join processing unit 112 extracts the features of the input tables by executing SGA on the input tables. As a result of the feature extraction, the number of rows of elements included in the intermediate tables T1 and T2 is less than the number of rows of elements included in the initial table T0. The number of columns of elements included in the intermediate tables T1 and T2 may be more or less than the number of columns of elements included in the initial table T0.
[0019] For example, initial table T0 may contain 5 rows of elements, and intermediate table T1 and intermediate table T2 may contain 3 rows of elements. Intermediate table T0' contains 5 rows of elements after JOIN 1 processing. Final table T0'' contains 5 rows of elements after JOIN processing 2 by the aggregation join processor 112.
[0020] In process flow 2, the aggregation conversion unit 113 and the join conversion unit 114 convert some of the inputs and their order of the SGA processing and JOIN processing from process flow 1. SGA1 and the resulting intermediate table T1 are the same as in process flow 1. In process flow 2, the input and output of SGA2, the input and output of JOIN1, and the input and output of JOIN2 are different from process flow 1.
[0021] Specifically, SGA2 in processing flow 2 differs from processing flow 1 in that the input is initial table T0. In JOIN1 in processing flow 2, the inputs are intermediate tables T1 and T2. Intermediate tables T1 and T2 contain three elements. The input and output of JOIN1 differ from processing flow 1 in that they both contain three rows. In other words, the number of rows contained in the input and output of JOIN1 in processing flow 2 is smaller than the number of rows contained in the output of JOIN1 in processing flow 1. Therefore, the size of the intermediate tables can be made smaller in processing flow 2 than in processing flow 1.
[0022] 2 is a block diagram showing a hardware configuration of the information processing device 1 in the first embodiment. The information processing device 1 is an electronic computer. The information processing device 1 may be a personal computer (PC), a workstation, a smartphone, or a tablet computer. The information processing device 1 includes a central processing unit (CPU) 101, a random access memory (RAM) 102, a read only memory (ROM) 103, and a hard disk drive (HDD) 104.
[0023] The information processing device 1 includes a communication interface (IF) 105, an input device 106, and an output device 107. The CPU 101, RAM 102, ROM 103, HDD 104, communication IF 105, input device 106, and output device 107 are interconnected via a bus, wiring, a drive device, etc. that are not shown in FIG.
[0024] The CPU 101 performs a predetermined calculation according to a program stored in the ROM 103, the HDD 104, etc. The CPU 101 is a processing device that also has a function of controlling each unit of the information processing device 1. The RAM 102 is composed of a volatile storage medium. The RAM 102 provides a temporary memory area. The temporary memory area is necessary for the operation of the CPU 101.
[0025] The ROM 103 is made up of a non-volatile storage medium. The ROM 103 stores necessary information such as programs used in the operation of the information processing device 1. The HDD 104 is made up of a non-volatile storage medium, and is a storage device that temporarily stores data transmitted to and received from the earphones 2, stores programs for operating the information processing device 1, and the like. The HDD 104 may be a solid state drive (SSD) instead of an HDD.
[0026] The communication IF 105 is a communication interface that enables transmission and reception of data, control information, etc., with other devices. The communication IF 105 is based on standards such as Bluetooth (registered trademark) and Wi-Fi (registered trademark).
[0027] The input device 106 is a device used by the user H to operate the information processing device 1. The input device 106 may be, for example, a touch screen panel, a keyboard, a mouse, a trackball, or a pen-type input device.
[0028] The output device 107 is a display device used to display information, a graphical user interface (GUI) for operation input, etc. The output device 107 is a liquid crystal display, an organic electro-luminescence (EL) display, etc. The input device 106 and the output device 107 may be integrally formed as a touch panel.
[0029] The hardware configuration shown in FIG. 2 is an example. Devices other than those shown in FIG. 2 may be added, or some devices may not be provided. Some of the devices shown in FIG. 2 may be replaced with other devices having similar functions. Furthermore, some functions of this embodiment may be provided by other devices via a network. The functions of this embodiment may be realized by distributing them among multiple devices. The hardware configuration shown in FIG. 2 can be modified as appropriate.
[0030] 3 is a functional block diagram of the information processing device 1 in the first embodiment. The information processing device 1 includes an acquisition unit 111, an aggregation / merger processing unit 112, an aggregation conversion unit 113, a merge conversion unit 114, an output unit 115, and a storage unit 116. The function of the acquisition unit 111 is realized by the communication IF 105 and / or the input device 106.
[0031] The functions of the aggregation / merger processing unit 112, the aggregation conversion unit 113, and the merge conversion unit 114 are realized by the CPU 101 loading programs stored in the ROM 103, the HDD 104, etc. into the RAM 102 and executing them. The function of the output unit 115 is realized by the communication IF 105 and / or the output device 107. The storage unit 116 is at least one of the RAM 102, the ROM 103, and the HDD 104. The storage unit 116 may be an external HDD, a flash memory, or the like.
[0032] 4 is a schematic diagram showing the aggregation and merging process in the first embodiment. The initial input table (t0) is represented by a table with 5 rows and 2 columns, but the number of rows and columns is not limited to this. The initial input table represents a time and an amount of virtual currency corresponding to that time. The acquisition unit 111 acquires the time and the amount of virtual currency corresponding to that time. The time in the initial input table may be referred to as a first plurality of values, and the amount of virtual currency may be referred to as a second plurality of values.
[0033] First, in process (1), the aggregation and merging processor 112 groups the initial input table and groups the amounts of virtual currency in each group according to the rule (first criterion) that the time is divided into one-hour intervals. For example, the aggregation and merging processor 112 groups the initial input table into amounts acquired between 10:00 and 11:00 on May 28th, amounts acquired between 11:00 and 12:00 on May 28th, and amounts acquired between 9:00 and 10:00 on May 29th.
[0034] In process (2), the aggregation and merge processing unit 112 aggregates the average value for each time period (group) as an aggregated table (t1) as a first aggregation process. In the first aggregation process, the rule of "taking the average value" may be referred to as a second criterion. Since the aggregation and merge processing unit 112 groups the time acquired by the acquisition unit 111 by hour, the number of rows in t1 is 3. In other words, since the aggregation and merge processing unit 112 extracts the average value (an example of a feature) for each hour for the input table, the number of rows in the output t1 is reduced to 3 compared to the number of input rows of 5. In the present disclosure, the aggregation process may be rephrased as an aggregation command or an intermediate table generation command.
[0035] In process (3), the aggregation merge processor 112 merges t1 with the corresponding time in the original table as a first merge process. The merge result is represented as t2. At t2, the aggregation merge processor 112 adds (merges) the average value for the 10 o'clock hour of 23522.5 to the column corresponding to the times 10:23 and 10:45. The aggregation merge processor 112 adds (merges) the average value for the 11 o'clock hour of 23336.5 to the column corresponding to the times 11:45 and 11:52. The aggregation merge processor 112 adds (merges) the average value for the 9 o'clock hour of May 29th of 24468 to the column corresponding to the time 9:42. Here, the number of rows in the merged table (intermediate table t2) is 5 as a result of the first merge process.
[0036] In this disclosure, a join operation (join command) is a process or command that takes two tables as arguments. The join operation adds data contained in the table that is the second argument to the table that is the first argument. The processes of obtaining (selecting), grouping, and aggregating initial input tables may be collectively referred to as SGA.
[0037] FIG. 5 is a schematic diagram showing the aggregation and merging process in the first embodiment. The diagram shown in FIG. 5 shows a continuation of the process shown in FIG. 4. The process shown in FIG. 5 relates to the process flow 1, as in FIG. 4. As process (4), the aggregation merging process unit 112 executes the second aggregation process after acquiring (selecting) the merged table t2. In the second aggregation process, the aggregation merging process unit 112 groups the amount of virtual currency by hour. The aggregation merging process unit 112 acquires the maximum value for each time period as the aggregated table t3. The rule of taking the maximum value in the second aggregation process may be referred to as the fourth criterion. Since the aggregation merging process unit 112 extracts the maximum value (an example of a feature) for each hour from the input table, the number of rows of the output t3 is reduced to 3 compared to the number of rows of the input 5.
[0038] In process (5), as a second join process, the aggregation join processor 112 joins t3 to table t2. The join result is represented as joined table t4. The result of the aggregation process joined to the initial input table t0 as joined table t4 (i.e., the average and maximum values for each time period) may be referred to as the feature of the input table. The feature may be used as training data in machine learning.
[0039] Fig. 6 is a flowchart showing the process flow of process flow 1 by the feature extraction program in the first embodiment. In the example of Fig. 6, the feature extraction program includes a group of instructions for instructing the execution of process flow 1. The flowchart shown in Fig. 6 corresponds to the process flows in Figs. 4 and 5.
[0040] In step S101, the feature extraction program commands acquisition of an input table (initial input table). The input table includes a first plurality of values and a second plurality of values. Each of the second plurality of values corresponds to each of the first plurality of values. The input table is represented by a plurality of rows and columns. The input table may be an initial table T0.
[0041] In step S102, the feature extraction program issues a command to group the data included in the acquired input table according to a predetermined rule (first criterion). The first criterion will be described in detail later.
[0042] In step S103, the feature extraction program commands a first aggregation process to be performed for each group according to a predetermined rule (second criterion). The first aggregation process may be expressed as t1 = sga1(t0, R2), where t0 and t1 represent input and output, respectively. t0 may be expressed as a first argument. R2 represents the second criterion. Details of the first aggregation process and the second criterion will be described later.
[0043] In step S104, the feature extraction program commands the execution of a first joining process for t0. The first joining process is a process of joining t1 to t0. The first joining process may be expressed as t2 = join1 (t0, t1). The joining process may be referred to as the third criterion. Details of the first joining process will be described later.
[0044] In step S105, the feature extraction program commands execution of a second aggregation process for t2 (the output of the first combination process). The second aggregation process may be expressed as t3 = sga2(t2, R4), where R4 represents the fourth criterion. Details of the second aggregation process and the fourth criterion will be described later.
[0045] In step S106, the feature extraction program commands execution of a second join process for t2. The second join process is a process for joining t3 to t2. The second join process may be expressed as t4 = join2(t2, t3). Details of the second join process will be described later. This is the end of the command by the feature extraction program.
[0046] Fig. 7 is a schematic diagram showing aggregation and combination processing in the first embodiment. In other words, Fig. 7 shows the flow of process flow 2 in Fig. 1. The aggregation conversion unit 113 executes aggregation conversion processing so as to change the input and output of the second aggregation processing in process flow 1, and rewrites the feature extraction program. In the example of Fig. 7, the feature extraction program is a group of instructions that instructs the execution of process flow 2.
[0047] The combination conversion unit 114 executes a combination conversion process to change the inputs of the first and second combination processes and the output of the first combination process, and rewrites the feature extraction program. As a result, the process indicated by the feature extraction program corresponds to process flow 2. The processes of the aggregation conversion unit 113 and the combination conversion unit 114 will be described later.
[0048] After obtaining (selecting) the initial input table t0, as process (1), the aggregation and merge processing unit 112 aggregates the average values for each time period when the amount of virtual currency is grouped by hour in the first aggregation process, into aggregated table t1.
[0049] As process (2), in the second aggregation process, the aggregation and merging processor 112 groups the amounts of virtual currency by hour. The aggregation and merging processor 112 aggregates the maximum values for each time period as an aggregated table t2.
[0050] As process (3), in a first join process, aggregation join processor 112 joins aggregate tables t1 and t2 to obtain joined table t3. As a result of the first join process, the number of rows in the joined table (intermediate table t3) remains 3, and in this respect process flow 2 differs from process flow 1.
[0051] As process (4), the aggregation and join processor 112 joins the initial input table t0 and the joined table t3 in a second join process to obtain a joined table t4.
[0052] The final joined table t4 obtained by the process flow 1 shown in FIGS. 4 and 5 and the final joined table t4 obtained by the process flow 2 shown in FIG. 7 have the same contents.
[0053] On the other hand, in the process flow 1 shown in Figs. 4 and 5, when the aggregation merge processor 112 performs the first join process, the aggregate table t1 with the number of rows of 3 is joined to the initial input table t0 with the number of rows of 5, and the joined table t2 is obtained as an intermediate table. As a result, the intermediate table t2 has 5 elements. On the other hand, in the process flow 2 shown in Fig. 7, when the aggregation merge processor 112 performs the first join process, the number of rows of the join targets t1 and t2 is 3. As a result, the aggregation merge processor 112 obtains the joined table t3 as an intermediate table, but the number of rows of t3 is 3. Therefore, the size of the intermediate table can be made smaller in the process flow 2 than in the process flow 1. In other words, the conversion to the process flow 2 can reduce the processing load more than the process flow 1.
[0054] 8 is a flowchart showing the flow of program conversion processing in the first embodiment. The program conversion processing is processing in which the combination conversion unit 114 converts a program that executes a process flow 1 into a program that executes a process flow 2.
[0055] In step S1101, the acquisition unit 111 acquires a feature extraction program. As in the examples of Fig. 6 and 7, in the example of Fig. 8, the feature extraction program is a group of instructions that instructs the execution of a series of processes related to process flow 1. The acquisition unit 111 may read out the feature extraction program from the storage unit 116. The feature extraction program includes a first table join instruction, a second table join instruction, and a first intermediate table generation instruction.
[0056] The first table join instruction and the second table join instruction are instructions to execute a table join process. The aggregation join processing unit 112 executes the second table join instruction following the first table join instruction. The first intermediate table generation instruction is an instruction to generate an intermediate table that exists after the generation of the initial input table and before the generation of the final joined table. The first intermediate table generation instruction may be an instruction to execute an aggregation process (SGA). Processing proceeds to step S1102.
[0057] In step S1102, the join conversion unit 114 judges whether the data table that is the first argument of the first argument of the second table join instruction is a data table generated by the first table join instruction. If the judgment result is Yes, the process proceeds to step S1103. If the judgment result is No, the process ends.
[0058] In step S1103, the join conversion unit 114 judges whether the data table that is the second argument of the second table join instruction is a data table generated by the first intermediate table join instruction. If the judgment result is Yes, the process proceeds to step S1104. If the judgment result is No, the process ends.
[0059] In step S1104, the join conversion unit 114 sets the data table, which is the first argument of the first table join instruction, as the first argument of the second table join instruction. Here, the data table, which is the first argument of the first table join instruction, may be the initial input table. The process proceeds to step S1105.
[0060] In step S1105, the join conversion unit 114 sets the data table, which is the second argument of the first table join instruction, to the first argument of the first table join instruction. The data table, which is the second argument of the first table join instruction, may be generated by the SGA process. The process proceeds to step S1106.
[0061] In step S1106, the join conversion section 114 sets the data table generated by the first intermediate table generation command to the second argument of the first table join command. The process proceeds to step S1107.
[0062] In step S1107, join conversion unit 114 sets the data table generated by the first table join instruction after the argument change in steps S1105 and S1106 to the second argument of the second table join instruction. Aggregation join processing unit 112 obtains a final table by executing the second table join instruction. Here, the first table join instruction corresponds to the first join process, and the second table join instruction corresponds to the second join process. The first argument in the first table join instruction after the argument change may be the initial input table.
[0063] In steps S1105 and S1106, if both of the two arguments in the first table join instruction are obtained by SGA processing, the size of the data table (i.e., the intermediate table) generated by the first table join instruction is small. This makes it possible to reduce the size of the intermediate table when obtaining the features of the input data as a final table after the generation of the intermediate table, thereby reducing the processing load.
[0064] Second Embodiment FIG. 9 is a flowchart showing the flow of a program conversion process in the second embodiment.
[0065] In step S2101, the acquisition unit 111 acquires a feature extraction program. The process proceeds to step S2102.
[0066] In step S2102, the join conversion unit 114 determines whether the first argument of the second table join instruction is a data table generated by the first table join instruction. If the result of the determination is Yes, the process proceeds to step S2103. If the result of the determination is No, the process ends.
[0067] In step S2103, the join conversion unit 114 judges whether the second argument of the second table join instruction is a data table generated by the first intermediate table generation instruction. If the judgment result is Yes, the process proceeds to step S2104. If the judgment result is No, the process ends.
[0068] In step S2104, the join conversion unit 114 determines whether the second argument of the first table join instruction is generated by the second intermediate table generation instruction. The second intermediate table generation instruction is an intermediate table generation instruction including grouping that forms the same groups as the groups formed by grouping the rows of the data table in the first intermediate table generation instruction. If the determination result is Yes, the process proceeds to step S2105. In this case, the processes from step S1104 onwards in the first embodiment are executed. If the determination result is No, the process proceeds to step S2106.
[0069] In step S2106, the join conversion unit 114 determines whether the second argument of the first table join instruction is generated by the second intermediate table generation instruction. Here, the second intermediate table generation instruction may be an intermediate table generation instruction including grouping that forms a group having an inclusion relationship with the grouping of the rows of the data table in the first intermediate table generation instruction. If the determination result is Yes, the process proceeds to step S2107. In this case, the processes from step S1104 onwards in the first embodiment are executed. The aggregation join processing unit 112 obtains the final table by executing the second table join instruction.
[0070] Here, "having an inclusion relationship" refers to a case where one grouping unit contains the other grouping unit. For example, consider a case where one grouping unit groups the values contained in a data table into 5-minute intervals, and the other grouping group the values contained in the data table into 60-minute intervals. In this case, since 60 is a multiple of 5, one grouping unit can be considered to contain the other grouping unit.
[0071] In steps S1105 and S1106, if both of the two arguments in the first table join instruction are obtained by SGA processing, the size of the data table (i.e., the intermediate table) generated by the first table join instruction is small. This makes it possible to reduce the size of the intermediate table when obtaining the features of the input data as a final table after the generation of the intermediate table, thereby reducing the processing load.
[0072] (Third embodiment) FIG. 10 is a flowchart showing the flow of a program conversion process in the third embodiment.
[0073] In step S3101, the acquisition unit 111 acquires a feature extraction program. The process proceeds to step S3102.
[0074] In step S3102, the join conversion unit 114 determines whether or not one or more intermediate table generation instructions are included between the third table join instruction and the fourth table join instruction. The aggregation join processing unit 112 is configured to execute the fourth table join instruction after executing the third table join instruction. If the determination result is Yes, the process proceeds to step S3103. If the determination result is No, the process ends.
[0075] In step S3103, the join conversion unit 114 judges whether any of the data tables that are arguments of one or more intermediate table generation instructions is different from the data table generated by the third table join instruction. If the judgment result is Yes, the process proceeds to step S3104. If the judgment result is No, the process ends.
[0076] In step S3104, the join conversion unit 114 sets a third table join instruction between the intermediate table generation instruction and the fourth table join instruction. The fourth table join instruction may be an instruction to generate a final table. The join conversion unit 114 may replace the second table join instruction with a first table join instruction. The join conversion unit 114 may replace the fourth table join instruction with a second table join instruction process. The process proceeds to step S3105. Note that the third table join instruction corresponds to the first join process, and the fourth table join instruction corresponds to the second join process.
[0077] In step S3105, the join conversion unit 114 executes the processes in steps S1102 and after. Then, the process ends. In steps S1105 and S1106, if both of the two arguments in the first table join command are obtained by SGA processing, the size of the data table (i.e., the intermediate table) generated by the first table join command is small. This makes it possible to reduce the size of the intermediate table when acquiring the feature amount of the input data as a final table after the generation of the intermediate table, thereby reducing the processing load.
[0078] (Fourth embodiment) FIG. 11 is a flowchart showing the flow of a program conversion process in the fourth embodiment.
[0079] In step S4101, the acquisition unit 111 acquires a feature extraction program. The process proceeds to step S4102.
[0080] In step S4102, the aggregation conversion unit 113 judges whether the data table that is the argument of the third intermediate table generation command has been generated by the fifth table join command. If the judgment result is Yes, the process proceeds to step S4103. If the judgment result is No, the process ends.
[0081] In step S4103, aggregation conversion unit 113 determines whether one of the two data tables that are arguments of the fifth table join instruction has been generated by the fourth intermediate table generation instruction. The other of the two data tables that are arguments of the fifth table join instruction is the argument of the fourth intermediate table generation instruction. If the determination result is Yes, the process proceeds to step S4104. If the determination result is No, the process ends.
[0082] In step S4104, aggregation conversion unit 113 determines whether or not the column referenced in the third intermediate table generation command, among the columns of the data table generated by the fifth table join command, is included in the columns of the data table that are the arguments of the fourth intermediate table generation command. Note that the "column" corresponds to the "price" in the right column in the "initial input data (initial input table)" shown in FIG. 4, and indicates the column that is the target of the aggregation process. If the determination result is Yes, the process proceeds to step S4105. If the determination result is No, the process ends.
[0083] In step S4105, the aggregation conversion unit 113 sets the argument of the third intermediate table generation command to the data table that is to be the argument of the fourth intermediate table generation command. The third intermediate table generation command may be a second aggregation process (command). The process proceeds to step S4106, and the join conversion unit 114 executes the processes from step S1102 onwards. Thereafter, the process ends. Note that the third intermediate table generation command corresponds to the second aggregation process, and the fourth intermediate table generation command corresponds to the first aggregation process. The fifth table join command corresponds to the first join process.
[0084] In steps S1105 and S1106, if both of the two arguments in the first table join instruction are obtained by SGA processing, the size of the data table (i.e., the intermediate table) generated by the first table join instruction is small. This makes it possible to reduce the size of the intermediate table when obtaining the features of the input data as a final table after the generation of the intermediate table, thereby reducing the processing load.
[0085] Furthermore, the data table generated by the second table join command may include features used as training data in machine learning.
[0086] In addition, the data table that becomes the first argument of the second table join instruction after the argument change may be the initial input table, or may include a first plurality of values and a second plurality of values corresponding to the first plurality of values.
[0087] Moreover, the groups resulting from grouping the rows of the data table in the first intermediate table generation command are grouped based on a predetermined criterion and include feature amounts.
[0088] Fifth embodiment FIG. 12 is a flowchart showing the flow of a program conversion process in the fifth embodiment.
[0089] In step S5101, the acquisition unit 111 acquires a feature extraction program. As in the examples of Figs. 6 and 7, in the example of Fig. 12, the feature extraction program is a group of instructions that instructs the execution of a series of processes. The acquisition unit 111 may read out the feature extraction program from the storage unit 116. The feature extraction program instructs the acquisition of input data (initial input data, initial input table) including a first plurality of values and a second plurality of values. The first plurality of values is, for example, a time. The second plurality of values is, for example, an amount of virtual currency corresponding to each time (first plurality of values).
[0090] The feature extraction program also commands the generation of features (final table) of the data contained in the input table by executing a first aggregation process (first aggregation command, first intermediate table generation command), a first join process (first join command, first table join command), a second aggregation process (second aggregation command, second intermediate table generation command), and a second join process (second join command, second table join command).
[0091] In the first aggregation process, the feature extraction program generates a first aggregated value (aggregated data t1 or aggregated table t1) based on a first argument (t0) including a first plurality of values and a second plurality of values, and a first criterion and a second criterion. t0 is assumed to be the same as that shown in FIG. 4. The feature extraction program includes a function sga1() for executing the first aggregation process. t0 is an argument of sga1(). t1 is the output of sga1().
[0092] In the first join process, the feature extraction program commands generating first joined data (intermediate data t2 or joined table t2) based on a second argument (t0) including a first plurality of values and a second plurality of values, a third argument (t1) including a first aggregated value, and a third criterion. The feature extraction program includes a function join1() for executing the first join process. t0 and t1 are arguments of join1(). t2 is the output of join1().
[0093] In the second aggregation process, the feature extraction program commands generating a second aggregated value (aggregated data t3 or aggregated table t3) based on a fourth argument including the first combined data (t2) and a fourth criterion. The feature extraction program includes a function sga2() for executing the second aggregation process. The fourth argument is an argument of sga2(). The second aggregated value is the output of sga2().
[0094] In the second join process, the feature extraction program commands generating features of the input data by generating second joined data (final data t4 or final table t4) based on a fifth argument including the first joined data (t2), a sixth argument including the second aggregated value (t3), and a third criterion. The feature extraction program includes a function join2() for executing the second join process. The fifth and sixth arguments are arguments of join2(). t4 is the output of join2().
[0095] In addition, in the first aggregation process, the feature extraction program instructs the following: grouping the second plurality of values into a plurality of groups based on a first criterion (e.g., grouping by hour); and obtaining a first aggregated value based on the values contained in each of the plurality of groups and a second criterion (e.g., obtaining the average value of the second plurality of values for each group).
[0096] In addition, in the second aggregation process, the feature extraction program instructs obtaining a second aggregated value based on the values contained in each of the multiple groups and a fourth criterion (e.g., obtaining the maximum value of the second multiple values for each group).
[0097] In step S5102, the aggregation conversion unit 113 acquires a table generated based on the feature extraction program. The process proceeds to step S5103.
[0098] In step S5103, the aggregation conversion unit 113 determines whether the acquired table is a table obtained by aggregation processing. If the determination result is Yes, the aggregation conversion unit 113 advances the process to step S5104. If the determination result is No, the process ends.
[0099] In step S5104, the aggregation conversion unit 113 judges whether the acquired table includes a table obtained by a join process. Specifically, the aggregation conversion unit 113 judges whether the argument (fourth argument) of the aggregation process described in step S5103 is a table obtained by a join process (third criterion) in which the seventh argument and the eighth argument are input. If the judgment result is Yes, the process proceeds to step S5105. If the judgment result is No, the process ends. The process in this step corresponds to the process in step S4102 in the fourth embodiment.
[0100] In step S5105, the aggregation conversion unit 113 determines whether the second argument (the eighth argument) in the joining process in step S5104 is obtained by the ninth argument and the aggregation process (the second or fourth criterion). If the result of the determination is Yes, the process proceeds to step S5106. If the result of the determination is No, the process ends.
[0101] In step S5106, the aggregation conversion unit 113 judges whether the table of the first argument (seventh argument) in the joining process described in step S5104 and the table of the target (ninth argument) of the joining process described in step S5105 are initial input data (t0) including the first multiple values and the second multiple values. If the judgment result is Yes, the aggregation conversion unit 113 judges that the joining process described in step S5104 is a joining process in which the result of the aggregation from the initial input data t0 is added to t0 (i.e., the first joining process), and proceeds to the process of step S5107. If the judgment result is No, the process ends. The processes of steps S5105 and S5106 correspond to the process of step S4103 in the fourth embodiment.
[0102] In step S5107, aggregation conversion unit 113 determines whether the argument (fourth argument, or target table) in the aggregation process described in step S5103 includes all of the initial input data. That is, aggregation conversion unit 113 determines whether the argument (target table) in the aggregation process described in step S5103 includes a table that has not been subjected to aggregation processing. The process of step S5107 corresponds to the process of step S4104 in the fourth embodiment.
[0103] If the determination result is Yes, aggregation conversion unit 113 determines that the table acquired in step S5102 is a table obtained by the second aggregation process. That is, aggregation conversion unit 113 determines that the aggregation process described in step S5103 is the second aggregation process. Aggregation conversion unit 113 replaces the target table (fourth argument) in the aggregation process described in step S5103 shown in the feature extraction program with t0 (first argument).
[0104] As a result, the aggregated value (third aggregated value) generated by the aggregation process described in step S5103 corresponds to the result of the aggregation process based on the fourth criterion performed by the aggregation and combination processing unit 112 on the initial input data t0. These processes correspond to the process of step S4105 in the fourth embodiment. The aggregation conversion unit 113 may update the feature extraction program and store it in the storage unit 116. The output unit 115 may output or display the updated feature extraction program.
[0105] 13 is a flowchart showing the flow of join conversion processing in the fifth embodiment. The join conversion processing is processing in which the join conversion unit 114 converts the inputs of the first and second join processing in process flow 1. As a result, in process flow 2, the output of the first join processing, that is, the contents of the intermediate table T1', will be different from that in process flow 1.
[0106] In step S6101, the combination conversion section 114 acquires a table generated by the feature extraction program by reading it from the storage section 116. The combination conversion section 114 advances the process to step S6102.
[0107] In step S6102, the join conversion unit 114 judges whether or not the acquired table is a table obtained by join processing. If the judgment result is Yes, the process proceeds to step S6103. If the judgment result is No, the process ends.
[0108] In step S6103, the combination conversion unit 114 judges whether or not the first argument (fifth argument) of the combination process in step S6102 can be obtained by the combination process (third criterion) with the tenth and eleventh arguments. The process in this step corresponds to the process in step S1102 in the first embodiment. If the judgment result is Yes, the process proceeds to step S6104. If the judgment result is No, the process ends.
[0109] In step S6104, the merge conversion unit 114 judges whether the second argument (sixth argument) of the merge process in step S6102 is generated based on the twelfth argument, the first criterion, and the aggregation process (second or fourth criterion). This step corresponds to the process of step S1103 in the first embodiment. If the judgment result is Yes, the process proceeds to step S6105. If the judgment result is No, the process ends.
[0110] In step S6105, it is determined whether the tenth argument and the twelfth argument are the same table (initial input data including the first and second multiple values). If the result of the determination is Yes, the process proceeds to step S6106. If the result of the determination is No, the process ends.
[0111] In step S6106, it is determined whether the eleventh argument is generated based on the initial input data (t0), the first criterion, and the aggregation process (the second or fourth criterion). The process of this step corresponds to the process of step S2105 in the second embodiment. If the result of the determination is Yes, the process proceeds to step S6107. If the result of the determination is No, the process ends.
[0112] In step S6107, the merge conversion unit 114 judges whether the aggregation process in step S6104 and the aggregation process in step S6106 are grouped by the same rule (first criterion). Note that one grouping rule may be included in the other grouping rule, not necessarily the same rule. The process in this step corresponds to the process in step S2106 in the second embodiment.
[0113] Here, "included" may mean, for example, that one grouping rule groups the first plurality of values at 5-minute intervals and performs a counting process on the second plurality of values included in each group based on the second or fourth criterion. And the other grouping rule may group the first plurality of values at 60-minute intervals and performs a counting process on the second plurality of values included in each group based on the second or fourth criterion. If the determination result is Yes, the process proceeds to step S6108. If the determination result is No, the process ends.
[0114] In step S6108, the merge conversion unit 114 determines that the merge process described in step S6104 is the first merge process, defines a third merge process as a process replacing the first merge process, and rewrites the feature extraction program. The third merge process is a process that generates third merged data using the second argument and the third aggregated value as input. The process of this step corresponds to the processes of steps S1105 and S1106 in the first embodiment. The process proceeds to step S6109.
[0115] In step S6109, the join conversion unit 114 determines that the table acquired in step S6102 is obtained by the second join process. The join conversion unit 114 rewrites the feature extraction program so that the second join data is generated by using the first argument instead of the fifth argument (i.e., as the first argument) and the third join data instead of the sixth argument (i.e., as the second argument) in the second join process. These processes correspond to the processes in steps S1104 and S1107 in the first embodiment. The join conversion unit 114 may store the rewritten feature extraction program in the storage unit 116. The output unit 115 may output the rewritten feature extraction program. Here, the second join data generated in step S6109 is the same as the join data finally generated in the case of the process flow 1.
[0116] As described above, the information processing device according to the present disclosure acquires an input table including a first plurality of values and a second plurality of values, and performs a first aggregation process based on a first argument including the first plurality of values and the second plurality of values, a first criterion and a second criterion, a first join process to generate first combined data based on a second argument including the first plurality of values and the second plurality of values, a third argument including the first aggregated value, and the third criterion, a second aggregation process based on a fourth argument including the first combined data and the fourth criterion, and a second join process to generate second combined data based on a fifth argument including the first combined data, a sixth argument including the second aggregated value, and the third criterion, thereby acquiring input data. the acquisition means for acquiring a feature extraction program that commands the generation of features of the force data; an aggregation conversion means for replacing, based on the generation process of the fourth argument, the second aggregation process with a process of aggregating the first argument into a third aggregated value by using the first argument in place of the fourth argument; and a combination conversion means for replacing, based on the generation process of the fifth argument and the sixth argument, the first combination process with a process of generating third combined data by using the third aggregated value in place of the second argument, and for replacing, based on the generation processes of the fifth argument and the sixth argument, the second combination process with a process of generating second combined data by using the first argument in place of the fifth argument and the third combined data in place of the sixth argument.
[0117] This makes it possible to reduce the size of the intermediate table when the feature quantities of the input data are obtained as a final table after the generation of the intermediate table, thereby reducing the processing load.
[0118] Furthermore, when the feature extraction program indicates that in the first aggregation process, the second plurality of values are grouped into a plurality of groups based on a first criterion and aggregated as a first aggregated value based on the values included in each of the plurality of groups and the second criterion, and in the second aggregation process, the feature extraction program indicates that the second plurality of values are aggregated as a second aggregated value based on the values included in each of the plurality of groups and a fourth criterion, and the feature extraction program indicates that the fourth argument is generated based on the seventh argument and the eighth argument and the third criterion, the eighth argument is generated based on the ninth argument and the second or fourth criterion, the seventh argument and the ninth argument include the first plurality of values and the second plurality of values, and the fourth argument includes input data, the aggregation conversion means converts the first argument into a value corresponding to the fourth argument in the second aggregation process. and when the feature extraction program indicates that the fifth argument is generated based on the tenth argument, the eleventh argument, and the third criterion, the sixth argument is generated based on the twelfth argument, the first criterion, and either the second or fourth criterion, the tenth argument and the twelfth argument include a first plurality of values and a second plurality of values, and the eleventh argument is generated based on the first argument, the first criterion, and the second or fourth criterion, the join conversion means replaces the first join process with a process of generating third joined data by using the third aggregated value in place of the second argument, and replaces the second join process with a process of generating second joined data by using the first argument in place of the fifth argument and using the third joined data in place of the sixth argument.
[0119] This makes it possible to reduce the size of the intermediate table when the feature quantities of the input data are obtained as a final table after the generation of the intermediate table, thereby reducing the processing load.
[0120] Furthermore, the feature amount may be used as training data in machine learning. Furthermore, each of the second plurality of values corresponds to each of the first plurality of values.
[0121] Additionally, the first aggregate value includes an aggregate value corresponding to each of the multiple groups.
[0122] Furthermore, the aggregate value corresponding to each of the plurality of groups is the average value, the minimum value, or the maximum value of the values included in each of the plurality of groups.
[0123] This makes it possible to reduce the size of the intermediate table when the feature quantities of the input data are obtained as a final table after the generation of the intermediate table, thereby reducing the processing load.
[0124] Although an embodiment of the present invention has been described in detail above with reference to the drawings, the specific configuration is not limited to this embodiment, and designs that do not deviate from the gist of the present invention are also included.
[0125] The scope of each embodiment also includes a processing method in which a program that operates the configuration of the embodiment to realize the functions of the above-mentioned embodiment is recorded on a storage medium, the program recorded on the storage medium is read as code, and executed on a computer. That is, a computer-readable storage medium is also included in the scope of each embodiment. In addition, not only the storage medium on which the above-mentioned program is recorded, but also the program itself is included in each embodiment. Furthermore, one or more components included in the above-mentioned embodiments may be circuits such as ASICs (Application Specific Integrated Circuits) and FPGAs (Field Programmable Gate Arrays) configured to realize the functions of each component.
[0126] Examples of the storage medium that can be used include a floppy disk, a hard disk, an optical disk, a magneto-optical disk, a CD (Compact Disk)-ROM, a magnetic tape, a non-volatile memory card, and a ROM. In addition, the scope of each embodiment does not include those that execute processing by themselves recorded on the storage medium, but also those that execute processing by operating on an OS (Operating System) in cooperation with other software and functions of an expansion board.
[0127] The services realized by the functions of the above-described embodiments can also be provided to users in the form of SaaS (Software as a Service).
[0128] It should be noted that the above-described embodiments are merely examples of the implementation of the present disclosure, and the technical scope of the present disclosure should not be interpreted as being limited by these embodiments. In other words, the present disclosure can be implemented in various forms without departing from its technical concept or main features.
[0129] FIG. 14 is a diagram showing a minimum configuration of the information processing device 1 in this disclosure. The information processing device 1 according to this embodiment is required to include at least the combination conversion unit 114. The flow of processing by the combination conversion unit 114 is the same as the processing from step S1102 to step S1107 in the flowchart shown in FIG. [Explanation of symbols]
[0130] 1. Information processing device 101 CPU 102 RAM 103 ROM 104 HDD 105 Communication Interface 106 Input Devices 107 Output Device 111 Acquisition Department 112 Aggregation and Join Processing Unit 113 Aggregation conversion unit 114 Bond conversion section 115 Output section 116 Memory section
Claims
1. a join conversion means for, when a data table serving as a first argument of a second table join instruction, which is a table join instruction executed following a first table join instruction, which is a table join instruction, in a program to be converted, is a data table generated by the first table join instruction, and a data table serving as a second argument of the second table join instruction is a data table generated by a first intermediate table generation instruction, which is an intermediate table generation instruction having as an argument the data table serving as the first argument of the first table join instruction, setting the data table serving as the first argument of the first table join instruction to be input as a first argument of the second table join instruction, setting the data table generated by the first intermediate table generation instruction to the second argument of the first table join instruction, and setting the data table generated by the first table join instruction after argument change to the second argument of the second table join instruction. Information processing device.
2. the join conversion means performs a process of: when a data table serving as a first argument of the second table join instruction is a data table generated by the first table join instruction, a data table serving as a second argument of the second table join instruction is a data table generated by the first intermediate table generation instruction, and the data table serving as the second argument of the first table join instruction is a data table generated by a second intermediate table generation instruction which is an intermediate table generation instruction including a grouping that forms the same group as the grouping of rows of the data table in the first intermediate table generation instruction, or a group having an inclusion relationship with the grouping of rows of the data table in the first intermediate table generation instruction, the join conversion means sets the data table serving as the first argument of the first table join instruction to be inputted into a first argument of the second table join instruction; sets the data table generated by the first intermediate table generation instruction to be inputted into a second argument of the first table join instruction; and sets the data table generated by the first table join instruction after argument change to a second argument of the second table join instruction. The information processing device according to claim 1 .
3. the join conversion means performs a process of setting the third table join instruction between the one or more intermediate table generation instructions and the fourth table join instruction, when, among the plurality of table join instructions included in the program to be converted, one or more intermediate table generation instructions are included between a third table join instruction and a fourth table join instruction executed after the third table join instruction, and all of the data tables serving as arguments of the intermediate table generation instructions are different from the data table generated by the third table join instruction, the join conversion means performs a process of setting the third table join instruction between the one or more intermediate table generation instructions and the fourth table join instruction, and a data table serving as a first argument of the second table join instruction is a data table generated by the first table join instruction, and when the data table serving as the second argument of the second table join instruction is a data table generated by the first intermediate table generation instruction, a process is performed in which the data table serving as the first argument of the first table join instruction is set to be input as a first argument of the second table join instruction, the data table serving as the second argument of the first table join instruction is moved to the first argument of the first table join instruction, the data table generated by the first intermediate table generation instruction is set as the second argument of the first table join instruction, and the data table generated by the first table join instruction after the argument change is set as the second argument of the second table join instruction.
3. The information processing device according to claim 1 or 2.
4. the data table serving as an argument of a third intermediate table generation instruction, which is an intermediate table generation instruction included in the program to be converted, is generated by a fifth table join instruction, which is the table join instruction, and one of the two data tables serving as an argument of the fifth table join instruction is generated by a fourth intermediate table generation instruction, which is an intermediate table generation instruction having the other of the two data tables as an argument, and a column referenced by the third intermediate table generation instruction, among columns of the data table generated by the fifth table join instruction, is included in the columns of the data table serving as an argument of the fourth intermediate table generation instruction, the join conversion means performs, for the program after processing by the aggregation conversion means, when a data table serving as a first argument of the second table join instruction is a data table generated by the first table join instruction and a data table serving as a second argument of the second table join instruction is a data table generated by the first intermediate table generation instruction, a process of setting the data table serving as the first argument of the first table join instruction to the first argument of the first table join instruction, setting the data table serving as the second argument of the first table join instruction to be input to the first argument of the first table join instruction, setting the data table serving as the second argument of the first table join instruction to be input to the data table generated by the first intermediate table generation instruction, and performing a process of setting the data table generated by the first table join instruction after argument change to the second argument of the second table join instruction. The information processing device according to claim 1 .
5. The data table generated by the second table join command includes features used as training data in machine learning. The information processing device according to claim 1 .
6. The data table that is the first argument of the second table join instruction after the argument change includes a first plurality of values and a second plurality of values that correspond to the first plurality of values. The information processing device according to claim 1 .
7. The groups by grouping the rows of the data table in the first intermediate table generation command are grouped based on a predetermined criterion, and include the feature amount. The information processing device according to claim 5 .
8. 1. A method for use in a computer, comprising: in a program to be converted, when a data table serving as a first argument of a second table join instruction, which is a table join instruction executed following a first table join instruction, is a data table generated by the first table join instruction, and a data table serving as a second argument of the second table join instruction is a data table generated by a first intermediate table generation instruction, which is an intermediate table generation instruction that takes as an argument the data table serving as the first argument of the first table join instruction, setting is performed so that the data table serving as the first argument of the first table join instruction is input as a first argument of the second table join instruction, A data table serving as a second argument of the first table join instruction is set to be input as a first argument of the first table join instruction; The data table generated by the first intermediate table generation command is set as a second argument of the first table join command; a step of setting a data table generated by the first table join instruction after the argument change to a second argument of the second table join instruction; method.
9. On the computer, in a program to be converted, when a data table serving as a first argument of a second table join instruction, which is a table join instruction executed following a first table join instruction, is a data table generated by the first table join instruction, and a data table serving as a second argument of the second table join instruction is a data table generated by a first intermediate table generation instruction, which is an intermediate table generation instruction that takes as an argument the data table serving as the first argument of the first table join instruction, setting is performed so that the data table serving as the first argument of the first table join instruction is input as a first argument of the second table join instruction, A data table serving as a second argument of the first table join instruction is set to be input as a first argument of the first table join instruction; The data table generated by the first intermediate table generation command is set as a second argument of the first table join command; A program for executing a step of setting a data table generated by the first table join instruction after the argument change to a second argument of the second table join instruction.
Citation Information
Patent Citations
Optimization method for inquiry to related database management system and syntax analytical method of result
JP1994208491A
Macro information generation system, macro information generation device, macro information generation method and macro information generation program
JP2007073024A
Method and device for clustering, program, and computer-readable recording medium
JP2007334388A
Data analysis support system and data analysis support method
JP2019168820A
Database Query Optimization
US20090177621A1