WO2016178312A1 - 情報処理装置、情報処理方法および記憶媒体 - Google Patents

情報処理装置、情報処理方法および記憶媒体 Download PDF

Info

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
Application number
PCT/JP2016/002183
Other languages
English (en)
French (fr)
Inventor
昌史 小山田
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2017516550A priority Critical patent/JPWO2016178312A1/ja
Priority to US15/571,870 priority patent/US10726013B2/en
Publication of WO2016178312A1 publication Critical patent/WO2016178312A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24545Selectivity estimation or determination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex 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

情報処理装置であって、データの集合を分割したブロックごとの統計値を保持する統計値保持手段と、過去の問合せに関する情報を問合せ履歴として保持する問合せ履歴保持手段と、前記問合せ履歴に基づいて、前記ブロックごとの統計値を利用して行なう統計処理のコストが最小となるように、前記データの集合を2つ以上のブロックに分割するときのブロックサイズを推定する推定手段と、前記推定手段によって推定された前記ブロックサイズを用いて、前記データの集合を分割すると共に、分割した前記ブロックごとに、前記ブロックに含まれるデータの統計値を算出して前記統計値保持手段に保持させるブロック作成手段と、を備える。

Description

情報処理装置、情報処理方法および記憶媒体
 本発明は、情報処理装置、情報処理方法および記憶媒体に関する。
 上記技術分野において、非特許文献1には、データ集合を用いて統計処理を行なう際に、データ集合を2つ以上のブロックに分割してブロックごとの統計値を算出しておくことが開示されている。また、非特許文献1には、これにより、事前計算したブロックごとの統計値を再利用することで、レコードのスキャンを省いてI/O(Input / Output)量と計算量を削減し、属性の統計処理を高速化する技術が開示されている。
小山田など、「データの部分集約による高速かつ正確なデータ集計処理の実現」、データベース・システム研究会報告2014-DBS-160(19)、 pp. 1-7、2015年 (http://ci.nii.ac.jp/naid/110009842514)
 しかしながら、上記文献に記載の技術では、統計値の再利用による統計処理の性能はブロックサイズに大きく左右されるため、適切でないブロックサイズを選択した場合、統計処理を高速化できない可能性がある。
 本発明の目的は、上述の課題を解決する技術を提供することにある。
 上記目的を達成するため、本発明に係る情報処理装置の一態様は、
 データの集合を2つ以上のブロックに分割した場合の各ブロックに含まれるデータの統計値を保持する統計値保持手段と、
 前記データの集合についての過去の問合せに関する情報を問合せ履歴として保持する問合せ履歴保持手段と、
 前記問合せ履歴に基づいて、いくつかのブロックの前記統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定する推定手段と、
 前記推定手段によって推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出して前記統計値保持手段に保持させるブロック生成手段と、を備える。
 上記目的を達成するため、本発明に係る情報処理方法の一態様は、
 データの集合についての過去の問合せに関する情報を問合せ履歴として保持し、
 前記問合せ履歴に基づいて、いくつかのブロックの統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定し
 推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出する。
 上記目的を達成するため、本発明に係る記憶媒体に格納された情報処理プログラムは、
 データの集合についての過去の問合せに関する情報を問合せ履歴として保持し、
 前記問合せ履歴に基づいて、いくつかのブロックの統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定し、
 推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出する、ことをコンピュータに実行させる。
 本発明によれば、統計処理を高速化することができる。
本発明の第1実施形態に係る情報処理装置の構成を示すブロック図である。 本発明の第2実施形態に係る情報処理装置の機能構成を示すブロック図である。 本発明の第2実施形態に係る入力データの一例を説明する図である。 本発明の第2実施形態に係る統計値保持部とデータ保持部とが保持する統計値とデータとの保持内容の一例を説明する図である。 本発明の第2実施形態に係る問合せ履歴保持部が保持するデータテーブルの構成の一例を説明する図である。 本発明の第2実施形態に係るブロックサイズ推定テーブルの構成を説明する図である。 本発明の第2実施形態に係るブロックサイズと平均実行コストとの関係を説明する図である。 本発明の第2実施形態に係る情報処理装置のハードウェア構成を説明するブロック図である。 本発明の第2実施形態に係るデータ格納処理手順を説明するフローチャートである。 本発明の第2実施形態に係る最適ブロックサイズ推定処理手順を説明するフローチャートである。 本発明の第2実施形態に係る情報処理装置における問合せの実行時の処理の流れを例示するフローチャートである。 本発明の第3実施形態に係る情報処理装置の機能構成を示すブロック図である。 本発明の第3実施形態に係る情報処理装置のハードウェア構成の一例を示すブロック図である。 本発明の第3実施形態に係る最適ブロックサイズ推定処理手順を説明するフローチャートである。
 以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素はあくまで例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
 [第1実施形態]
 本発明の第1実施形態としての情報処理装置について、図1を用いて説明する。情報処理装置100は、統計値保持部101と、ブロックサイズ推定部102と、ブロック生成部103と、問合せ履歴保持部104を含む装置である。
 統計値保持部101は、データの集合を2つ以上のブロックに分割した場合の各ブロックに含まれるデータの統計値を保持する。
 ブロックサイズ推定部102は、問合せ履歴保持部104が保持する問合せ履歴に基づいて、いくつかのブロックの統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるようにブロックサイズを推定する。なお、ブロックサイズとは、データの集合が2つ以上のレコードを含むテーブルによって構成される場合は、例えば、統計値の事前計算を何レコードごとにおこなうかを表わすサイズである。
 ブロック生成部103は、ブロックサイズ推定部102によって推定されたブロックサイズに応じて、データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに統計値を算出して統計値保持部101に保持させる。
 問合せ履歴保持部104は、データの集合についての過去の問合せに関する情報を問合せ履歴として保持する。
 本実施形態によれば、問合せに対応する回答を導出するための平均コストが最小となるように推定されたブロックサイズによってデータの集合が分割され、ブロックごとに算出された統計値が統計処理に利用されるので、統計処理の実行時間を高速化することができる。
 [第2実施形態]
 次に本発明の第2実施形態に係る情報処理装置について、図2~図9を用いて説明する。なお、全ての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
 《前提技術》
 関係データベースシステム(Relational DataBase Management System)は、関係モデルにもとづく表形式のデータ(以下テーブル)を保持し、ユーザにデータの効率的な検索と更新とを提供する。テーブル内の行はレコードと呼ばれ、ひとつのデータを表わす。データはいくつかの属性を持つことができ、テーブル内の列が各属性に対応する。そのテーブルに含まれる列の<列名、データ型>一覧を、そのテーブルのスキーマと呼ぶ。
 関係データベースシステムのユーザは、テーブルに対する検索処理および更新処理をプログラミング言語によって関係データベースシステムに対して指示する。この指示は問合せ(Query)と呼ばれる。問合せを記述するためには、SQL(Structured Query Language)というプログラミング言語が標準的に用いられている。SQLを用いると、テーブルの中から条件にあてはまるレコードを簡便かつ効率的に取り出すことができる。また、列名を指定することで、レコードの中から必要な属性のみを取り出すこともできる。
 関係データベースシステムにおいて頻繁におこなわれる処理のひとつに、属性の統計処理がある。属性の統計処理とは、テーブルの所定の属性の値群から何らかの統計値を計算するものであり、統計値の例としては最大値、最小値、平均値、および標準偏差などがある。
 属性の統計処理はテーブル内の全てないし大部分のレコードに関しておこなわれることが多い。そのため、テーブルが巨大であった場合には大量のレコードをスキャンすることとなり、多量のI/O処理と計算処理が発生して処理速度が長大となる。
 《本実施形態の説明》
 図2は、本実施形態に係る情報処理装置の機能構成を説明するためのブロック図である。図2において、各ブロックは、ハードウェア単位の構成ではなく、機能単位の構成を表している。
 情報処理装置200は、データ入力部201と、ブロック生成部202と、データ保持部203と、統計値保持部204と、問合せ受付部205を有する。さらに、情報処理装置200は、問合せ実行部206と、統計値利用可否判定部207と、問合せ履歴保持部208と、最適ブロックサイズ推定部209を有する。以下、それぞれについて説明する。
 《データ入力部》
 データ入力部201は、情報処理装置200の処理対象となるデータを入力する。データ形式の例は、関係データベースシステムにおけるテーブルである。
 データ入力部201がデータの集合を入力する方法は様々である。例えばデータ入力部201は、外部の装置から入力されるデータの集合を取得する。その他にも例えば、データ入力部201は、手動で入力されるデータの集合を取得する。さらにデータ入力部201は、外部の装置にアクセスして、データの集合を入力してもよい。
 《ブロック生成部》
 ブロック生成部202は、データ入力部201が入力したデータの集合を主記憶装置又は二次記憶装置などの記憶装置に記憶するためにファイル化する。この際、ブロック生成部202は最適ブロックサイズ推定部209と通信し、その後の情報処理が最も高速になると期待されるブロックサイズを得る。さらに、ブロック生成部202は、そのブロックサイズに応じてデータ入力部201に入力されたデータの集合を分割し、分割したブロックごとにデータの統計値を算出する。そして、ブロック生成部202はデータの集合をデータ保持部203へ保存すると共に、データの統計値を統計値保持部204へ保存する。データ保持部203と統計値保持部204は同一の記憶装置にあってもよいし、それぞれ異なる記憶装置にあってもよい。
 例えばデータの集合がテーブル形式であった場合、ブロック生成部202はブロックサイズとしてレコード数を受け取り、そのレコード数ごとにテーブルを水平分割した上で、各属性の最大値、最小値等の統計値を計算し、統計値保持部204へその統計値を保存する。本実施形態以降では、レコードを分割単位としてテーブルを分割することを水平分割と称する。
 なお、ブロック生成部202は物理的にブロックを作成することもあれば、論理的にブロックを作成するだけのこともある。物理的にブロックを作成する場合の例としては、ブロックをデータ保持部203上へ異なるファイルとして別々に保存するというものがある。また、論理的にブロックを作成する例としては、データの集合は単一のファイルとしてデータ保持部203へ保存する。さらに、統計値保持部204の各ブロックの統計値情報と共にブロックを構成するデータ保持部203上のファイル内のデータ群へのポインタを保持するというものがある。
 《データ保持部》
 データ保持部203は、ブロック生成部202が作成したファイルを記憶装置に保持する。記憶装置は主記憶装置であってもよいし、二次記憶装置であってもよい。
 《統計値保持部》
 統計値保持部204は、ブロック生成部202が算出したブロックごとの統計値を記憶装置に保持する。記憶装置は主記憶装置であってもよいし、二次記憶装置であってもよい。
 《問合せ受付部》
 問合せ受付部205は、データ保持部203に保持されているデータの集合に対する処理の指示を取得する。指示の例としては、データの集合に対する問合せを記述するプログラミング言語の一種であるSQLやHive Query Language(非特許文献1)がある。
 問合せの例としては、データの集合から最大値、最小値、平均値、および標準偏差などの統計値を集計する処理や、関係データベースで用いられる選択、結合、射影処理、およびこれらの処理の組み合わせによる複雑な情報処理などがある。
 《問合せ実行部》
 問合せ実行部206は、問合せ受付部205が取得した問合せを実行する。この際、問合せ実行部206は統計値利用可否判定部207と通信して、処理対象となるデータの集合の各ブロックについて事前に計算した統計値を再利用できるかどうかを確認する。そして、統計値を再利用できるブロックに関しては統計値保持部204から事前に計算しておいた統計値を取得する。再利用できないブロックに関してはデータ保持部203からブロックを取得し、取得したブロックに含まれるデータの中から必要なデータを用いて統計値を算出する。その後、問合せ実行部206はこうして得た各ブロックの統計値から最終的な問合せ結果を構築し、問合せに対する回答値として出力する。
 《統計値利用可否判定部》
 統計値利用可否判定部207は、処理対象となるデータの集合の各ブロックについて事前に算出した統計値が再利用できるかどうかを判定する。あるブロックについて統計値が再利用できるのは、ブロック内のデータ全てが問合せの対象に含まれる場合である。このことを実際のブロックの中身を確認せずに判定するために、統計値利用可否判定部207は統計値保持部204から各ブロックの統計値(例:問合せの対象を指定する属性の最大値と最小値)を取得する。さらに、統計値利用可否判定部207は取得した統計値を使って各ブロック内のデータが全て問合せの対象であるかどうか(例:ブロックの属性値の最大値と最小値の範囲が、問合せ対象の範囲に収まっているかどうか)を判定する。
 例えば、企業の職員の情報を、「年齢が20~30歳のブロック(年齢の最小値=20、最大値=30)」「年齢が31~40歳のブロック」「年齢が41~65歳のブロック」の3つへ分割して保持している場合を考える。このとき、問合せとして「年齢が35歳以下の職員の平均給与」が与えられたとする。このとき問合せの対象は35歳以下の職員であるため、該当する職員は「年齢が20~30歳のブロック」と「年齢が31~40歳のブロック」の2ブロックに存在する。ここで、「年齢が20~30歳のブロック」についてはブロック内の全ての職員が問合せの対象であるため、ブロックに対して事前に算出した統計値を再利用することができる。一方で、「年齢が31~40歳のブロック」に関しては、問合せの対象にならない職員(例:36~40歳の職員)のデータが含まれている可能性があるため、事前に計算した統計値を再利用することができない。
 《問合せ履歴保持部》
 問合せ履歴保持部208は情報処理装置200の処理した過去の問合せに関する情報を履歴として保持する。履歴は完全な問合せの記録であってもよいし、頻出する問合せのパターンを表わす統計情報でもよい。履歴の具体的な一例としては、問合せの内容(例えば問合せの範囲)に対する、統計値の参照数、ブロックデータの参照数等が挙げられる。さらに、これらの参照に要した時間、統計値を算出するのに要した時間、I/O回数、データのサイズ、および問合せ範囲の指定に使われる属性数の期待値などの情報が挙げられる。この履歴は最適ブロックサイズ推定部209によって、問合せに対応する回答を導出するための平均コストを見積もる際に利用される。
 《最適ブロックサイズ推定部》
 最適ブロックサイズ推定部209は、問合せ実行部206による問合せに対応する回答処理の平均コストを最小にすると期待されるブロックサイズを推定する。最適ブロックサイズ推定部209は、ブロックサイズを入力として問合せに対応する回答を導出するための平均コストを見積もるコスト関数を持つ。コスト関数はデータのサイズや問合せ範囲の指定に使われる属性数の期待値などの情報を利用しうるため、最適ブロックサイズ推定部209はブロック生成部202や問合せ履歴保持部208と通信して、これらの情報を得る。最適ブロックサイズの推定時には、このコスト関数を最小化するブロックサイズを算出し、最適ブロックサイズとする。
 最適ブロックサイズ推定部209は、最適ブロックサイズを推定する際に、ブロックサイズ推定テーブル600を作成して最適ブロックサイズを推定する。
 次に、最適ブロックサイズ推定部209における具体的なコスト関数について述べる。
本実施形態では、ブロックの統計値が再利用できる場合は統計値保持部204からの統計値読み込みが発生し、ブロックの統計値が再利用できない場合はブロックのデータをデータ保持部203から読み込む動作が発生する。そのため、コスト関数はブロック数(何レコードごとに統計値を計算するか)をBとしたとき、
Figure JPOXMLDOC01-appb-M000001
のようにブロックを読み込むI/Oコスト(ReadBlockCost)と統計値を読み込むI/Oコスト(ReadMetaCost)の和となる。
 I/Oコストとしてこれらの処理時に発生するページ参照数(ストレージレベルでのI/Oの回数)を考えると、ブロックを読み込む際のコスト(ページ参照数)は、切り上げを算出する天井関数を使って表わすと、次式で表わされる。
Figure JPOXMLDOC01-appb-M000002
 これは、P個のブロックの読み込み Read (ブロック全体の読み込み)で生じるページ参照数をあらわす。実際には、Pは平均的に Read 参照されるブロック数(問合せ履歴保持部から取得)とする。ここで、Nはデータの要素数(全タプル数)、Spageはストレージのページサイズ(バイト数)、Stupleはデータ要素ひとつのサイズ(バイト数)を表わしている。
 ここで、
Figure JPOXMLDOC01-appb-M000003
は、1ブロック内のタプル数、
Figure JPOXMLDOC01-appb-M000004
は、1ブロックのサイズである。
 また、統計値を読み込む際のコスト(ページ参照数)は、切り上げを算出する天井関数を使って表わすと、次式で表わされる。
Figure JPOXMLDOC01-appb-M000005
 これは、(B-P)個のブロック統計値の読み込みで生じるページ参照数を表わす。ここでSaggは1つのブロックの統計値の保持に必要なバイト数をあらわしている。
 以上のコストモデルから、ブロック数Bを大きくしていくとブロック一つ一つのサイズが小さくなるためブロックの読み込みで生じるI/Oは減ってゆく。しかし、その一方でブロック数が増えるために統計値の数も増えて統計値の読み込みで生じるI/Oが増えてしまうことがわかる。このトレードオフ関係から、上述のコスト関数は凸関数となり、最小値を持つ。この最小値を与えるブロック数Bが、問合せ処理の平均コストを最小化する最適なブロック数となり、全タプル数を最適なブロック数で割った結果が最適なブロックサイズとなる。
 図3は、データ入力部201が入力するデータ構成の一例を示す図である。データ入力部201が入力するデータは例えば表形式のデータであり、表の行はひとつのレコード(例:職員の情報)、表の各列はレコードの属性値(例:職員の年齢(Age)、身長(Height)、体重(Weight)、性別(Gender)など)となる。
 図4は、データ保持部203及び統計値保持部204がそれぞれ保持するデータと統計値との保持内容の一構成例を示す図である。図においては複数の属性401~403ごとにブロックA~Cに分けられ、ブロックごとに統計値404とデータ405とが保持されている。なお、データと統計値とが分けられて保持されていてもよい。
 図5は、問合せ履歴保持部208が保持する履歴データのデータテーブル500の一構成例を示す図である。図5に示すテーブル500には、問合せID501ごとに、問合せ日時502、問合せ条件503、問合せブロック数504、および問合せがあったときに統計値を用いずにデータを用いたブロック数の平均値(P)505が保持される。また、問合せ条件503は、問合せ対象531と問合せ範囲532などを含む。問合せブロック数504は、統計値を使用したブロック数541とデータを使用したブロック数542を含む。なお、問合せがあったときに統計値を用いずにデータを用いたブロック数の平均値(P)505は、問合せがある都度更新される。問合せ履歴保持部208が保持する問合せ履歴に基づいて、最適ブロックサイズ推定部209は、ブロックごとの統計値を利用してブロックサイズを推定する。すなわち、最適ブロックサイズ推定部209は、ブロックごとの統計値を利用して行なう問合せに対応する回答処理の平均コストが最小となるように、データの集合を2つ以上のブロックに分割するときのブロックサイズを推定する。
 図6Aは最適ブロックサイズ推定部209が使用するブロックサイズ推定テーブル600の構成を示す図である。ブロックサイズ推定テーブル600は、集合データのパラメータ(タプル数N、データ要素一つのサイズ(バイト数)Stuple、一つのブロックの統計値の保持に必要なバイト数Sagg、およびストレージのページサイズ(バイト数)Spage)を有する。さらにブロックサイズ推定テーブル600は、問合せがあったときに統計値を用いずにデータを用いたブロック数の平均値(P)602、およびブロックの読み取りコスト(ReadBlockCost)603を有する。さらにブロックサイズ推定テーブル600は、統計値読み取りコスト(ReadMetaCost)604、コスト(Cost(B))605、推定した最小コストのブロック数(B)606、および推定した最小コストのブロックサイズ(N/B)607を有する。
 図6Bは、さまざまなブロックサイズ(N/B)における平均実行コスト(Cost(B))(見積)をプロットした図である。図に示すように、ある程度まではブロックサイズを大きくしてゆくと平均コストが下がってゆくが、最適ブロックサイズを超えて大きくしてゆくと再び平均コストが高くなっていく、ということが見て取れる。
 《ハードウェア構成の一例》
 次に、本実施形態に係る情報処理装置200のハードウェア構成の一例を図7を参照して説明する。
 図に示すように、情報処理装置200は、CPU(Central Processing Unit)701、ROM(Read Only Memory)702、通信制御部703、およびRAM(Random Access Memory)704を備えている。さらに、情報処理装置200は、ストレージ705、出力インタフェース706、表示部707、プリンタ708、および入力部710を備えている。CPU701は中央処理部であって、様々なプログラムを実行することにより情報処理装置200全体を制御する。
 ROM702は、リードオンリメモリであり、CPU701が最初に実行すべきブートプログラムの他、各種パラメータ等を記憶している。また、通信制御部703は、ネットワークを介した各種装置との通信を制御する。RAM704は、ランダムアクセスメモリであり、問合せがあったときに統計値を用いずにデータを用いたブロック数の平均値(P)602、およびブロックサイズ推定テーブル600を有する。また、RAM704は、推定した最小コストのブロックサイズ(N/B)607、統計値741、入出力データ742、および送受信データ743を有する。
 また、ストレージ705は、データ保持領域751と統計値保持領域752と問合せ履歴保持領域753とを有している。また、ストレージ705は、データ入力モジュール754、問合せ受付モジュール755、統計値利用可否判定モジュール756、およびブロック生成モジュール757を有する。さらにストレージ705は、問合せ実行モジュール758、最適ブロックサイズ推定モジュール759、およびデータ出力モジュール760等を有している。
 入力部710は、リーダ711、キーパッド712、タッチパネル713およびこれらからの入力をCPU701に渡す入力インタフェース715を含む。ここではリーダ711は、一例としてバーコードリーダとするが、RFID(Radio Frequency Identifier)タグリーダなどでもよい。
 一方、入力部710あるいは通信制御部703を介して問合せ受付モジュール755が受け付けた問合せに対する回答は、通信制御部703を介して外部装置に送信される、あるいは出力インタフェース706を介して表示部707やプリンタ708に出力される。
 なお、データ入力部201は、CPU701、ROM702、通信制御部703、RAM704、入力部710、データ入力モジュール754によって構成される。
 ブロック生成部202は、CPU701、ROM702、RAM704、ブロック生成モジュール757によって構成される。
 データ保持部203は、記憶部705のデータ保持領域751によって構成される。
 統計値保持部204は、記憶部705の統計値保持領域752によって構成される。
 問合せ受付部205は、CPU701、ROM702、通信制御部703、RAM704、入力部710、問合せ受付モジュール755によって構成される。
 問合せ実行部206は、CPU701、ROM702、RAM704、問合せ実行モジュール758によって構成される。
 統計値利用可否判定部207は、CPU701、ROM702、RAM704、統計値利用可否判定モジュール756によって構成される。
 最適ブロックサイズ推定部209は、CPU701、ROM702、RAM704、最適ブロックサイズ推定モジュール759によって構成される。
 問合せ履歴保持部208は、記憶部705の問合せ履歴保持領域753によって構成される。
 《処理の流れ》
 図8Aは、本実施形態の情報処理装置200において、データの集合を入力した際に実行される処理の流れを例示するフローチャートである。ステップS801において、データ入力部201はデータの集合を入力する。ステップS803において、最適ブロックサイズ推定部209はブロック生成部202と問合せ履歴保持部208から得た情報を使って、入力したデータの集合に対する問合せの平均コストを最小化するブロックサイズを算出して推定する。ステップS805において、ブロック生成部202は最適ブロックサイズ推定部209の算出したブロックサイズを用いてデータの集合をブロックへ分割し、データ保持部203へ保存する。ステップS807~S811において、ブロック生成部202は各ブロックについて統計値を算出し、全てのブロックについて統計値を算出し終えると、それらの統計値を統計値保持部204へ保存する。
 次に、ステップS803の処理の詳細を図8Bを参照して説明する。
 ステップS821において、最適ブロックサイズ推定部209は、問合せ履歴保持部208から問合せ履歴を取得する。ステップS823において、最適ブロックサイズ推定部209は、集合データパラメータ601を取得する。次に、ステップS825において、最適ブロックサイズ推定部209は、ブロック数Bを1に設定する。次に、ステップS827において、最適ブロックサイズ推定部209は、ブロック数Bに1を加算した数をブロック数とする。この後、ステップS829において、最適ブロックサイズ推定部209は、ブロック読み取りコストを算出する。さらに、ステップS831において、最適ブロックサイズ推定部209は、統計値読み取りコストを算出する。この後、ステップS833において、最適ブロックサイズ推定部209は、これらの算出結果を合計したコストを算出する。次に、ステップS835において、最適ブロックサイズ推定部209は、ブロック数Bがデータの要素数Nよりも小さいか否かを判定する。ブロック数Bがデータの要素数Nよりも小さいときは、最適ブロックサイズ推定部209は、ステップS827の処理に移行して処理を続行する。また、ブロック数Bがデータの要素数N以上のときは、ステップS837において、最適ブロックサイズ推定部209は、このときのブロック数Bを平均コストが最小となるブロック数Bとして選択する。次に、ステップS839において、最適ブロックサイズ推定部209は、N/Bを平均コストが最小となるブロックサイズとして算出する。
 図9は、本実施形態の情報処理装置200において、問合せの実行時の処理の流れを例示するフローチャートである。ステップS901において、問合せ受付部205は問合せを取得する。ステップS903~S911において、問合せ実行部206は各ブロックについて統計値を算出する。すなわち、ステップS905において、統計値利用可否判定部207は各ブロックについて、問合せで事前計算し統計値保持部204に保持されている統計値が再利用できるか否かを判定する。統計値が再利用可能であるならば、ステップS907において、問合せ実行部206は統計値利用可否判定部207を介して統計値保持部204よりブロックの統計値を取得する。統計値が再利用できないならば、ステップS909において、問合せ実行部206はデータ保持部203からブロックのデータを読み込み、必要なデータを用いて統計値を算出する。ステップS911において、問合せ実行部206は、問合せのあった範囲内の全てのブロックの統計値およびブロックの統計値を利用できないデータに対する統計値を取得し終える。次に、ステップS913において、問合せ実行部206は、それらの統計値を併合して最終的な問合せ結果を算出する。その後、ステップS915において、問合せ実行部206は実行した問合せの情報を問合せ履歴保持部208へ記録する。
 本実施形態によれば、問合せに対応する回答を導出するための平均コストを最小にするブロックサイズを決定し、このブロックサイズを用いてデータの集合を分割し、ブロックごとに算出したデータの統計値を再利用するので、統計処理の実行時間を高速化することができる。
 [第3実施形態]
 次に本発明の第3実施形態に係る情報処理装置について、図10を用いて説明する。図10は、本実施形態に係る情報処理装置1000の一例を説明するための機能ブロック図である。図10に示す各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。本実施形態に係る情報処理装置1000は、上記第2実施形態と比べると、統計値サイズ上限入力部1001を有する点で異なる。これに伴い、最適ブロックサイズ推定部1002の挙動も実施形態から変化している。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
 《統計値サイズ上限入力部》
 統計値サイズ上限入力部1001は、生成される統計値が統計値保持部204の記憶装置で保持される全体の保持サイズ(記憶容量)の上限値を外部から受け取り、最適ブロックサイズ推定部1002に設定する。
 《最適ブロックサイズ推定部》
 最適ブロックサイズ推定部1002は、問合せ実行部206による問合せに対応する回答処理の平均コストを最小にすると期待されるブロックサイズを推定する。最適ブロックサイズ推定部1002は、ブロックサイズを入力として問合せに対応する回答を導出するための平均コストを見積もるコスト関数を持つ。コスト関数はデータのサイズや問合せ範囲の指定につかわれる属性数の期待値などの情報を利用しうるため、最適ブロックサイズ推定部1002はブロック生成部202や問合せ履歴保持部208と通信して、これらの情報を得る。最適ブロックサイズの推定時には、このコスト関数を最小化するブロックサイズを算出し、最適ブロックサイズとする。
 また、最適ブロックサイズ推定部1002は、最適ブロックサイズを算出する際に、統計値サイズ上限入力部1001から設定された統計値サイズの上限値に基づいてブロックサイズの上限値を算出する。ここで、統計値サイズとは、生成される統計値が統計値保持部204の記憶装置で保持される全体のサイズ(記憶容量)のことである。さらに、最適ブロックサイズ推定部1002は、この上限値をブロックサイズの推定に対する制約としたうえで、コスト関数の最小化をおこない、最適ブロックサイズを推定する。
 《ハードウェア構成の一例》
 次に、本実施形態に係る情報処理装置1000のハードウェア構成の一例を図11を参照して説明する。なお、統計値サイズ上限値1141をRAM704に備えると共に、最適ブロックサイズ推定モジュール759に代えて最適ブロックサイズ推定モジュール1142をストレージ705に設けた点において第2実施形態と異なる。
 なお、統計値サイズ上限入力部1001は、CPU701、ROM702、通信制御部703、RAM704、入力部710、統計値サイズ上限値1141によって構成される。また、最適ブロックサイズ推定部1002は、CPU701、ROM702、RAM704、最適ブロックサイズ推定モジュール1142によって構成される。
 《処理の流れ》
 本実施形態の情報処理装置1000において、データを入力した際に実行される処理の流れは第2実施形態と同様であるが、最適ブロックサイズ推定処理が異なる。
 図12に本実施形態における最適ブロックサイズ推定処理のフローチャートを示して説明する。なお、図8Bと同一部分は同一符号をもって表わし、その説明を省略する。本実施形態の処理と第2実施形態の処理とでは、ステップS833とステップ835の間にステップS1201の処理が加わった点において異なる。すなわち、ステップS833の処理の後、ステップS1201において、最適ブロックサイズ推定部1002は、統計値保持部204が保持している統計値の保持サイズ(統計値の全体が占める記憶容量)Kが統計値サイズ上限入力部1001から入力された統計値サイズ上限値M以上か否かを判定する。この判定の結果、最適ブロックサイズ推定部1002は、統計値保持部204が保持している統計値の保持サイズKが統計値サイズ上限入力部1001から入力された統計値サイズ上限値M以上のときはステップS837に移行して処理を実行する。また、ステップS1201の判定の結果、保持している統計値の保持サイズKが統計値サイズ上限値Mよりも小さいとき、最適ブロックサイズ推定部1002は、ステップS835に移行して処理を実行する。
 本実施形態によれば、生成される統計値が統計値保持部204の記憶媒体において占めるサイズが事前に設定された上限を超えない範囲で平均コストを最小化するブロックサイズが算出される。このため、事前計算されて統計値保持部204の記憶装置に保持されている統計値の保持サイズが肥大化することを防ぐことができる。
 [他の実施形態]
 以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
 例えば、ブロック生成部202においてテーブルを水平分割する前にレコードの順序を並び替えることにより問合せ内で統計値が利用できる確率を高めることができる。すなわち、ブロック生成部202は、テーブルを水平分割する前にレコードの順序を並び替えることにより、ブロック内の属性値の分散を小さくし、問合せ内で統計値が利用できる確率を高める。これにより、スキャンを省くことのできるブロック数が多くなっているため、I/O量と計算量が少なくてすむ。そのため、問合せ処理が効率的となる。
 並び替えをおこなう属性は利用者が決定してもよいし、システムが自動的に決定してもよい。システムによる並び替え属性の決定方式例としては、過去におこなわれた問合せの履歴のなかで選択処理の条件式に頻繁に登場する属性を選ぶ、というものがある。一般に過去におこなわれた問合せに似た問合せが将来おこなわれる可能性は高いため、この方式をとることによって将来おこなわれる問合せの性能が向上することが期待される。
 また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。
 [実施形態の他の表現]
 上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
 データの集合を2つ以上のブロックに分割した場合の各ブロックに含まれるデータの統計値を保持する統計値保持手段と、
 前記データの集合についての過去の問合せに関する情報を問合せ履歴として保持する問合せ履歴保持手段と、
 前記問合せ履歴に基づいて、いくつかのブロックの前記統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定する推定手段と、
 前記推定手段によって推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出して前記統計値保持手段に保持させるブロック生成手段と、
 を備える情報処理装置。
(付記2)
 前記推定手段は、前記問合せがあったときに、前記問合せ履歴に基づいて、前記統計値を用いずにデータを用いたブロック数の平均値を取得し、該平均値を用いて前記ブロックサイズを推定する、付記1に記載の情報処理装置。
(付記3)
 前記推定手段は、前記ブロックサイズを変数とする前記平均コストを算出するためのコスト関数を有し、該コスト関数を用いて前記平均コストが最小となる前記ブロックサイズを推定する、付記1または2に記載の情報処理装置。
(付記4)
 前記推定手段は、ブロックごとに事前に算出された前記統計値を参照するためのコストと、前記問合せに対応する回答を導出するために必要なデータを含む前記ブロックを読み取るためのコストとの和を前記平均コストとし、前記平均コストが最小となる前記ブロックサイズを推定する、付記1乃至3のいずれか1項に記載の情報処理装置。
(付記5)
 前記推定手段は、前記統計値を参照するためのコスト(ReadMetaCost)を、全体のブロック数B、前記統計値を用いずに前記データを用いたブロック数の平均値P、一つのブロックの統計値の保持に必要なバイト数Sagg、ストレージのページサイズSpageを含む以下の式を用いて算出する、付記4に記載の情報処理装置。
Figure JPOXMLDOC01-appb-M000006
(付記6)
 前記推定手段は、前記ブロックを読み取るためのコスト(ReadBlockCost)を、データの要素数N、全体のブロック数B、前記統計値を用いずにデータを用いたブロック数の平均値P、データ要素一つのサイズStuple、ストレージのページサイズSpageを含む以下の式を用いて算出する、付記4に記載の情報処理装置。
Figure JPOXMLDOC01-appb-M000007
(付記7)
 前記推定手段は、前記統計値保持手段が前記統計値を保持するための保持サイズが事前に設定された上限値を超えない範囲で、前記回答を導出するための前記平均コストが最小となる前記ブロックサイズを推定する、付記1乃至6のいずれか1項に記載の情報処理装置。
(付記8)
 前記データの集合は、属性を有する2つ以上のレコードを含むテーブルによって構成され、
 前記ブロック生成手段は、前記属性についてレコードを並べ替えたテーブルを作成した後に該テーブルをそれぞれ1つ以上のレコードを含む2つ以上のブロックに分割する、付記1乃至7のいずれか1項に記載の情報処理装置。
(付記9)
 前記データの集合を保持するデータ保持手段と、
 前記データの集合についての問合せを受付ける問合せ受付手段と、
 前記問合せ受付手段によって受付けた問合せに対して前記統計値保持手段が保持している各ブロックの統計値を利用できるか否かを判定する判定手段と、
 前記判定手段の判定の結果、ブロックの統計値を利用可能なときは該利用可能な統計値を利用して前記問合せに対する回答を生成する問合せ実行手段と、
 をさらに備えた付記1乃至8のいずれか1項に記載の情報処理装置。
(付記10)
 データの集合についての過去の問合せに関する情報を問合せ履歴として保持する問合せ履歴保持ステップと、
 前記問合せ履歴に基づいて、いくつかのブロックの統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定する推定ステップと、
 前記推定ステップにおいて推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出するブロック生成ステップと、を含む情報処理方法。
(付記11)
 データの集合についての過去の問合せに関する情報を問合せ履歴として保持する問合せ履歴保持ステップと、
 前記問合せ履歴に基づいて、いくつかのブロックの統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定する推定ステップと、
 前記推定ステップにおいて推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出するブロック生成ステップと、をコンピュータに実行させる情報処理プログラムを格納する記憶媒体。
 以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
 この出願は、2015年5月7日に出願された日本出願特願2015-094624を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (10)

  1.  データの集合を2つ以上のブロックに分割した場合の各ブロックに含まれるデータの統計値を保持する統計値保持手段と、
     前記データの集合についての過去の問合せに関する情報を問合せ履歴として保持する問合せ履歴保持手段と、
     前記問合せ履歴に基づいて、いくつかのブロックの前記統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定する推定手段と、
     前記推定手段によって推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出して前記統計値保持手段に保持させるブロック生成手段と、
     を備える情報処理装置。
  2.  前記推定手段は、前記問合せがあったときに、前記問合せ履歴に基づいて、前記統計値を用いずにデータを用いたブロック数の平均値を取得し、該平均値を用いて前記ブロックサイズを推定する、請求項1に記載の情報処理装置。
  3.  前記推定手段は、前記ブロックサイズを変数とする前記平均コストを算出するためのコスト関数を有し、該コスト関数を用いて前記平均コストが最小となる前記ブロックサイズを推定する、請求項1または2に記載の情報処理装置。
  4.  前記推定手段は、ブロックごとに事前に算出された前記統計値を参照するためのコストと、前記問合せに対応する回答を導出するために必要なデータを含む前記ブロックを読み取るためのコストとの和を前記平均コストとし、前記平均コストが最小となる前記ブロックサイズを推定する、請求項1乃至3のいずれか1項に記載の情報処理装置。
  5.  前記推定手段は、前記統計値を参照するためのコスト(ReadMetaCost)を、全体のブロック数B、前記統計値を用いずに前記データを用いたブロック数の平均値P、一つのブロックの統計値の保持に必要なバイト数Sagg、ストレージのページサイズSpageを含む以下の式を用いて算出する、請求項4に記載の情報処理装置。
    Figure JPOXMLDOC01-appb-M000008
  6.  前記推定手段は、前記ブロックを読み取るためのコスト(ReadBlockCost)を、データの要素数N、全体のブロック数B、前記統計値を用いずにデータを用いたブロック数の平均値P、データ要素一つのサイズStuple、ストレージのページサイズSpageを含む以下の式を用いて算出する、請求項4に記載の情報処理装置。
    Figure JPOXMLDOC01-appb-M000009
  7.  前記推定手段は、前記統計値保持手段が前記統計値を保持するための保持サイズが事前に設定された上限値を超えない範囲で、前記回答を導出するための前記平均コストが最小となる前記ブロックサイズを推定する、請求項1乃至6のいずれか1項に記載の情報処理装置。
  8.  前記データの集合は、属性を有する2つ以上のレコードを含むテーブルによって構成され、
     前記ブロック生成手段は、前記属性についてレコードを並べ替えたテーブルを作成した後に該テーブルをそれぞれ1つ以上のレコードを含む2つ以上のブロックに分割する、請求項1乃至7のいずれか1項に記載の情報処理装置。
  9.  データの集合についての過去の問合せに関する情報を問合せ履歴として保持する問合せ履歴保持ステップと、
     前記問合せ履歴に基づいて、いくつかのブロックの統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定する推定ステップと、
     前記推定ステップにおいて推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出するブロック生成ステップと、
     を含む情報処理方法。
  10.  データの集合についての過去の問合せに関する情報を問合せ履歴として保持し、
     前記問合せ履歴に基づいて、いくつかのブロックの統計値を用いて問合せに対応する回答を導出するための平均コストが最小となるブロックサイズを推定し、
     推定された前記ブロックサイズに応じて、前記データの集合を分割して2つ以上のブロックを生成すると共に、生成されたブロックごとに前記統計値を算出する、
     ことをコンピュータに実行させる情報処理プログラムを格納する記憶媒体。
PCT/JP2016/002183 2015-05-07 2016-04-26 情報処理装置、情報処理方法および記憶媒体 WO2016178312A1 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190115389A (ko) * 2018-04-02 2019-10-11 주식회사 큐브시스템 통계 블록을 포함하는 큐브체인 형태의 데이터 관리 엔진 및 데이터 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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