WO2016178312A1 - 情報処理装置、情報処理方法および記憶媒体 - Google Patents
情報処理装置、情報処理方法および記憶媒体 Download PDFInfo
- Publication number
- WO2016178312A1 WO2016178312A1 PCT/JP2016/002183 JP2016002183W WO2016178312A1 WO 2016178312 A1 WO2016178312 A1 WO 2016178312A1 JP 2016002183 W JP2016002183 W JP 2016002183W WO 2016178312 A1 WO2016178312 A1 WO 2016178312A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- data
- statistical value
- query
- blocks
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24545—Selectivity estimation or determination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
Definitions
- the present invention relates to an information processing apparatus, an information processing method, and a storage medium.
- Non-Patent Document 1 discloses that when statistical processing is performed using a data set, the data set is divided into two or more blocks and a statistical value for each block is calculated. ing. Non-Patent Document 1 also reduces the I / O (Input / Output) amount and calculation amount by omitting record scanning by reusing pre-calculated statistical values for each block. A technique for speeding up the statistical processing is disclosed.
- An object of the present invention is to provide a technique for solving the above-described problems.
- one aspect of an information processing apparatus is: Statistical value holding means for holding statistical values of data included in each block when a set of data is divided into two or more blocks;
- Query history holding means for holding, as a query history, information about past queries for the set of data;
- Estimating means for estimating a block size that minimizes an average cost for deriving an answer corresponding to a query using the statistical values of several blocks based on the query history;
- the block size estimated by the estimation means the set of data is divided to generate two or more blocks, and the statistical value is calculated for each generated block and the statistical value holding means And a block generation means to be held in the block.
- one aspect of an information processing method is: Holds information about past queries on a set of data as a query history, Based on the query history, a block size that minimizes an average cost for deriving an answer corresponding to the query is estimated using statistical values of several blocks, and according to the estimated block size, the data Are divided into two or more blocks, and the statistical value is calculated for each of the generated blocks.
- an information processing program stored in a storage medium includes: Holds information about past queries on a set of data as a query history, Based on the query history, estimate the block size that minimizes the average cost to derive the answer corresponding to the query using the statistics of several blocks; According to the estimated block size, the computer is caused to divide the data set to generate two or more blocks and to calculate the statistical value for each generated block.
- the information processing apparatus 100 is an apparatus that includes a statistical value holding unit 101, a block size estimation unit 102, a block generation unit 103, and an inquiry history holding unit 104.
- the statistical value holding unit 101 holds the statistical value of the data included in each block when the data set is divided into two or more blocks.
- the block size estimation unit 102 uses the statistical values of several blocks so that the average cost for deriving an answer corresponding to the query is minimized. Estimate the size.
- the block size is, for example, a size representing how many records are pre-calculated for statistical values when a set of data includes a table including two or more records.
- the block generation unit 103 generates two or more blocks by dividing a data set according to the block size estimated by the block size estimation unit 102, and calculates a statistical value for each generated block.
- the statistics value holding unit 101 holds it.
- the inquiry history holding unit 104 holds information related to past inquiries about a set of data as an inquiry history.
- the data set is divided by the block size estimated so that the average cost for deriving the answer corresponding to the query is minimized, and the statistical value calculated for each block is used for statistical processing. Since it is used, the execution time of statistical processing can be increased.
- a relational database system stores tabular data (hereinafter referred to as a table) based on a relational model, and provides users with efficient data search and update.
- a row in the table is called a record and represents one piece of data.
- Data can have several attributes, and a column in the table corresponds to each attribute.
- a ⁇ column name, data type> list of columns included in the table is called a schema of the table.
- the user of the relational database system instructs the relational database system to perform search processing and update processing for the table by using a programming language.
- This instruction is called a query.
- a programming language called SQL Structured Query Language
- SQL Structured Query Language
- Attribute statistical processing is one of the frequent processes in relational database systems.
- the attribute statistical processing is to calculate a certain statistical value from a value group of a predetermined attribute of the table. Examples of the statistical value include a maximum value, a minimum value, an average value, and a standard deviation.
- Attribute statistical processing is often performed for all or most records in the table. Therefore, when the table is huge, a large amount of records are scanned, and a large amount of I / O processing and calculation processing are generated, resulting in a long processing speed.
- FIG. 2 is a block diagram for explaining a functional configuration of the information processing apparatus according to the present embodiment.
- each block represents a functional unit configuration, not a hardware unit configuration.
- the information processing apparatus 200 includes a data input unit 201, a block generation unit 202, a data holding unit 203, a statistical value holding unit 204, and an inquiry receiving unit 205. Furthermore, the information processing apparatus 200 includes a query execution unit 206, a statistical value availability determination unit 207, a query history holding unit 208, and an optimum block size estimation unit 209. Each will be described below.
- the data input unit 201 inputs data to be processed by the information processing apparatus 200.
- An example of the data format is a table in a relational database system.
- the data input unit 201 acquires a set of data input from an external device.
- the data input unit 201 acquires a set of manually input data.
- the data input unit 201 may access an external device and input a set of data.
- the block generation unit 202 converts the data set input by the data input unit 201 into a file for storage in a storage device such as a main storage device or a secondary storage device. At this time, the block generation unit 202 communicates with the optimum block size estimation unit 209 and obtains a block size that is expected to be the fastest in the subsequent information processing. Further, the block generation unit 202 divides the data set input to the data input unit 201 according to the block size, and calculates a statistical value of data for each divided block. Then, the block generation unit 202 saves the data set in the data holding unit 203 and saves the statistical value of the data in the statistical value holding unit 204.
- the data holding unit 203 and the statistical value holding unit 204 may be in the same storage device or in different storage devices.
- the block generation unit 202 receives the number of records as the block size, horizontally divides the table for each number of records, and then calculates statistical values such as the maximum value and the minimum value of each attribute. And the statistical value is stored in the statistical value holding unit 204. In the present embodiment and thereafter, dividing a table with a record as a division unit is referred to as horizontal division.
- the block generation unit 202 may physically create a block or only create a logical block.
- physically creating a block there is a method in which the block is separately stored in the data holding unit 203 as different files.
- logically creating a block a set of data is stored in the data holding unit 203 as a single file.
- the data holding unit 203 holds the file created by the block generation unit 202 in a storage device.
- the storage device may be a main storage device or a secondary storage device.
- the statistical value holding unit 204 holds the statistical value for each block calculated by the block generation unit 202 in a storage device.
- the storage device may be a main storage device or a secondary storage device.
- the inquiry reception unit 205 acquires a processing instruction for a set of data held in the data holding unit 203.
- Examples of instructions include SQL and Hive Query Language (Non-Patent Document 1), which are a kind of programming language for describing a query for a set of data.
- Examples of queries include the process of aggregating statistical values such as maximum, minimum, average, and standard deviation from a set of data, and the selection, combination, projection, and combination of these processes used in relational databases There are complex information processing.
- the query execution unit 206 executes the query acquired by the query reception unit 205. At this time, the query execution unit 206 communicates with the statistical value availability determination unit 207 to check whether or not the statistical value calculated in advance for each block of the data set to be processed can be reused. For a block in which the statistical value can be reused, the statistical value calculated in advance from the statistical value holding unit 204 is acquired. For the blocks that cannot be reused, the blocks are acquired from the data holding unit 203, and the statistical values are calculated using necessary data from the data included in the acquired blocks. Thereafter, the query execution unit 206 constructs a final query result from the statistical value of each block obtained in this way, and outputs it as a response value to the query.
- the statistical value availability determination unit 207 determines whether or not the statistical value calculated in advance for each block of the data set to be processed can be reused. The statistical value can be reused for a certain block when all the data in the block is included in the query target. In order to determine this without checking the contents of the actual block, the statistical value availability determination unit 207 determines the statistical value of each block (for example, the maximum value of the attribute that specifies the query target) from the statistical value holding unit 204 And the minimum value. Further, the statistical value availability determination unit 207 uses the acquired statistical value to check whether all the data in each block is a target of the query (eg, the range of the maximum value and the minimum value of the block attribute value is the target of the query). It is determined whether it is within the range.
- a target of the query eg, the range of the maximum value and the minimum value of the block attribute value is the target of the query. It is determined whether it is within the range.
- “an average salary of employees who are 35 years old or younger” is given as an inquiry.
- the subject of the inquiry is an employee who is 35 years old or younger
- the corresponding employee exists in two blocks of “a block of 20 to 30 years of age” and “a block of 31 to 40 years of age”.
- the statistical value calculated in advance for the block can be reused.
- statistics calculated in advance may be included because there is a possibility that data of staff members who are not subject to inquiry (example: staff members 36 to 40 years old) may be included. The value cannot be reused.
- the inquiry history holding unit 208 holds information related to past inquiries processed by the information processing apparatus 200 as a history.
- the history may be a record of complete queries, or statistical information representing patterns of frequently occurring queries.
- Specific examples of the history include the reference number of statistical values and the reference number of block data with respect to the contents of the inquiry (for example, the range of the inquiry).
- information such as the time required for these references, the time required to calculate the statistical value, the number of I / Os, the size of the data, and the expected value of the number of attributes used for specifying the query range can be mentioned.
- This history is used by the optimum block size estimation unit 209 to estimate the average cost for deriving an answer corresponding to the query.
- the optimum block size estimation unit 209 estimates a block size that is expected to minimize the average cost of answer processing corresponding to the query by the query execution unit 206.
- the optimum block size estimation unit 209 has a cost function for estimating an average cost for deriving an answer corresponding to the query with the block size as an input. Since the cost function can use information such as the expected value of the number of attributes and the number of attributes used to specify the query range, the optimal block size estimation unit 209 communicates with the block generation unit 202 and the query history holding unit 208, Get these information. When the optimum block size is estimated, a block size that minimizes this cost function is calculated and set as the optimum block size.
- the optimum block size estimation unit 209 creates the block size estimation table 600 and estimates the optimum block size.
- the cost for reading a block uses a ceiling function for calculating rounding up. Is expressed by the following equation.
- N represents the number of data elements (total number of tuples)
- Spage represents the storage page size (number of bytes)
- Stuple represents the size of one data element (number of bytes).
- the cost (number of page references) for reading the statistical value is expressed by the following equation when expressed using a ceiling function for calculating the round-up.
- Sagg represents the number of bytes necessary to hold the statistical value of one block.
- the above cost function is a convex function and has a minimum value.
- the number of blocks B giving this minimum value is the optimum number of blocks that minimizes the average cost of query processing, and the result of dividing the total number of tuples by the optimum number of blocks is the optimum block size.
- FIG. 3 is a diagram illustrating an example of a data configuration input by the data input unit 201.
- Data input by the data input unit 201 is, for example, data in a table format.
- a row in the table is a single record (eg, staff information), and each column of the table is a record attribute value (eg, staff age (Age)). , Height, weight, gender, etc.).
- FIG. 4 is a diagram showing a configuration example of data and statistical content held by the data holding unit 203 and the statistical value holding unit 204, respectively.
- a plurality of attributes 401 to 403 are divided into blocks A to C, and a statistical value 404 and data 405 are held for each block. Note that data and statistical values may be stored separately.
- FIG. 5 is a diagram illustrating a configuration example of the data table 500 of the history data held by the inquiry history holding unit 208.
- the table 500 shown in FIG. 5 includes, for each query ID 501, a query date 502, a query condition 503, a query block number 504, and an average value of the number of blocks using data without using a statistical value when a query is made ( P) 505 is held.
- the query condition 503 includes a query target 531 and a query range 532.
- the inquiry block number 504 includes a block number 541 using a statistical value and a block number 542 using data. Note that the average value (P) 505 of the number of blocks using data without using a statistical value when a query is made is updated each time a query is made.
- the optimum block size estimation unit 209 estimates the block size using the statistical value for each block. That is, the optimal block size estimation unit 209 is used when dividing the data set into two or more blocks so that the average cost of answer processing corresponding to the query performed using the statistical value for each block is minimized. Estimate the block size.
- FIG. 6A is a diagram showing a configuration of a block size estimation table 600 used by the optimum block size estimation unit 209.
- the block size estimation table 600 includes a set data parameter (number of tuples N, size of one data element (number of bytes) Stuple, number of bytes Sagg necessary to hold a statistical value of one block, and storage page size (number of bytes). ) Spage). Further, the block size estimation table 600 has an average value (P) 602 of the number of blocks using data without using a statistical value when a query is made, and a read cost (ReadBlockCost) 603 of a block.
- P average value
- ReadBlockCost read cost
- the block size estimation table 600 includes a statistical value reading cost (ReadMetaCost) 604, a cost (Cost (B)) 605, an estimated minimum cost block number (B) 606, and an estimated minimum cost block size (N / B). ) 607.
- ReadMetaCost a statistical value reading cost
- Cost (B)) a cost (Cost (B)) 605, an estimated minimum cost block number (B) 606, and an estimated minimum cost block size (N / B). ) 607.
- FIG. 6B is a diagram in which average execution costs (Cost (B)) (estimates) in various block sizes (N / B) are plotted. As shown in the figure, it can be seen that the average cost decreases as the block size is increased to some extent, but the average cost increases again as the block size is increased beyond the optimum block size.
- the information processing apparatus 200 includes a CPU (Central Processing Unit) 701, a ROM (Read Only Memory) 702, a communication control unit 703, and a RAM (Random Access Memory) 704.
- the information processing apparatus 200 further includes a storage 705, an output interface 706, a display unit 707, a printer 708, and an input unit 710.
- the CPU 701 is a central processing unit, and controls the entire information processing apparatus 200 by executing various programs.
- the ROM 702 is a read-only memory and stores various parameters and the like in addition to a boot program to be executed first by the CPU 701. Further, the communication control unit 703 controls communication with various devices via a network.
- the RAM 704 is a random access memory, and has an average value (P) 602 of the number of blocks using data without using a statistical value when an inquiry is made, and a block size estimation table 600.
- the RAM 704 includes an estimated minimum cost block size (N / B) 607, a statistical value 741, input / output data 742, and transmission / reception data 743.
- the storage 705 has a data holding area 751, a statistical value holding area 752, and an inquiry history holding area 753.
- the storage 705 also includes a data input module 754, an inquiry reception module 755, a statistical value availability determination module 756, and a block generation module 757.
- the storage 705 further includes a query execution module 758, an optimum block size estimation module 759, a data output module 760, and the like.
- the input unit 710 includes a reader 711, a keypad 712, a touch panel 713, and an input interface 715 that passes input from these to the CPU 701.
- the reader 711 is a barcode reader as an example, but may be an RFID (Radio Frequency ⁇ ⁇ Identifier) tag reader or the like.
- an answer to the inquiry received by the inquiry receiving module 755 via the input unit 710 or the communication control unit 703 is transmitted to the external device via the communication control unit 703 or the display unit 707 or the like via the output interface 706.
- the data is output to the printer 708.
- the data input unit 201 includes a CPU 701, a ROM 702, a communication control unit 703, a RAM 704, an input unit 710, and a data input module 754.
- the block generation unit 202 includes a CPU 701, a ROM 702, a RAM 704, and a block generation module 757.
- the data holding unit 203 includes a data holding area 751 of the storage unit 705.
- the statistical value holding unit 204 is configured by a statistical value holding area 752 of the storage unit 705.
- the inquiry reception unit 205 includes a CPU 701, a ROM 702, a communication control unit 703, a RAM 704, an input unit 710, and an inquiry reception module 755.
- the inquiry execution unit 206 includes a CPU 701, a ROM 702, a RAM 704, and an inquiry execution module 758.
- the statistical value availability determination unit 207 includes a CPU 701, a ROM 702, a RAM 704, and a statistical value availability determination module 756.
- the optimal block size estimation unit 209 includes a CPU 701, a ROM 702, a RAM 704, and an optimal block size estimation module 759.
- the inquiry history holding unit 208 is configured by an inquiry history holding area 753 of the storage unit 705.
- FIG. 8A is a flowchart illustrating the flow of processing executed when a set of data is input in the information processing apparatus 200 of this embodiment.
- the data input unit 201 inputs a set of data.
- the optimal block size estimation unit 209 uses the information obtained from the block generation unit 202 and the query history holding unit 208 to calculate and estimate a block size that minimizes the average cost of the query for the set of input data.
- the block generation unit 202 divides the data set into blocks using the block size calculated by the optimum block size estimation unit 209 and stores the data set in the data holding unit 203.
- steps S807 to S811 the block generation unit 202 calculates a statistical value for each block, and stores the statistical values in the statistical value holding unit 204 after calculating the statistical values for all the blocks.
- step S803 details of the processing in step S803 will be described with reference to FIG. 8B.
- step S821 the optimum block size estimation unit 209 acquires the inquiry history from the inquiry history holding unit 208.
- step S823 the optimum block size estimation unit 209 acquires the aggregate data parameter 601.
- step S825 the optimal block size estimation unit 209 sets the block count B to 1.
- step S827 the optimum block size estimation unit 209 sets the number of blocks by adding 1 to the number of blocks B.
- step S829 the optimum block size estimation unit 209 calculates a block reading cost.
- step S831 the optimum block size estimation unit 209 calculates a statistical value reading cost.
- step S833 the optimum block size estimation unit 209 calculates a cost obtained by summing up these calculation results.
- step S835 the optimum block size estimation unit 209 determines whether or not the number of blocks B is smaller than the number N of data elements. When the block number B is smaller than the data element number N, the optimum block size estimation unit 209 proceeds to the process of step S827 and continues the process. If the number of blocks B is equal to or greater than the number of data elements N, in step S837, the optimum block size estimation unit 209 selects the number of blocks B at this time as the number of blocks B having the minimum average cost. Next, in step S839, the optimum block size estimation unit 209 calculates N / B as the block size that minimizes the average cost.
- FIG. 9 is a flowchart illustrating an example of a processing flow when executing an inquiry in the information processing apparatus 200 according to the present embodiment.
- the inquiry reception unit 205 acquires an inquiry.
- the query execution unit 206 calculates a statistical value for each block. That is, in step S905, the statistical value availability determination unit 207 determines whether or not the statistical value pre-calculated by the query and stored in the statistical value storage unit 204 can be reused for each block. If the statistical value is reusable, in step S907, the query execution unit 206 acquires the block statistical value from the statistical value holding unit 204 via the statistical value availability determination unit 207.
- step S909 the query execution unit 206 reads the block data from the data holding unit 203 and calculates the statistical value using necessary data.
- step S911 the query execution unit 206 finishes obtaining the statistical values of all the blocks within the queried range and the statistical values for the data for which the block statistical values cannot be used.
- step S913 the query execution unit 206 calculates the final query result by merging these statistical values.
- step S915 the query execution unit 206 records the information of the executed query in the query history holding unit 208.
- the block size that minimizes the average cost for deriving the answer corresponding to the query is determined, the data set is divided using this block size, and the data statistics calculated for each block are determined. Since the values are reused, the execution time of the statistical processing can be increased.
- FIG. 10 is a functional block diagram for explaining an example of the information processing apparatus 1000 according to the present embodiment.
- Each block shown in FIG. 10 represents a functional unit configuration, not a hardware unit configuration.
- the information processing apparatus 1000 according to the present embodiment is different from the second embodiment in that it includes a statistical value size upper limit input unit 1001. Along with this, the behavior of the optimum block size estimation unit 1002 also changes from the embodiment. Since other configurations and operations are the same as those of the second embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.
- the statistical value size upper limit input unit 1001 receives an upper limit value of the entire retained size (storage capacity) in which the generated statistical value is retained in the storage device of the statistical value retaining unit 204 from the outside, and sends it to the optimum block size estimating unit 1002 Set.
- the optimum block size estimation unit 1002 estimates a block size that is expected to minimize the average cost of answer processing corresponding to the query by the query execution unit 206.
- the optimum block size estimation unit 1002 has a cost function for estimating an average cost for deriving an answer corresponding to the query with the block size as an input. Since the cost function can use information such as the data size and the expected value of the number of attributes used to specify the query range, the optimal block size estimation unit 1002 communicates with the block generation unit 202 and the query history holding unit 208 to Get the information. When the optimum block size is estimated, a block size that minimizes this cost function is calculated and set as the optimum block size.
- the optimal block size estimation unit 1002 calculates the upper limit value of the block size based on the upper limit value of the statistical value size set from the statistical value size upper limit input unit 1001 when calculating the optimal block size.
- the statistical value size is the overall size (storage capacity) in which the generated statistical value is held in the storage device of the statistical value holding unit 204.
- the optimal block size estimation unit 1002 sets the upper limit value as a restriction on the block size estimation, minimizes the cost function, and estimates the optimal block size.
- the statistical value size upper limit value 1141 is provided in the RAM 704, and the optimum block size estimation module 1142 is provided in the storage 705 instead of the optimum block size estimation module 759, which is different from the second embodiment.
- the statistical value size upper limit input unit 1001 includes a CPU 701, a ROM 702, a communication control unit 703, a RAM 704, an input unit 710, and a statistical value size upper limit value 1141.
- the optimum block size estimation unit 1002 includes a CPU 701, a ROM 702, a RAM 704, and an optimum block size estimation module 1142.
- FIG. 12 is a flowchart illustrating the optimum block size estimation process in the present embodiment.
- the same parts as those in FIG. 8B are denoted by the same reference numerals, and the description thereof is omitted.
- the process of the present embodiment is different from the process of the second embodiment in that the process of step S1201 is added between step S833 and step 835. That is, after the process of step S833, in step S1201, the optimum block size estimation unit 1002 determines that the statistical value holding size (the storage capacity occupied by the entire statistical value) K held by the statistical value holding unit 204 is the statistical value. It is determined whether or not the statistical value size upper limit value M is input from the size upper limit input unit 1001.
- the optimum block size estimation unit 1002 determines that the statistical value holding size K held by the statistical value holding unit 204 is greater than or equal to the statistical value size upper limit value M input from the statistical value size upper limit input unit 1001. Shifts to step S837 to execute the process. As a result of the determination in step S1201, when the retained size K of the retained statistical value is smaller than the statistical value size upper limit M, the optimum block size estimation unit 1002 proceeds to step S835 and executes the process.
- the block size that minimizes the average cost is calculated within a range in which the size occupied by the generated statistical value in the storage medium of the statistical value holding unit 204 does not exceed the preset upper limit. For this reason, it is possible to prevent an increase in the size of the statistical value held in advance and held in the storage device of the statistical value holding unit 204.
- the probability that a statistical value can be used in a query can be increased by rearranging the order of records before horizontally dividing the table in the block generation unit 202. That is, the block generation unit 202 rearranges the order of records before horizontally dividing the table, thereby reducing the distribution of attribute values in the block and increasing the probability that the statistical value can be used in the query. As a result, the number of blocks that can be scanned is increased, so that the amount of I / O and the amount of calculation can be reduced. Therefore, the query processing becomes efficient.
- Attribute to perform rearrangement may be determined by the user or automatically determined by the system.
- a method for determining a sorting attribute by the system there is a method of selecting an attribute that frequently appears in a conditional expression of a selection process from a history of queries made in the past.
- a query similar to a query made in the past will be made in the future, it is expected that the performance of a query made in the future will be improved by adopting this method.
- the present invention may be applied to a system composed of a plurality of devices, or may be applied to a single device. Furthermore, the present invention can also be applied to a case where an information processing program that implements the functions of the embodiments is supplied directly or remotely to a system or apparatus. Therefore, in order to realize the functions of the present invention on a computer, a program installed on the computer, a medium storing the program, and a WWW (World Wide Web) server that downloads the program are also included in the scope of the present invention. . In particular, at least a non-transitory computer readable medium storing a program for causing a computer to execute the processing steps included in the above-described embodiments is included in the scope of the present invention.
- the information processing apparatus estimates.
- the estimation means has a cost function for calculating the average cost with the block size as a variable, and uses the cost function to estimate the block size at which the average cost is minimum.
- the information processing apparatus described in 1. (Appendix 4)
- the estimation means is a sum of a cost for referring to the statistical value calculated in advance for each block and a cost for reading the block including data necessary for deriving an answer corresponding to the query.
- the information processing apparatus according to any one of supplementary notes 1 to 3, wherein the block size that minimizes the average cost is estimated as the average cost.
- the estimation means calculates the cost (ReadMetaCost) for referring to the statistical value, the total number of blocks B, the average value P of the number of blocks using the data without using the statistical value, and the statistical value of one block
- the information processing apparatus according to appendix 4, wherein the information is calculated by using the following formula including the number of bytes Sagg necessary for holding the storage and the page size Spage of the storage.
- the estimation means calculates the cost (ReadBlockCost) for reading the block from the number N of data elements, the total number B of blocks, the average value P of the number of blocks using data without using the statistical value, and the number of data elements
- the information processing apparatus according to appendix 4, wherein the information is calculated using the following formula including one size Stuple and a storage page size Spage.
- the estimation means is such that the average cost for deriving the answer is minimized within a range in which the holding size for the statistical value holding means to hold the statistical value does not exceed a preset upper limit value.
- the information processing apparatus according to any one of appendices 1 to 6, wherein the block size is estimated.
- the set of data is constituted by a table including two or more records having attributes,
- the block generation means after creating a table in which records are rearranged for the attribute, divides the table into two or more blocks each including one or more records, according to any one of appendices 1 to 7.
- Information processing device is constituted by a table including two or more records having attributes.
- (Appendix 9) Data holding means for holding the set of data; Inquiry receiving means for receiving an inquiry about the set of data; A determination unit that determines whether or not the statistical value of each block held by the statistical value holding unit can be used for the query received by the inquiry receiving unit; As a result of the determination by the determination unit, when the statistical value of the block is available, a query execution unit that generates an answer to the query using the available statistical value;
- the information processing apparatus according to any one of appendices 1 to 8, further comprising: (Appendix 10) A query history holding step for holding information about a past query about a set of data as a query history; Based on the query history, an estimation step of estimating a block size that minimizes an average cost for deriving an answer corresponding to the query using statistical values of several blocks; A block generation step of generating two or more blocks by dividing the data set according to the block size estimated in the estimation step, and calculating the statistical value for each generated block.
- Information processing method including. (Appendix 11) A query history holding step for holding information about a past query about a set of data as a query history; Based on the query history, an estimation step of estimating a block size that minimizes an average cost for deriving an answer corresponding to the query using statistical values of several blocks; A block generation step of generating two or more blocks by dividing the data set according to the block size estimated in the estimation step, and calculating the statistical value for each generated block.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Operations Research (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
Abstract
Description
データの集合を2つ以上のブロックに分割した場合の各ブロックに含まれるデータの統計値を保持する統計値保持手段と、
前記データの集合についての過去の問合せに関する情報を問合せ履歴として保持する問合せ履歴保持手段と、
前記問合せ履歴に基づいて、いくつかのブロックの前記統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定する推定手段と、
前記推定手段によって推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出して前記統計値保持手段に保持させるブロック生成手段と、を備える。
データの集合についての過去の問合せに関する情報を問合せ履歴として保持し、
前記問合せ履歴に基づいて、いくつかのブロックの統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定し
推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出する。
データの集合についての過去の問合せに関する情報を問合せ履歴として保持し、
前記問合せ履歴に基づいて、いくつかのブロックの統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定し、
推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出する、ことをコンピュータに実行させる。
本発明の第1実施形態としての情報処理装置について、図1を用いて説明する。情報処理装置100は、統計値保持部101と、ブロックサイズ推定部102と、ブロック生成部103と、問合せ履歴保持部104を含む装置である。
次に本発明の第2実施形態に係る情報処理装置について、図2~図9を用いて説明する。なお、全ての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
関係データベースシステム(Relational DataBase Management System)は、関係モデルにもとづく表形式のデータ(以下テーブル)を保持し、ユーザにデータの効率的な検索と更新とを提供する。テーブル内の行はレコードと呼ばれ、ひとつのデータを表わす。データはいくつかの属性を持つことができ、テーブル内の列が各属性に対応する。そのテーブルに含まれる列の<列名、データ型>一覧を、そのテーブルのスキーマと呼ぶ。
図2は、本実施形態に係る情報処理装置の機能構成を説明するためのブロック図である。図2において、各ブロックは、ハードウェア単位の構成ではなく、機能単位の構成を表している。
データ入力部201は、情報処理装置200の処理対象となるデータを入力する。データ形式の例は、関係データベースシステムにおけるテーブルである。
ブロック生成部202は、データ入力部201が入力したデータの集合を主記憶装置又は二次記憶装置などの記憶装置に記憶するためにファイル化する。この際、ブロック生成部202は最適ブロックサイズ推定部209と通信し、その後の情報処理が最も高速になると期待されるブロックサイズを得る。さらに、ブロック生成部202は、そのブロックサイズに応じてデータ入力部201に入力されたデータの集合を分割し、分割したブロックごとにデータの統計値を算出する。そして、ブロック生成部202はデータの集合をデータ保持部203へ保存すると共に、データの統計値を統計値保持部204へ保存する。データ保持部203と統計値保持部204は同一の記憶装置にあってもよいし、それぞれ異なる記憶装置にあってもよい。
データ保持部203は、ブロック生成部202が作成したファイルを記憶装置に保持する。記憶装置は主記憶装置であってもよいし、二次記憶装置であってもよい。
統計値保持部204は、ブロック生成部202が算出したブロックごとの統計値を記憶装置に保持する。記憶装置は主記憶装置であってもよいし、二次記憶装置であってもよい。
問合せ受付部205は、データ保持部203に保持されているデータの集合に対する処理の指示を取得する。指示の例としては、データの集合に対する問合せを記述するプログラミング言語の一種であるSQLやHive Query Language(非特許文献1)がある。
問合せ実行部206は、問合せ受付部205が取得した問合せを実行する。この際、問合せ実行部206は統計値利用可否判定部207と通信して、処理対象となるデータの集合の各ブロックについて事前に計算した統計値を再利用できるかどうかを確認する。そして、統計値を再利用できるブロックに関しては統計値保持部204から事前に計算しておいた統計値を取得する。再利用できないブロックに関してはデータ保持部203からブロックを取得し、取得したブロックに含まれるデータの中から必要なデータを用いて統計値を算出する。その後、問合せ実行部206はこうして得た各ブロックの統計値から最終的な問合せ結果を構築し、問合せに対する回答値として出力する。
統計値利用可否判定部207は、処理対象となるデータの集合の各ブロックについて事前に算出した統計値が再利用できるかどうかを判定する。あるブロックについて統計値が再利用できるのは、ブロック内のデータ全てが問合せの対象に含まれる場合である。このことを実際のブロックの中身を確認せずに判定するために、統計値利用可否判定部207は統計値保持部204から各ブロックの統計値(例:問合せの対象を指定する属性の最大値と最小値)を取得する。さらに、統計値利用可否判定部207は取得した統計値を使って各ブロック内のデータが全て問合せの対象であるかどうか(例:ブロックの属性値の最大値と最小値の範囲が、問合せ対象の範囲に収まっているかどうか)を判定する。
問合せ履歴保持部208は情報処理装置200の処理した過去の問合せに関する情報を履歴として保持する。履歴は完全な問合せの記録であってもよいし、頻出する問合せのパターンを表わす統計情報でもよい。履歴の具体的な一例としては、問合せの内容(例えば問合せの範囲)に対する、統計値の参照数、ブロックデータの参照数等が挙げられる。さらに、これらの参照に要した時間、統計値を算出するのに要した時間、I/O回数、データのサイズ、および問合せ範囲の指定に使われる属性数の期待値などの情報が挙げられる。この履歴は最適ブロックサイズ推定部209によって、問合せに対応する回答を導出するための平均コストを見積もる際に利用される。
最適ブロックサイズ推定部209は、問合せ実行部206による問合せに対応する回答処理の平均コストを最小にすると期待されるブロックサイズを推定する。最適ブロックサイズ推定部209は、ブロックサイズを入力として問合せに対応する回答を導出するための平均コストを見積もるコスト関数を持つ。コスト関数はデータのサイズや問合せ範囲の指定に使われる属性数の期待値などの情報を利用しうるため、最適ブロックサイズ推定部209はブロック生成部202や問合せ履歴保持部208と通信して、これらの情報を得る。最適ブロックサイズの推定時には、このコスト関数を最小化するブロックサイズを算出し、最適ブロックサイズとする。
本実施形態では、ブロックの統計値が再利用できる場合は統計値保持部204からの統計値読み込みが発生し、ブロックの統計値が再利用できない場合はブロックのデータをデータ保持部203から読み込む動作が発生する。そのため、コスト関数はブロック数(何レコードごとに統計値を計算するか)をBとしたとき、
次に、本実施形態に係る情報処理装置200のハードウェア構成の一例を図7を参照して説明する。
図8Aは、本実施形態の情報処理装置200において、データの集合を入力した際に実行される処理の流れを例示するフローチャートである。ステップS801において、データ入力部201はデータの集合を入力する。ステップS803において、最適ブロックサイズ推定部209はブロック生成部202と問合せ履歴保持部208から得た情報を使って、入力したデータの集合に対する問合せの平均コストを最小化するブロックサイズを算出して推定する。ステップS805において、ブロック生成部202は最適ブロックサイズ推定部209の算出したブロックサイズを用いてデータの集合をブロックへ分割し、データ保持部203へ保存する。ステップS807~S811において、ブロック生成部202は各ブロックについて統計値を算出し、全てのブロックについて統計値を算出し終えると、それらの統計値を統計値保持部204へ保存する。
次に本発明の第3実施形態に係る情報処理装置について、図10を用いて説明する。図10は、本実施形態に係る情報処理装置1000の一例を説明するための機能ブロック図である。図10に示す各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。本実施形態に係る情報処理装置1000は、上記第2実施形態と比べると、統計値サイズ上限入力部1001を有する点で異なる。これに伴い、最適ブロックサイズ推定部1002の挙動も実施形態から変化している。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
統計値サイズ上限入力部1001は、生成される統計値が統計値保持部204の記憶装置で保持される全体の保持サイズ(記憶容量)の上限値を外部から受け取り、最適ブロックサイズ推定部1002に設定する。
最適ブロックサイズ推定部1002は、問合せ実行部206による問合せに対応する回答処理の平均コストを最小にすると期待されるブロックサイズを推定する。最適ブロックサイズ推定部1002は、ブロックサイズを入力として問合せに対応する回答を導出するための平均コストを見積もるコスト関数を持つ。コスト関数はデータのサイズや問合せ範囲の指定につかわれる属性数の期待値などの情報を利用しうるため、最適ブロックサイズ推定部1002はブロック生成部202や問合せ履歴保持部208と通信して、これらの情報を得る。最適ブロックサイズの推定時には、このコスト関数を最小化するブロックサイズを算出し、最適ブロックサイズとする。
次に、本実施形態に係る情報処理装置1000のハードウェア構成の一例を図11を参照して説明する。なお、統計値サイズ上限値1141をRAM704に備えると共に、最適ブロックサイズ推定モジュール759に代えて最適ブロックサイズ推定モジュール1142をストレージ705に設けた点において第2実施形態と異なる。
本実施形態の情報処理装置1000において、データを入力した際に実行される処理の流れは第2実施形態と同様であるが、最適ブロックサイズ推定処理が異なる。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
データの集合を2つ以上のブロックに分割した場合の各ブロックに含まれるデータの統計値を保持する統計値保持手段と、
前記データの集合についての過去の問合せに関する情報を問合せ履歴として保持する問合せ履歴保持手段と、
前記問合せ履歴に基づいて、いくつかのブロックの前記統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定する推定手段と、
前記推定手段によって推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出して前記統計値保持手段に保持させるブロック生成手段と、
を備える情報処理装置。
(付記2)
前記推定手段は、前記問合せがあったときに、前記問合せ履歴に基づいて、前記統計値を用いずにデータを用いたブロック数の平均値を取得し、該平均値を用いて前記ブロックサイズを推定する、付記1に記載の情報処理装置。
(付記3)
前記推定手段は、前記ブロックサイズを変数とする前記平均コストを算出するためのコスト関数を有し、該コスト関数を用いて前記平均コストが最小となる前記ブロックサイズを推定する、付記1または2に記載の情報処理装置。
(付記4)
前記推定手段は、ブロックごとに事前に算出された前記統計値を参照するためのコストと、前記問合せに対応する回答を導出するために必要なデータを含む前記ブロックを読み取るためのコストとの和を前記平均コストとし、前記平均コストが最小となる前記ブロックサイズを推定する、付記1乃至3のいずれか1項に記載の情報処理装置。
(付記5)
前記推定手段は、前記統計値を参照するためのコスト(ReadMetaCost)を、全体のブロック数B、前記統計値を用いずに前記データを用いたブロック数の平均値P、一つのブロックの統計値の保持に必要なバイト数Sagg、ストレージのページサイズSpageを含む以下の式を用いて算出する、付記4に記載の情報処理装置。
前記推定手段は、前記ブロックを読み取るためのコスト(ReadBlockCost)を、データの要素数N、全体のブロック数B、前記統計値を用いずにデータを用いたブロック数の平均値P、データ要素一つのサイズStuple、ストレージのページサイズSpageを含む以下の式を用いて算出する、付記4に記載の情報処理装置。
前記推定手段は、前記統計値保持手段が前記統計値を保持するための保持サイズが事前に設定された上限値を超えない範囲で、前記回答を導出するための前記平均コストが最小となる前記ブロックサイズを推定する、付記1乃至6のいずれか1項に記載の情報処理装置。
(付記8)
前記データの集合は、属性を有する2つ以上のレコードを含むテーブルによって構成され、
前記ブロック生成手段は、前記属性についてレコードを並べ替えたテーブルを作成した後に該テーブルをそれぞれ1つ以上のレコードを含む2つ以上のブロックに分割する、付記1乃至7のいずれか1項に記載の情報処理装置。
(付記9)
前記データの集合を保持するデータ保持手段と、
前記データの集合についての問合せを受付ける問合せ受付手段と、
前記問合せ受付手段によって受付けた問合せに対して前記統計値保持手段が保持している各ブロックの統計値を利用できるか否かを判定する判定手段と、
前記判定手段の判定の結果、ブロックの統計値を利用可能なときは該利用可能な統計値を利用して前記問合せに対する回答を生成する問合せ実行手段と、
をさらに備えた付記1乃至8のいずれか1項に記載の情報処理装置。
(付記10)
データの集合についての過去の問合せに関する情報を問合せ履歴として保持する問合せ履歴保持ステップと、
前記問合せ履歴に基づいて、いくつかのブロックの統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定する推定ステップと、
前記推定ステップにおいて推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出するブロック生成ステップと、を含む情報処理方法。
(付記11)
データの集合についての過去の問合せに関する情報を問合せ履歴として保持する問合せ履歴保持ステップと、
前記問合せ履歴に基づいて、いくつかのブロックの統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定する推定ステップと、
前記推定ステップにおいて推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出するブロック生成ステップと、をコンピュータに実行させる情報処理プログラムを格納する記憶媒体。
Claims (10)
- データの集合を2つ以上のブロックに分割した場合の各ブロックに含まれるデータの統計値を保持する統計値保持手段と、
前記データの集合についての過去の問合せに関する情報を問合せ履歴として保持する問合せ履歴保持手段と、
前記問合せ履歴に基づいて、いくつかのブロックの前記統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定する推定手段と、
前記推定手段によって推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出して前記統計値保持手段に保持させるブロック生成手段と、
を備える情報処理装置。 - 前記推定手段は、前記問合せがあったときに、前記問合せ履歴に基づいて、前記統計値を用いずにデータを用いたブロック数の平均値を取得し、該平均値を用いて前記ブロックサイズを推定する、請求項1に記載の情報処理装置。
- 前記推定手段は、前記ブロックサイズを変数とする前記平均コストを算出するためのコスト関数を有し、該コスト関数を用いて前記平均コストが最小となる前記ブロックサイズを推定する、請求項1または2に記載の情報処理装置。
- 前記推定手段は、ブロックごとに事前に算出された前記統計値を参照するためのコストと、前記問合せに対応する回答を導出するために必要なデータを含む前記ブロックを読み取るためのコストとの和を前記平均コストとし、前記平均コストが最小となる前記ブロックサイズを推定する、請求項1乃至3のいずれか1項に記載の情報処理装置。
- 前記推定手段は、前記統計値保持手段が前記統計値を保持するための保持サイズが事前に設定された上限値を超えない範囲で、前記回答を導出するための前記平均コストが最小となる前記ブロックサイズを推定する、請求項1乃至6のいずれか1項に記載の情報処理装置。
- 前記データの集合は、属性を有する2つ以上のレコードを含むテーブルによって構成され、
前記ブロック生成手段は、前記属性についてレコードを並べ替えたテーブルを作成した後に該テーブルをそれぞれ1つ以上のレコードを含む2つ以上のブロックに分割する、請求項1乃至7のいずれか1項に記載の情報処理装置。 - データの集合についての過去の問合せに関する情報を問合せ履歴として保持する問合せ履歴保持ステップと、
前記問合せ履歴に基づいて、いくつかのブロックの統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定する推定ステップと、
前記推定ステップにおいて推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出するブロック生成ステップと、
を含む情報処理方法。 - データの集合についての過去の問合せに関する情報を問合せ履歴として保持し、
前記問合せ履歴に基づいて、いくつかのブロックの統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定し、
推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出する、
ことをコンピュータに実行させる情報処理プログラムを格納する記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017516550A JPWO2016178312A1 (ja) | 2015-05-07 | 2016-04-26 | 情報処理装置、情報処理方法およびプログラム |
US15/571,870 US10726013B2 (en) | 2015-05-07 | 2016-04-26 | Information processing device, information processing method, and recording medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015094624 | 2015-05-07 | ||
JP2015-094624 | 2015-05-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016178312A1 true WO2016178312A1 (ja) | 2016-11-10 |
Family
ID=57217604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2016/002183 WO2016178312A1 (ja) | 2015-05-07 | 2016-04-26 | 情報処理装置、情報処理方法および記憶媒体 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10726013B2 (ja) |
JP (1) | JPWO2016178312A1 (ja) |
WO (1) | WO2016178312A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190115389A (ko) * | 2018-04-02 | 2019-10-11 | 주식회사 큐브시스템 | 통계 블록을 포함하는 큐브체인 형태의 데이터 관리 엔진 및 데이터 방법 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11782918B2 (en) * | 2020-12-11 | 2023-10-10 | International Business Machines Corporation | Selecting access flow path in complex queries |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140214799A1 (en) * | 2013-01-30 | 2014-07-31 | Oracle International Corporation | Enhancing Parallelism in Evaluation Ranking/Cumulative Window Functions |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007009B2 (en) * | 2001-03-15 | 2006-02-28 | International Business Machines Corporation | Representation for data used in query optimization |
US7213012B2 (en) * | 2003-05-09 | 2007-05-01 | Oracle International Corporation | Optimizer dynamic sampling |
US7552110B2 (en) * | 2003-09-22 | 2009-06-23 | International Business Machines Corporation | Method for performing a query in a computer system to retrieve data from a database |
JP5088668B2 (ja) * | 2007-03-08 | 2012-12-05 | 日本電気株式会社 | 計算機負荷見積システム、計算機負荷見積方法、計算機負荷見積プログラム |
US8812481B2 (en) * | 2007-07-12 | 2014-08-19 | International Business Machines Corporation | Management of interesting database statistics |
US8321579B2 (en) * | 2007-07-26 | 2012-11-27 | International Business Machines Corporation | System and method for analyzing streams and counting stream items on multi-core processors |
CA2809224C (en) * | 2010-08-31 | 2016-05-17 | Nec Corporation | Storage system |
US9110949B2 (en) * | 2013-02-11 | 2015-08-18 | Oracle International Corporation | Generating estimates for query optimization |
US9928281B2 (en) * | 2015-03-20 | 2018-03-27 | International Business Machines Corporation | Lightweight table comparison |
US10353900B2 (en) * | 2015-07-24 | 2019-07-16 | Oracle International Corporation | System and method for creating an intelligent synopsis of a database using re-partitioning based sampling |
-
2016
- 2016-04-26 WO PCT/JP2016/002183 patent/WO2016178312A1/ja active Application Filing
- 2016-04-26 JP JP2017516550A patent/JPWO2016178312A1/ja active Pending
- 2016-04-26 US US15/571,870 patent/US10726013B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140214799A1 (en) * | 2013-01-30 | 2014-07-31 | Oracle International Corporation | Enhancing Parallelism in Evaluation Ranking/Cumulative Window Functions |
Non-Patent Citations (1)
Title |
---|
MASAFUMI OYAMADA ET AL.: "PA-Proxy: SQL-on- Hadoop ni Okeru Data Shukei Shori o Seido no Rekka naku Kosokuka suru Framework", THE 7TH FORUM ON DATA ENGINEERING AND INFORMATION MANAGEMENT (DAI 13 KAI THE DATABASE SOCIETY OF JAPAN NENJI TAIKAI, 4 March 2015 (2015-03-04), pages 1 - 8, XP055328624, Retrieved from the Internet <URL:http://db-event.jpn.org/deim2015/paper/285.pdf> * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190115389A (ko) * | 2018-04-02 | 2019-10-11 | 주식회사 큐브시스템 | 통계 블록을 포함하는 큐브체인 형태의 데이터 관리 엔진 및 데이터 방법 |
KR102194190B1 (ko) * | 2018-04-02 | 2020-12-23 | 주식회사 큐브시스템 | 통계 블록을 포함하는 큐브체인 형태의 데이터 관리 엔진 및 데이터 방법 |
Also Published As
Publication number | Publication date |
---|---|
JPWO2016178312A1 (ja) | 2018-03-15 |
US10726013B2 (en) | 2020-07-28 |
US20180121509A1 (en) | 2018-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210304071A1 (en) | Systems and methods for generating machine learning applications | |
US11423082B2 (en) | Methods and apparatus for subgraph matching in big data analysis | |
CN107784026B (zh) | 一种etl数据处理方法及装置 | |
US11037096B2 (en) | Delivery prediction with degree of delivery reliability | |
JP7098327B2 (ja) | 情報処理システム、関数作成方法および関数作成プログラム | |
CN110249312B (zh) | 用于将数据集成作业从源框架转换到目标框架的方法和系统 | |
CN108228875B (zh) | 基于完美哈希的日志解析方法及装置 | |
US20170193541A1 (en) | Agricultural products processing center adaptive analysis system and processing method thereof | |
US20180268035A1 (en) | A query processing engine recommendation method and system | |
CN105491078A (zh) | Soa系统中的数据处理方法及装置、soa系统 | |
US10033737B2 (en) | System and method for cross-cloud identity matching | |
WO2016178312A1 (ja) | 情報処理装置、情報処理方法および記憶媒体 | |
US11561820B2 (en) | Task optimization method and task optimization device in mobile robot | |
JP5555238B2 (ja) | ベイジアンネットワーク構造学習のための情報処理装置及びプログラム | |
JP6683200B2 (ja) | 情報処理装置、情報処理方法および情報処理プログラムを記憶する記録媒体 | |
JPWO2018061219A1 (ja) | ジョブスケジューリングシステム、ジョブスケジューリング方法、およびジョブスケジューリング装置 | |
JP6718772B2 (ja) | レビュー支援装置及びレビュー支援方法 | |
US20120192011A1 (en) | Data processing apparatus that performs test validation and computer-readable storage medium | |
JP6644637B2 (ja) | 高速化装置、計算機システム及びデータ処理方法 | |
WO2016012903A1 (en) | A system for querying heterogeneous data sources and a method thereof | |
US20180239640A1 (en) | Distributed data processing system, and distributed data processing method | |
US20210357809A1 (en) | Model improvement system and model improvement method | |
US11921716B1 (en) | Inexact timestamp range matching join for time series data (AS OF JOIN) | |
JP7216883B2 (ja) | 解析装置、解析方法、および解析プログラム | |
US20230007856A1 (en) | Real-time dynamic container optimization computing platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16789448 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2017516550 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15571870 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 16789448 Country of ref document: EP Kind code of ref document: A1 |