WO2018069973A1 - 集計プログラム、集計装置、及び集計方法 - Google Patents

集計プログラム、集計装置、及び集計方法 Download PDF

Info

Publication number
WO2018069973A1
WO2018069973A1 PCT/JP2016/080138 JP2016080138W WO2018069973A1 WO 2018069973 A1 WO2018069973 A1 WO 2018069973A1 JP 2016080138 W JP2016080138 W JP 2016080138W WO 2018069973 A1 WO2018069973 A1 WO 2018069973A1
Authority
WO
WIPO (PCT)
Prior art keywords
specific item
date
value list
time
item
Prior art date
Application number
PCT/JP2016/080138
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 PCT/JP2016/080138 priority Critical patent/WO2018069973A1/ja
Priority to JP2018544603A priority patent/JP6702425B2/ja
Publication of WO2018069973A1 publication Critical patent/WO2018069973A1/ja
Priority to US16/293,450 priority patent/US11126604B2/en

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/2455Query execution
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1865Transactional file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • G06F16/196Specific adaptations of the file system to access devices and non-file objects via standard file system access operations, e.g. pseudo file systems
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • 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

Definitions

  • the present invention relates to a counting program, a counting device, and a counting method.
  • a table of a database other than the database on which the aggregation process is executed among the plurality of databases is virtualized as a database table on which the aggregation process is executed, and the aggregation process is performed on the virtualized table.
  • a table related to data other than data managed by the computer is referred to as an “external table”.
  • the external table is, for example, a table obtained by virtualizing a database table other than the database on which the aggregation process is executed as a database table on which the aggregation process is executed.
  • an index such as a B-tree index
  • a column that is a unit of aggregation such as a date by a function of a system that manages a database that performs aggregation processing
  • Aggregation processing can be speeded up.
  • the index cannot be assigned to the external table by the function of the system that manages the database in which the aggregation process is executed, the data aggregation process becomes relatively slow.
  • an index can be assigned to the table.
  • this load process takes a relatively long time, and the overall process including the load process and the total process is relatively slow.
  • the present invention has an object, as one aspect, of tallying data stored in an external table at high speed.
  • the present invention aggregates data in a table to be aggregated including at least one external table related to data other than data managed by a computer.
  • a specific item other than the date / time item as the aggregation unit of the external table having a plurality of items including a date / time item, and a total value is stored for each specific item in a date / time item unit of a predetermined granularity.
  • a process of associating the total value list with the one-to-one correspondence is performed.
  • the specific item is used as an index, and the total value list of the specific item is associated in a one-to-one correspondence.
  • the total value of the total value list specified by using the specific item as an index is updated.
  • the data stored in the external table can be aggregated at high speed.
  • the internal DB 10 includes an internal table 11 and an external table 12A obtained by virtualizing a table 14A of the external DB 13A as a table of the internal DB 10. Further, the internal DB 10 includes an external table 12B obtained by virtualizing the table 14B of the external DB 13B as a table of the internal DB 10.
  • the internal table 11 and the tables 14A and 14B store date and time, stores, products, and sales. The date is stored in the format of the year, month and day of the year, the store name is stored in the store, the product name is stored in the product, and the sales amount is stored in the sales.
  • the sales of each record stored in the internal table 11 are accumulated and aggregated in units of one month for each combination of store and product (1 in FIG. 1), and the aggregation table 16 is obtained.
  • the rounding date and time of the tabulation table 16 is information obtained by rounding the date and time of the internal table 11 in the tabulation unit (here, one month unit) (that is, the date of the year, month, and day is rounded down). That is, for example, the total value (total) of sales for “April 2015” for the “apple” in the store with the store name “Tokyo” is “100”.
  • the record 17 is read from the external table 12A (2 in FIG. 1), and the sales of the record 17 is added to the total value of the corresponding record in the total table 16 (3 in FIG. 1).
  • Aggregation processing of data stored in the external table 12A is performed. In this aggregation process, it is necessary to search for a record corresponding to the record 17 in the aggregation table 16. In this search process, when searching for a record corresponding to the record 17 in the total table 16, a record in which the combination of the store and the product in the record 17 matches is searched from all the records in the total table 16 (in FIG. 1). 3-1).
  • this search process in addition to searching for a combination of a store and a product, searching for a record in the aggregation table 16 in which a rounding date and time that matches the date and time obtained by rounding the date and time of the record 17 in a counting unit is stored. (3-2 in FIG. 1).
  • the amount of calculation for the search for the combination of the store and the product and the search for the rounding date / time exceeds O (1), and it takes a relatively long time.
  • the aggregation process is speeded up by using a specific item as an aggregation unit as an index.
  • the counting system 20 includes a counting device 21 and external devices 22A and 22B.
  • a server computer is mentioned as an example of each of the totaling device 21 and the external devices 22A and 22B.
  • the external DB 24A is stored in a predetermined storage area of the external device 22A.
  • the external DB 24A includes a table 26A in which data aggregated by the aggregation device 21 is stored.
  • the external DB 24B is stored in a predetermined storage area of the external device 22B.
  • the external DB 24B includes a table 26B in which data aggregated by the aggregation device 21 is stored.
  • Each of the totaling device 21 and the external devices 22A and 22B is connected to the network 28 and can transmit and receive data to and from each other.
  • the counting device 21 includes a processing unit 30 and a counting unit 32. Further, in a predetermined storage area of the aggregation device 21, an internal DB 40, an aggregation definition 46, an internal aggregation table 48, an aggregation value list 50, metadata 52, and a hash table 54 are stored.
  • the internal DB 40 includes an internal table 42 and external tables 44A and 44B.
  • FIG. 4 shows an example of the internal table 42.
  • the internal table 42 stores the sales date and time, the sales store, the sales product, and the sales amount.
  • an 8-digit number string indicating the date is stored as an item indicating the date and time when the product is sold.
  • the sales store stores information indicating the store where the product was sold, and the sales product stores information indicating the sold product.
  • the sales amount includes the sales amount recorded for the product indicated by the information stored in the sales product at the store indicated by the information stored in the sales store on the date indicated by the number string stored in the sales date and time. Is stored.
  • the substance of the data of the internal table 42 is stored in the table area of the internal DB 40.
  • An index is created for each item of the sales date and time, the sales store, and the sales merchandise in the internal table 42 by a function of a system that manages an internal DB such as Relational DataBase Management System (RDBMS).
  • RDBMS Relational DataBase Management System
  • an index created by the function of the system that manages the internal DB 40 is hereinafter referred to as a “DB index”.
  • FIG. 5 shows an example of the external table 44A.
  • the external table 44A stores date and time, stores, products, and sales. At the time of day, the same information as the sales date and time of the internal table 42 is stored, and the same information as the sales store of the internal table 42 is stored in the store. In addition, the same information as the sales product in the internal table 42 is stored in the product, and the same information as the sales amount in the internal table 42 is stored in the sales.
  • the external table 44A is a table obtained by virtualizing the table 26A of the external DB 24A as the table of the internal DB 40. That is, the substance of the data in the external table 44A is stored in a general-purpose data format in a predetermined storage area of the aggregation device 21 other than the storage area in which the internal DB 40 is stored, a predetermined storage area of the external device 22A, or the like. Is done. Accordingly, a DB index is not created for each item of the external table 44A.
  • the external table 44B is a table similar to the external table 44A except that the table 26B of the external DB 24B is virtualized as a table of the internal DB 40, and stores the same information as the external table 44A.
  • the external tables 44A and 44B are collectively referred to without being distinguished, the alphabet at the end of the code is omitted.
  • the aggregation definition 46 stores parameter names used for data aggregation and values corresponding to the parameter names.
  • FIG. 6 shows an example of the total definition 46.
  • the aggregation definition 46 stores an aggregation target table, dimension columns 1 to N, a measure, and a date / time column as parameters for each table to be aggregated.
  • the aggregation definition 46 stores a date / time aggregation unit and an aggregation method as parameters common to tables to be aggregated.
  • the table name of the table to be aggregated is stored in the aggregation target table.
  • the table name of the internal table 42 is “sales_inner”
  • the table name of the external table 44A is “sales A_outer”.
  • Dimension columns 1 to N store column names of items that are aggregation units (that is, aggregation groups) other than the date and time columns described later.
  • the number of dimension columns (that is, the value of N) is not particularly limited as long as it is a predetermined number equal to or greater than the number of items other than the date / time column (2 in the present embodiment) as the aggregation unit.
  • Measure stores the column name of the item for which the aggregate value is calculated.
  • the date / time aggregation unit stores the granularity when rounding the date / time as information for the date / time aggregation unit, and the aggregation method stores the calculation method of the aggregation value of the item stored in the measure.
  • the major is not limited to the column name of the item for which the aggregate value is to be calculated, and may be a mathematical formula such as unit sales price ⁇ number of units sold.
  • the date and time aggregation unit is not limited to one month unit, but may be other units such as a plurality of month units other than one month unit, and year unit.
  • the totaling method is not limited to the total (SUM), and other methods such as an average may be used.
  • the total value of “sales amount” in units of one month is calculated as the total value for each combination of “sales store” and “sales merchandise”.
  • the total value of “sales” for each month for each combination of “store” and “product” is calculated as an aggregate value.
  • the processing unit 30 calculates the total value of the internal table 42 for each specific item other than the sales date and time in units of date and time items with a predetermined granularity.
  • the processing unit 30 totals “sales amount” for each combination of “sales store” and “sales product” for the internal table 42 in accordance with the total definition 46, and the internal total table 48. Is generated.
  • FIG. 7 shows an example of the internal tabulation table 48. As shown in FIG. 7, the internal tabulation table 48 stores the rounding date, dim1, dim2, the tabulated value, and the parameter.
  • the rounded date / time stores a value obtained by rounding the “sales date / time” in the internal table 42 by the “date / time aggregation unit” in the aggregation definition 46 (that is, the day is truncated).
  • the values of the items of “dimension column 1” and “dimension column 2” of the aggregation definition 46 corresponding to the internal table 42 are stored.
  • the total value stores the total value obtained by integrating the “sales amount” in the internal table 42 for each combination of dim1 and dim2 in rounding date units.
  • the parameter of the record used for calculating the total value is stored.
  • the internal table 42 includes, for example, ten records of sales stores in Tokyo and sales products of apples between the sales dates from 2015150501 to 201505311, and the total value of the sales amount of these records Is 500.
  • the generation processing of the internal total table 48 by the processing unit 30 may be performed using Structured Query Query Language (SQL) such as a SELECT statement for the internal table 42, and thus detailed description thereof is omitted here.
  • SQL Structured Query Query Language
  • the processing unit 30 After generating the internal tabulation table 48, the processing unit 30 generates a tabulation value list 50 in which tabulation values are stored for each specific item in the date and time item unit of the predetermined granularity. In the present embodiment, the processing unit 30 stores the total value and the population in the total value list 50 in ascending order of the rounding date for each combination of dim1 and dim2.
  • the processing unit 30 generates metadata 52 that is common to all the summary value lists 50.
  • the processing unit 30 stores the minimum value (hereinafter referred to as “minimum rounding date / time”) and maximum value (hereinafter referred to as “maximum rounding date / time”) of the rounded date and time of the data to be aggregated in the metadata 52.
  • minimum value and maximum value of the rounding date and time of each summary value list 50 are different, and when the rounding date and time are not continuous, A record whose total value and parameter are 0 is inserted.
  • the processing unit 30 when generating each aggregate value list 50, the processing unit 30 generates each aggregate value list 50 so that the minimum rounding date / time, the maximum rounding date / time, and the number of records are the same.
  • FIG. 8 shows an example of the total value list 50
  • FIG. 9 shows an example of the metadata 52. 8 and FIG. 9, for example, indicates that the aggregate value of the sales amount of apples in May 2015 in Tokyo stores is 100, and the number of records used for calculating the aggregate value is 10. Further, as shown in FIG. 8, in this embodiment, the total value list 50 is stored in the form of an array.
  • the processing unit 30 performs a process of associating the specific item and the total value list 50 on a one-to-one basis so that the specific value can be specified using the specific item as an index.
  • the processing unit 30 uses a hash function that outputs different values for each combination of dim1 and dim2 when dim1 and dim2 are input, and sets the dim1 and dim2 and the total value list 50 to 1 Match one-on-one.
  • the processing unit 30 generates, for each combination of dim1 and dim2, a hash table 54 that uses a hash value obtained by using a hash function as an address of a storage area indicating each element of the table.
  • the processing unit 30 stores, in each element of the hash table 54, the start address of the storage area of the total value list 50 of the combination of dim1 and dim2 corresponding to each element.
  • FIG. 10 shows an example of the hash table 54.
  • the head address of each tabulated value list 50 is stored in the form of an array.
  • each element of the hash table 54 can be accessed using a hash value corresponding to each element as an index. Therefore, in this embodiment, from the hash value obtained by inputting the combination of dim1 and dim2 into the hash function, the total value list corresponding to this combination can be specified with the calculation amount of O (1).
  • the index of the hash table 54 is referred to as a “hash index”.
  • the totaling unit 32 When the data stored in the external table 44 is totaled, the totaling unit 32 according to the present embodiment updates the total value in the total value list 50 using the specific item as an index. In addition, when updating the total value, the totaling unit 32 specifies the total value to be updated using a function that specifies the date / time item for each predetermined granularity in the total value list.
  • the aggregation unit 32 sequentially reads records one by one from the external table 44 according to the values of the aggregation target table of the aggregation definition 46.
  • the totaling unit 32 obtains a hash value by inputting the store and product of the read record into the hash function described above according to the values of the dimension columns 1 to N of the total definition 46 (1 in FIG. 11). Then, the totaling unit 32 reads the element of the hash table 54 corresponding to the combination of the store and the product in the read record, using the obtained hash value as a hash index. Thereby, the totaling unit 32 specifies the top address of the total value list 50 corresponding to the combination (2 in FIG. 11).
  • the counting unit 32 calculates the rounding date by rounding the date and time of the read record in accordance with the date and time counting unit of the counting definition 46 (3 in FIG. 11). Further, the totaling unit 32 reads the minimum rounding date from the metadata 52. In addition, the totaling unit 32 inputs the calculated rounding date and the read minimum rounding date to the date specifying function that specifies the rounding date and time for which the total value of the total value list 50 is to be calculated. Then, the tabulation unit 32 obtains the output value of the date specifying function as an index for accessing the elements of the tabulation value list 50 (4 in FIG. 11).
  • the total value list 50 is stored in the form of an array, and the total value and the parameter are stored in the total value list 50 in ascending order of rounding date and time. It is possible to access an element that is a calculation target of the total value in the value list 50.
  • the totaling unit 32 adds the sales of the read record to the total value stored in the element specified using the date / time specifying function in the total value list 50 specified using the hash index, and adds 1 to the population. Are added (5 in FIG. 11).
  • a function that outputs a value obtained by subtracting the input rounding date from the input maximum rounding date as the date specifying function Can be applied.
  • the aggregation device 21 can be realized by a computer 80 shown in FIG. 12, for example.
  • the computer 80 includes a central processing unit (CPU) 81, a memory 82 as a temporary storage area, and a nonvolatile storage unit 83.
  • the computer 80 includes an input / output device 84 such as a display device and an input device.
  • the computer 80 also includes a Read / Write (R / W) unit 85 that controls reading and writing of data with respect to the recording medium 88 and a network I / F 86 connected to the network.
  • the CPU 81, the memory 82, the storage unit 83, the input / output device 84, the R / W unit 85, and the network I / F 86 are connected to each other via a bus 87.
  • the storage unit 83 can be realized by a hard disk drive (HDD), a solid state drive (SSD), a flash memory, or the like.
  • the storage unit 83 as a storage medium stores a totalization processing program 90 for causing the computer 80 to function as the totalization device 21.
  • the aggregation processing program 90 has a processing process 91 and an aggregation process 92.
  • the storage unit 83 has an information storage area 93 in which the internal DB 40 and the total definition 46 are stored.
  • the memory 82 has an information storage area 94 in which the internal total table 48, the total value list 50, the metadata 52, and the hash table 54 are stored.
  • the internal tabulation table 48, the tabulation value list 50, the metadata 52, and the hash table 54 may be stored in the internal DB 40 or may be stored in a storage area different from the internal DB 40 of the storage unit 83.
  • the CPU 81 reads the tabulation processing program 90 from the storage unit 83 and expands it in the memory 82, and executes the process of the tabulation processing program 90.
  • the CPU 81 operates as the processing unit 30 illustrated in FIG. 3 by executing the processing process 91.
  • the CPU 81 operates as the totaling unit 32 illustrated in FIG. 3 by executing the totaling process 92.
  • the computer 80 that has executed the aggregation processing program 90 functions as the aggregation device 21.
  • the functions realized by the aggregation processing program 90 can be realized by, for example, a semiconductor integrated circuit, more specifically, Application Specific Integrated Circuit (ASIC).
  • ASIC Application Specific Integrated Circuit
  • the aggregation device 21 executes the aggregation processing program 90, thereby executing the aggregation processing shown in FIG. 13 is started by the CPU 81 when, for example, an instruction to start execution is input by the user, or at a regular timing such as once a day.
  • step 100 of the aggregation process illustrated in FIG. 13 the processing unit 30 determines whether a table with “_inner” at the end exists in the aggregation target table of the aggregation definition 46 stored in the storage unit 83. Thereby, the processing unit 30 determines whether or not the internal table 42 exists in the table to be counted. If this determination is affirmative, the process proceeds to step 102. If the determination is negative, the process proceeds to step 110.
  • step 102 the processing unit 30 aggregates the data stored in the internal table 42 according to the aggregation definition 46, and generates the internal aggregation table 48.
  • step 104 the processing unit 30 generates a total value list 50 for each combination of dim 1 and dim 2 in the internal total table 48 generated in step 102. Then, the processing unit 30 stores, in each total value list 50, the corresponding total value and parameter of the internal total table 48 in ascending order of the rounding date and time of the internal total table 48.
  • the processing unit 30 In the next step 106, the processing unit 30 generates metadata 52 storing the minimum value and the maximum value of the rounding date / time of the internal tabulation table 48 generated in step 102. In the next step 108, as described above, the processing unit 30 uses the hash value obtained by using the hash function for each combination of dim1 and dim2 as the address of the storage area indicating each element of the table. 54 is generated. Then, the processing unit 30 stores, in each element of the hash table 54, the start address of the storage area of the total value list 50 of the combination of dim1 and dim2 corresponding to each element.
  • step 110 to step 138 shown below is executed for each external table 44 included in the aggregation definition 46 as a processing target.
  • the counting device 21 repeatedly executes the processing from step 110 to step 138, the external table 44 that has not been processed until then is set as the processing target.
  • the processing from step 110 to step 136 shown below is repeatedly executed by reading each record stored in the external table 44 to be processed one by one from the top in order.
  • step 110 the counting unit 32 reads one record from the external table 44.
  • step 112 the tabulation unit 32 inputs the store and the commodity of the record read in step 110 into the hash function according to the tabulation definition 46 and acquires the hash value output from the hash function.
  • step 114 the counting unit 32 determines whether or not the element of the hash table 54 generated in step 108 is accessible using the hash value acquired in step 112 as a hash index. If this determination is affirmative, the process proceeds to step 116, and if it is negative, the process proceeds to step 118.
  • step 116 the counting unit 32 uses the hash value acquired in step 112 as a hash index to acquire the element of the hash table 54 generated in step 108. Thereby, the totaling unit 32 acquires the top address of the storage area of the totalized value list 50 corresponding to the combination of the store and the product of the record read in Step 110.
  • step 118 the processing unit 30 generates a total value list 50 in which the sales of the records read out in step 110 are set as the total value and the records having the parameter 1 are stored. If the metadata 52 does not exist at the first execution of step 118, the processing unit 30 sets the minimum rounding date and the maximum rounding date as the rounding date obtained by rounding the date and time of the record read in step 110. Metadata 52 is generated. In the next step 120, the processing unit 30 stores the head address of the storage area of the total value list 50 generated in step 118 in the element of the hash table 54 that can be accessed with the hash value acquired in step 112. Then, the hash table 54 is updated.
  • step 122 the counting unit 32 calculates the rounding date by rounding the date and time of the record read in step 110 in the date and time counting unit of the counting definition 46. Then, the totaling unit 32 determines whether the calculated rounding date / time is smaller than the minimum rounding date / time of the metadata 52. If this determination is affirmative, the process proceeds to step 124. If the determination is negative, the process proceeds to step 128.
  • the tabulation unit 32 expands each tabulated value list 50. Specifically, the totaling unit 32 inserts records having the total value and the population parameter as 0 from the beginning of the total value list 50 by the number of differences between the minimum rounding date and the rounding date. As shown in FIG. 14, for example, when the total value and the parameter from May 2015 to December 2015 are stored in ascending order in the total value list 50 and the rounding date calculated in step 122 is “201504”, the total is calculated.
  • the unit 32 expands the total value list 50 by the following processing. In other words, in this case, the processing unit 30 inserts one record with the total value and the parameter set to 0 at the top of the total value list 50.
  • the counting unit 32 updates the minimum rounding date and time of the metadata 52 to the rounding date and time calculated in step 122.
  • step 128 the counting unit 32 determines whether or not the rounding date and time calculated in step 122 is greater than the maximum rounding date and time of the metadata 52. If this determination is affirmative, the process proceeds to step 130. If the determination is negative, the process proceeds to step 134.
  • the tabulation unit 32 expands each tabulated value list 50. Specifically, the totaling unit 32 inserts, at the end of the total value list 50, records each having a total value and a population number of 0 as many as the difference between the rounding date and the maximum rounding date. As shown in FIG. 15, for example, when the total value and the parameter of May 2015 to December 2015 are stored in ascending order in the total value list 50 and the rounding date calculated in step 122 is “201602”, the total is calculated.
  • the unit 32 expands the total value list 50 by the following processing. That is, in this case, the processing unit 30 inserts two records each having a total value and a population parameter of 0 at the end of the total value list 50.
  • the counting unit 32 updates the maximum rounding date and time of the metadata 52 to the rounding date and time calculated in step 122.
  • step 134 the counting unit 32 inputs the rounding date and time calculated in step 122 and the minimum rounding date and time of the metadata 52 to the date and time specifying function described above, and acquires the output value of the date and time specifying function.
  • the tabulation unit 32 specifies the tabulation value list 50 that is an update target of the tabulation value using the hash value acquired in step 112 as a hash index.
  • the totaling unit 32 specifies an element to be updated of the total value of the specified total value list 50 using the output value of the date / time specifying function. Then, the totaling unit 32 adds the sales of the record read in step 110 to the total value stored in the specified element, and adds 1 to the population.
  • step 138 the counting unit 32 determines whether or not the processing from step 110 to step 136 has been executed for all the records in the external table 44 to be processed. If this determination is negative, the process returns to step 110. If the determination is affirmative, the process proceeds to step 140.
  • step 140 the totaling unit 32 determines whether or not the processing from step 110 to step 138 has been executed for all the external tables 44 included in the total definition 46. If this determination is negative, the process returns to step 110. If the determination is affirmative, the totalization process ends.
  • the total value list 50 obtained by the above total processing is used for data analysis such as time series analysis.
  • specific items for example, stores and products
  • date / time items for example, date / time
  • a predetermined granularity for example, month
  • the specific item and the aggregate value list 50 are displayed.
  • the data stored in the external table 44 is aggregated after the aggregate value list 50 is generated using the internal table 42 that can be aggregated at a relatively high speed using the DB index.
  • the data stored in the external table 44 can be aggregated at a higher speed than when the data stored in the external table 44 is aggregated before the data stored in the internal table 42.
  • the specific item and the total value list 50 are associated one-to-one with a hash function that outputs a different value for each specific item. .
  • a hash function that outputs a different value for each specific item.
  • the total value list 50 stores the total values in the order of the date and time items (for example, ascending order).
  • a date and time specifying function that specifies a date and time item for each predetermined granularity in the total value list 50 is used. To update the aggregate value.
  • the data stored in the external table 44 can be totaled at high speed.
  • the present invention is not limited to this.
  • only the external table 44 may be applied as a table to be counted.
  • the aggregate value list 50 corresponding to the combination of the store and the product is specified using the hash function and the hash table 54.
  • the present invention is not limited to this.
  • it is good also as a form which specifies the total value list 50 corresponding to the combination of a store and goods using the list file etc. which match
  • the hash table 54 may be generated individually for each item as a totaling unit.
  • An example of the hash table 54 in this embodiment is shown in FIG.
  • the Nth hash table 54 stores the start address of the storage area of the total value list 50 corresponding to the combination of items as the total unit.
  • the totaling unit 32 acquires the address stored in the element of the hash table 54A corresponding to dim1, using the output value of the hash function having dim1 as an input. Further, the totaling unit 32 acquires the address stored in the element of the hash table 54B specified by the acquired address, using the output value of the hash function having dim2 as an input. Then, the totaling unit 32 specifies the total value list 50 corresponding to the combination of dim1 and dim2 using the acquired address. In this embodiment, the calculation amount of the specific processing of the total value list 50 is increased as compared with the above embodiment, but the creation and automatic expansion of the hash table 54 can be controlled for each item as the total unit, so that the memory resource Can be used efficiently.
  • the aggregation processing program 90 is stored (installed) in the storage unit 83 in advance.
  • the aggregation processing program 90 can also be provided in a form recorded on a recording medium such as a CD-ROM, DVD-ROM, USB memory, memory card or the like.
  • Total System 21 Total Device 22A, 22B External Device 24A, 24B External DB 26A Table 26B Table 30 Processing unit 32 Totaling unit 40 Internal DB 42 Internal tables 44A and 44B External table 46 Total definition 48 Internal total table 50 Total value list 52 Metadata 54 Hash table 80 Computer 81 CPU 82 Memory 83 Storage unit 88 Recording medium 90 Total processing program

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

外部テーブルに記憶されたデータを高速に集計する。コンピュータが管理するデータ以外のデータに関する外部テーブルを少なくとも一つ含む集計対象テーブルのデータを集計する場合に、日時項目を含む複数の項目を有する前記外部テーブルの集計単位とする前記日時項目以外の特定の項目と、前記特定の項目毎に所定の粒度の日時項目単位で集計値が記憶される集計値リストとを、前記特定の項目をインデックスとして用いて該特定の項目の集計値リストを特定可能に1対1で対応付ける処理を行い、前記外部テーブルに記憶されたデータを集計する際に、前記特定の項目をインデックスとして用いて特定される前記集計値リストの前記集計値を更新する。

Description

集計プログラム、集計装置、及び集計方法
 本発明は、集計プログラム、集計装置、及び集計方法に関する。
 従来、複数の項目を含むデータを取り込んで、項目毎に集計する技術が知られている。
 また、データウェアハウス等の外部に蓄積されたデータをロードする際に、データに対して集計処理等の処理を行いつつデータをロードする技術が知られている。
特開2006-195680号公報 特表2012-526314号公報
 ところで、近年、データの分析等のために、複数のデータベース各々が含むテーブルに記憶されたデータを集計することが行われている。この集計において、例えば、複数のデータベースのうちの1つのデータベースを集計処理の実行対象のデータベースとして、各データベースのテーブルに記憶されたデータを集計する集計処理を行うことが考えられる。なお、以下では、コンピュータが管理するデータに関するテーブル、具体的には、実行対象とするデータベース自身がデータを記憶しているテーブルを「内部テーブル」という。
 そして、この場合、複数のデータベースのうちの集計処理が実行されるデータベース以外のデータベースのテーブルは、例えば、集計処理が実行されるデータベースのテーブルとして仮想化し、仮想化したテーブルに対して集計処理が行われる。なお、以下では、コンピュータが管理するデータ以外のデータに関するテーブルを「外部テーブル」という。外部テーブルは、具体的には、例えば、集計処理が実行されるデータベース以外のデータベースのテーブルを、集計処理が実行されるデータベースのテーブルとして仮想化したテーブルである。
 内部テーブルに対しては、例えば日付等の集計単位とする列に、集計処理が実行されるデータベースを管理するシステムの機能により、B木索引等の索引(インデックス)を付与することで、データの集計処理を高速化することができる。
 これに対し、外部テーブルに対しては、集計処理が実行されるデータベースを管理するシステムの機能により索引を付与することができないため、データの集計処理が比較的低速になってしまう。一方、集計処理が実行されるデータベース以外のデータベースのテーブルを集計処理が実行されるデータベースにロードして内部テーブルとすることで、該テーブルに対してインデックスを付与することができる。しかしながら、このロード処理には比較的時間がかかってしまい、ロード処理に集計処理を加えた全体の処理としては比較的低速になってしまう。
 本発明は、一つの側面として、外部テーブルに記憶されたデータを高速に集計することを目的とする。
 本発明は、一つの側面として、コンピュータが管理するデータ以外のデータに関する外部テーブルを少なくとも一つ含む集計対象テーブルのデータを集計する。この集計において、日時項目を含む複数の項目を有する前記外部テーブルの集計単位とする前記日時項目以外の特定の項目と、前記特定の項目毎に所定の粒度の日時項目単位で集計値が記憶される集計値リストとを、1対1で対応付ける処理を行う。この処理において、前記特定の項目をインデックスとして用いて該特定の項目の集計値リストを特定可能に1対1で対応付ける。そして、前記外部テーブルに記憶されたデータを集計する際に、前記特定の項目をインデックスとして用いて特定される前記集計値リストの前記集計値を更新する。
 一つの側面として、外部テーブルに記憶されたデータを高速に集計することができる、という効果を有する。
外部テーブルに記憶されたデータの集計処理を説明するための図である。 実施形態に係る集計システムの概略構成を示すブロック図である。 実施形態に係る集計装置の機能ブロック図である。 内部テーブルの一例を示す図である。 外部テーブルの一例を示す図である。 集計定義の一例を示す図である。 内部集計テーブルの一例を示す図である。 集計値リストの一例を示す図である。 メタデータの一例を示す図である。 ハッシュテーブルの一例を示す図である。 集計対象のレコードの特定処理を説明するための図である。 実施形態に係る集計装置として機能するコンピュータの概略構成を示すブロック図である。 実施形態に係る集計処理の一例を示すフローチャートである。 集計値リストの拡張処理の一例を説明するための図である。 集計値リストの拡張処理の一例を説明するための図である。 変形例に係るハッシュテーブルの一例を示す図である。
 以下、図面を参照して、本発明の実施形態の一例を詳細に説明する。
 まず、実施形態の詳細を説明する前に、図1を参照して、外部テーブルに記憶されたデータの集計処理の問題点について説明する。なお、ここでは、錯綜を回避するために、内部テーブル及び外部テーブルに記憶されるデータの項目(列)が同じで、内部テーブルに記憶されたデータに対して集計処理を行った後に、外部テーブルに記憶されたデータに対して集計処理を行う場合について説明する。また、以下では、複数のデータベース(DB)のうち、集計処理が実行されるデータベースを「内部DB」といい、内部DB以外のデータベースを「外部DB」という。
 図1に示すように、内部DB10は、内部テーブル11、及び外部DB13Aのテーブル14Aを内部DB10のテーブルとして仮想化した外部テーブル12Aを含む。また、内部DB10は、外部DB13Bのテーブル14Bを内部DB10のテーブルとして仮想化した外部テーブル12Bを含む。なお、内部テーブル11及びテーブル14A、14Bには、日時、店舗、商品、及び売上が記憶される。日時には日付が西暦の年月日の形式で記憶され、店舗には店舗名が記憶され、商品には商品名が記憶され、売上には売上金額が記憶される。
 まず、例えば、内部テーブル11に記憶された各レコードの売上が、店舗及び商品の組み合わせ毎に、1ヶ月単位で積算されて集計され(図1中の1)、集計テーブル16が得られる。集計テーブル16の丸め日時は、内部テーブル11の日時を集計単位(ここでは1ヶ月単位)で丸めた(すなわち、年月日の日を切り捨てた)情報である。すなわち、例えば、店舗名が「東京」の店舗における「りんご」の「2015年4月」の売上の集計値(合計)が「100」であることを表している。
 次に、外部テーブル12Aからレコード17が読み出され(図1中の2)、集計テーブル16の対応するレコードの集計値にレコード17の売上が加算される(図1中の3)ことで、外部テーブル12Aに記憶されたデータの集計処理が行われる。この集計処理において、集計テーブル16におけるレコード17に対応するレコードを探索する必要がある。この探索処理では、集計テーブル16におけるレコード17に対応するレコードを探索する際に、集計テーブル16の全レコードからレコード17の店舗及び商品の組み合わせが一致するレコードを探索することとなる(図1中の3-1)。
 さらに、この探索処理では、店舗及び商品の組み合わせの探索に加え、レコード17の日時を集計単位で丸めて得られた日時に一致する丸め日時が記憶された集計テーブル16のレコードを探索することとなる(図1中の3-2)。これらの店舗及び商品の組み合わせの探索並びに丸め日時の探索の各々の計算量はO(1)を超えたものとなり、比較的時間がかかってしまう。
 そこで、本実施形態では、外部テーブルに記憶されたデータを集計する際に、集計単位とする特定の項目をインデックスとして用いて集計することで、集計処理の高速化を図る。
 次に、図2を参照して、本実施形態に係る集計システム20の構成を説明する。図2に示すように、集計システム20は、集計装置21、及び外部装置22A、22Bを含む。集計装置21、及び外部装置22A、22B各々の一例としては、サーバコンピュータが挙げられる。
 外部装置22Aの所定の記憶領域には外部DB24Aが記憶される。外部DB24Aは、集計装置21により集計されるデータが記憶されるテーブル26Aを含む。外部装置22Bの所定の記憶領域には外部DB24Bが記憶される。外部DB24Bは、集計装置21により集計されるデータが記憶されるテーブル26Bを含む。そして、集計装置21、及び外部装置22A、22Bの各々は、ネットワーク28に接続され、互いにデータの送受信が可能とされている。
 次に、図3を参照して、本実施形態に係る集計装置21の機能的な構成を説明する。集計装置21は、処理部30及び集計部32を含む。また、集計装置21の所定の記憶領域には、内部DB40、集計定義46、内部集計テーブル48、集計値リスト50、メタデータ52、及びハッシュテーブル54が記憶される。内部DB40は、内部テーブル42、及び外部テーブル44A、44Bを含む。
 図4に、内部テーブル42の一例を示す。図4に示すように、内部テーブル42には、売上日時、売上店舗、売上商品、及び売上額が記憶される。売上日時には、商品を販売した日時を示す項目として、年月日を示す8桁の数字列が記憶される。また、売上店舗には、商品を販売した店舗を示す情報が記憶され、売上商品には、販売した商品を示す情報が記憶される。また、売上額には、売上日時に記憶された数字列が示す年月日に、売上店舗に記憶された情報が示す店舗において、売上商品に記憶された情報が示す商品について計上された売上金額の合計値が記憶される。
 また、内部テーブル42のデータの実体は、内部DB40の表領域に記憶される。そして、内部テーブル42の売上日時、売上店舗、及び売上商品の各項目に対して、Relational DataBase Management System(RDBMS)等の内部DBを管理するシステムの機能で、索引が作成されている。なお、錯綜を回避するために、以下では、内部DB40を管理するシステムの機能で作成された索引を「DB索引」という。
 図5に、外部テーブル44Aの一例を示す。図5に示すように、外部テーブル44Aには、日時、店舗、商品、及び売上が記憶される。日時には、内部テーブル42の売上日時と同様の情報が記憶され、店舗には、内部テーブル42の売上店舗と同様の情報が記憶される。また、商品には、内部テーブル42の売上商品と同様の情報が記憶され、売上には、内部テーブル42の売上額と同様の情報が記憶される。
 また、外部テーブル44Aは、外部DB24Aのテーブル26Aを内部DB40のテーブルとして仮想化したテーブルである。すなわち、外部テーブル44Aのデータの実体は、内部DB40が記憶されている記憶領域以外の集計装置21の所定の記憶領域、又は外部装置22Aの所定の記憶領域等に、汎用的なデータ形式で記憶される。従って、外部テーブル44Aの各項目にはDB索引は作成されていない。
 外部テーブル44Bは、外部DB24Bのテーブル26Bを内部DB40のテーブルとして仮想化したテーブルであること以外は、外部テーブル44Aと同様のテーブルであり、外部テーブル44Aと同様の情報が記憶される。なお、以下では、外部テーブル44A、44Bを区別せずに総称する場合には、符号の末尾のアルファベットを省略する。
 集計定義46には、データの集計に用いるパラメータ名、及びパラメータ名に対応する値が記憶される。図6に、集計定義46の一例を示す。図6に示すように、集計定義46には、集計対象とするテーブル毎のパラメータとして、集計対象テーブル、ディメンションカラム1~N、メジャー、及び日時カラムが記憶される。また、集計定義46には、集計対象とするテーブルに共通のパラメータとして、日時集計単位及び集計方法が記憶される。
 集計対象テーブルには、集計対象とするテーブルのテーブル名が記憶される。図6の例では、内部テーブル42のテーブル名が「売上_inner」であり、外部テーブル44Aのテーブル名が「売上A_outer」であることを示している。このように、本実施形態では、テーブル名の末尾の文字列で、テーブルが内部テーブル及び外部テーブルの何れのテーブルであるかを判別可能となっている。すなわち、本実施形態では、テーブル名の末尾が「_inner」であるテーブルは内部テーブルであると判別可能であり、テーブル名の末尾が「_outer」であるテーブルは外部テーブルであると判別可能である。
 ディメンションカラム1~Nには、後述する日時カラム以外の集計単位(すなわち、集計グループ)とする項目の列名が記憶される。なお、ディメンションカラムの数(すなわち、Nの値)は、集計単位とする日時カラム以外の項目の数(本実施形態では、2)以上の所定数であれば特に限定されない。
 メジャーには、集計値の算出対象とする項目の列名が記憶される。日時カラムには、日時を示す項目の列名が記憶される。日時集計単位には、日時の集計単位とする情報として、日時を丸める際の粒度が記憶され、集計方法には、メジャーに記憶された項目の集計値の算出方法が記憶される。なお、メジャーは、集計値の算出対象とする項目の列名に限定されず、例えば、売上単価×売上個数等の数式でもよい。また、日時集計単位は、1ヶ月単位に限定されず、1ヶ月単位以外の複数月単位、及び年単位等の他の単位でもよい。また、集計方法は、合計(SUM)に限定されず、平均等の他の方法でもよい。
 すなわち、図6の例では、内部テーブル42については、「売上店舗」及び「売上商品」の組み合わせの各々について、1ヶ月単位の「売上額」の合計値が集計値として算出される。また、外部テーブル44については、「店舗」及び「商品」の組み合わせの各々について、1ヶ月単位の「売上」の合計値が集計値として算出される。
 処理部30は、内部テーブル42を、売上日時以外の特定の項目毎に所定の粒度の日時項目単位で集計値を算出する。本実施形態では、処理部30は、集計定義46に従って、内部テーブル42について、「売上店舗」及び「売上商品」の組み合わせ毎に、「売上額」を1ヶ月単位で集計し、内部集計テーブル48を生成する。図7に、内部集計テーブル48の一例を示す。図7に示すように、内部集計テーブル48には、丸め日時、dim1、dim2、集計値、及び母数が記憶される。
 丸め日時には、内部テーブル42の「売上日時」を、集計定義46の「日時集計単位」で丸めた(すなわち、日を切り捨てた)値が記憶される。また、dim1及びdim2各々には、内部テーブル42に対応する集計定義46の「ディメンションカラム1」及び「ディメンションカラム2」各々の項目の値が記憶される。集計値には、dim1及びdim2の組み合わせ毎に、丸め日時単位で、内部テーブル42の「売上額」を積算して得られる合計値が記憶される。母数には、集計値の算出に用いられたレコードの母数が記憶される。
 図7の例では、内部テーブル42には、例えば、売上日時が20150501から20150531までの間に、売上店舗が東京で、売上商品がりんごのレコードが10個あり、このレコードの売上額の合計値が500であることを示している。なお、処理部30による内部集計テーブル48の生成処理については、内部テーブル42に対してSELECT文等のStructured Query Language(SQL)を用いて行えばよいため、ここでの詳細な説明を省略する。
 また、処理部30は、内部集計テーブル48を生成した後に、上記特定の項目毎に上記所定の粒度の日時項目単位での集計値が記憶される集計値リスト50を生成する。本実施形態では、処理部30は、dim1及びdim2の組み合わせ毎に、丸め日時の昇順に、集計値及び母数を集計値リスト50に記憶する。
 さらに、処理部30は、全ての集計値リスト50で共通のメタデータ52を生成する。本実施形態では、処理部30は、メタデータ52に、集計対象としたデータの丸め日時の最小値(以下、「最小丸め日時」という)及び最大値(以下、「最大丸め日時」という)を各々記憶する。なお、本実施形態では、処理部30は、各集計値リスト50を生成する際に、各集計値リスト50の丸め日時の最小値及び最大値が異なる場合、及び丸め日時が連続しない場合は、集計値及び母数が各々0のレコードを挿入する。これにより、処理部30は、各集計値リスト50を生成する際に、最小丸め日時、最大丸め日時、及びレコード数が同一となるように各集計値リスト50を生成する。
 図8に、集計値リスト50の一例を示し、図9に、メタデータ52の一例を示す。図8及び図9の例では、例えば、東京店舗における2015年5月のりんごの売上額の集計値が100で、集計値の算出に用いたレコード数が10であることを示している。また、図8に示すように、本実施形態では、集計値リスト50は、配列の形式で記憶される。
 また、処理部30は、上記特定の項目と集計値リスト50とを、特定の項目をインデックスとして用いて該特定の項目の集計値リスト50を特定可能に1対1で対応付ける処理を行う。本実施形態では、処理部30は、dim1及びdim2を入力とした場合に、dim1及びdim2の組み合わせ毎に異なる値を出力するハッシュ関数を用いて、dim1及びdim2と、集計値リスト50とを1対1で対応付ける。具体的には、処理部30は、dim1及びdim2の組み合わせ毎に、ハッシュ関数を用いて得られたハッシュ値を、テーブルの各要素を指し示す記憶領域のアドレスとしたハッシュテーブル54を生成する。そして、処理部30は、ハッシュテーブル54の各要素に、各要素に対応するdim1及びdim2の組み合わせの集計値リスト50の記憶領域の先頭アドレスを記憶する。
 図10に、ハッシュテーブル54の一例を示す。図10に示すように、ハッシュテーブル54には、各集計値リスト50の先頭アドレスが配列の形式で記憶される。また、ハッシュテーブル54の各要素には、各要素に対応するハッシュ値を索引(インデックス)としてアクセスすることができる。従って、本実施形態では、dim1及びdim2の組み合わせをハッシュ関数に入力して得られたハッシュ値から、この組み合わせに対応する集計値リストをO(1)の計算量で特定することができる。なお、以下では、ハッシュテーブル54のインデックスを、「ハッシュインデックス」という。
 本実施形態に係る集計部32は、外部テーブル44に記憶されたデータを集計する際に、上記特定の項目をインデックスとして用いて集計値リスト50の集計値を更新する。また、集計部32は、集計値を更新する際に、集計値リストにおける上記所定の粒度毎の日時項目を特定する関数を用いて、更新対象とする集計値を特定する。
 一例として図11に示すように、本実施形態では、集計部32は、集計定義46の集計対象テーブルの値に従い、外部テーブル44から1件ずつレコードを順次読み出す。また、集計部32は、集計定義46のディメンションカラム1~Nの値に従い、読み出したレコードの店舗及び商品を前述したハッシュ関数に入力してハッシュ値を得る(図11中の1)。そして、集計部32は、得られたハッシュ値をハッシュインデックスとして用いて、読み出したレコードの店舗及び商品の組み合わせに対応するハッシュテーブル54の要素を読み出す。これにより、集計部32は、該組み合わせに対応する集計値リスト50の先頭アドレスを特定する(図11中の2)。
 一方、集計部32は、読み出したレコードの日時を、集計定義46の日時集計単位に従って、丸めることで丸め日時を算出する(図11中の3)。また、集計部32は、メタデータ52から最小丸め日時を読み出す。また、集計部32は、集計値リスト50の集計値の算出対象とする丸め日時を特定する日時特定関数に、算出した丸め日時及び読み出した最小丸め日時を入力する。そして、集計部32は、日時特定関数の出力値を、集計値リスト50の要素にアクセスするためのインデックスとして得る(図11中の4)。
 本実施形態では、日時特定関数として、入力された丸め日時から入力された最小丸め日時を減算した値を出力する関数を適用している。本実施形態では、集計値リスト50が配列の形式で記憶され、集計値及び母数が集計値リスト50に丸め日時の昇順に記憶されているため、上記の日時特定関数を用いることで、集計値リスト50における集計値の算出対象とする要素にアクセスすることができる。
 そして、集計部32は、ハッシュインデックスを用いて特定した集計値リスト50における、日時特定関数を用いて特定した要素に記憶された集計値に、読み出したレコードの売上を加算し、母数に1を加算する(図11中の5)。
 なお、例えば、集計値及び母数を集計値リスト50に丸め日時の降順に記憶した場合は、日時特定関数として、入力された最大丸め日時から入力された丸め日時を減算した値を出力する関数を適用することができる。
 集計装置21は、例えば図12に示すコンピュータ80で実現することができる。コンピュータ80は、Central Processing Unit(CPU)81、一時記憶領域としてのメモリ82、及び不揮発性の記憶部83を備える。また、コンピュータ80は、表示装置及び入力装置等の入出力装置84を備える。また、コンピュータ80は、記録媒体88に対するデータの読み込みと書き込みとを制御するRead/Write(R/W)部85、及びネットワークに接続されるネットワークI/F86を備える。CPU81、メモリ82、記憶部83、入出力装置84、R/W部85、及びネットワークI/F86は、バス87を介して互いに接続される。
 記憶部83は、Hard Disk Drive(HDD)、Solid State Drive(SSD)、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部83には、コンピュータ80を集計装置21として機能させるための集計処理プログラム90が記憶される。集計処理プログラム90は、処理プロセス91及び集計プロセス92を有する。また、記憶部83は、内部DB40及び集計定義46が記憶される情報記憶領域93を有する。また、メモリ82は、内部集計テーブル48、集計値リスト50、メタデータ52、及びハッシュテーブル54が記憶される情報記憶領域94を有する。なお、内部集計テーブル48、集計値リスト50、メタデータ52、及びハッシュテーブル54は、内部DB40に記憶されてもよいし、記憶部83の内部DB40とは異なる記憶領域に記憶されてもよい。
 CPU81は、集計処理プログラム90を記憶部83から読み出してメモリ82に展開し、集計処理プログラム90が有するプロセスを実行する。CPU81は、処理プロセス91を実行することで、図3に示す処理部30として動作する。CPU81は、集計プロセス92を実行することで、図3に示す集計部32として動作する。これにより、集計処理プログラム90を実行したコンピュータ80が、集計装置21として機能することになる。
 また、集計処理プログラム90により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit(ASIC)等で実現することも可能である。
 次に、本実施形態に係る集計装置21の作用を説明する。集計装置21が集計処理プログラム90を実行することで、図13に示す集計処理を実行する。図13に示す集計処理は、例えばユーザによって実行開始の指示が入力された場合、又は1日1回等の定期的なタイミング等に、CPU81により実行が開始される。
 図13に示す集計処理のステップ100で、処理部30は、記憶部83に記憶された集計定義46の集計対象テーブルに、末尾が「_inner」であるテーブルが存在するか否かを判定する。これにより、処理部30は、集計対象とするテーブルに内部テーブル42が存在するか否かを判定する。この判定が肯定判定となった場合は、処理はステップ102に移行し、否定判定となった場合は、処理はステップ110に移行する。
 ステップ102で、処理部30は、前述したように、集計定義46に従って内部テーブル42に記憶されたデータを集計し、内部集計テーブル48を生成する。次のステップ104で、処理部30は、ステップ102で生成された内部集計テーブル48のdim1及びdim2の組み合わせ毎に集計値リスト50を生成する。そして、処理部30は、各集計値リスト50に、内部集計テーブル48の対応する集計値及び母数を、内部集計テーブル48の丸め日時の昇順に記憶する。
 次のステップ106で、処理部30は、ステップ102で生成された内部集計テーブル48の丸め日時の最小値及び最大値を記憶したメタデータ52を生成する。次のステップ108で、処理部30は、前述したように、dim1及びdim2の組み合わせ毎に、ハッシュ関数を用いて得られたハッシュ値を、テーブルの各要素を指し示す記憶領域のアドレスとしたハッシュテーブル54を生成する。そして、処理部30は、ハッシュテーブル54の各要素に、各要素に対応するdim1及びdim2の組み合わせの集計値リスト50の記憶領域の先頭アドレスを記憶する。
 以下に示すステップ110からステップ138までの処理は、集計定義46に含まれる各外部テーブル44を処理対象として実行される。なお、集計装置21がステップ110からステップ138までの処理を繰り返し実行する際は、それまでに処理対象としていない外部テーブル44を処理対象とする。また、以下に示すステップ110からステップ136までの処理は、処理対象とする外部テーブル44に記憶された各レコードを1件ずつ順番に先頭から読み出して繰り返し実行される。
 ステップ110で、集計部32は、外部テーブル44からレコードを1件読み出す。次のステップ112で、集計部32は、集計定義46に従って、ステップ110で読み出されたレコードの店舗及び商品をハッシュ関数に入力して、ハッシュ関数から出力されたハッシュ値を取得する。
 次のステップ114で、集計部32は、ステップ112で取得されたハッシュ値をハッシュインデックスとして用いて、ステップ108で生成されたハッシュテーブル54の要素にアクセス可能か否かを判定する。この判定が肯定判定となった場合は、処理はステップ116に移行し、否定判定となった場合は、処理はステップ118に移行する。
 ステップ116で、集計部32は、ステップ112で取得されたハッシュ値をハッシュインデックスとして用いて、ステップ108で生成されたハッシュテーブル54の要素を取得する。これにより、集計部32は、ステップ110で読み出されたレコードの店舗及び商品の組み合わせに対応する集計値リスト50の記憶領域の先頭アドレスを取得する。
 一方、ステップ118で、処理部30は、ステップ110で読み出されたレコードの売上を集計値とし、母数を1としたレコードを記憶した集計値リスト50を生成する。なお、本ステップ118の初回実行時にメタデータ52が存在しない場合、処理部30は、最小丸め日時及び最大丸め日時をステップ110で読み出されたレコードの日時を丸めて得られた丸め日時としたメタデータ52を生成する。次のステップ120で、処理部30は、ステップ112で取得されたハッシュ値でアクセス可能なハッシュテーブル54の要素に、ステップ118で生成された集計値リスト50の記憶領域の先頭アドレスを記憶することで、ハッシュテーブル54を更新する。
 ステップ122で、集計部32は、ステップ110で読み出されたレコードの日時を、集計定義46の日時集計単位で丸めることで丸め日時を算出する。そして、集計部32は、算出した丸め日時が、メタデータ52の最小丸め日時より小さいか否かを判定する。この判定が肯定判定となった場合は、処理はステップ124に移行し、否定判定となった場合は、処理はステップ128に移行する。
 ステップ124で、集計部32は、各集計値リスト50を拡張する。具体的には、集計部32は、集計値リスト50の先頭から、最小丸め日時と丸め日時との差の数だけ、集計値及び母数を各々0としたレコードを挿入する。図14に示すように、例えば集計値リスト50に2015年5月~2015年12月の集計値及び母数が昇順に記憶され、ステップ122で算出された丸め日時が「201504」の場合、集計部32は以下の処理で集計値リスト50を拡張する。すなわち、この場合、処理部30は、集計値リスト50の先頭に、集計値及び母数を各々0としたレコードを1つ挿入する。
 次のステップ126で、集計部32は、メタデータ52の最小丸め日時を、ステップ122で算出された丸め日時に更新する。
 一方、ステップ128で、集計部32は、ステップ122で算出された丸め日時が、メタデータ52の最大丸め日時より大きいか否かを判定する。この判定が肯定判定となった場合は、処理はステップ130に移行し、否定判定となった場合は、処理はステップ134に移行する。
 ステップ130で、集計部32は、各集計値リスト50を拡張する。具体的には、集計部32は、集計値リスト50の末尾に、丸め日時と最大丸め日時との差の数だけ、集計値及び母数を各々0としたレコードを挿入する。図15に示すように、例えば集計値リスト50に2015年5月~2015年12月の集計値及び母数が昇順に記憶され、ステップ122で算出された丸め日時が「201602」の場合、集計部32は以下の処理で集計値リスト50を拡張する。すなわち、この場合、処理部30は、集計値リスト50の末尾に、集計値及び母数を各々0としたレコードを2つ挿入する。
 次のステップ132で、集計部32は、メタデータ52の最大丸め日時を、ステップ122で算出された丸め日時に更新する。
 ステップ134で、集計部32は、ステップ122で算出された丸め日時、及びメタデータ52の最小丸め日時を、前述した日時特定関数に入力して、日時特定関数の出力値を取得する。次のステップ136で、集計部32は、ステップ112で取得されたハッシュ値をハッシュインデックスとして用いて、集計値の更新対象とする集計値リスト50を特定する。また、集計部32は、特定した集計値リスト50の集計値の更新対象とする要素を、日時特定関数の出力値を用いて特定する。そして、集計部32は、特定した要素に記憶された集計値に、ステップ110で読み出されたレコードの売上を加算し、母数に1を加算する。
 ステップ138で、集計部32は、上記ステップ110からステップ136までの処理を、処理対象とする外部テーブル44の全レコードについて実行したか否かを判定する。この判定が否定判定となった場合は、処理はステップ110に戻り、肯定判定となった場合は、処理はステップ140に移行する。
 ステップ140で、集計部32は、上記ステップ110からステップ138までの処理を、集計定義46に含まれる全ての外部テーブル44について実行したか否かを判定する。この判定が否定判定となった場合は、処理はステップ110に戻り、肯定判定となった場合は、本集計処理は終了する。
 上記の集計処理で得られた集計値リスト50は、例えば時系列分析等のデータ分析に用いられる。
 以上説明したように、本実施形態によれば、集計単位とする日時項目(例えば、日時)以外の特定の項目(例えば、店舗及び商品)と、特定の項目毎に所定の粒度(例えば、月単位)の日時項目単位で集計値が記憶される集計値リスト50とを1対1で対応付ける。そして、外部テーブル44に記憶されたデータを集計する際に、特定の項目をインデックスとして用いて集計値リスト50の集計値を更新する。これにより、外部テーブル44に記憶されたデータを高速に集計することができる。
 また、本実施形態によれば、内部テーブル42に記憶されたデータに対し、特定の項目毎に所定の粒度の日時項目単位で集計値を算出した後に、特定の項目と集計値リスト50とを1対1で対応付ける。従って、DBインデックスを用いて比較的高速に集計可能な内部テーブル42を用いて集計値リスト50を生成した後に、外部テーブル44に記憶されたデータを集計することとなる。これにより、外部テーブル44に記憶されたデータを内部テーブル42に記憶されたデータよりも先に集計する場合に比較して、外部テーブル44に記憶されたデータを高速に集計することができる。
 また、本実施形態によれば、特定の項目を入力とした場合に、特定の項目毎に異なる値を出力するハッシュ関数を用いて、特定の項目と集計値リスト50とを1対1で対応付ける。これにより、集計値リスト50を特定する処理の計算量を低減することができる結果、外部テーブル44に記憶されたデータを高速に集計することができる。
 また、本実施形態によれば、集計値リスト50は、日時項目の順番(例えば、昇順)で集計値が記憶される。そして、本実施形態によれば、特定の項目をインデックスとして用いて集計値リスト50の集計値を更新する際に、集計値リスト50における所定の粒度毎の日時項目を特定する日時特定関数を用いて、集計値を更新する。これにより、集計値リスト50の集計値の更新対象とする要素を特定する処理の計算量を低減することができる結果、外部テーブル44に記憶されたデータを高速に集計することができる。
 なお、上記実施形態では、集計対象とするテーブルとして、内部テーブル42及び外部テーブル44を適用した場合について説明したが、これに限定されない。例えば、集計対象とするテーブルとして、外部テーブル44のみを適用する形態としてもよい。
 また、上記実施形態では、ハッシュ関数及びハッシュテーブル54を用いて、店舗及び商品の組み合わせに対応する集計値リスト50を特定する場合について説明したが、これに限定されない。例えば、店舗及び商品と対応する集計値リスト50の記憶領域とを1対1で対応付けるリストファイル等を用いて、店舗及び商品の組み合わせに対応する集計値リスト50を特定する形態としてもよい。
 また、上記実施形態では、集計単位とする項目の組み合わせに対して1つのハッシュテーブル54を生成する場合について説明したが、これに限定されない。例えば、集計単位とする項目毎に個別にハッシュテーブル54を生成する形態としてもよい。この形態例におけるハッシュテーブル54の一例を図16に示す。
 図16の例では、1からN-1(ここではN=2)番目までのハッシュテーブル54の要素には、次のハッシュテーブル54の記憶領域の先頭アドレスが記憶される。また、N番目のハッシュテーブル54には、集計単位とする項目の組み合わせに対応する集計値リスト50の記憶領域の先頭アドレスが記憶される。
 この場合、例えば、集計部32は、dim1を入力とするハッシュ関数の出力値を用いて、dim1に対応するハッシュテーブル54Aの要素に記憶されたアドレスを取得する。また、集計部32は、dim2を入力とするハッシュ関数の出力値を用いて、取得したアドレスで特定されるハッシュテーブル54Bの要素に記憶されたアドレスを取得する。そして、集計部32は、取得したアドレスを用いて、dim1及びdim2の組み合わせに対応する集計値リスト50を特定する。この形態例では、上記実施形態と比較して、集計値リスト50の特定処理の計算量が増えるものの、集計単位とする項目毎にハッシュテーブル54の作成及び自動拡張等が制御できるため、メモリリソースを効率的に利用することができる。
 また、上記実施の形態では、集計単位とする日時項目以外の特定の項目として、2つの項目(上記実施の形態では店舗及び商品)の組み合わせを適用した場合について説明したが、これに限定されない。集計単位とする日時項目以外の特定の項目として、1つの項目を適用する形態としてもよいし、3つ以上の項目の組み合わせを適用する形態としてもよい。
 また、上記実施形態では、集計処理プログラム90が記憶部83に予め記憶(インストール)されている態様を説明したが、これに限定されない。集計処理プログラム90は、CD-ROM、DVD-ROM、USBメモリ、メモリカード等の記録媒体に記録された形態で提供することも可能である。
20 集計システム
21 集計装置
22A、22B 外部装置
24A、24B 外部DB
26A テーブル
26B テーブル
30 処理部
32 集計部
40 内部DB
42 内部テーブル
44A、44B 外部テーブル
46 集計定義
48 内部集計テーブル
50 集計値リスト
52 メタデータ
54 ハッシュテーブル
80 コンピュータ
81 CPU
82 メモリ
83 記憶部
88 記録媒体
90 集計処理プログラム

Claims (13)

  1.  コンピュータが管理するデータ以外のデータに関する外部テーブルを少なくとも一つ含む集計対象テーブルのデータを集計するプログラムであって、
     日時項目を含む複数の項目を有する前記外部テーブルの集計単位とする前記日時項目以外の特定の項目と、前記特定の項目毎に所定の粒度の日時項目単位で集計値が記憶される集計値リストとを、前記特定の項目をインデックスとして用いて該特定の項目の集計値リストを特定可能に1対1で対応付ける処理を行い、
     前記外部テーブルに記憶されたデータを集計する際に、前記特定の項目をインデックスとして用いて特定される前記集計値リストの前記集計値を更新する、
     処理を前記コンピュータに実行させる集計プログラム。
  2.  前記集計対象テーブルは前記日時項目を含む複数の項目を有し、前記コンピュータが管理するデータに関する内部テーブルを含み、
     前記内部テーブルに記憶されたデータに対し、前記特定の項目毎に所定の粒度の日時項目単位で集計値を算出した後に、前記特定の項目と前記集計値リストとを、前記特定の項目をインデックスとして用いて該特定の項目の集計値リストを特定可能に1対1で対応付ける処理を行う、
     請求項1記載の集計プログラム。
  3.  前記特定の項目を入力とした場合に、前記特定の項目毎に異なる値を出力するハッシュ関数から出力されたハッシュ値を前記インデックスとして用いて該特定の項目の集計値リストを特定可能に、前記特定の項目と前記集計値リストとを1対1で対応付ける処理を行う、
     請求項1又は請求項2記載の集計プログラム。
  4.  前記集計値リストは、前記日時項目の順番で前記集計値が記憶され、
     前記特定の項目をインデックスとして用いて特定される前記集計値リストの前記集計値を更新する際に、前記集計値リストにおける前記所定の粒度毎の前記日時項目を特定する関数を用いて、更新対象とする前記集計値を特定する、
     請求項1から請求項3の何れか1項記載の集計プログラム。
  5.  自装置が管理するデータ以外のデータに関する外部テーブルを少なくとも一つ含む集計対象テーブルのデータを集計する集計装置であって、
     日時項目を含む複数の項目を有する前記外部テーブルの集計単位とする前記日時項目以外の特定の項目と、前記特定の項目毎に所定の粒度の日時項目単位で集計値が記憶される集計値リストとを、前記特定の項目をインデックスとして用いて該特定の項目の集計値リストを特定可能に1対1で対応付ける処理を行う処理部と、
     前記外部テーブルに記憶されたデータを集計する際に、前記特定の項目をインデックスとして用いて特定される前記集計値リストの前記集計値を更新する集計部と、
     を含む集計装置。
  6.  前記集計対象テーブルは前記日時項目を含む複数の項目を有し、自装置が管理するデータに関する内部テーブルを含み、
     前記処理部は、前記内部テーブルに記憶されたデータに対し、前記特定の項目毎に所定の粒度の日時項目単位で集計値を算出した後に、前記特定の項目と前記集計値リストとを、前記特定の項目をインデックスとして用いて該特定の項目の集計値リストを特定可能に1対1で対応付ける処理を行う、
     請求項5記載の集計装置。
  7.  前記処理部は、前記特定の項目を入力とした場合に、前記特定の項目毎に異なる値を出力するハッシュ関数から出力されたハッシュ値を前記インデックスとして用いて該特定の項目の集計値リストを特定可能に、前記特定の項目と前記集計値リストとを1対1で対応付ける処理を行う、
     請求項5又は請求項6記載の集計装置。
  8.  前記集計値リストは、前記日時項目の順番で前記集計値が記憶され、
     前記集計部は、前記特定の項目をインデックスとして用いて特定される前記集計値リストの前記集計値を更新する際に、前記集計値リストにおける前記所定の粒度毎の前記日時項目を特定する関数を用いて、更新対象とする前記集計値を特定する、
     請求項5から請求項7の何れか1項記載の集計装置。
  9.  コンピュータが管理するデータ以外のデータに関する外部テーブルを少なくとも一つ含む集計対象テーブルのデータを集計する集計方法であって、
     日時項目を含む複数の項目を有する前記外部テーブルの集計単位とする前記日時項目以外の特定の項目と、前記特定の項目毎に所定の粒度の日時項目単位で集計値が記憶される集計値リストとを、前記特定の項目をインデックスとして用いて該特定の項目の集計値リストを特定可能に1対1で対応付ける処理を行い、
     前記外部テーブルに記憶されたデータを集計する際に、前記特定の項目をインデックスとして用いて特定される前記集計値リストの前記集計値を更新する、
     処理を前記コンピュータに実行させる集計方法。
  10.  前記集計対象テーブルは前記日時項目を含む複数の項目を有し、前記コンピュータが管理するデータに関する内部テーブルを含み、
     前記内部テーブルに記憶されたデータに対し、前記特定の項目毎に所定の粒度の日時項目単位で集計値を算出した後に、前記特定の項目と前記集計値リストとを、前記特定の項目をインデックスとして用いて該特定の項目の集計値リストを特定可能に1対1で対応付ける処理を行う、
     請求項9記載の集計方法。
  11.  前記特定の項目を入力とした場合に、前記特定の項目毎に異なる値を出力するハッシュ関数から出力されたハッシュ値を前記インデックスとして用いて該特定の項目の集計値リストを特定可能に、前記特定の項目と前記集計値リストとを1対1で対応付ける処理を行う、
     請求項9又は請求項10記載の集計方法。
  12.  前記集計値リストは、前記日時項目の順番で前記集計値が記憶され、
     前記特定の項目をインデックスとして用いて特定される前記集計値リストの前記集計値を更新する際に、前記集計値リストにおける前記所定の粒度毎の前記日時項目を特定する関数を用いて、更新対象とする前記集計値を特定する、
     請求項9から請求項11の何れか1項記載の集計方法。
  13.  コンピュータが管理するデータ以外のデータに関する外部テーブルを少なくとも一つ含む集計対象テーブルのデータを集計するプログラムであって、
     日時項目を含む複数の項目を有する前記外部テーブルの集計単位とする前記日時項目以外の特定の項目と、前記特定の項目毎に所定の粒度の日時項目単位で集計値が記憶される集計値リストとを、前記特定の項目をインデックスとして用いて該特定の項目の集計値リストを特定可能に1対1で対応付ける処理を行い、
     前記外部テーブルに記憶されたデータを集計する際に、前記特定の項目をインデックスとして用いて特定される前記集計値リストの前記集計値を更新する、
     処理を前記コンピュータに実行させる集計プログラムを記憶した記憶媒体。
PCT/JP2016/080138 2016-10-11 2016-10-11 集計プログラム、集計装置、及び集計方法 WO2018069973A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2016/080138 WO2018069973A1 (ja) 2016-10-11 2016-10-11 集計プログラム、集計装置、及び集計方法
JP2018544603A JP6702425B2 (ja) 2016-10-11 2016-10-11 集計プログラム、集計装置、及び集計方法
US16/293,450 US11126604B2 (en) 2016-10-11 2019-03-05 Aggregation apparatus, aggregation method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/080138 WO2018069973A1 (ja) 2016-10-11 2016-10-11 集計プログラム、集計装置、及び集計方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/293,450 Continuation US11126604B2 (en) 2016-10-11 2019-03-05 Aggregation apparatus, aggregation method, and storage medium

Publications (1)

Publication Number Publication Date
WO2018069973A1 true WO2018069973A1 (ja) 2018-04-19

Family

ID=61905320

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/080138 WO2018069973A1 (ja) 2016-10-11 2016-10-11 集計プログラム、集計装置、及び集計方法

Country Status (3)

Country Link
US (1) US11126604B2 (ja)
JP (1) JP6702425B2 (ja)
WO (1) WO2018069973A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538747B (zh) * 2020-05-27 2023-04-14 支付宝(杭州)信息技术有限公司 数据查询、辅助数据查询的方法、装置和设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844606A (ja) * 1994-07-28 1996-02-16 Hokkaido Nippon Denki Software Kk 分散データベースシステム集計処理方式
JP2002259384A (ja) * 2001-03-02 2002-09-13 Mitsubishi Electric Corp 仮想レコード使用データベース統合装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001043279A (ja) 1999-05-24 2001-02-16 Ichi Rei Yon Kk 薬局システム
JP2006195680A (ja) 2005-01-12 2006-07-27 Active Management Kk 自己啓発支援方法、自己啓発支援システム、自己啓発支援プログラムおよびそのプログラムを記憶した記憶媒体
US20060288045A1 (en) * 2005-06-16 2006-12-21 Digital Fuel Technologies, Inc. Method for aggregate operations on streaming data
CA2761391A1 (en) 2009-05-08 2010-11-11 Zokem Oy System and method for behavioural and contextual data analytics
JP5552023B2 (ja) 2010-10-27 2014-07-16 インターナショナル・ビジネス・マシーンズ・コーポレーション クラスタリング・システム、方法及びプログラム
JP6032680B2 (ja) * 2013-10-31 2016-11-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 受信したデータごとに集計処理を行うシステム、方法およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0844606A (ja) * 1994-07-28 1996-02-16 Hokkaido Nippon Denki Software Kk 分散データベースシステム集計処理方式
JP2002259384A (ja) * 2001-03-02 2002-09-13 Mitsubishi Electric Corp 仮想レコード使用データベース統合装置

Also Published As

Publication number Publication date
US11126604B2 (en) 2021-09-21
JPWO2018069973A1 (ja) 2019-06-24
US20190205292A1 (en) 2019-07-04
JP6702425B2 (ja) 2020-06-03

Similar Documents

Publication Publication Date Title
US10216773B2 (en) Apparatus and method for tuning relational database
US20170161323A1 (en) Automatic generation of sub-queries
JP6751064B2 (ja) データ検索システム、データ検索方法、及びプログラム
CN103714096A (zh) 基于Lucene的倒排索引系统构建、数据处理方法及装置
EP3217296A1 (en) Data query method and apparatus
US11853279B2 (en) Data storage using vectors of vectors
US20150019528A1 (en) Prioritization of data from in-memory databases
US9779121B2 (en) Transparent access to multi-temperature data
JP2004030221A (ja) 変更対象テーブル自動検出方法
US20190332697A1 (en) Database schema validations
AU2018345147B2 (en) Database processing device, group map file production method, and recording medium
WO2018069973A1 (ja) 集計プログラム、集計装置、及び集計方法
JP6744179B2 (ja) データ統合方法、データ統合装置、データ処理システム及びコンピュータプログラム
US10437839B2 (en) Bulk sets for executing database queries
US20130218916A1 (en) File management apparatus, file management method, and file management system
WO2005043409A1 (ja) 表形式データの結合方法、結合装置およびプログラム
JP6378497B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20180068005A1 (en) Distributed computation of percentile statistics for multidimensional data sets
JP6677025B2 (ja) データベース管理装置
WO2016170600A1 (ja) データ分析支援システム及びデータ分析支援方法
US20130185401A1 (en) Configuration management device, configuration management method, and configuration management program
JPWO2014168199A1 (ja) 論理演算方法および情報処理装置
US20240078251A1 (en) Data storage using vectors of vectors
JP2001291048A (ja) データ集計方法、および、当該データ集計方法にかかるプログラムを記憶した記憶媒体
JP2017174306A (ja) 項目推定方法、項目推定装置及びコンピュータプログラム

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: 16918853

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2018544603

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16918853

Country of ref document: EP

Kind code of ref document: A1