WO2010134370A1 - データ処理システム、データ処理方法、およびデータ処理プログラム - Google Patents

データ処理システム、データ処理方法、およびデータ処理プログラム Download PDF

Info

Publication number
WO2010134370A1
WO2010134370A1 PCT/JP2010/053114 JP2010053114W WO2010134370A1 WO 2010134370 A1 WO2010134370 A1 WO 2010134370A1 JP 2010053114 W JP2010053114 W JP 2010053114W WO 2010134370 A1 WO2010134370 A1 WO 2010134370A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
calculation
calculation processing
storage unit
processing
Prior art date
Application number
PCT/JP2010/053114
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 株式会社 日立製作所
Publication of WO2010134370A1 publication Critical patent/WO2010134370A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Definitions

  • the present invention relates to a data processing system, a data processing method, and a data processing program.
  • the calculation result regarding the digitized data may be used for various purposes such as program parameter values.
  • the program developer once instructed the information processing device to make a calculation request for the digitized data, but may want to cancel the calculation request when it becomes clear that the calculation request has become unintentional due to a program error or the like. is there.
  • the present invention has been made in view of the above problems, and a main object thereof is to provide a technique for efficiently using calculation processing time and calculation processing capacity in an information processing apparatus.
  • the data processing system of the present invention that solves the above-mentioned problems is not limited to four arithmetic operations, such as position data obtained from a GPS device and sales performance data at a company or a store.
  • An information processing apparatus that performs various statistical calculation processes such as values, total values, various deviations, and the like.
  • a server apparatus that receives a calculation request from a client and executes the corresponding calculation process can be assumed.
  • the information processing apparatus in such a data processing system includes a communication unit that communicates with another device, a storage unit that stores a population of calculation processing target data, and a data group including a predetermined number of calculation processing target data between data groups.
  • a plurality of data is extracted from the population without duplication in the data and stored in the storage unit as partial data, and a calculation processing request from the terminal is received via the communication unit, and the calculation processing request indicates Calculation processing is sequentially executed for each partial data in the storage unit, and each time a calculation processing result for one or a predetermined number of partial data is obtained, the calculation processing result for the corresponding partial data is returned to the terminal.
  • the partial data creation unit of the information processing apparatus may extract a plurality of partial data having different numbers of calculation processing target data from the population without overlapping data and store the partial data in the storage unit. Good.
  • the calculation processing execution unit of the information processing apparatus receives the calculation processing request from the terminal via the communication unit, and includes the calculation processing indicated by the calculation processing request among the partial data in the storage unit.
  • the calculation processing target data is sequentially executed in ascending order, and the calculation processing results are returned to the terminal in the order of partial data with the small number of calculation processing target data included.
  • the storage unit of the information processing apparatus may store information on whether or not integration between the partial data of the calculation processing results regarding the partial data is possible for each type of calculation processing.
  • the partial data creation unit of the information processing apparatus extracts a plurality of data groups including a predetermined number of calculation processing target data as the partial data as the partial data from the population without data duplication between the data groups.
  • the calculation processing execution unit of the information processing apparatus receives a calculation processing request from the terminal via the communication unit, and calculates information on the calculation processing indicated by the calculation processing request in the integration permission / inhibition information in the storage unit. To match.
  • the calculation process execution unit sequentially executes the calculation process for each divided data in the storage unit, Each time the calculation processing result for the divided data is obtained, it is stored in the storage unit, and if the calculation processing result for the other divided data obtained immediately before is not in the storage unit, the calculation processing result is returned to the terminal and obtained immediately before If there is a calculation processing result related to the other divided data in the storage unit, the calculation processing result is integrated with the corresponding calculation processing result, and the integrated calculation processing result is returned to the terminal.
  • the calculation process execution unit executes the corresponding calculation process on each sampling data in the storage unit, and each sampling data Each time a calculation processing result for is obtained, the calculation processing result for the corresponding sampling data is returned to the terminal.
  • the partial data creation unit of the information processing device searches for calculation processing target data from the population using a predetermined element as a search key, and calculates a predetermined number of data from the calculation processing target data group obtained by the search processing.
  • Multiple data groups consisting of calculation target data can be extracted without data duplication between data groups, or data groups with different numbers of calculation target data included can be considered to avoid data duplication between data groups.
  • a plurality of data may be extracted and stored as partial data in the storage unit.
  • the calculation processing execution unit of the information processing apparatus receives a calculation stop request from the terminal via the communication unit, and stops execution of the calculation processing on the partial data when the calculation stop request is received. You may do it.
  • the information processing apparatus may communicate with a dependent computer connected via a network and store the operation status in a storage unit.
  • the calculation processing execution unit receives the calculation processing request from the terminal via the communication unit, the calculation processing execution unit reads the operating status of the subordinate computer in the storage unit, and sends it to the subordinate computer that can request the calculation processing.
  • a calculation request including the calculation processing information indicated by the calculation processing request and one or a predetermined number of partial data read from the storage unit is transmitted, and the calculation processing result for the one or the predetermined number of partial data is subordinated.
  • an information processing apparatus including a communication unit that communicates with another device and a storage unit that stores a population of calculation processing target data executes the following processing. That is, the information processing apparatus extracts a plurality of data groups composed of a predetermined number of calculation target data from the population without data duplication between the data groups and stores them in the storage unit as partial data.
  • the calculation processing request is received via the communication unit, the calculation processing indicated by the calculation processing request is sequentially executed for each partial data in the storage unit, and a calculation processing result for one or a predetermined number of partial data is obtained. Each time it is executed, a process of returning a calculation processing result related to the corresponding partial data to the terminal is executed.
  • the data processing program of this invention makes an information processing apparatus provided with the communication part which communicates with another apparatus, and the memory
  • the calculation processing request is received via the communication unit, the calculation processing indicated by the calculation processing request is sequentially executed for each partial data in the storage unit, and a calculation processing result for one or a predetermined number of partial data is obtained.
  • the information processing apparatus is caused to execute a process of returning a calculation processing result related to the corresponding partial data to the terminal.
  • FIG. 1 is a network configuration diagram of a data processing system 10 according to the present embodiment.
  • the data processing system 10 shown in FIG. 1 can provide information that allows the user to efficiently estimate the calculation processing result relating to a large amount of data, and efficiently use the calculation processing time and calculation processing capacity in the information processing apparatus. It is a computer system that aims to.
  • the data processing system 10 (hereinafter, system 10) includes, for example, a server computer 100 (information processing apparatus).
  • the server computer 100 receives the calculation processing request from the client computer 200 (terminal), executes the calculation processing on the calculation processing target data, and returns the result. Therefore, the server computer 100 and the client computer 200 are connected by a network 190.
  • FIG. 2 is a diagram illustrating a hardware configuration of the server computer (information processing apparatus).
  • the server computer 100 reads the program 102 stored in the storage unit 101, which is a non-volatile storage device such as a hard disk drive, into the memory 103 and executes it by the CPU 104, which is an arithmetic device.
  • the server computer 100 can include an input device 105 such as various keyboards and buttons generally provided in a computer device, and an output device 106 such as a display.
  • a communication unit 107 such as a NIC (Network Interface Card) that exchanges data with the client computer 200 is provided.
  • NIC Network Interface Card
  • the server computer 100 stores a population table 125, divided data 126, sampling data 127, and an integration availability table 128 in the storage device 101 (storage unit) (each table will be described later).
  • the server computer 100 extracts a plurality of data groups composed of a predetermined number of calculation target data from the population table 125 without data duplication between the data groups, and stores them in the storage unit 101 as partial data.
  • the unit 110 is provided.
  • the server computer 100 receives a calculation processing request from the client computer 200 via the communication unit 107, and sequentially executes the calculation processing indicated by the calculation processing request for each partial data in the storage unit 101. Each time one or a predetermined number of partial data calculation results are obtained, a calculation processing execution unit 111 is provided that returns a calculation processing result for the corresponding partial data to the client computer 200.
  • the partial data creation unit 110 extracts a plurality of partial data having different numbers of calculation processing target data included from the population table 125 without data duplication between the partial data, and stores them as divided data 126 in the storage unit 101. It may be stored.
  • the storage unit 101 may store an integration availability table 128 as information on the availability of integration between the partial data of the calculation processing results regarding the partial data for each type of calculation processing.
  • the partial data creation unit 110 extracts a plurality of data groups composed of a predetermined number of calculation processing target data from the population table 125 without duplication of data between the data groups as the divided data 126 as the partial data. And stored in the storage unit 101.
  • the partial data creation unit 110 selects, as the partial data sampling data 127, a data group having different calculation processing target data from the population table 125 without considering data duplication avoidance between the data groups. A plurality are extracted and stored in the storage unit 101.
  • the calculation processing execution unit 111 receives a calculation processing request from the client computer 200 via the communication unit 107, and stores information on the calculation processing indicated by the calculation processing request in the storage unit 101. Match table 128. As a result of the collation, if the corresponding calculation process can be integrated between the partial data, the calculation process execution unit 111 performs the corresponding calculation process on each divided data 126 in the storage unit 101. Each time the calculation processing result for one division data 126 is obtained, the calculation processing result is stored in the storage unit 101. If the calculation processing result for the other division data obtained immediately before is not in the storage unit 101, the calculation processing result is stored in the storage unit 101. It returns to the client computer 200. Further, if the calculation processing result regarding the other divided data obtained immediately before is stored in the storage unit 101, the calculation processing result is integrated with the corresponding calculation processing result, and the integrated calculation processing result is returned to the client computer 200.
  • the calculation process execution unit 111 calculates the corresponding calculation for each sampling data 127 in the storage unit 101. Each time the processing is executed and the calculation processing result for each sampling data 127 is obtained, the calculation processing result regarding the corresponding sampling data 127 is returned to the client computer 200.
  • calculation processing result a is an average value a1 of three calculation processing target data and the calculation processing result b is an average value b1 of six calculation processing target data, “((average If the calculation of value a1 ⁇ 3) + (average value b1 ⁇ 6)) / (6 + 3) ′′ is performed, the calculation processing result a can be integrated into the calculation processing result b.
  • the calculation processing indicated by the calculation processing request is “standard deviation” or the like, the calculation processing result a already obtained for a certain divided data A and the calculation processing result relating to the divided data B obtained at this time b cannot be “integrated”.
  • the partial data creation unit 110 of the server computer 100 retrieves calculation processing target data from the population table 125 using a predetermined element (eg, user ID) as a search key, and obtained by the retrieval process. From a calculation processing target data group, a plurality of data groups consisting of a predetermined number of calculation processing target data are extracted without duplication of data among the data groups, or data groups having different numbers of calculation processing target data are included in the data A plurality of data may be extracted and stored as partial data in the storage unit 101 without considering data duplication avoidance between groups.
  • a predetermined element eg, user ID
  • the calculation processing execution unit 111 of the server computer 100 receives a calculation stop request from the client computer 200 via the communication unit 107, and calculates the partial data when the calculation stop request is received. May be stopped.
  • FIG. 3 is a diagram showing a hardware configuration of the client computer 200.
  • the client computer 200 is, for example, a terminal used by a user who is developing a program and wants to use the calculation processing result regarding the calculation processing target data in the population table 125 for the program development.
  • this client computer 200 naturally reads the program 202 stored in the storage unit 201 as a non-volatile storage device such as a hard disk drive into the memory 203 and executes it by the CPU 204 as an arithmetic unit.
  • the client computer 200 includes an input device 205 such as various keyboards and buttons generally provided in a computer device, and an output device 206 such as a display.
  • the client computer 200 includes a calculation processing request / result reception / display program 210 as the program 202, for example. By executing this program 210, the client computer 200 receives an instruction for a calculation processing request from the user from the input device 205, transmits the received calculation processing request to the server computer 100, and receives a calculation processing request from the server computer 100. A series of processes of receiving and displaying the calculation processing result on the output device 206 is performed.
  • Each of the units 110 to 111 in the server computer 100 constituting the system 10 shown so far may be realized as hardware, or as a program stored in an appropriate storage device such as a memory or HDD (Hard Disk Drive). You may do that.
  • the CPU of each information processing apparatus reads the corresponding program from the storage device into the memory in accordance with the program execution, and executes it.
  • FIG. 4 is a diagram illustrating the relationship between the population table 125 and partial data
  • FIG. 5 is a diagram illustrating an example of the population table 125 of the present embodiment.
  • the population table 125 is a set of all calculation processing target data.
  • the population table 125 includes calculation processing target data of 9 records whose IDs 501 are “1” to “9”, and each record indicates a user who has purchased a product. “UserID” 502 indicating purchase date, “day” 503 indicating purchase date, “Price” 504 indicating purchase amount, and “ProductID” 505 indicating purchased product are included.
  • the user with the sales number ID “1” and the user ID “U_A0017” selects the product with the product ID “P_0005” on “January 6, 2009” “1000”. It means that it was purchased with "Yen”.
  • the data processing method of this embodiment is particularly effective when processing a large number of records and a large amount of data consisting of a large number of tables.
  • a small data of only one 9-record table is used. Is explaining.
  • FIG. 6 is a diagram showing a processing flow example 1 of the data processing method of the present embodiment.
  • the partial data creation unit 110 of the server computer 100 receives, for example, designation of the division method and the number of divisions of the population table 125 from the client computer 200 via the NIC 107 (s100).
  • the designation indicates “equal division without duplication” as the division method and “3” as the division number (s101: equality without duplication)
  • the partial data creation unit 110 uses the population table of the storage unit 101.
  • the number of calculation process target data is counted for 125 to obtain the data number “9”, and the process of grouping the “9” calculation process target data into “3” is performed (s102).
  • the grouping process performed by the partial data creation unit 110 is performed by, for example, firstly calculating each calculation processing target data in the population table 125 so that each divided data has the same statistical properties as the original population table 125. Sort in time order (based on “day”). Then, a hash function is applied to “UserID” in each calculation processing target data to convert it into an integer value having a predetermined number of digits. The partial data creation unit 110 divides this integer value by, for example, “3”, selects three pieces of calculation processing target data whose remainder is “0” in the order of time, and sets it as one divided data 701a (FIG. 7A). Including records of IDs “1”, “4”, and “7” shown in FIG.
  • the partial data creation unit 110 performs the division by “3” on the integer value in the same manner except for the calculation processing target data included in the divided data 701a, and the remainder becomes “0”.
  • Three pieces of data to be processed are selected in the order of time, and set as second divided data 702a (including records of IDs “2”, “5”, and “8” shown in FIG. 7B).
  • the partial data creation unit 110 sets the last three remaining calculation target data as the third divided data 703a (records with IDs “3”, “6”, and “9” shown in FIG. 7C). Including).
  • other methods may be adopted for the grouping process.
  • the partial data creation unit 110 stores the three divided data 701a to 703a obtained by such grouping processing in the storage unit 101 (s103), and ends the processing.
  • the partial data creation unit 110 A process of counting the number of data to be calculated for the population table 125 of the storage unit 101 to obtain the number of data “9”, and grouping the “9” data for calculation processing into “2”. (S104).
  • the grouping process performed by the partial data creation unit 110 is performed by, for example, firstly calculating each calculation processing target data in the population table 125 so that each divided data has the same statistical properties as the original population table 125. Sort in time order (based on “day”). Then, a hash function is applied to “UserID” in each calculation processing target data to convert it into an integer value having a predetermined number of digits. The partial data creation unit 110 divides this integer value by, for example, “3”, for example, selects six calculation target data whose remainders are “0” to “2” in order of the time, and selects one piece of divided data. 701b (IDs “1” and “4” shown in FIG.
  • the partial data creation unit 110 sets the last three calculation processing target data as the second divided data 702b (records with IDs “3”, “6”, and “9” shown in FIG. 8B). Including). Of course, other methods may be adopted for the grouping process.
  • the partial data creation unit 110 stores the two divided data 701b and 702b obtained by such grouping processing in the storage unit 101 (s105), and ends the processing.
  • the partial data creation unit 110 first sets each calculation processing target data in the population table 125 so that each divided data has the same statistical properties as the original population table 125, for example. Sort in time order (based on “day”). Then, a hash function is applied to “UserID” in each calculation processing target data to convert it into an integer value having a predetermined number of digits.
  • the partial data creation unit 110 divides this integer value by, for example, “10”, and selects the calculation processing target data whose remainder is “1”, thereby calculating the number of calculation processing target data in the original population table 125. Can be obtained as one piece of divided data. Similarly, the partial data creation unit 110 divides the integer value by, for example, “100” and selects the calculation processing target data whose remainder is “1”, so that the calculation in the original population table 125 is performed. One piece of divided data in which the number of data to be processed is reduced to 1/100 can be obtained.
  • the partial data creation unit 110 counts the number of calculation processing target data to the population table 125 of the storage unit 101 to obtain the number of data “9”, and groups the “9” calculation processing target data into “2”. Is performed (s106).
  • the partial data creation unit 110 for example, six pieces of calculation processing target data are selected from the population table 125 by random sampling and set as one sampling data 901 (ID “1” shown in FIG. 9A). , “4”, “6”, “7”, “8”, and “9” records). Next, the partial data creation unit 110 sets the last three pieces of calculation target data as the second sampling data 902 (records with IDs “1”, “6”, and “8” shown in FIG. 9B). Including). Of course, other methods may be adopted for the grouping process. The partial data creation unit 110 stores the two sampling data 901 to 902 obtained by such grouping processing in the storage unit 101 (s107), and ends the processing.
  • the partial data creation unit 110 selects, for example, three pieces of calculation processing target data from the population table 125 by random sampling, In the following, the same processing is performed to select three pieces of calculation processing target data from the population table 125, and two more sampling data are obtained.
  • the partial data creation unit 110 retrieves calculation processing target data from the population table 125 using a predetermined element (eg, user ID) as a search key, and the calculation processing target data obtained by the search processing.
  • a predetermined element eg, user ID
  • a plurality of data groups made up of a predetermined number of calculation processing target data may be extracted from the group without data duplication between the data groups or without considering data duplication avoidance, and may be stored in the storage unit 101 as partial data.
  • the partial data creation unit 110 calculates a set of non-overlapping values for a specific column in the population table 125 that is tabular data, and sets the size of this set to 1/10 or 1/100.
  • a record extraction method is adopted. For example, in the population table 125, two values “U_A0001, U_S0001” corresponding to 1/2 are selected from the “UserID” 502 column values “U_A0017, U_B0031, U_A0001, U_S0001”, and the corresponding A record having UserID is extracted from the population table 125.
  • the extracted data 903 is divided data 903 shown in FIG. 9C.
  • the partial data creation unit 110 of the server computer 100 monitors a change event for the population table 125 in the storage unit 101, and executes the above flow when detecting that a change has occurred in the population table 125. Generate divided data and sampling data.
  • the partial data creation unit 110 may generate partial data for all tables, or some large tables (examples) : With the maximum number of data) and partial data may be generated only for the corresponding table.
  • FIGS. 7A to 7C are diagrams illustrating Example 1 of the divided data in the present embodiment
  • FIGS. 8A to 8B are diagrams illustrating Example 2 of the divided data in the present embodiment.
  • the divided data 126 shown in FIGS. 7A to 7C includes three pieces of divided data of divided data 701a to 703a. These divided data 701a to 703a are "3" having the same number of calculation target data.
  • each calculation processing target data does not overlap among the divided data 701a to 703a.
  • the divided data 126 shown in FIGS. 8A to 8B includes two pieces of divided data of divided data 701b to 702b. These divided data 701b to 702b are different in the number of calculation processing target data included in “6” and “3”, respectively. Also, the calculation processing target data does not overlap among the divided data 701b to 702b.
  • Sampling data 127 shown in FIGS. 9A to 9C includes two pieces of sampling data 901 to 902. These sampling data 901 to 902 are different in the number of data to be calculated included in “6” and “3”, respectively. However, among the sampling data 901 to 902, there are some data that are subject to calculation processing (IDs “1”, “6”, and “8” are duplicated in the example in the figure).
  • FIG. 10 is a diagram showing an example of the integration possibility table 128 of the present embodiment.
  • This integration possibility table 128 is a table that stores information on the possibility of integration between the partial data of the calculation processing results relating to the partial data.
  • “possible integration of calculation processing results between partial data” means that, for example, if the calculation processing indicated by the calculation processing request is “average” or “total value”, it is already obtained for a certain divided data A.
  • the calculated calculation processing result a and the calculation processing result b regarding the divided data B obtained at this time can be “integrated”.
  • the calculation processing result a is an average value a1 of three calculation processing target data and the calculation processing result b is an average value b1 of six calculation processing target data, “((average If the calculation of value a1 ⁇ 3) + (average value b1 ⁇ 6)) / (6 + 3) ′′ is performed, the calculation processing result a can be integrated into the calculation processing result b.
  • the calculation processing indicated by the calculation processing request is “standard deviation” or the like, the calculation processing result a already obtained for a certain divided data A and the calculation processing result relating to the divided data B obtained at this time b cannot be “integrated”.
  • the calculation processing result a is the average value a1 of the three calculation processing target data and the calculation processing result b is the average value b1 of the six calculation processing target data, “((average value a1 ⁇ 3) + (average value b1 ⁇ 6)) / (6 + 3) ′′, the calculation processing result a can be integrated with the calculation processing result b.
  • FIG. 11 is a diagram showing a processing flow example 2 of the data processing method of the present embodiment.
  • the calculation processing execution unit 111 of the server computer 100 receives the calculation processing request from the client computer 200 via the communication unit 107, and the calculation processing information indicated by the calculation processing request is stored in the storage unit.
  • 101 is collated with the integration availability table 128 of 101 (s200).
  • FIG. 12A shows an example of a calculation processing request from the client computer 200.
  • the data of the calculation processing request 601 is described in, for example, the SQL language (Structured Query Language), and the average (avg) calculation result of the values in the “price” column of the population table 125 named “SoldItems” is obtained. It is what is requested.
  • SQL language Structured Query Language
  • avg average
  • the calculation processing execution unit 111 selects the divided data to be processed from the set of the divided data 126 in the storage unit 101. Select (s202). For the selection process, for example, selection may be made in the order of the number of pieces of calculation processing target data included in the divided data.
  • the calculation process execution unit 111 executes the calculation for the divided data selected here using the function specified by the calculation process request (s203).
  • the calculation processing execution unit 111 calculates “sum” and “count” for the divided data 701a of FIG. 7A with respect to “avg” indicated by the calculation processing request, and as a result, “sum: 63300”, “count” : 4 ”is obtained and stored in the storage unit 101.
  • the calculation processing execution unit 111 returns the average value “15825” calculated in the step s204 to the client computer 200 (s205), and proceeds to the processing of the next divided data (s206).
  • the client computer 200 receives the average value and displays it on the output device 206.
  • a display example is shown in the record 801 (in the figure, records 802 and 803 are also displayed, but only the record 801 is displayed at this time).
  • “C” in the column 811 is a symbol that informs the user that the value is an intermediate progress value.
  • the calculation processing execution unit 111 determines whether a calculation stop request has been received from the client computer 200 (s206). It is assumed that the user who browses the display of the record 801 with the client computer 200 has the intention of not wanting to perform any further calculation processing. In that case, the user transmits a calculation stop request from the client computer 200 to the server computer 100. On the other hand, the calculation processing execution unit 111 receives this calculation stop request from the client computer 200 (s206: Yes), stops the subsequent calculation processing, and ends the processing.
  • the calculation processing execution unit 111 searches the storage unit 101 for divided data that has not been subjected to calculation processing (s207). For this reason, every time the calculation process execution unit 111 obtains a calculation process result, the calculation process execution unit 111 may set a calculated flag for each divided data in the storage unit 101. If there is no divided data that has not been subjected to calculation processing in the storage unit 101 (s207: Yes), the processing ends.
  • the calculation processing execution unit 111 returns the processing to step s202. Assume that the divided data selected here is the divided data 702a in FIG. 7B.
  • the calculation processing execution unit 111 selects the divided data 702a, and executes calculation for the divided data 702a with the function “avg” specified by the calculation processing request (s203). Similarly to the above, the calculation processing execution unit 111 performs not only the calculation result requested by the client computer 200 but also the calculation regarding the progress recorded value 1103 in the integration availability table 128 for the later integration processing.
  • the calculation processing execution unit 111 calculates “sum” and “count” for the divided data 702a in FIG. 7B regarding “avg” indicated by the calculation processing request, and as a result, the processing result “sum: 30480”, “Count: 3” is obtained and stored in the storage unit 101.
  • the calculation processing execution unit 111 reads the data of “sum: 63300” and “count: 4”, which are the calculation results up to the previous time, that is, the calculation processing result for the divided data 701a, from the storage unit 101,
  • the calculation formulas 1104 are applied to the calculation processing results “sum: 30480” and “count: 3” of the current divided data 702a and integrated to obtain new values “sum: 93780” and “count: 7”.
  • the storage unit 101 is stored (s204).
  • the calculation processing execution unit 111 returns the new average value “13397” obtained in step s204 to the client computer 200 (s205).
  • the client computer 200 receives the average value and displays it on the output device 206.
  • a display example is shown in a record 802 (in the figure, records 801, 802, and 803 are displayed, but only records 801 and 802 are displayed at this time. ).
  • “C” in the column 811 is a symbol that informs the user that the value is an intermediate progress value.
  • the calculation processing execution unit 111 determines whether a calculation stop request has been received from the client computer 200 (s206). It is assumed that a user who has viewed the display of the record 802 in addition to the record 801 on the client computer 200 has the intention of not wanting to perform further calculation processing. In that case, the user transmits a calculation stop request from the client computer 200 to the server computer 100. On the other hand, the calculation processing execution unit 111 receives this calculation stop request from the client computer 200 (s206: Yes), stops the subsequent calculation processing, and ends the processing.
  • the calculation processing execution unit 111 searches the storage unit 101 for divided data that has not been subjected to calculation processing (s207). If there is no divided data that has not been subjected to calculation processing in the storage unit 101 (s207: Yes), the processing ends.
  • the calculation processing execution unit 111 returns the processing to step s202.
  • the divided data selected here is the divided data 703a in FIG. 7C.
  • the calculation processing execution unit 111 selects the divided data 703a, and executes calculation for the divided data 703a with the function “avg” specified by the calculation processing request (s203).
  • the calculation processing execution unit 111 performs not only the calculation result requested by the client computer 200 but also the calculation regarding the progress recorded value 1103 in the integration availability table 128 for the later integration processing.
  • the calculation processing execution unit 111 calculates “sum” and “count” for the divided data 703a in FIG. 7C regarding “avg” indicated by the calculation processing request, and as a result, the processing result “sum: 22700”, “Count: 3” is obtained and stored in the storage unit 101.
  • the calculation processing execution unit 111 stores the data “sum: 93780” and “count: 7”, which is data obtained by integrating the calculation results up to the previous time, that is, the calculation processing results for the divided data 701a and 702a. From this data and the calculation processing results “sum: 22700” and “count: 3” of the current divided data 703a by applying the calculation formula 1104 and integrating the new values “sum: 116480”, “ “count: 10” and a new average value “11648” are obtained, and the storage unit 101 is stored (s204).
  • the calculation processing execution unit 111 returns the new average value “11648” obtained in step s204 to the client computer 200 (s205).
  • the client computer 200 receives the average value and displays it on the output device 206.
  • a display example is shown in a record 803 (in the figure, all records 801, 802, and 803 are displayed).
  • “F” in the column 811 is a symbol that informs the user that the value is the final result.
  • the calculation processing execution unit 111 determines whether a calculation stop request has been received from the client computer 200 (s206). When the calculation process execution unit 111 receives a calculation stop request from the client computer 200 (s206: Yes), the calculation process execution unit 111 stops the subsequent flow and ends the process. On the other hand, when a calculation stop request has not been received from the client computer 200 (s206: No), the calculation processing execution unit 111 searches the storage unit 101 for divided data that has not been subjected to calculation processing (s207). If there is no divided data that has not been subjected to calculation processing in the storage unit 101 (s207: Yes), the processing ends.
  • “stddev” standard deviation calculation processing.
  • x integration is not possible. Can be determined (s201: No).
  • the calculation processing execution unit 111 selects, for example, the number of processing target data included from the sampling data 127 of the storage unit 101. Is selected (s208), and a calculation process using the function “stdev” is performed on the sampled data (s209).
  • the sampling data 127 shown in FIGS. 9A to 9C the sampling data with the smallest number of data to be processed is the sampling data 901. Therefore, the calculation processing execution unit 111 calculates a standard deviation for the sampling data 901.
  • the calculation processing execution unit 111 obtains a calculation processing result “stddev: 8809” with respect to the sampling data 901 as a result of the execution of step s209.
  • the calculation process execution unit 111 returns the calculation process result to the client computer 200 (s210).
  • the client computer 200 receives the standard deviation value and displays it on the output device 206.
  • a display example is shown in the record 1011a (in the figure, records 1011a, 1011b, and 1012 are also displayed, but only the record 1101a is displayed at this time).
  • “C” in a column 1015 is a symbol that informs the user that the value is an intermediate progress value.
  • the calculation processing execution unit 111 determines whether a calculation stop request has been received from the client computer 200 (s211). It is assumed that the user who browses the display of the record 1101a with the client computer 200 has the intention of not wanting to perform any further calculation processing. In that case, the user transmits a calculation stop request from the client computer 200 to the server computer 100. On the other hand, the calculation processing execution unit 111 receives this calculation stop request from the client computer 200 (s211: Yes), stops the subsequent calculation processing, and ends the processing.
  • the calculation processing execution unit 111 searches the storage unit 101 for sampling data that has not been subjected to calculation processing (s212). For this reason, every time the calculation processing execution unit 111 obtains a calculation processing result, the calculation processing execution unit 111 may set a calculated flag for each sampling data in the storage unit 101. If there is no sampling data that has not been subjected to calculation processing in the storage unit 101 (s212: Yes), the processing ends.
  • the calculation processing execution unit 111 returns the processing to step s209.
  • the sampling data selected here is the sampling data 902 in FIG. 9B.
  • the calculation processing execution unit 111 selects the sampling data 902 and executes calculation for the sampling data 902 with the function “stddev” specified by the calculation processing request (s209).
  • the calculation processing execution unit 111 obtains a calculation processing result “stddev: 19813” regarding the sampling data 902 as a result of the execution of step s209.
  • the calculation process execution unit 111 returns the calculation process result to the client computer 200 (s210).
  • the client computer 200 receives the standard deviation value and displays it on the output device 206.
  • a display example is shown in the record 1011b (in the figure, the records 1011a, 1011b, and 1012 are also displayed, but only the records 1101a and 1101b are displayed at this time. ).
  • “C” in a column 1015 is a symbol that informs the user that the value is an intermediate progress value.
  • the calculation processing execution unit 111 determines whether a calculation stop request has been received from the client computer 200 (s211). It is assumed that the user who browses the display of the records 1101a and 1101b with the client computer 200 has the intention of not wanting to perform further calculation processing. In that case, the user transmits a calculation stop request from the client computer 200 to the server computer 100. On the other hand, the calculation processing execution unit 111 receives this calculation stop request from the client computer 200 (s211: Yes), stops the subsequent calculation processing, and ends the processing.
  • the calculation processing execution unit 111 searches the storage unit 101 for sampling data that has not been subjected to calculation processing (s212). In this example, since the processing for all the sampling data is completed, the calculation processing execution unit 111 selects all the processing target data included in the population table 125, executes the calculation processing using the function “stddev”, and obtains the final result. As a result, “stddev: 15382” is obtained. The calculation process execution unit 111 returns this result to the client computer 200 and completes the process (s212: Yes ⁇ End). The client computer 200 receives the standard deviation value and displays it on the output device 206. Of the calculation processing results in FIG. 13B, a display example is shown in a record 1012 (in the figure, records 1011a, 1011b, and 1012 are displayed). “F” in a column 1015 is a symbol that informs the user that the value is the final result value.
  • the processing method according to the above embodiment may be executed by returning a response to a request accepted by the HTTP protocol.
  • the server computer 100 has shown a method of processing partial data one by one. However, this processing can be performed in parallel by a plurality of computers. A configuration example of a computer system that realizes this is shown in FIG. By connecting a plurality of dependent computers 300 to the server computer 100 of the above embodiment via the network 191 and performing parallel distributed processing using these, it is possible to reduce the overall processing time.
  • the configuration of the server computer 100 in this case has the same configuration as that of the server computer 100 of the above embodiment, but (for example, the calculation processing execution unit 111) periodically communicates with the dependent computer 300. It is assumed that the operation status data is stored in the storage unit 101. The operation status data is data indicating a status such as a calculation being executed in response to a calculation execution instruction from the server computer 100, or a calculation not being executed. Therefore, it is assumed that the dependent computer 300 also has an application for answering an inquiry from the server computer 100 regarding its own operating status.
  • the calculation processing execution unit 111 of the server computer 100 has a function of allocating calculation processing to the subordinate computer 300 as a new function.
  • the calculation processing execution unit 111 receives the calculation processing request from the client computer 200 via the communication unit 107
  • the calculation processing execution unit 111 reads the operation status of the subordinate computer 300 in the storage unit 101 and requests the calculation processing.
  • the calculation request including the calculation processing information indicated by the calculation processing request and one or a predetermined number of partial data read from the storage unit 101 is transmitted to the possible dependent computer 300, and the one or the predetermined number of portions is transmitted.
  • a calculation processing result for data is obtained from the subordinate computer 300, a calculation processing result for the corresponding partial data is returned to the client computer 200.
  • the configuration of the dependent computer 300 is as shown in FIG. Similar to the server computer 100, the program 302 stored in the storage unit 301, which is a non-volatile storage device such as a hard disk drive, is read into the memory 303 and executed by the CPU 304, which is an arithmetic unit.
  • the dependent computer 300 can include an input device 305 such as various keyboards and buttons generally provided in a computer device, and an output device 306 such as a display.
  • a communication unit 307 such as a NIC (Network Interface Card) that exchanges data with the server computer 100 is provided.
  • the storage unit 101 stores partial data transmitted from the server computer 100.
  • FIG. 16 is a diagram illustrating a processing flow example of a data processing method according to another embodiment.
  • the calculation processing request obtained from the client computer 200 indicates processing by a function that can be integrated.
  • the calculation processing execution unit 111 of the server computer 100 determines the subordinate computer 300 that processes each divided data in the storage unit 101 (s300).
  • the calculation processing execution unit 111 reads the operating status of the subordinate computer 300 in the storage unit 101, and, for example, the subordinate computer 300 that has sufficient calculation processing capability such as “standby” can request the subordinate computer 300 to perform calculation processing.
  • the computer 300 is specified.
  • the specification of the calculation processing capability of the subordinate computer 300 is held in the storage unit 101 in advance, the number of data to be processed for the subordinate computer 300 whose operation status is “standby” and whose spec is faster. It is also possible to allocate more divided data.
  • the calculation processing execution unit 111 transmits the divided data to be processed and the processing content to each subordinate computer 300 according to the allocation determined in step s300 (s301).
  • the dependent computer 300 receives the data from the server computer 100, executes calculation processing on the divided data allocated to itself according to the instruction, and returns the calculation result to the server computer 100.
  • the server computer 100 sends it to the dependent computer 300 when the partial data is created. Partial distribution of partial data may be performed in advance. In the case of pre-distribution, the server computer 100 instructs each dependent computer 300 to calculate the partial data held by the dependent computer 300. Alternatively, a method may be used in which partial data is stored in a storage device (arranged on the network 191) shared by the server computer 100 and the dependent computer 300, and the position information is notified to the dependent computer 300.
  • step s301 the calculation processing execution unit 111 of the server computer 100 waits for a reply from the dependent computer 300 (s302). Thereafter, when a reply from the dependent computer 300 is received (s303), the process proceeds to step s304.
  • step s304 the same processing as in the above embodiment (step s204 in FIG. 11) is executed, and steps s304 to s305 are repeated until the calculation processing of all divided data is completed.
  • the step s305 corresponds to the step s205 in FIG.
  • step s208 in FIG. 11 the processing performed by the server computer 100 in the above-described embodiment is also performed on sampling data, while the above-described step is performed.
  • Parallel distributed processing is possible by causing the dependent computer 300 to execute s209.
  • the processing result for partial data is sequentially returned to the client side while increasing the amount of processing target data in stages, so that a long time can be obtained when all data is targeted.
  • a rough result can be provided to the user side at any time in the middle.
  • you want to know the rough average value of a certain item or when the calculation is not intended by the user do not wait for the long-time calculation for all data to be completed. It is possible to cope with the interruption of processing, and the effect of drastically reducing work time can be expected.
  • the client computer 200 does not need to create two types of requests, that is, a processing request for processing all data and a processing request for processing partial data, it is expected to improve the efficiency of the processing request. it can.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 情報処理装置における計算処理時間や計算処理能力の効率的な利用を図る。 他装置と通信する通信部107と、計算処理対象データの母集団を記憶する記憶部101と、所定数の計算処理対象データからなるデータ群をデータ群間でのデータ重複無く前記母集団から複数抽出して部分データとして記憶部101に格納する部分データ作成部110と、端末200からの計算処理要求を前記通信部107を介して受信し当該計算処理要求が示す計算処理を前記記憶部101における各部分データに対し順次実行し1または所定数の部分データに対する計算処理結果が得られるごとに該当部分データに関する計算処理結果を前記端末200に返信する計算処理実行部111とを備える情報処理装置100からデータ処理システム10を構成する。

Description

データ処理システム、データ処理方法、およびデータ処理プログラム
 本発明は、データ処理システム、データ処理方法、およびデータ処理プログラムに関する。
 GPS(Global Positioning System)やRFID、電子マネー、eコマースの普及により、これまで電子化されていなかった実世界の人間活動の情報が電子化されるようになりつつある。これら電子化されたデータを収集/分析/活用することで様々なメリットがある。一方、処理対象の前記電子化データは膨大な数となりがちで、計算完了までに長時間を要するため、この点を考慮した技術が提案されている。例えば、検索対象データ全体のうち一部分のみを対象として予備的な検索を実施し、その結果を確認用データとしてクライアントに返送し、その後に全データへの検索要求が来たら、あらためて全データを対象として検索を実施することで、利用者が予期しない結果の返送による転送時間の無駄をなくす技術が提案されている(特許文献1参照)。
特開平6-266760号公報
 ところで、プログラム開発時などに、前記電子化データに関する計算結果がプログラムのパラメータ値など各種用途に利用される場合がある。プログラムの開発者は、一旦は前記電子化データに関する計算要求を情報処理装置に指示したが、プログラムミスなどで意図しない計算要求となったことが判明した時など、その計算要求を取りやめたい場合もある。また、各種パラメータ等の設定に躊躇しがちなプログラム開発時ゆえに、前記プログラム開発者は、前記電子化データに関する複数段階(サンプリングデータ=処理対象データの範囲や規模が複数段階)の計算処理結果を順次確認していきたい場合もある。
 一方、従来技術を上記状況に適用するとすれば、データ母集団からデータをサンプリングする手法やサンプリングするデータ数などに関しバリエーションが無く、予備的計算も一度しか行われないことになる。この場合の利用者は、一度の予備的計算の結果のみで全データ対象の計算結果を推測する必要が生じる。また、予備的計算が一度のみであるから、計算要求がプログラム開発の意図に沿ったものであったか否か、プログラム開発者が計算結果を適切に検証することは難しく、結局は全データ対象の計算処理を実行せざるを得ないこととなりやすい。従って、計算要求が意図に沿わないものであったとしても、全データ対象の計算処理が実行されることになり、計算処理を行う情報処理装置における計算時間や計算能力の無駄使いが非常に大きくなるという問題点がある。こうした問題点は、処理対象のデータ数が膨大であればあるほど、より大きくなる。
 そこで本発明は上記課題を鑑みてなされたものであり、情報処理装置における計算処理時間や計算処理能力の効率的な利用を図る技術の提供を主たる目的とする。
 上記課題を解決する本発明のデータ処理システムは、例えば、GPS装置から得た位置データや、企業や商店等での販売実績データなど、膨大な数のデータに対して、四則演算の他、平均値、合計値、各種偏差、など各種統計用の計算処理などを行う情報処理装置からなるものであり、一例としてクライアントから計算要求を受けて該当計算処理を実行するサーバ装置を想定できる。
 こうしたデータ処理システムにおける前記情報処理装置は、他装置と通信する通信部と、計算処理対象データの母集団を記憶する記憶部と、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して部分データとして記憶部に格納する、部分データ作成部と、端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における各部分データに対し順次実行し、1または所定数の部分データに対する計算処理結果が得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する、計算処理実行部とを備える。
 なお、前記情報処理装置の部分データ作成部は、含まれる計算処理対象データ数が互いに異なる部分データを、部分データ間でのデータ重複無く前記母集団から複数抽出して記憶部に格納するとしてもよい。
 この場合、前記情報処理装置の計算処理実行部は、端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における部分データのうち、含まれる計算処理対象データ数が少ない順に順次実行し、含まれる計算処理対象データ数が少ない部分データ順に計算処理結果を前記端末に返信することとなる。
 また、前記情報処理装置の記憶部は、計算処理の種類毎に、前記部分データに関する計算処理結果の各部分データ間での統合可否の情報を記憶しているとしてもよい。
 この時、前記情報処理装置の部分データ作成部は、前記部分データたる分割データとして、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して記憶部に格納し、前記部分データたるサンプリングデータとして、含まれる計算処理対象データが互いに異なるデータ群を、データ群間でのデータ重複回避を考慮せず前記母集団から複数抽出して記憶部に格納するとしてもよい。
 また、前記情報処理装置の計算処理実行部は、前記端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理の情報を、前記記憶部の前記統合可否情報に照合する。そして、該当計算処理が各部分データ間で計算処理結果の統合可であるものである時、前記計算処理実行部は、前記記憶部における各分割データに対し該当計算処理を順次実行し、1の分割データに対する計算処理結果が得られるごとに記憶部に格納し、直前に得ている他分割データに関する計算処理結果が記憶部になければ前記計算処理結果を前記端末に返信し、直前に得ている他分割データに関する計算処理結果が記憶部にあれば該当計算処理結果と統合処理し、統合処理した計算処理結果を前記端末に返信する。他方、該当計算処理が各部分データ間で計算処理結果の統合不可であるものである時、前記計算処理実行部は、前記記憶部における各サンプリングデータに対し該当計算処理を実行し、各サンプリングデータに対する計算処理結果が得られるごとに、該当サンプリングデータに関する計算処理結果を前記端末に返信する。
 また、前記情報処理装置の部分データ作成部は、予め定めた所定要素を検索キーとして前記母集団から計算処理対象データを検索し、当該検索処理で得た計算処理対象データ群より、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く複数抽出して、或いは、含まれる計算処理対象データ数が互いに異なるデータ群を、データ群間でのデータ重複回避を考慮せず複数抽出して部分データとして記憶部に格納する、としてもよい。
 また、前記情報処理装置の計算処理実行部は、前記端末からの計算停止要求を前記通信部を介して受信し、当該計算停止要求を受けた時点で前記部分データへの計算処理の実行を停止する、としてもよい。
 また、前記情報処理装置は、ネットワークで結ばれた従属計算機と通信してその稼働状況を記憶部において記憶しているとしてもよい。この場合、前記計算処理実行部は、前記端末からの計算処理要求を前記通信部を介して受信したならば、前記記憶部において従属計算機の稼働状況を読み取り、計算処理を依頼可能な従属計算機に対し、前記計算処理要求が示す計算処理の情報と、前記記憶部から読み出した1または所定数の部分データとを含む計算依頼を送信し、前記1または所定数の部分データに対する計算処理結果を従属計算機から得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する、とすれば好適である。
 また、本発明のデータ処理方法は、他装置と通信する通信部と、計算処理対象データの母集団を記憶する記憶部とを備えた情報処理装置が、以下の処理を実行する。すなわち、前記情報処理装置は、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して部分データとして記憶部に格納する処理と、端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における各部分データに対し順次実行し、1または所定数の部分データに対する計算処理結果が得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する処理と、を実行する。
 また、本発明のデータ処理プログラムは、他装置と通信する通信部と、計算処理対象データの母集団を記憶する記憶部とを備えた情報処理装置に、以下の処理を実行させる。すなわち、前記データ処理プログラムは、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して部分データとして記憶部に格納する処理と、端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における各部分データに対し順次実行し、1または所定数の部分データに対する計算処理結果が得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する処理と、を前記情報処理装置に実行させる。
 本発明によれば、情報処理装置における計算処理時間や計算処理能力の効率的な利用を図ることができる。
本実施形態のデータ処理システムのネットワーク構成図である。 サーバ計算機(情報処理装置)のハードウェア構成を示す図である。 クライアント計算機(端末)のハードウェア構成を示す図である。 母集団テーブルと部分データとの関係を説明した図である。 本実施形態の母集団テーブルの例を示す図である。 本実施形態のデータ処理方法の処理手順例1を示すフロー図である。 本実施形態における分割データの例1を示す図である。 本実施形態における分割データの例1を示す図である。 本実施形態における分割データの例1を示す図である。 本実施形態における分割データの例2を示す図である。 本実施形態における分割データの例2を示す図である。 本実施形態におけるサンプリングデータの例を示す図である。 本実施形態におけるサンプリングデータの例を示す図である。 本実施形態におけるサンプリングデータの例を示す図である。 本実施形態の統合可否テーブルの例を示す図である。 本実施形態のデータ処理方法の処理手順例2を示すフロー図である。 本実施形態における計算処理要求の例1を示す図である。 本実施形態における計算処理結果の例1を示す図である。 本実施形態における計算処理要求の例2を示す図である。 本実施形態における計算処理結果の例2を示す図である。 他実施形態のデータ処理システムのネットワーク構成図である。 他実施形態における従属計算機のハードウェア構成を示す図である。 他実施形態におけるデータ処理方法の処理手順例を示す図である。
---システム構成---
 以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態のデータ処理システム10のネットワーク構成図である。図1に示すデータ処理システム10は、利用者が大量のデータに関する計算処理結果を効率的に推測可能な情報を提供可能であり、情報処理装置における計算処理時間や計算処理能力の効率的な利用を図るコンピュータシステムである。本実施形態において、前記データ処理システム10(以下システム10)は、例えば、サーバ計算機100(情報処理装置)を含むものである。このサーバ計算機100はクライアント計算機200(端末)から計算処理要求を受けて計算処理対象データに対する計算処理を実行し、その結果を返信する。そのため、前記サーバ計算機100とクライアント計算機200はネットワーク190で結ばれている。
 図2は、サーバ計算機(情報処理装置)のハードウェア構成を示す図である。こうした本実施形態における前記サーバ計算機100は、ハードディスクドライブなどの不揮発性記憶装置たる記憶部101に格納されたプログラム102をメモリ103に読み出し、演算装置たるCPU104により実行する。また、前記サーバ計算機100は、コンピュータ装置が一般に備えている各種キーボードやボタン類などの入力装置105、ディスプレイなどの出力装置106を備えることができる。また、前記クライアント計算機200との間のデータ授受を担うNIC(Network Interface Card)など通信部107を有している。
 続いて、前記サーバ計算機100が、例えばプログラム102に基づき前記記憶部101にて構成・保持する機能部につき説明を行う。なお、前記サーバ計算機100は、記憶装置101(記憶部)において、母集団テーブル125、分割データ126、サンプリングデータ127、統合可否テーブル128を格納している(各テーブルについては後述する)。
 前記サーバ計算機100は、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団テーブル125から複数抽出して部分データとして記憶部101に格納する、部分データ作成部110を備える。
 また、前記サーバ計算機100は、クライアント計算機200からの計算処理要求を前記通信部107を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部101における各部分データに対し順次実行し、1または所定数の部分データに対する計算処理結果が得られるごとに、該当部分データに関する計算処理結果を前記クライアント計算機200に返信する、計算処理実行部111を備える。
 なお、前記部分データ作成部110は、含まれる計算処理対象データ数が互いに異なる部分データを、部分データ間でのデータ重複無く前記母集団テーブル125から複数抽出し、分割データ126として記憶部101に格納するとしてよい。
 この場合、前記計算処理実行部111は、クライアント計算機200からの計算処理要求を前記通信部107を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部101における部分データ=分割データ126のうち、含まれる計算処理対象データ数が少ない順に順次実行し、含まれる計算処理対象データ数が少ない部分データ順=分割データ順に計算処理結果を前記クライアント計算機200に返信する、こととなる。
 また、前記記憶部101は、計算処理の種類毎に、前記部分データに関する計算処理結果の各部分データ間での統合可否の情報として、統合可否テーブル128を記憶しているとしてもよい。この場合、前記部分データ作成部110は、前記部分データたる分割データ126として、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団テーブル125から複数抽出して記憶部101に格納する。また、前記部分データ作成部110は、前記部分データたるサンプリングデータ127として、含まれる計算処理対象データが互いに異なるデータ群を、データ群間でのデータ重複回避を考慮せず前記母集団テーブル125から複数抽出して記憶部101に格納する。
 一方、前記計算処理実行部111は、前記クライアント計算機200からの計算処理要求を前記通信部107を介して受信し、当該計算処理要求が示す計算処理の情報を、前記記憶部101の前記統合可否テーブル128に照合する。この照合の結果、該当計算処理が各部分データ間で計算処理結果の統合可であるものであれば、前記計算処理実行部111は、前記記憶部101における各分割データ126に対し該当計算処理を順次実行し、1の分割データ126に対する計算処理結果が得られるごとに記憶部101に格納し、直前に得ている他分割データに関する計算処理結果が記憶部101になければ前記計算処理結果を前記クライアント計算機200に返信する。また、直前に得ている他分割データに関する計算処理結果が記憶部101にあれば該当計算処理結果と統合処理し、統合処理した計算処理結果を前記クライアント計算機200に返信する。
 他方、前記照合の結果、該当計算処理が各部分データ間で計算処理結果の統合不可であるものであれば、前記計算処理実行部111は、前記記憶部101における各サンプリングデータ127に対し該当計算処理を実行し、各サンプリングデータ127に対する計算処理結果が得られるごとに、該当サンプリングデータ127に関する計算処理結果を前記クライアント計算機200に返信することとなる。
 なお、上記で述べた「部分データ間で計算処理結果の統合可」とは、例えば、計算処理要求が示す計算処理が「平均」や「合計値」などであれば、ある分割データAに対して既に得られている計算処理結果aと、今時得られた分割データBに関する計算処理結果bとは「統合」できることを意味する。具体的には、前記計算処理結果aが、3つの計算処理対象データの平均値a1であり、前記計算処理結果bが、6つの計算処理対象データの平均値b1である時、“((平均値a1×3)+(平均値b1×6))/(6+3)”の計算を行えば、前記計算処理結果bに前記計算処理結果aを統合することができる。一方、例えば、計算処理要求が示す計算処理が「標準偏差」などであれば、ある分割データAに対して既に得られている計算処理結果aと、今時得られた分割データBに関する計算処理結果bとを「統合」できないことになる。
 また、前記サーバ計算機100の部分データ作成部110は、予め定めた所定要素(例:ユーザIDなど)を検索キーとして前記母集団テーブル125から計算処理対象データを検索し、当該検索処理で得た計算処理対象データ群より、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く複数抽出して、或いは、含まれる計算処理対象データ数が互いに異なるデータ群を、データ群間でのデータ重複回避を考慮せず複数抽出して部分データとして記憶部101に格納するとしてもよい。
 また、前記サーバ計算機100の計算処理実行部111は、前記クライアント計算機200からの計算停止要求を前記通信部107を介して受信し、当該計算停止要求を受けた時点で前記部分データへの計算処理の実行を停止する、としてもよい。
 図3はクライアント計算機200のハードウェア構成を示す図である。一方、前記クライアント計算機200は、例えば、プログラム開発を行っていて、前記母集団テーブル125における計算処理対象データに関する計算処理結果を、プログラム開発に活用したいユーザが利用する端末である。このクライアント計算機200は、コンピュータとして、当然に、ハードディスクドライブなどの不揮発性記憶装置たる記憶部201に格納されたプログラム202をメモリ203に読み出し、演算装置たるCPU204により実行する。また、前記クライアント計算機200は、コンピュータ装置が一般に備えている各種キーボードやボタン類などの入力装置205、ディスプレイなどの出力装置206を備える。また、前記サーバ計算機100との間のデータ授受を担うNIC(Network Interface Card)など通信部207を有している。前記クライアント計算機200は、例えば前記プログラム202として計算処理要求/結果受信/表示プログラム210を備える。前記クライアント計算機200は、このプログラム210を実行することで、入力装置205より前記ユーザからの計算処理要求の指示受け付け、受け付けた計算処理要求をサーバ計算機100へ送信、サーバ計算機100からの計算処理要求の受信、計算処理結果を出力装置206へ表示、という一連の処理を行う。
 これまで示した前記システム10を構成する前記サーバ計算機100における各部110~111はハードウェアとして実現してもよいし、メモリやHDD(Hard Disk Drive)などの適宜な記憶装置に格納したプログラムとして実現するとしてもよい。この場合、各情報処理装置のCPUがプログラム実行に合わせて記憶装置より該当プログラムをメモリに読み出して、これを実行することとなる。
---テーブル構造例1(母集団テーブル)---
 次に、本実施形態の前記システム10が利用するテーブルの例について説明する。図4は母集団テーブル125と部分データとの関係を説明した図であり、図5は本実施形態の母集団テーブル125の例を示す図である。前記母集団テーブル125は、全ての計算処理対象データの集合である。図5に示す母集団テーブル125の例では、ID501が“1”~“9”までの9レコードの計算処理対象データを含む母集団テーブル125であり、各レコードは、商品購入を行ったユーザを示す“UserID”502、購入日たる“day”503、購入額たる“Price”504、購入商品を示す“ProductID”505の各データを含んでいる。
 例えば、前記母集団テーブル125内のレコード511は売上番号たるIDが「1」、ユーザIDが「U_A0017」の利用者が「2009年1月6日」に商品ID「P_0005」の商品を「1000円」で購入したことを意味する。本実施形態のデータ処理方法は多数のレコード、および多数のテーブルからなる巨大なデータを処理する際に特に効果があるが、ここでは分かりやすくするため9レコードのテーブル1つだけの小さなデータを使って説明をしている。
---処理フロー例1(部分データの生成処理)---
 以下、本実施形態におけるデータ処理方法の実際手順について図に基づき説明する。なお、以下で説明するデータ処理方法に対応する各種動作は、前記システム10を構成する各装置のメモリに読み出して実行するプログラムによって実現される。そして、このプログラムは、以下に説明される各種の動作を行うためのコードから構成されている。
 図6は本実施形態のデータ処理方法の処理フロー例1を示す図である。この場合、前記サーバ計算機100の部分データ作成部110は、例えば、前記NIC107を介し前記クライアント計算機200から、母集団テーブル125の分割手法および分割数の指定を受け付ける(s100)。前記指定が、分割手法として「重複無く均等分割」、分割数として「3」を示すものである場合(s101:重複無し均等)、前記部分データ作成部110は、前記記憶部101の母集団テーブル125に対し、計算処理対象データ数のカウントを行ってデータ数「9」を取得し、この「9」つの計算処理対象データを「3」つにグルーピングする処理を行う(s102)。
 前記部分データ作成部110が行うこのグルーピング処理は、例えばまず、各分割データが元の母集団テーブル125となるべく同様の統計的性質を持つように、前記母集団テーブル125において各計算処理対象データを時刻順(“day”を基準に)にソートする。その上で、各計算処理対象データにおける“UserID”にハッシュ関数を適用し、所定桁数の整数値に変換する。前記部分データ作成部110はこの整数値を例えば「3」で除算し、余りが「0」となった計算処理対象データを前記時刻順に3つ選択し、1つの分割データ701aとする(図7Aに示すID“1”、“4”、“7”のレコードを含むもの)。次に前記部分データ作成部110は、前記分割データ701aに含まれる計算処理対象データを除いて、前記整数値に対する「3」での除算を同様に実行し、余りが「0」となった計算処理対象データを前記時刻順に3つ選択し、2つ目の分割データ702aとする(図7Bに示すID“2”、“5”、“8”のレコードを含むもの)。また、前記部分データ作成部110は、最後に残った3つの計算処理対象データを3つ目の分割データ703aとする(図7Cに示すID“3”、“6”、“9”のレコードを含むもの)。勿論、前記グルーピング処理については他の手法を採用しても構わない。前記部分データ作成部110は、こうしたグルーピング処理で得た3つの分割データ701a~703aを記憶部101に格納し(s103)、処理を終了する。
 他方、前記クライアント計算機200からの指定が、分割手法として「重複無く不均等分割」、分割数として「2」を示すものである場合(s101:重複無し不均等)、前記部分データ作成部110は、前記記憶部101の母集団テーブル125に対し、計算処理対象データ数のカウントを行ってデータ数「9」を取得し、この「9」つの計算処理対象データを「2」つにグルーピングする処理を行う(s104)。
 前記部分データ作成部110が行うこのグルーピング処理は、例えばまず、各分割データが元の母集団テーブル125となるべく同様の統計的性質を持つように、前記母集団テーブル125において各計算処理対象データを時刻順(“day”を基準に)にソートする。その上で、各計算処理対象データにおける“UserID”にハッシュ関数を適用し、所定桁数の整数値に変換する。前記部分データ作成部110はこの整数値を例えば「3」で除算し、例えば、余りが「0」~「2」となった計算処理対象データを前記時刻順に6つ選択し、1つの分割データ701bとする(図8Aに示すID“1”、“4”、
“7”、“2”、“5”、“8”のレコードを含むもの)。次に前記部分データ作成部110は、最後に残った3つの計算処理対象データを2つ目の分割データ702bとする(図8Bに示すID“3”、“6”、“9”のレコードを含むもの)。勿論、前記グルーピング処理については他の手法を採用しても構わない。前記部分データ作成部110は、こうしたグルーピング処理で得た2つの分割データ701b、702bを記憶部101に格納し(s105)、処理を終了する。
 なお、上記ではあくまで分割処理の一例として、母集団テーブル125が含む処理対象データを3つないし2つのより小さな分割データ701a~703a、ないし701b~702bに分割する例を示した。母集団テーブル125が含む計算処理対象データの数に応じて、上記同様の手法で10分割、100分割するとしても勿論よい。10分割する場合、前記部分データ作成部110は、例えばまず、各分割データが元の母集団テーブル125となるべく同様の統計的性質を持つように、前記母集団テーブル125において各計算処理対象データを時刻順(“day”を基準に)にソートする。その上で、各計算処理対象データにおける“UserID”にハッシュ関数を適用し、所定桁数の整数値に変換する。前記部分データ作成部110はこの整数値を例えば「10」で除算し、余りが「1」となった計算処理対象データを選択することで、元の母集団テーブル125での計算処理対象データ数を10分の1した、1つの分割データを得ることができる。また同様に、前記部分データ作成部110は前記整数値を例えば「100」で除算し、余りが「1」となった計算処理対象データを選択することで、元の母集団テーブル125での計算処理対象データ数を100分の1した、1つの分割データを得ることができる。
 一方、前記クライアント計算機200からの指定が、分割手法として「重複回避せず不均等分割」、分割数として「2」を示すものである場合(s101:重複無視不均等)、前記部分データ作成部110は、前記記憶部101の母集団テーブル125に対し、計算処理対象データ数のカウントを行ってデータ数「9」を取得し、この「9」つの計算処理対象データを「2」つにグルーピングする処理を行う(s106)。
 前記部分データ作成部110が行うこのグルーピング処理は、例えば、ランダムサンプリングにより前記母集団テーブル125から計算処理対象データを6つ選択し、1つのサンプリングデータ901とする(図9Aに示すID“1”、“4”、“6”、“7”、“8”、“9”のレコードを含むもの)。次に前記部分データ作成部110は、最後に残った3つの計算処理対象データを2つ目のサンプリングデータ902とする(図9Bに示すID“1”、“6”、“8”のレコードを含むもの)。勿論、前記グルーピング処理については他の手法を採用しても構わない。前記部分データ作成部110は、こうしたグルーピング処理で得た2つのサンプリングデータ901~902を記憶部101に格納し(s107)、処理を終了する。なお、含まれるデータ数を「3」として均等にサンプリングデータを生成する場合、前記部分データ作成部110は、例えば、ランダムサンプリングにより前記母集団テーブル125から計算処理対象データを3つ選択し、1つのサンプリングデータとし、以下同様の処理で、前記母集団テーブル125から計算処理対象データを3つ選択する処理を2回実行して、あと2つのサンプリングデータを得ることとなる。
 なお、前記部分データ作成部110は、予め定めた所定要素(例:ユーザIDなど)を検索キーとして前記母集団テーブル125から計算処理対象データを検索し、当該検索処理で得た計算処理対象データ群より、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く或いはデータ重複回避を考慮せず複数抽出して部分データとして記憶部101に格納するとしてもよい。
 この場合、前記部分データ作成部110は、表形式データとなっている母集団テーブル125において、特定列に関して重複のない値の集合を算出し、この集合の大きさを1/10や1/100にするようなレコードの抽出方法を採用する。例えば、母集団テーブル125において、“UserID”502の列の値が「U_A0017、U_B0031、U_A0001、U_S0001」のうちから、1/2にあたる「U_A0001、U_S0001」の2つを選択してキーとし、該当UserIDを持つレコードを母集団テーブル125から抽出する。こうして抽出して分割データとしたのが図9Cに示す分割データ903である。
 なお、前記サーバ計算機100の部分データ作成部110は、記憶部101における前記母集団テーブル125に対する変更イベントを監視し、母集団テーブル125に変更が生じたことを検知すると、上記フローを実行して分割データやサンプリングデータを生成する。
 また、前記母集団テーブル125が複数のテーブルから構成される場合、前記部分データ作成部110は、全てのテーブルに対して部分データを生成してもよいし、或いは、一部の大きなテーブル(例:データ数最大のもの)を検索して該当テーブルに対してのみ部分データを生成するとしてもよい。
---テーブル構造例2(部分データおよび統合可否テーブル)---
 上述のように生成された部分データ、つまり分割データ126およびサンプリングデータ127についてその構造例を示す。図7A~Cは本実施形態における分割データの例1を示す図であり、図8A~Bは本実施形態における分割データの例2を示す図である。分割データ126は、母集団テーブル125(=処理対象データ全体)を分割して重複なく保持するものである。図7A~Cに示す分割データ126は、分割データ701a~703aの3つの分割データを含んでいる。これら分割データ701a~703aは、含んでいる計算処理対象データ数が同じ「3」つである。ただし、分割データ701a~703aの各間で、各計算処理対象データは重複していない。一方、図8A~Bに示す分割データ126は、分割データ701b~702bの2つの分割データを含んでいる。これら分割データ701b~702bは、含んでいる計算処理対象データ数がそれぞれ「6」つと「3」つで異なっている。また、分割データ701b~702bの各間で、各計算処理対象データは重複していない。
 また、図9A~Cは本実施形態におけるサンプリングデータ127の例を示す図である。サンプリングデータ127は、母集団テーブル125(=計算処理対象データ全体)から少量をサンプリングしてサンプリング元データ(=母集団テーブル125)と重複する形で保持するものである。図9A~Cに示すサンプリングデータ127は、サンプリングデータ901~902の2つのサンプリングデータを含んでいる。これらサンプリングデータ901~902は、含んでいる計算処理対象データ数がそれぞれ「6」つと「3」つで異なっている。ただし、サンプリングデータ901~902の各間で、各計算処理対象データは重複しているものがある(図の例では、ID“1”、“6”、“8”が重複)。
 また、図10は本実施形態の統合可否テーブル128の例を示す図である。この統合可否テーブル128は、前記部分データに関する計算処理結果の各部分データ間での統合可否の情報を格納しているテーブルである。ここで、「部分データ間で計算処理結果の統合可」とは、例えば、計算処理要求が示す計算処理が「平均」や「合計値」などであれば、ある分割データAに対して既に得られている計算処理結果aと、今時得られた分割データBに関する計算処理結果bとは「統合」できることを意味する。具体的には、前記計算処理結果aが、3つの計算処理対象データの平均値a1であり、前記計算処理結果bが、6つの計算処理対象データの平均値b1である時、“((平均値a1×3)+(平均値b1×6))/(6+3)”の計算を行えば、前記計算処理結果bに前記計算処理結果aを統合することができる。一方、例えば、計算処理要求が示す計算処理が「標準偏差」などであれば、ある分割データAに対して既に得られている計算処理結果aと、今時得られた分割データBに関する計算処理結果bとを「統合」できないことになる。
 従って、図10に示す統合可否テーブル128の例では、前記計算処理に対応する、“sum”=合計、“count”=データ数の計数、“avg”=平均値、“stddev”=標準偏差、といった「関数」1101をキーとして、統合可否1102、経過記録値1103、算出式1104といったデータを対応付けたレコードの集合体となっている。前記経過記録値は、分割データ間で計算結果の統合を行う場合に必要となる値であって、計算処理結果ないし当該計算処理結果を算定するに用いた値であり、関数1101が“sum”であれば、後に統合する際にも合計値を単純加算すればよいから“sum”=合計値であり、関数1101が“count”であれば、後に統合する際にもレコード数を単純加算すればよいから“count”=レコード数であり、関数1101が、“avg”であれば、後に統合する際に必要となる、該当平均値を求めるに当たって用いた“sum”=合計値とこれを除算したレコードの数“count”である。関数1101のうち、“stddev”=標準偏差、については計算処理結果の統合は出来ないから、この経過記録値1103と算出式1104の欄は空欄となる。
 また、前記算出式1104は、分割データ間で計算処理結果を統合する際の計算式であり、例えば、計算処理要求が示す計算処理が“avg”=平均であれば、ある分割データAに対して既に得られている前記経過記録値1103=“sum1”、“count1”と、今時得られた分割データBに関する前記経過記録値1103=“sum2”、“count2”とに基づき、“(sum1+sum2)/(count1+count2)”の計算を実行すれば、前記分割データAの計算処理結果を分割データBに統合することができる。或いは、例えば、計算処理結果aが、3つの計算処理対象データの平均値a1で
あり、計算処理結果bが、6つの計算処理対象データの平均値b1である時、“((平均値a1×3)+(平均値b1×6))/(6+3)”の計算を行えば、前記計算処理結果bに前記計算処理結果aを統合することができる。
---処理フロー例2---
 続いて、クライアント計算機200から計算処理要求を受けて計算処理結果の統合等を行う処理について図に基づき説明する。図11は本実施形態のデータ処理方法の処理フロー例2を示す図である。この場合、前記サーバ計算機100の計算処理実行部111は、前記クライアント計算機200からの計算処理要求を前記通信部107を介して受信し、当該計算処理要求が示す計算処理の情報を、前記記憶部101の前記統合可否テーブル128に照合する(s200)。ここで、前記クライアント計算機200からの計算処理要求の例を図12Aに示す。この計算処理要求601のデータは、例えばSQL言語(Structured Query Language)で記述されており、「SoldItems」と名付けられた母集団テーブル125の「price」列の値の平均(avg)の計算結果を要求するものである。
 前記ステップs200での照合処理により、該当計算処理“avg”は前記統合可否テーブル128において、統合可否が「○」=統合可であるから、各部分データ間で計算処理結果の統合処理可であると判定できる(s201:はい)。このように、計算処理要求が示す計算処理の関数が統合処理可能なものであった場合、前記計算処理実行部111は、前記記憶部101の分割データ126の集合の中から処理する分割データを選択する(s202)。当該選択処理については、例えば、分割データのうち含まれる計算処理対象データ数が少ない順に選択するとすればよい。前記計算処理実行部111はここで選択した分割データに対して前記計算処理要求が指定した関数で計算を実行する(s203)。
 ただし、ここでは前記クライアント計算機200が要求した計算結果だけでなく、後の統合処理のために、前記統合可否テーブル128における経過記録値1103に関する計算も行なう。例えば、前記計算処理実行部111は、前記計算処理要求が示す“avg”に関して、図7Aの分割データ701aに対する「sum」と「count」を計算し、その結果、「sum:63300」、「count:4」の値を得て、記憶部101に格納しておく。
 次に前記計算処理実行部111は、ステップs204に進むが、前記分割データ701aに対する処理が最初の分割データに対する処理のため、直前の結果(=他の分割データに関する計算処理結果)がない。そのため、前記計算処理実行部111は、今時の分割データ701aに関する計算処理結果だけを使って、統合可否テーブル128における前記“avg”に関する算出式1104により、平均値「15825」を算出する(s204)。
 また、前記計算処理実行部111は、前記ステップs204で計算した、平均値「15825」を前記クライアント計算機200に返送し(s205)、次の分割データの処理に進む(s206)。なお、クライアント計算機200では前記平均値の値を受信し、出力装置206に表示することとなる。図12Bの計算処理結果のうち、レコード801にその表示例を示す(図では、レコード802,803も表示されているが、この時点ではレコード801のみが表示されているものとする)。欄811の「C」は途中経過値であることを利用者に知らせる記号である。
 続いて、前記計算処理実行部111は、前記クライアント計算機200から計算停止要求を受信したか判定する(s206)。前記レコード801の表示を前記クライアント計算機200で閲覧したユーザが、これ以上の計算処理の実行を望まないとの意志を持っていたとする。その場合、前記ユーザは前記クライアント計算機200から計算停止要求をサーバ計算機100に送信してくる。一方、前記計算処理実行部111はこの計算停止要求をクライアント計算機200から受信し(s206:はい)、以降の計算処理を停止し処理を終了する。
 他方、前記クライアント計算機200から計算停止要求を受信していない場合(s206:いいえ)、前記計算処理実行部111は、前記記憶部101において計算処理を未実行の分割データを検索する(s207)。このため、計算処理実行部111は計算処理結果を得る毎に、記憶部101の各分割データに対して計算済みフラグを設定するなどすればよい。計算処理が未実行の分割データが記憶部101に無ければ(s207:はい)、処理を終了する。
 一方、計算処理が未実行の分割データが記憶部101に存在すれば(s207:いいえ)、前記計算処理実行部111は、処理を前記ステップs202に戻す。ここで選択した分割データが、図7Bの分割データ702aだったとする。前記計算処理実行部111はこの分割データ702aを選択し、この分割データ702aに対し、前記計算処理要求が指定した関数“avg”で計算を実行する(s203)。上記同様に、前記計算処理実行部111は、前記クライアント計算機200が要求した計算結果だけでなく、後の統合処理のために、前記統合可否テーブル128における経過記録値1103に関する計算も行なう。例えば、前記計算処理実行部111は、前記計算処理要求が示す“avg”に関して、図7Bの分割データ702aに対する「sum」と「count」を計算し、その結果、処理結果「sum:30480」、「count:3」を得て、記憶部101に格納しておく。
 次に前記計算処理実行部111は、直前までの計算結果、つまり前記分割データ701aに対する計算処理結果である「sum:63300」、「count:4」のデータを記憶部101から読み出し、このデータと、今時の分割データ702aの計算処理結果「sum:30480」、「count:3」に、前記算出式1104を適用して統合し、新たな値「sum:93780」、「count:7」を得て、記憶部101を記憶する(s204)。
 また、前記計算処理実行部111は、前記ステップs204で得た新たな平均値「13397」を、前記クライアント計算機200に返送する(s205)。前記クライアント計算機200では前記平均値の値を受信し、出力装置206に表示することとなる。図12Bの計算処理結果のうち、レコード802にその表示例を示す(図では、レコード801、802,803が表示されているが、この時点ではレコード801、802のみが表示されているものとする)。欄811の「C」は途中経過値であることを利用者に知らせる記号である。
 続いて、前記計算処理実行部111は、前記クライアント計算機200から計算停止要求を受信したか判定する(s206)。前記レコード801に加えてレコード802の表示を前記クライアント計算機200で閲覧したユーザが、これ以上の計算処理の実行を望まないとの意志を持っていたとする。その場合、前記ユーザは前記クライアント計算機200から計算停止要求をサーバ計算機100に送信してくる。一方、前記計算処理実行部111はこの計算停止要求をクライアント計算機200から受信し(s206:はい)、以降の計算処理を停止し処理を終了する。
 他方、前記クライアント計算機200から計算停止要求を受信していない場合(s206:いいえ)、前記計算処理実行部111は、前記記憶部101において計算処理を未実行の分割データを検索する(s207)。計算処理が未実行の分割データが記憶部101に無ければ(s207:はい)、処理を終了する。
 一方、計算処理が未実行の分割データが記憶部101に存在すれば(s207:いいえ)、前記計算処理実行部111は、処理を前記ステップs202に戻す。ここで選択した分割データが、図7Cの分割データ703aだったとする。前記計算処理実行部111はこの分割データ703aを選択し、この分割データ703aに対し、前記計算処理要求が指定した関数“avg”で計算を実行する(s203)。上記同様に、前記計算処理実行部111は、前記クライアント計算機200が要求した計算結果だけでなく、後の統合処理のために、前記統合可否テーブル128における経過記録値1103に関する計算も行なう。例えば、前記計算処理実行部111は、前記計算処理要求が示す“avg”に関して、図7Cの分割データ703aに対する「sum」と「count」を計算し、その結果、処理結果「sum:22700」、「count:3」を得て、記憶部101に格納しておく。
 次に前記計算処理実行部111は、直前までの計算結果、つまり前記分割データ701aと702aに対する計算処理結果を統合したデータである「sum:93780」、「count:7」のデータを記憶部101から読み出し、このデータと、今時の分割データ703aの計算処理結果「sum:22700」、「count:3」に、前記算出式1104を適用して統合し、新たな値「sum:116480」、「count:10」および新たな平均値「11648」を得て、記憶部101を記憶する(s204)。
 また、前記計算処理実行部111は、前記ステップs204で得た新たな平均値「11648」を、前記クライアント計算機200に返送する(s205)。前記クライアント計算機200では前記平均値の値を受信し、出力装置206に表示することとなる。図12Bの計算処理結果のうち、レコード803にその表示例を示す(図では、レコード801、802,803が全て表示されている)。欄811の「F」は最終結果の値であることを利用者に知らせる記号である。
 続いて、前記計算処理実行部111は、前記クライアント計算機200から計算停止要求を受信したか判定する(s206)。前記計算処理実行部111は計算停止要求をクライアント計算機200から受信した場合(s206:はい)、以降のフローを停止し処理を終了する。他方、前記クライアント計算機200から計算停止要求を受信していない場合(s206:いいえ)、前記計算処理実行部111は、前記記憶部101において計算処理を未実行の分割データを検索する(s207)。計算処理が未実行の分割データが記憶部101に無ければ(s207:はい)、処理を終了する。
 一方、前記ステップ200でクライアント計算機200から受信した計算処理要求が、例えば、“stddev”=標準偏差の計算処理を要求するものであったとする。この場合、前記ステップs200での照合処理により、該当計算処理“stddev”は前記統合可否テーブル128において、統合可否が「×」=統合不可であるから、各部分データ間で計算処理結果の統合処理が出来ない判定できる(s201:いいえ)。
 このように、計算処理要求が示す計算処理の関数が統合処理出来ないものであった場合、前記計算処理実行部111は、記憶部101のサンプリングデータ127中から、例えば、含まれる処理対象データ数が最少のものを選択し(s208)、このサンプリングデータに対して、前記関数“sttdev”を適用した計算処理を実行する(s209)。図9A~Cに示すサンプリングデータ127の例では、処理対象データ数最少のサンプリングデータはサンプリングデータ901となる。よって、前記計算処理実行部111はこのサンプリングデータ901に対し、標準偏差の計算を実行する。
 前記計算処理実行部111は、前記ステップs209の実行の結果、前記サンプリングデータ901に関して、「stddev:8809」なる計算処理結果を得る。計算処理実行部111はこの計算処理結果を、前記クライアント計算機200に返送する(s210)。なお、クライアント計算機200では前記標準偏差の値を受信し、出力装置206に表示することとなる。図13Bの計算処理結果のうち、レコード1011aにその表示例を示す(図では、レコード1011a,1011b、1012も表示されているが、この時点ではレコード1101aのみが表示されているものとする)。欄1015の「C」は途中経過値であることを利用者に知らせる記号である。
 続いて、前記計算処理実行部111は、前記クライアント計算機200から計算停止要求を受信したか判定する(s211)。前記レコード1101aの表示を前記クライアント計算機200で閲覧したユーザが、これ以上の計算処理の実行を望まないとの意志を持っていたとする。その場合、前記ユーザは前記クライアント計算機200から計算停止要求をサーバ計算機100に送信してくる。一方、前記計算処理実行部111はこの計算停止要求をクライアント計算機200から受信し(s211:はい)、以降の計算処理を停止し処理を終了する。
 他方、前記クライアント計算機200から計算停止要求を受信していない場合(s211:いいえ)、前記計算処理実行部111は、前記記憶部101において計算処理を未実行のサンプリングデータを検索する(s212)。このため、計算処理実行部111は計算処理結果を得る毎に、記憶部101の各サンプリングデータに対して計算済みフラグを設定するなどすればよい。計算処理が未実行のサンプリングデータが記憶部101に無ければ(s212:はい)、処理を終了する。
 一方、計算処理が未実行のサンプリングデータが記憶部101に存在すれば(s212:いいえ)、前記計算処理実行部111は、処理を前記ステップs209に戻す。ここで選択したサンプリングデータが、図9Bのサンプリングデータ902だったとする。前記計算処理実行部111はこのサンプリングデータ902を選択し、このサンプリングデータ902に対し、前記計算処理要求が指定した関数“stddev”で計算を実行する(s209)。前記計算処理実行部111は、前記ステップs209の実行の結果、前記サンプリングデータ902に関して、「stddev:19813」なる計算処理結果を得る。計算処理実行部111はこの計算処理結果を、前記クライアント計算機200に返送する(s210)。なお、クライアント計算機200では前記標準偏差の値を受信し、出力装置206に表示することとなる。図13Bの計算処理結果のうち、レコード1011bにその表示例を示す(図では、レコード1011a,1011b、1012も表示されているが、この時点ではレコード1101a、1101bのみが表示されているものとする)。欄1015の「C」は途中経過値であることを利用者に知らせる記号である。
 続いて、前記計算処理実行部111は、前記クライアント計算機200から計算停止要求を受信したか判定する(s211)。前記レコード1101a、1101bの表示を前記クライアント計算機200で閲覧したユーザが、これ以上の計算処理の実行を望まないとの意志を持っていたとする。その場合、前記ユーザは前記クライアント計算機200から計算停止要求をサーバ計算機100に送信してくる。一方、前記計算処理実行部111はこの計算停止要求をクライアント計算機200から受信し(s211:はい)、以降の計算処理を停止し処理を終了する。
 他方、前記クライアント計算機200から計算停止要求を受信していない場合(s211:いいえ)、前記計算処理実行部111は、前記記憶部101において計算処理を未実行のサンプリングデータを検索する(s212)。この例では、全サンプリングデータに対する処理は完了したため、前記計算処理実行部111は母集団テーブル125が含む全処理対象データを選択し、前記関数“stddev”を適用した計算処理を実行し、最終結果として「stddev:15382」を得る。計算処理実行部111はこの結果を前記クライアント計算機200に返送し、処理を完了する(s212:はい→終了)。なお、クライアント計算機200では前記標準偏差の値を受信し、出力装置206に表示することとなる。図13Bの計算処理結果のうち、レコード1012にその表示例を示す(図では、レコード1011a,1011b、1012が表示されている)。欄1015の「F」は最終結果の値であることを利用者に知らせる記号である。
 なお、上記例では、クライアント計算機200からSQLで記述した処理要求がサーバ計算機100に送信され、リレーショナルデータベースのテーブル形式でサーバ計算機100に記憶されたデータ(=分割データやサンプリングデータ)を処理する例を示したが、これに限定するわけではない。たとえば、HTTPプロトコルで受け付けたリクエストに対する応答を返す処理で上記実施形態での処理方法を実行するとしてもよい。
---他の実施例---
 上記実施例ではサーバ計算機100で、部分データをひとつずつ処理する方法を示したが、この処理を複数の計算機で並列に処理することも可能である。これを実現する計算機システムの構成例を図14に示す。上記実施例のサーバ計算機100にネットワーク191を介して、複数の従属計算機300を接続し、これらを利用して、並列分散処理を行なうことで、全体の処理時間の短縮が期待できる。
 この場合のサーバ計算機100の構成としては、上記実施例のサーバ計算機100と同様の構成を備えるものであるが、(例えば、前記計算処理実行部111が)前記従属計算機300と定期的に通信してその稼働状況のデータを記憶部101において記憶しているものとする。稼働状況のデータとは、サーバ計算機100からの計算実行の指示を受けて計算実行中、或いは、計算は実行しておらず待機中、といった状況を示すデータとなる。従って、従属計算機300側でも、自身の稼働状況についてサーバ計算機100から問い合わせが来たら、回答するアプリケーションを備えているものとする。
 こうした状況において、前記サーバ計算機100の前記計算処理実行部111は新たな機能として、前記従属計算機300への計算処理の割り振り機能を備えるものとする。この場合の計算処理実行部111は、前記クライアント計算機200からの計算処理要求を前記通信部107を介して受信したならば、前記記憶部101において従属計算機300の稼働状況を読み取り、計算処理を依頼可能な従属計算機300に対し、前記計算処理要求が示す計算処理の情報と、前記記憶部101から読み出した1または所定数の部分データとを含む計算依頼を送信し、前記1または所定数の部分データに対する計算処理結果を従属計算機300から得られるごとに、該当部分データに関する計算処理結果を前記クライアント計算機200に返信する。
 一方、前記従属計算機300の構成は図15に示す通りである。前記サーバ計算機100と同様、ハードディスクドライブなどの不揮発性記憶装置たる記憶部301に格納されたプログラム302をメモリ303に読み出し、演算装置たるCPU304により実行する。また、前記従属計算機300は、コンピュータ装置が一般に備えている各種キーボードやボタン類などの入力装置305、ディスプレイなどの出力装置306を備えることができる。また、前記サーバ計算機100との間のデータ授受を担うNIC(Network Interface Card)など通信部307を有している。また、前記記憶部101には、前記サーバ計算機100から送信されてきた部分データを格納するものとする。
---処理フロー例---
 次に、従属計算機300へ計算処理を依頼して計算処理の分散化を図る処理について説明する。図16は他の実施形態のデータ処理方法の処理フロー例を示す図である。ここでは一例として、クライアント計算機200から得た計算処理要求が、統合処理可能な関数による処理を示していた場合を想定している。
 この場合、前記サーバ計算機100の計算処理実行部111は、記憶部101における各分割データを処理する従属計算機300を決定する(s300)。ここで前記計算処理実行部111は、前記記憶部101において従属計算機300の稼働状況を読み取り、例えば、“待機中”など計算処理能力に余裕がある従属計算機300を、計算処理を依頼可能な従属計算機300として特定する。或いは、従属計算機300の計算処理能力のスペックを記憶部101に予め保持している場合、稼働状況が“待機中”であり、なおかつ前記スペックがより高速な従属計算機300に対し、処理対象データ数がより多い分割データを割り当てるなどとしてもよい。
 前記計算処理実行部111は、前記ステップs300で決定した割り振りに従って、各従属計算機300に対し、処理対象の分割データと処理内容とを送信する(s301)。一方、前記従属計算機300は、前記サーバ計算機100からのデータを受信し、指示に従って自身に割り振られた分割データに対する計算処理を実行し、その計算結果を前記サーバ計算機100に返すこととなる。
 なお、従属計算機300で計算処理対象となる部分データであるが、前記サーバ計算機100から従属計算機300に対し必要な部分データを随時送信するとしても、部分データ作成時にサーバ計算機100から従属計算機300に部分データの事前配布を実行しておくとしてもよい。事前配布の場合、前記サーバ計算機100は、各従属計算機300に対し、従属計算機300が持つ部分データの計算処理を指示することとなる。或いは、前記サーバ計算機100と従属計算機300とで共有された記憶装置(ネットワーク191上に配置)に部分データを格納しておき、その位置情報を従属計算機300に知らせる方法でも構わない。
 前記ステップs301の後、前記サーバ計算機100の計算処理実行部111は、前記従属計算機300からの返信待ち状態になる(s302)。その後、前記従属計算機300からの返信を受信すると(s303)、ステップs304に処理を進める。このステップs304では、上記実施例と同じ処理(図11のステップs204)を実行し、全分割データの計算処理が完了するまで、前記ステップs304~s305を繰り返す。なお、前記ステップs305は、図11でのステップs205に該当する。
 ここでは、分割データの場合の処理例を示したが、サンプリングデータに対しても同様に、上記実施例でサーバ計算機100が行った処理(図11のステップs208)を実行し、他方、前記ステップs209を従属計算機300に実行させることで並列分散処理可能である。
 以上、本実施形態によれば、サーバ計算機100側では、処理対象データ量を段階的に増やしながら、部分データに対する処理結果をクライアント側に順次返すことで、全データを対象とした場合に長時間かかる処理について、例えば、おおまかな結果を途中段階でユーザ側に随時提供することができる。特に、ある項目の平均値の大まかな値が知りたい場合や、利用者が意図しない計算が行われてしまった場合などに対し、全データ対象の長時間の計算が完了するのを待たずに処理を中断する対応が可能となり、作業時間の大幅な短縮などの効果が期待できる。また、クライアント計算機200では、全データを処理するための処理要求と、部分データを処理するための処理要求の2種類の要求を別々に作成する必要がないため、処理要求の効率化等が期待できる。
 したがって、利用者が大量のデータに関する計算処理結果を効率的に推測可能な情報を提供可能であり、情報処理装置における計算処理時間や計算処理能力の効率的な利用を図ることができる。
 以上、本発明の実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。

Claims (8)

  1.  他装置と通信する通信部と、
     計算処理対象データの母集団を記憶する記憶部と、
     所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して部分データとして記憶部に格納する、部分データ作成部と、
     端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における各部分データに対し順次実行し、1または所定数の部分データに対する計算処理結果が得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する、計算処理実行部と、
     を備える情報処理装置を含むデータ処理システム。
  2.  前記情報処理装置の部分データ作成部は、
     含まれる計算処理対象データ数が互いに異なる部分データを、部分データ間でのデータ重複無く前記母集団から複数抽出して記憶部に格納し、
     前記情報処理装置の計算処理実行部は、
     端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における部分データのうち、含まれる計算処理対象データ数が少ない順に順次実行し、含まれる計算処理対象データ数が少ない部分データ順に計算処理結果を前記端末に返信する、
     請求項1に記載のデータ処理システム。
  3.  前記情報処理装置の記憶部は、
     計算処理の種類毎に、前記部分データに関する計算処理結果の各部分データ間での統合可否の情報を記憶しており、
     前記情報処理装置の部分データ作成部は、
     前記部分データたる分割データとして、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して記憶部に格納し、前記部分データたるサンプリングデータとして、含まれる計算処理対象データが互いに異なるデータ群を、データ群間でのデータ重複回避を考慮せず前記母集団から複数抽出して記憶部に格納し、
     前記情報処理装置の計算処理実行部は、
     前記端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理の情報を、前記記憶部の前記統合可否情報に照合し、
     該当計算処理が各部分データ間で計算処理結果の統合可であるものであれば、前記記憶部における各分割データに対し該当計算処理を順次実行し、1の分割データに対する計算処理結果が得られるごとに記憶部に格納し、直前に得ている他分割データに関する計算処理結果が記憶部になければ前記計算処理結果を前記端末に返信し、直前に得ている他分割データに関する計算処理結果が記憶部にあれば該当計算処理結果と統合処理し、統合処理した計算処理結果を前記端末に返信し、
     該当計算処理が各部分データ間で計算処理結果の統合不可であるものであれば、前記記憶部における各サンプリングデータに対し該当計算処理を実行し、各サンプリングデータに対する計算処理結果が得られるごとに、該当サンプリングデータに関する計算処理結果を前記端末に返信する、
     請求項1に記載のデータ処理システム。
  4.  前記情報処理装置の部分データ作成部は、
     予め定めた所定要素を検索キーとして前記母集団から計算処理対象データを検索し、当該検索処理で得た計算処理対象データ群より、所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く複数抽出して、或いは、含まれる計算処理対象データ数が互いに異なるデータ群を、データ群間でのデータ重複回避を考慮せず複数抽出して部分データとして記憶部に格納する、
     請求項1に記載のデータ処理システム。
  5.  前記情報処理装置の計算処理実行部は、
     前記端末からの計算停止要求を前記通信部を介して受信し、当該計算停止要求を受けた時点で前記部分データへの計算処理の実行を停止する、
     請求項1に記載のデータ処理システム。
  6.  前記情報処理装置は、
     ネットワークで結ばれた従属計算機と通信してその稼働状況を記憶部において記憶しており、
     前記計算処理実行部は、前記端末からの計算処理要求を前記通信部を介して受信したならば、前記記憶部において従属計算機の稼働状況を読み取り、計算処理を依頼可能な従属計算機に対し、前記計算処理要求が示す計算処理の情報と、前記記憶部から読み出した1または所定数の部分データとを含む計算依頼を送信し、前記1または所定数の部分データに対する計算処理結果を従属計算機から得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する、
     請求項1に記載のデータ処理システム。
  7.  他装置と通信する通信部と、計算処理対象データの母集団を記憶する記憶部とを備えた情報処理装置が、
     所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して部分データとして記憶部に格納する処理と、
     端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における各部分データに対し順次実行し、1または所定数の部分データに対する計算処理結果が得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する処理と、
     を実行するデータ処理方法。
  8.  他装置と通信する通信部と、計算処理対象データの母集団を記憶する記憶部とを備えた情報処理装置に、
     所定数の計算処理対象データからなるデータ群を、データ群間でのデータ重複無く前記母集団から複数抽出して部分データとして記憶部に格納する処理と、
     端末からの計算処理要求を前記通信部を介して受信し、当該計算処理要求が示す計算処理を、前記記憶部における各部分データに対し順次実行し、1または所定数の部分データに対する計算処理結果が得られるごとに、該当部分データに関する計算処理結果を前記端末に返信する処理と、
     を実行させるデータ処理プログラム。
PCT/JP2010/053114 2009-05-21 2010-02-26 データ処理システム、データ処理方法、およびデータ処理プログラム WO2010134370A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-123304 2009-05-21
JP2009123304A JP2010271931A (ja) 2009-05-21 2009-05-21 データ処理システム、データ処理方法、およびデータ処理プログラム

Publications (1)

Publication Number Publication Date
WO2010134370A1 true WO2010134370A1 (ja) 2010-11-25

Family

ID=43126059

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/053114 WO2010134370A1 (ja) 2009-05-21 2010-02-26 データ処理システム、データ処理方法、およびデータ処理プログラム

Country Status (2)

Country Link
JP (1) JP2010271931A (ja)
WO (1) WO2010134370A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3792753A1 (en) * 2019-09-13 2021-03-17 Fujitsu Limited Information processing apparatus, program, and information processing method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10157254A (ja) * 1996-12-02 1998-06-16 Fuji Xerox Co Ltd ネットワークプリントシステム
JPH10275084A (ja) * 1997-03-31 1998-10-13 Toshiba Corp 制約充足問題の解決装置及び解決方法、システム構築装置及び構築方法
JP2004110808A (ja) * 2002-09-16 2004-04-08 Internatl Business Mach Corp <Ibm> ネットワークを介してデータを検索及び提示する方法及びマシン可読記憶装置
JP2006252394A (ja) * 2005-03-14 2006-09-21 Sony Corp 情報処理システム、情報処理装置および方法、並びにプログラム
JP2008225758A (ja) * 2007-03-12 2008-09-25 Web Republic Kk マイニングシステム及びマイニング方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05324405A (ja) * 1992-05-21 1993-12-07 Toyota Motor Corp シミュレーション方法
JPH10190734A (ja) * 1996-12-25 1998-07-21 Fuji Xerox Co Ltd パケット転送装置及びパケット転送方法
JPH10320355A (ja) * 1997-05-16 1998-12-04 Toshiba Corp 計算機接続方式及び計算機接続用プログラムを記録した記録媒体
JP2000267890A (ja) * 1999-03-19 2000-09-29 Hitachi Ltd シミュレーションプログラム実行方法及び装置
JP2006011510A (ja) * 2004-06-22 2006-01-12 Yokogawa Electric Corp 脆弱性検査システム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10157254A (ja) * 1996-12-02 1998-06-16 Fuji Xerox Co Ltd ネットワークプリントシステム
JPH10275084A (ja) * 1997-03-31 1998-10-13 Toshiba Corp 制約充足問題の解決装置及び解決方法、システム構築装置及び構築方法
JP2004110808A (ja) * 2002-09-16 2004-04-08 Internatl Business Mach Corp <Ibm> ネットワークを介してデータを検索及び提示する方法及びマシン可読記憶装置
JP2006252394A (ja) * 2005-03-14 2006-09-21 Sony Corp 情報処理システム、情報処理装置および方法、並びにプログラム
JP2008225758A (ja) * 2007-03-12 2008-09-25 Web Republic Kk マイニングシステム及びマイニング方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3792753A1 (en) * 2019-09-13 2021-03-17 Fujitsu Limited Information processing apparatus, program, and information processing method
US11354068B2 (en) 2019-09-13 2022-06-07 Fujitsu Limited Information processing apparatus, recording medium for information processing program, and information processing method

Also Published As

Publication number Publication date
JP2010271931A (ja) 2010-12-02

Similar Documents

Publication Publication Date Title
JP6887544B2 (ja) イベント処理のための動的に型付けされたビッグデータによるイベントの充実化
CN110337647A (zh) 可视区块链浏览器
CN106326243B (zh) 一种数据处理方法及装置
CN110383321B (zh) 使用图表数据库创建各种实体之间的不同关系的系统和方法
CN112598289A (zh) 指标配置方法、系统、计算机设备及计算机可读存储介质
WO2011148565A1 (ja) データベース、管理サーバ、および管理プログラム
CN105446990A (zh) 一种业务数据处理方法及设备
CN108491408B (zh) 一种活动信息的处理方法、装置、电子设备及存储介质
JP6218783B2 (ja) 住宅ローン事前審査システム、方法およびプログラム
WO2019030409A1 (en) SYSTEMS AND METHODS FOR ASSEMBLING DATA SETS
KR20130089890A (ko) 산업기술 지식정보 관리시스템 및 산업기술 지식정보의 서비스 방법
CN111915340B (zh) 商户类型的识别方法、装置、设备及存储介质
WO2010134370A1 (ja) データ処理システム、データ処理方法、およびデータ処理プログラム
CN111488349A (zh) 基于业务数据区块链的数据查询方法及装置
JP6051425B2 (ja) 過去見積に基づく専門家紹介装置、方法、及びコンピュータプログラム
Wust et al. Xsellerate: supporting sales representatives with real-time information in customer dialogs
JP5934736B2 (ja) 加盟店提供データ出力システム
US9009073B1 (en) Product availability check using image processing
JP2017167843A (ja) 取引明細管理システムおよび取引明細管理方法
JP2002024515A (ja) 売上情報管理システム
CN111488345A (zh) 业务数据区块链的存储优化方法及装置
JP5575971B1 (ja) 帳票データ管理サーバ、および帳票データ管理プログラム
US20150081357A1 (en) Mobile terminal management server and mobile terminal management program
KR102432067B1 (ko) 운영규칙을 이용하여 인테리어 소품 조합 기능을 가지는 웹 서비스를 제공하는 방법 및 서버
KR102432068B1 (ko) 견적 규칙을 이용하여 bom 위계 관리 기능을 가지는 웹 서비스를 제공하는 방법 및 서버

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10777606

Country of ref document: EP

Kind code of ref document: A1