WO2015001596A1 - 系列データ並列分析基盤およびその並列分散処理方法 - Google Patents

系列データ並列分析基盤およびその並列分散処理方法 Download PDF

Info

Publication number
WO2015001596A1
WO2015001596A1 PCT/JP2013/067972 JP2013067972W WO2015001596A1 WO 2015001596 A1 WO2015001596 A1 WO 2015001596A1 JP 2013067972 W JP2013067972 W JP 2013067972W WO 2015001596 A1 WO2015001596 A1 WO 2015001596A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
processing
data block
parallel
distributed
Prior art date
Application number
PCT/JP2013/067972
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 JP2015524916A priority Critical patent/JP6069503B2/ja
Priority to PCT/JP2013/067972 priority patent/WO2015001596A1/ja
Priority to CN201380077504.7A priority patent/CN105308579B/zh
Priority to US14/902,184 priority patent/US10048991B2/en
Publication of WO2015001596A1 publication Critical patent/WO2015001596A1/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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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
    • 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/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • 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/5083Techniques for rebalancing the load in a distributed system

Definitions

  • the present invention relates to a parallel distributed processing method for processing a large amount of series data in parallel using a plurality of distributed computers, and a computer system.
  • sensor data of the device or the like is a so-called data type called series data.
  • the series data is a set of data in which a plurality of data each having a value set for a plurality of data items are arranged according to a predetermined order label value.
  • the MapReduce framework is known as a basic technology for easily implementing analysis processing.
  • the MapReduce framework is a data analysis process that extracts desired data from the data store, an extraction process (Map process), and an aggregate process (Reduce process) that processes the extracted data into forms and statistical information that are easy to use ) Programming model described in two stages.
  • the execution engine of the MapReduce framework can determine the division unit of processing of the analysis application and control parallel processing.
  • MapReduce framework was originally intended to describe processing for unstructured and non-ordered data such as search systems on the Web, and MapReduce frame for series data.
  • the processing capacity was not expected to improve due to the workpiece.
  • extraction processing is performed as multiple tasks simultaneously on many platforms, it greatly contributes to speeding up the processing, but as a result the output is performed in an unordered manner, such as moving average and Fourier transform, series data
  • analysis methods that are generally applied to
  • Non-Patent Document 2 there is known a method for increasing the speed by using a stream processing base in the aggregation processing.
  • a stream processing platform even when a stream processing platform is used, there is a waiting time until all data is extracted in the extraction process, and the communication load is high, such as sending the extracted data directly to another server via a network or the like.
  • the result writing process in the case of series data, as a result of the aggregation process, the amount of data cannot be reduced sufficiently, and it is necessary to rearrange a large amount of data, increasing the load of communication and processing. Or, the speed was reduced.
  • MapReduce Simplified Data Processing on Large Clusters '' Jeffrey Dean, Sanjay Ghemawat, Google, Inc.
  • OSDI'04 Sixth Symposium on Operating System Design and Implementation, San Francisco, CA, December.6 "SCOPE: parallel databases meet MapReduce” Jingren Zhou, Nicolas Bruno, Ming-Chuan Wu, Per-Ake Larson, Ronnie Chaiken, Spotify Shakib, Microsoft Corp., The VLDB Journal
  • a typical example of the invention disclosed in the present application is as follows.
  • sequence data is composed of an order label and at least one value associated with the order label one-to-one or one-to-many and a value name for distinguishing one of the values.
  • a series data parallel analysis platform or distributed processing system that performs parallel distributed processing on One or more computing devices and a parallel processing platform that performs parallel data processing constituted by a network for performing data exchange between the computing devices, and a distribution that manages the series data distributed and arranged in the computing devices
  • a series data management unit, The parallel processing platform includes, for each computing device, a data block obtained by blocking one value corresponding to one order label of at least one of the series data with a plurality of order labels, and for each computing device.
  • a data block processing server that performs processing on at least one of the data blocks, and a block processing aggregation server that processes a result of at least one data block processing server for each computing device
  • the distributed series data management unit is a data reading unit for holding the series data in the series data parallel analysis base, a data selection unit for acquiring the series data from the series data parallel analysis base, and A distributed information management database for managing data blocks, the distributed information management database corresponding to an order label range indicating the order label range of the data block and the value name of the data block; Management data composed of a series ID and meta information for specifying the computing device in which the data block is arranged.
  • FIG. 1 shows an outline of a series data parallel analysis platform 102 according to the present invention.
  • the sequence data parallel analysis platform 102 includes a sequence data parallel store 103 that inputs and stores sequence data 101 and a parallel analysis platform 104 that performs analysis of variance using the data of the sequence data parallel store 103.
  • the user 106 can instruct the parallel analysis platform 104 to output a processing result, and the result can be output as the series data parallel store 103 or the analysis result data 105.
  • the user 106 may be a human or another system or program.
  • sequence data 101 can be stored sequentially, and the sequence data 101 stored using the parallel analysis infrastructure can be analyzed at any timing of the user 106. Can do.
  • Figure 2 shows the structure of the series data.
  • the series data is composed of one or more data blocks 203, and one data block 203 is composed of an order label 201 indicating an order and one or more values 202.
  • order label generally, a numerical value or a date and time is used, but in addition, for example, a symbol such as a, b, and c that can define the order may be used.
  • FIG. 3 shows the configuration of a general series data column store 301.
  • Series data column store 301 A data reading unit 303 for reading the sequence data 101, a database 302 for storing data, and a data selection unit for acquiring data.
  • the database 302 stores the sequence data 101 in the so-called column store format of the order label range 303, the sequence ID 304, and the value block 305.
  • the user 106 can obtain data by giving an instruction / operation to the data selection unit.
  • FIG. 4 shows the configuration of a general parallel processing platform 104.
  • the parallel processing platform 104 aggregates the results of the job / task management server 401 that monitors and manages the processing status, the data block management server 402 that manages data, the data block processing server 403 that processes the data block 203, and the data block processing server.
  • the block processing aggregation server 404 for processing is configured.
  • One or more data block processing servers 403 and block processing aggregation servers 404 may exist, and the data block processing server 403 and block processing aggregation server 404 may be installed on the same device.
  • the user 106 can instruct and operate the job / task management server 401 and acquire the processing result. By doing in this way, it becomes possible to describe the analysis of variance processing for various data flexibly and with a small number of man-hours.
  • FIG. 5 shows the configuration of the series data parallel analysis platform 102 in the first embodiment of the present invention.
  • Job / task management server 401 that monitors and manages the processing status
  • data block 509 data block processing server 403 that processes data block 509
  • block processing aggregation server 404 that aggregates the results of the data block processing server
  • distributed data management unit 501 distributed data management unit 501.
  • the distributed data management unit 501 includes a data reading unit 502, a data selection unit 503, a distribution destination determination unit 504, a data search unit 505, a data input / output unit 506, and a distributed information management database 507.
  • the distributed information management database 507 includes an order label range 303, a series ID 304, and meta information 508.
  • the meta information 508 stores information on the server in which the data block 509 is actually held, and the data block 509 may store data redundantly in a plurality of servers. In this case, the meta information 508 Stores information on a plurality of data holding servers.
  • This configuration is based on a configuration in which the series data column store 301 shown in FIG. 3 and the parallel processing platform 104 shown in FIG. 4 are combined, but the data block is not stored in the distributed information management database 507, and data It is characterized in that the data block 509 is held in the same device as the block processing server 403 or in a device from which the data block processing server 403 can easily acquire data. As the data block 509, a file of the value block 305 in FIG. 3 can be used.
  • the series data 101 can be held in a plurality of servers, devices, etc., and it is easy to increase the storage capacity in data storage and to expand the storage capacity by adding devices, etc. In addition, even when the data increases, the analysis processing capability can be improved by increasing the number of devices.
  • FIG. 6 shows a method of executing an analysis of variance in the series data parallel analysis platform 102.
  • a process execution request from the user 106 is instructed to the series data parallel analysis platform 102.
  • the processing execution request includes a program describing the order label range 303, the series ID 304, and the processing content used for processing (Step 1).
  • information indicating the data block 509 corresponding to the order label range 303 and the sequence ID 304 included in the processing execution request is acquired from the distributed information management database 507 via the data search unit 505 (Step 2).
  • the parallel processing platform 104 selects, in the job / task management server 401, data blocks to be simultaneously extracted based on the information of the data block 509 obtained from the distributed information management database, and sets them as one chunk.
  • the data block and the server that performs the extraction process are preferably the same device, but may be different devices. If it is a different device, the data of the data block 509 can be obtained from the device by means such as ssh, scp, etc. (Step 3).
  • the job / task management server 401 generates an extraction processing task for each chunk, and instructs the data block processing server 403 to perform the extraction processing task (Step 4).
  • the data block processing server 403 acquires data from the chunk according to the order in the order label, and performs extraction processing according to the program describing the processing content specified in Step 1.
  • the data of the processing result is a value (hereinafter referred to as value) to which an order label (hereinafter referred to as key) different from the order label corresponding to the value in the data block 509 is given.
  • the key may be the same as the order label in the data block 509 described above, and the label specified in the key may overlap (Step 5).
  • the result of the extraction process is transmitted to the block processing aggregation server 404 (Step 6).
  • the transmitted data is sorted by the key in the block processing aggregation server 404 (Step 7).
  • the block processing aggregation server 404 performs aggregation processing for each value having the same key (Step 8).
  • the result of the aggregation process is output, and the analysis process ends.
  • the output destination may be an arbitrary file (for example, tab-delimited text or XML file), data may be registered in the distributed series data management unit 501, or it may be outside the series data parallel analysis infrastructure 102. You may transfer to another program on memory (Step 9) In this way, the order label range 303 of the data block is appropriate. Since the order of data is guaranteed in the extraction process in Step 5, the process performed based on the order such as moving average and Fourier transform can be described in the extraction process.
  • the aggregation process is executed with a smaller number of servers and tasks than the extraction process. Therefore, it is possible to describe the process that is performed based on the order in the extraction process.
  • the transmission amount of the processing result can be reduced, and a high-speed analysis of variance with low load can be realized for the sequence data 101 as well.
  • FIG. 7 shows a data selection method in the series data parallel analysis platform 102.
  • a process execution request from the user 106 is instructed to the series data parallel analysis platform 102.
  • the processing execution request includes an order label range 303 and a series ID 304 used for processing (Step 11).
  • information indicating the data block 509 corresponding to the order label range 303 and the sequence ID 304 included in the processing execution request is acquired from the distributed information management database 507 via the data search unit 505 (Step 12).
  • Data in the data block is transmitted to the distributed sequence data selection unit via the data input / output unit 506 and the data search unit 505 by means of communication means such as ssh and scp (Step 13).
  • the data can be transferred to a file (for example, tab-delimited text or XML file) or another program outside the series data parallel analysis platform 102 in a memory so that it can be in the format desired by the user 106.
  • a file for example, tab-delimited text or XML file
  • the output is performed and the process ends (Step 14). In this way, data can be obtained without going through the parallel processing platform 104.
  • FIG. 8 shows a data registration method in the series data parallel analysis platform 102.
  • a process execution request from the user 106 is instructed to the series data parallel analysis platform 102 via the data reading unit 502.
  • the process execution request includes the series data 101 used for the process and the series ID 304 used for registration (Step 21).
  • the series data 101 input in a format such as binary / tab-delimited text / XML is divided by the series ID 304 and the preset order label range 303 (Step 22).
  • Step 22 a block with reduced data can be generated by applying a compression technique (Step 23).
  • a compression technique In accordance with the distribution destination determination method provided in the distribution destination determination unit 504, it is determined which server / device holds the data block 509. At this time, a plurality of servers / devices can be selected in consideration of availability (Step 24).
  • the order label range 303 obtained up to Step 24, the series ID 304, and meta information including information of the distribution destination server / device are registered in the distributed information management database 507 (Step 25).
  • the data block 509 is arranged in the server / equipment etc. via the data input / output unit 506, and the process ends (Step 26).
  • FIG. 9 shows an example of a distribution destination determination method.
  • the method shown in FIG. 9 is a determination method generally called round robin. This method comprises a list holding information of distribution destination servers and devices, and a distribution destination list pointer indicating one distribution destination in the list.
  • the number of decisions is set to 0 (Step 31).
  • the server / device indicated by the distribution destination list pointer is designated as the distribution destination (Step 32).
  • the distribution destination list pointer moves on the list (Step 34). If the distribution destination list pointer indicates the last distribution destination on the list at Step 33, the list moves to the top of the list (Step 35).
  • the number of determinations is increased by one (Step 36). The above processing (from Step 32 to Step 36) is repeated until the number of determinations reaches a preset multiplicity, and the processing ends (Step 37). In this way, the data blocks 509 can be distributed and arranged without being biased toward a specific server / device.
  • FIG. 10 shows an example of a distribution destination determination method.
  • the method shown in FIG. 10 is a determination method for equalizing the used storage capacity of each server / device. This method comprises means for obtaining the distribution destination list and the used storage capacity of the distribution destination list.
  • Step 41 set the number of decisions to 0.
  • Step 42 The used storage capacity of each server / equipment is acquired, and the server / equipment with the least used capacity is determined as the distribution destination (Step 42).
  • Step 43 the number of decisions is increased by one (Step 43).
  • the above operations are repeated until the number of determinations reaches a preset multiplicity, and the process ends (Step 44). By doing so, it is possible to equalize the used storage capacity of each server / device.
  • FIG. 11 shows an example of a distribution destination determination method.
  • the method shown in FIG. 11 is a determination method for designating a distribution destination for each series ID 304.
  • This method includes a function f for associating a distribution destination list, a distribution destination list, and a sequence ID 304.
  • the number of decisions is set to 0 (Step 51).
  • the function f is executed for each data block 509 (Step 52).
  • the server / device indicated by the distribution destination list corresponding to the value of the function f is designated as the distribution destination (Step 53).
  • the above operations are repeated until the number of determinations reaches a preset multiplicity, and the process ends (Step 55).
  • the function f for example, a hash function, a remainder calculation, or the like can be used, and a series ID 304 or a numerical value of the series ID 304 can be used as an argument.
  • the function f is set so that the same server or the like as before can be obtained.
  • FIG. 12 shows an example of a distribution destination determination method.
  • the method shown in FIG. 12 is a determination method for designating a distribution destination for each order label range 303.
  • This method includes a function g that links the distribution destination list, the distribution destination list, and the order label range 303.
  • the number of decisions is set to 0 (Step 61).
  • the function g is executed for each data block 509 (Step 62).
  • the server / device indicated by the distribution destination list corresponding to the value of the function g is designated as the distribution destination (Step 63).
  • the number of determinations is increased by one (Step 64).
  • the above operation (from Step 62 to Step 64) is repeated until the number of determinations reaches a preset multiplicity, and the process ends. (Step 65).
  • the function g for example, a hash function or a remainder calculation can be used, and the order label range 303 or the numerical value of the order label range 303 can be used as an argument.
  • the function g and the same server as the old one can be obtained. To do.
  • FIG. 13 shows a method for registering data blocks during extraction processing in the series data parallel analysis platform 102.
  • a process execution request from the user 106 is instructed to the series data parallel analysis platform 102.
  • the processing execution request includes an order label range 303 used for processing, a series ID 304, a series ID 304 at the time of data block registration, distributed arrangement destination information, and a program describing processing contents (Step 71).
  • information indicating the data block 509 corresponding to the processing target order label range 303 and the series ID 304 is acquired from the distributed information management database 507 via the data search unit 505 and the distribution destination is determined.
  • the server / device or the like to be the registration destination of the data block 509 is determined in advance through the section, and the information is registered in the distributed information management database in the same manner as the data registration method (Step 72).
  • the parallel processing platform 104 selects, in the job / task management server 401, data blocks to be simultaneously extracted based on the information of the data block 509 obtained from the distributed information management database, and sets them as one chunk.
  • the data block and the server that performs the extraction process are preferably the same device, but may be different devices. If it is a different device, the data of the data block 509 can be obtained from the device by means such as ssh, scp, etc. (Step 73).
  • the job / task management server 401 generates an extraction processing task for each chunk and instructs the data block processing server 403 to perform the extraction processing task (Step 74).
  • the data block processing server 403 acquires data from the chunk according to the order in the order label, and performs extraction processing according to the program describing the processing content specified in Step 71 (Step 75).
  • the extraction process result data is converted into the shape of the data block 509 in the same time range as the chunk that is the target of the extraction process task and the series ID 304 specified in Step 71.
  • the data is converted and written to the server / equipment determined in Step 72, and the process ends (Step 76).
  • communication means such as ssh and scp may be used for the arrangement of the data blocks, but the servers / devices at the distributed arrangement destination are set to be the same server / device as possible for the extraction process. As a result, the amount of communication can be reduced.
  • FIG. 14 shows a processing time comparison when the moving average is calculated when the series data parallel analysis platform 102 and the existing ANOVA platform are used.
  • the system configuration was the same, and the data block processing server and the block processing aggregation server both used 5 servers.
  • the second embodiment is different from the first embodiment in that the data block is not directly held in a file but is stored and held in the data block server 1501.
  • FIG. 15 shows the configuration of the series data parallel analysis platform 102 in the second embodiment of the present invention.
  • Job / task management server 401 that monitors and manages the processing status, data block server 1501, data block processing server 403 that processes data block 509 provided from data block server 1501, and results of the data block processing server are aggregated.
  • the block processing aggregation server 404 and the distributed data management unit 501 are configured.
  • the distributed data management unit 501 includes a data reading unit 502, a data selection unit 503, a distribution destination determination unit 504, a data search unit 505, a data input / output unit 506, and a distributed information management database 507.
  • the distributed information management database 507 includes an order label range 303, a series ID 304, and meta information 508.
  • the meta information 508 stores information of the data block server 1501 in which the data block 509 is actually held, and the data block 509 may install data in a plurality of server data block servers 1501, In that case, information of a plurality of data block servers 1501 is stored in the meta information 508.
  • This configuration is based on a configuration in which the series data column store 301 shown in FIG. 3 and the parallel processing platform 104 shown in FIG. 4 are combined, but the data block 509 is not held in the distributed information management database 507.
  • the data block server 1501 is stored in a device that is the same as the data block processing server 403 or that can be easily acquired by the data block processing server 403.
  • As the data block 509 a file of the value block 305 in FIG. 3 can be used, and the data block 509 is held in the data block server 1501.
  • the series data 101 can be held in a plurality of servers, devices, etc., and it is easy to increase the storage capacity in data storage and to expand the storage capacity by adding devices, etc. In addition, even when the data increases, the analysis processing capability can be improved by increasing the number of devices.
  • FIG. 16 shows a method of executing an analysis of variance in the series data parallel analysis platform 102.
  • a process execution request from the user 106 is instructed to the series data parallel analysis platform 102.
  • the processing execution request includes a program describing the order label range 303, the series ID 304, and the processing content used for processing (Step 81).
  • information indicating the data block 509 corresponding to the order label range 303 and the sequence ID 304 included in the processing execution request is acquired from the distributed information management database 507 via the data search unit 505 (Step 82).
  • the parallel processing platform 104 selects, in the job / task management server 401, data blocks to be simultaneously extracted based on the information of the data block 509 obtained from the distributed information management database, and forms one chunk (Step 83). ).
  • the device in which the data block server 1501 exists and the device that performs the extraction process are preferably the same device, but may be different devices. In the case of a different device, the data of the data block 509 can be acquired from the device by means such as ssh or scp.
  • the job / task management server 401 generates an extraction processing task for each chunk, and instructs the data block processing server 403 to perform the extraction processing task (Step 84).
  • the data block processing server 403 acquires data from the chunk according to the order in the order label, and performs extraction processing according to the program describing the processing content specified in Step 81.
  • the data of the processing result is a value (hereinafter referred to as value) to which an order label (hereinafter referred to as key) different from the order label corresponding to the value in the data block 509 is given.
  • the key may be the same as the order label in the data block 509 described above, and the label specified in the key may overlap (Step 85).
  • the result of the extraction process is transmitted to the block processing aggregation server 404 (Step 86).
  • the transmitted data is sorted by the key in the block processing aggregation server 404 (Step 87).
  • aggregation processing is performed for each value having the same key (Step 8).
  • the output destination may be an arbitrary file (for example, tab-delimited text or XML file), data may be registered in the distributed series data management unit 501, or it may be outside the series data parallel analysis infrastructure 102. It may be transferred to another program on the memory (Step 89).
  • the ordering of the data is ensured in the extraction process in Step 85, and therefore, based on the ordering such as moving average and Fourier transform.
  • the process to be performed can be described in the extraction process.
  • the aggregation process is executed with a smaller number of servers and tasks than the extraction process. Therefore, it is possible to describe the process that is performed based on the order in the extraction process.
  • the transmission amount of the processing result can be reduced, and a high-speed analysis of variance with low load can be realized for the sequence data 101 as well.
  • FIG. 17 shows a data selection method in the series data parallel analysis platform 102.
  • a process execution request from the user 106 is instructed to the series data parallel analysis platform 102.
  • the process execution request includes the order label range 303 and the series ID 304 used for the process (Step 91).
  • information indicating the data block 509 corresponding to the order label range 303 and the series ID 304 included in the processing execution request is acquired from the distributed information management database 507 via the data search unit 505 (Step 92).
  • Data in the data block is transmitted to the distributed sequence data selection unit via the data block server 1501, the data input / output unit 506, and the data search unit 505 by communication means such as ssh and scp (Step 93).
  • the data can be transferred to a file (for example, tab-delimited text or XML file) or another program outside the series data parallel analysis platform 102 in a memory so that it can be in the format desired by the user 106.
  • a file for example, tab-delimited text or XML file
  • the output is performed and the process ends (Step 94). In this way, data can be obtained without going through the parallel processing platform 104.
  • Sequence Data 101 Sequence Data 102 Sequence Data Parallel Analysis Platform 103 Sequence Data Parallel Store 104 Parallel Distributed Platform 105 Analysis Result Data 106 User 201 Order Label 202 Value 203 Data Block 301 Data Reading Unit 302 Database 303 Order Label Range 304 Sequence ID 305 Value block 306 Data selection unit 401 Job / task management server 402 Data block management server 403 Data block processing server 404 Block processing aggregation server 501 Distributed sequence data management unit 502 Data reading unit 503 Data selection unit 504 Distribution destination determination unit 505 Data search Unit 506 data input / output unit 507 distributed information management database 508 meta information 509 data block 1501 data block server

Abstract

 並列処理基盤と、分散配置された系列データを管理する分散系列データ管理部を備える系列データ分散処理システムであって、 前記並列処理基盤は、計算機器毎に、系列データの内一つの順序性ラベルに対応する一つの値を複数の順序性ラベルでブロック化したデータブロックと、データブロックに対して処理を行うデータブロック処理サーバと、データブロック処理サーバの結果を処理するブロック処理集約サーバとを備え、前記分散系列データ管理部はデータブロックを管理するための分散情報管理データベースを備え、その分散情報管理データベースには、データブロックの順序性ラベルの範囲を示す順序ラベル範囲と、データブロックの値名に対応する系列IDと、データブロックを配置した前記計算機器を特定するメタ情報とで構成された管理データを保持する。

Description

系列データ並列分析基盤およびその並列分散処理方法
 本発明は、複数の分散した計算機を用いて大量の系列データを並列に処理する並列分散処理方法、及び、計算機システムに関する。
 近年、大量のデータを分析・処理することで、これまで得られなかった知見を発見し活用していく、ビックデータ処理が注目されている。ビッグデータの内、例えば装置等のセンサデータなどは、所謂、系列データと呼ばれるデータの様態である。系列データとは、複数のデータ項目について各々値が設定された複数のデータが、所定の順序性ラベルの値に従って並べられたデータの集合である。
 このように大量のデータを分析するニーズは存在するものの、既存の分散分析システムでは、処理内容毎にシステムを設計する必要があり、システム構成のコストが高かった。
 これに対し、特許文献1及び非特許文献1に示すように分析処理を簡便に実装する基盤技術として、MapReduceフレームワークが知られている。MapReduceフレームワークとは、データの分析処理を、データストアから所望のデータを抽出する、抽出処理(Map処理)と抽出されたデータを利用しやすい形態や統計情報などに加工する集約処理(Reduce処理)との二段階で記述するプログラミングモデルである。これにより、MapReduceフレームワークの実行エンジンは分析アプリケーションの処理の分割単位を決定し、並列処理を制御することが可能となる。
 しかしながら、これまで、MapReduceフレームワークは元来Webにおける検索システムなど、主に非構造・順序性のないデータに対しての処理を記述することを目的にしており、系列データに対してはMapReduceフレームワークによる処理能力向上が見込めなかった。例えば、抽出処理は、多くの基盤で同時に複数のタスクとして実施されるため、処理の高速化に大きく寄与するが、その結果出力は非順序で行われるため、移動平均やフーリエ変換など、系列データに一般的に適用される分析手法の適用が困難であった。
 これらの処理をMapReduceフレームワークで記述する場合は、集約処理で実施することになるが、集約処理においては処理に係る基盤数を増大させることが困難であり、十分な高速化が得られなかった。
 これに対し、例えば非特許文献2に示すように集約処理においてストリーム処理基盤を利用することで、高速化する手法が知られている。しかし、ストリーム処理基盤を用いた場合においても、抽出処理において全データが抽出されるまでの待ち時間が発生し、抽出したデータを直接ネットワーク等で別のサーバに送信するなど、通信の負荷が高くなるなどの問題があった。さらに、結果の書き出し処理においては、系列データの場合、集約処理の結果、十分にデータ量が削減できるとは限らず、大量のデータを再配置等する必要があり、通信や処理の負荷の増大や、速度の低下を招いていた。
米国特許出願公開第2008/0086442号明細書
「MapReduce: Simplified Data Processing on Large Clusters」 Jeffrey Dean, Sanjay Ghemawat, Google, Inc. OSDI'04: Sixth Symposium on Operating System Design and Implementation, San Francisco, CA, December 6, 2004. 「SCOPE: parallel databases meet MapReduce」Jingren Zhou,Nicolas Bruno,Ming-Chuan Wu,Per-Ake Larson,Ronnie Chaiken,Darren Shakib,Microsoft Corp., The VLDB Journal
 MapReduceフレームワークを使用しない分散分析システムでは、柔軟にデータ処理を記述できなかった。
 一方、MapReduceフレームワークを活用した従来のシステム構成では、計算機器台数に応じた処理向上(スケーラビリティ)が得られていなかった。また、MapReduceフレームワークを活用した従来のシステム構成では、元データを1次加工し、2次加工する際、1次加工データを高速に保存できなかった。 
 本願において開示される発明の代表的な一例を示せば以下の通りである。
 すなわち、順序性ラベルと前記順序性ラベルに一対一、もしくは一対多で対応付けされる少なくとも一つ以上の値と前記値の内一つずつを区別するための値名とで構成された系列データに対して並列分散処理を行う系列データ並列分析基盤あるいは分散処理システムであって、
 一つ以上の計算機器と前記計算機器がデータ授受を行うためのネットワークで構成されるデータ処理を並列に行う並列処理基盤と、前記計算機器に分散されて配置された前記系列データを管理する分散系列データ管理部とを具備し、
 前記並列処理基盤は、前記計算機器毎に少なくとも一つ以上の前記系列データの内一つの順序性ラベルに対応する一つの値を複数の順序性ラベルでブロック化したデータブロックと、前記計算機器毎に少なくとも一つ以上の前記データブロックに対して処理を行うデータブロック処理サーバと、前記計算機器毎に少なくとも一つ以上の前記データブロック処理サーバの結果を処理するブロック処理集約サーバとを具備し、
 前記分散系列データ管理部は、前記系列データを前記系列データ並列分析基盤に保持するためのデータ読込部と、前記系列データを前記系列データ並列分析基盤にから取得するためのデータ選択部と、前記データブロックを管理するための分散情報管理データベースを具備し、前記分散情報管理データベースには、前記データブロックの前記順序性ラベルの範囲を指示す順序ラベル範囲と、前記データブロックの前記値名に対応する系列IDと、前記データブロックを配置した前記計算機器を特定するメタ情報と、で構成された管理データを保持することを特徴とする。
 上記構成の系列データ並列分析基盤あるいは分散処理システムによれば、系列データに対しても柔軟に分散処理を記述可能となる。また、系列データに対してもスケーラビリティのあるデータストア及び処理基盤を実現可能となる。更に、
データストアに保存されている元データを加工し、新たにデータを生成する場合に、新たなデータを高速に保存することが可能となる。 
本発明の第1の実施の形態の系列データ並列分析基盤の概要を示した説明図である。 本発明の第1の実施の形態の系列データの概要を示した説明図である。 本発明の第1の実施の形態の系列データ並列ストアの構成を示した説明図である。 本発明の第1の実施の形態の並列処理基盤の構成を示した説明図である。 本発明の第1の実施の形態の系列データ並列分析基盤の構成を示したブロック図である。 本発明の第1の実施の形態の系列データ並列分析処理の手順を示したフローチャートである。 本発明の第1の実施の形態の系列データ並列ストアのデータ選択の手順を示したフローチャートである。 本発明の第1の実施の形態の系列データ並列ストアのデータ登録の手順を示したフローチャートである。 本発明の実施の形態の系列データ並列ストアのデータ登録における分散先決定の手順を示したフローチャートである。 本発明の実施の形態の系列データ並列ストアのデータ登録における分散先決定の手順を示したフローチャートである。 本発明の実施の形態の系列データ並列ストアのデータ登録における分散先決定の手順を示したフローチャートである。 本発明の実施の形態の系列データ並列ストアのデータ登録における分散先決定の手順を示したフローチャートである。 本発明の第1の実施の形態の系列データ並列ストアのMap処理中におけるデータ登録の手順を示したフローチャートである。 本発明の第1の実施の形態の実施効果を示した説明図である。 本発明の第2の実施の形態を示したブロック図である。 本発明の第2の実施の形態の系列データ並列分析処理の手順を示したフローチャートである。 本発明の第2の実施の形態の系列データ並列ストアのデータ選択の手順を示したフローチャートである。
 以下、本発明の実施の形態について図面を参照して説明する。
(第1の実施の形態)
 図1には本発明における系列データ並列分析基盤102の概要を示す。系列データ並列分析基盤102は系列データ101を入力、蓄積する系列データ並列ストア103と系列データ並列ストア103のデータを利用して分散分析を行う並列分析基盤104とから構成される。並列分析基盤104にはユーザ106が処理指示を行い、その結果を系列データ並列ストア103か分析結果データ105として出力することができる。ユーザ106は、人間であってもよいし、別のシステムやプログラム等であってもよい。
 このように構成することで、逐次的に系列データ101を蓄積することができ、さらに並列分析基盤を利用して蓄積された系列データ101に対して、ユーザ106の任意のタイミングで分析を行うことができる。
 図2には系列データの構成を示す。系列データは、1つ以上のデータブロック203から構成され、一つのデータブロック203は順序を示す順序性ラベル201と1つ以上の値202とから構成される。順序性ラベルには、一般的には数値や日時が利用されるが、その他、順序性が定義可能な、例えばa、b、cなどの記号などでもよい。
 図3には一般的な系列データカラムストア301の構成を示す。系列データカラムストア301系列データ101を読み込むデータ読込部303とデータを格納するデータベース302とデータを取得するデータ選択部とから構成されている。データベース302には系列データ101が順序ラベル範囲303と系列ID304と値ブロック305の所謂、カラムストアの形式で格納されている。データ選択部に対して、ユーザ106が指示・操作を与えることで、データを取得できる構成である。
 このようにすることで、ユーザ106が所望の順序ラベル範囲303と系列ID304に対して、その順序性ラベルと値の集合を高速に取得することが可能となり、さらに値ブロックに圧縮技術を適用することで蓄積している系列データ101の容量を削減することが可能となる。
 図4には一般的な並列処理基盤104の構成を示す。並列処理基盤104は、処理状況を監視・管理するジョブ・タスク管理サーバ401とデータを管理するデータブロック管理サーバ402とデータブロック203を処理するデータブロック処理サーバ403とデータブロック処理サーバの結果を集約処理するブロック処理集約サーバ404から構成されている。データブロック処理サーバ403及びブロック処理集約サーバ404は一つ以上存在し、データブロック処理サーバ403及びブロック処理集約サーバ404を同一の機器上に設置するようにしてもよい。ユーザ106は、ジョブ・タスク管理サーバ401に対して、指示・操作を行い、処理の結果を取得することができる。このようにすることで、様々なデータに対する分散分析処理を柔軟にかつ、少ない工数で記述することが可能となる。
 図5には、本発明第一の実施例における系列データ並列分析基盤102の構成を示す。処理状況を監視・管理するジョブ・タスク管理サーバ401とデータブロック509とデータブロック509を処理するデータブロック処理サーバ403とデータブロック処理サーバの結果を集約処理するブロック処理集約サーバ404と分散データ管理部501から構成されている。
 分散データ管理部501は、データ読込部502とデータ選択部503と分散先決定部504とデータ検索部505とデータ入出力部506と分散情報管理データベース507から構成されている。分散情報管理データベース507は順序ラベル範囲303と系列ID304とメタ情報508から構成されている。メタ情報508にはデータブロック509が実際に保持されているサーバの情報を格納しており、データブロック509は複数のサーバに重複してデータを設置してもよく、その場合にはメタ情報508に複数のデータ保持サーバの情報が格納されている。
 本構成は、図3に示した系列データカラムストア301と図4に示した並列処理基盤104を組み合わせた構成を基本としているが、データブロックについては分散情報管理データベース507には保持せず、データブロック処理サーバ403と同一または、データブロック処理サーバ403が容易にデータ取得可能な機器にデータブロック509を保持している点が特徴である。データブロック509は図3における値ブロック305をファイル化したものを利用することができる。
 このような構成とすることで、系列データ101を複数のサーバ・機器等に保持することができ、データ蓄積における保持容量の増大や、機器類等を増設することによる保持容量の拡大を容易にすることができると共に、データが増大した場合においても機器類を増大させることで分析処理能力も向上させることが可能となる。
 以下、系列データ並列分析基盤102の基本動作を図6乃至図11のフローチャート図を用いて説明する。
 図6には系列データ並列分析基盤102における分散分析の実行の方法を示す。最初に、ユーザ106からの処理実行要求が系列データ並列分析基盤102に指示される。処理実行要求には、処理に用いる順序ラベル範囲303と系列ID304と処理内容を記述したプログラムが含まれている(Step 1)。次に処理実行要求に含まれる、順序ラベル範囲303と系列ID304に対応するデータブロック509を示す情報を、データ検索部505を介して分散情報管理データベース507から取得する(Step 2)。
 並列処理基盤104は、ジョブ・タスク管理サーバ401において、分散情報管理データベースから得られたデータブロック509の情報に基づいて、同時に抽出処理を行うデータブロックを選択し、一つのチャンクとする。この際、データブロックと抽出処理を行うサーバは同一の機器であることが望ましいが、異なる機器であってもよい。異なる機器である場合には、その機器から例えばssh, scpなどの手段でデータブロック509のデータを取得することができる(Step 3)。ジョブ・タスク管理サーバ401は、チャンク毎に抽出処理タスクを生成し、データブロック処理サーバ403に抽出処理タスクを指示する(Step 4)。
 データブロック処理サーバ403は、チャンクから順序性ラベルにおける順序に従って、データを取得し、Step 1で指定された処理内容を記述したプログラムに従って、抽出処理を行う。抽出処理においては、処理結果のデータは、データブロック509における値に対応する順序性ラベルとは別の順序性ラベル(以下、keyと呼ぶ)が付与された、値(以下、valueと呼ぶ)の形式をとる。keyは前述のデータブロック509における順序性ラベルと同一であってもよく、keyに指定されるラベルは重複していてもよい(Step 5)。抽出処理の結果は、ブロック処理集約サーバ404に送信される(Step 6)。
 送信されたデータは、ブロック処理集約サーバ404においてkeyによってソートされる(Step 7)。ブロック処理集約サーバ404では、同一のkeyを持つ値毎に集約処理が行われる(Step 8)。最後に集約処理の結果を出力して分析処理は終了である。この際、出力先として、任意のファイル(例えばタブ区切りテキストやXMLファイル)であってもよいし、分散系列データ管理部501にデータを登録してもよいし、系列データ並列分析基盤102外の別プログラムにメモリ上で受け渡しを行ってもよい(Step 9)
 このようにすると、データブロックの順序ラベル範囲303を適切。に指定することで、Step 5における抽出処理で、データの順序性が保証されるため、例えば移動平均やフーリエ変換などの順序性に基づいて行われる処理が、抽出処理において記述できる。
 一般的に、集約処理は抽出処理よりも少ないサーバ数、タスク数で実行されるため、抽出処理において順序性に基づいて行われる処理が記述可能となることは、処理の高速化やStep 6における処理結果の送信量を削減することが可能となり、低負荷で高速な分散分析が、系列データ101に対しても実現できる。
 図7には系列データ並列分析基盤102におけるデータ選択の方法を示す。
 最初に、ユーザ106からの処理実行要求が系列データ並列分析基盤102に指示される。処理実行要求には、処理に用いる順序ラベル範囲303と系列ID304とが含まれている(Step 11)。次に処理実行要求に含まれる、順序ラベル範囲303と系列ID304に対応するデータブロック509を示す情報を、データ検索部505を介して分散情報管理データベース507から取得する(Step 12)。データブロックの内のデータを、例えばssh、scpなどの通信手段でデータ入出力部506とデータ検索部505を介して分散系列データ選択部に送信する(Step 13)。データ選択部では、ユーザ106の所望の形式となるように、データを、ファイル(例えばタブ区切りテキストやXMLファイル)や、系列データ並列分析基盤102外の別プログラムにメモリ上で受け渡し可能な形式に変換したうえで出力を行って終了となる(Step 14)。このようにすることで、並列処理基盤104を介さずにデータを入手することが可能となる。
 図8には系列データ並列分析基盤102におけるデータ登録の方法を示す。
 最初に、ユーザ106からの処理実行要求がデータ読込部502を介して系列データ並列分析基盤102に指示される。処理実行要求には、処理に用いる系列データ101と登録に使用する系列ID304とが含まれている(Step 21)。次に、データ読込部では、例えば、バイナリ・タブ区切りテキスト・XMLなどの形式で入力された系列データ101を系列ID304とあらかじめ設定された順序ラベル範囲303で分割を行う(Step 22)。
 Step 22で分割されたデータをブロック化する。例えば、圧縮技術を適用することでデータを削減したブロックを生成することができる(Step 23)。分散先決定部504に具備されている分散先決定方法に従って、どのサーバ・機器にデータブロック509を保持するかを決定する。この際、可用性を考慮して複数のサーバ・機器を選択することができる(Step 24)。Step 24までに得られた順序ラベル範囲303と系列ID304と分散先サーバ・機器の情報を含むメタ情報とを分散情報管理データベース507に登録を行う(Step 25)。最後に、データ入出力部506を介して、サーバ・機器等にデータブロック509を配置して終了となる(Step 26)。
 このように構成することで、ユーザ106がカスタマイズ可能か形式で分散先を決定可能なデータ登録が可能となる。
 図9には分散先決定方法の一例を示す。図9に示す方法は、一般的にラウンドロビンと呼ばれる決定手法である。本方法は、分散先サーバ・機器の情報を保持したリストと、リストの内一つの分散先を示す分散先リストポインタを具備している。
 最初に、決定数を0とする(Step 31)。データブロック509毎に、分散先リストポインタが示しているサーバ・機器を分散先として指定する(Step 32)。Step 33にて分散先リストポインタがリスト上の最後の分散先でないと判明したときは、分散先リストポインタは一つリスト上で移動する(Step 34)。Step 33にて分散先リストポインタがリスト上で最後の分散先を指示している場合はリストの先頭に移動する(Step 35)。次に決定数を一つ増加させる(Step 36)。以上の処理(Step 32からStep 36まで)を、決定数があらかじめ設定された多重度となるまで繰り返し、処理を終了する(Step 37)。このようにすることで、特定のサーバ・機器に偏ることがなくデータブロック509を分散配置することが可能となる。
 図10には分散先決定方法の一例を示す。図10に示す方法は、各サーバ・機器の使用記憶容量を均等化する決定手法である。本方法は、分散先リストと分散先リストの使用記憶容量を取得する手段を具備している。
 最初に、決定数を0とする。(Step 41)。各サーバ・機器の使用記憶容量を取得し最も使用容量が少ないサーバ・機器を分散先に決定する(Step 42)。次に、決定数を一つ増加させる(Step 43)。以上の動作(Step 42からStep 43まで)を決定数があらかじめ設定された多重度となるまで繰り返し、終了する(Step 44)。このようにすることで、各サーバ・機器の使用記憶容量を均等化することが可能となる。
 図11には分散先決定方法の一例を示す。図11に示す方法は、系列ID304毎に分散先を指定する決定手法である。本方法は、分散先リストと分散先リストと系列ID304の紐付けを行う関数fを具備している。
 最初に、決定数を0とする(Step 51)。データブロック509毎に、関数fを実行する(Step 52)。関数fの値に対応する分散先リストが示しているサーバ・機器を分散先として指定する(Step 53)。決定数を一つ増加させる(Step 54)。以上の動作(Step 52からStep 54まで)を決定数があらかじめ設定された多重度となるまで繰り返し、終了する(Step 55)。関数fとしては、例えばハッシュ関数や、剰余算などが利用でき、引数には、系列ID304や系列ID304を数値化したものを使用することができる。この際、分散先リストにサーバ等が追加、削除された場合において、ある系列ID304に紐付くサーバ等が削除されていない場合においては、旧来と同じサーバ等が得られるような関数fとする。
 このようにすることで、複数の系列ID304に対し、同じ順序ラベル範囲303での分散処理が行われる場合において、効率的に複数の基盤で分散処理タスクを実行することが可能となる。
 図12には分散先決定方法の一例を示す。図12に示す方法は、順序ラベル範囲303毎に分散先を指定する決定手法である。本方法は、分散先リストと分散先リストと順序ラベル範囲303の紐付けを行う関数gを具備している。
 最初に、決定数を0とする(Step 61)。データブロック509毎に、関数gを実行する(Step 62)。次に、関数gの値に対応する分散先リストが示しているサーバ・機器を分散先として指定する(Step 63)。次に、決定数を一つ増加させる(Step 64)。以上の動作(Step 62からStep 64まで)を決定数があらかじめ設定された多重度となるまで繰り返し、終了する。(Step 65)。関数gとしては、例えばハッシュ関数や、剰余算などが利用でき、引数には、順序ラベル範囲303や順序ラベル範囲303を数値化したものを使用することができる。この際、分散先リストにサーバ等が追加、削除された場合において、ある順序ラベル範囲303に紐付くサーバ等が削除されていない場合においては、旧来と同じサーバ等が得られるような関数gとする。
 このようにすることで、複数の順序ラベル範囲303に対し、同じ系列ID304での分散処理が行われる場合において、効率的に複数の基盤で分散処理タスクを実行することが可能となる。
 図13には系列データ並列分析基盤102における抽出処理中におけるデータブロックの登録の方法を示す。
 最初に、ユーザ106からの処理実行要求が系列データ並列分析基盤102に指示される。処理実行要求には、処理に用いる順序ラベル範囲303と系列ID304とデータブロック登録時の系列ID304と分散配置先情報と処理内容を記述したプログラムが含まれている(Step 71)。次に処理実行要求に含まれる、処理対象の順序ラベル範囲303と系列ID304に対応するデータブロック509を示す情報を、データ検索部505を介して分散情報管理データベース507から取得すると共に、分散先決定部を介してあらかじめデータブロック509の登録先となるサーバ・機器等を決定し、その情報をデータ登録時の方法と同様に分散情報管理データベースに登録を行う(Step 72)。並列処理基盤104は、ジョブ・タスク管理サーバ401において、分散情報管理データベースから得られたデータブロック509の情報に基づいて、同時に抽出処理を行うデータブロックを選択し、一つのチャンクとする。この際、データブロックと抽出処理を行うサーバは同一の機器であることが望ましいが、異なる機器であってもよい。異なる機器である場合には、その機器から例えばssh, scpなどの手段でデータブロック509のデータを取得することができる(Step 73)。
 ジョブ・タスク管理サーバ401は、チャンク毎に抽出処理タスクを生成し、データブロック処理サーバ403に抽出処理タスクを指示する(Step 74)。データブロック処理サーバ403は、チャンクから順序性ラベルにおける順序に従って、データを取得し、Step 71で指定された処理内容を記述したプログラムに従って、抽出処理を行う(Step75)。抽出処理においてデータブロックの登録を行う場合は、抽出処理タスクの対象となっているチャンクと同一の時間範囲と、Step 71で指定された系列ID304で抽出処理結果のデータをデータブロック509の形状に変換し、Step 72で決定されたサーバ・機器等に書き出しを行って終了となる(Step 76)。この際、データブロックの配置には、ssh、scpなどの通信手段を用いてもよいが、分散配置先のサーバ・機器等は、抽出処理となるべく同一のサーバ・機器等となるように設定することで、通信量を削減することができる。
 このようにすると、一度集約処理をしてからデータ登録をする場合に対して、集約処理のためのデータ送信・書き出しや、集約処理後のデータ送信・書き出しを削減することができ、システムの負荷を軽減することが可能となり、システムの動作の高速化を実現することが可能となる。
 図14には、系列データ並列分析基盤102と既存の分散分析基盤を使用した場合の、移動平均を計算した場合の処理時間比較を示す。システムの機器構成は同一のものを使用し、データブロック処理サーバとブロック処理集約サーバ はどちらも5台サーバを利用した。
 どちらの場合も、計算時間のうち30秒程度は、並列処理基盤の初期設定に時間を要しており、その他が実際に分析処理に係る時間である。本実施例の場合、既存技術と比較しておよそ5倍程度高速化しており、これはデータブロック処理サーバ中で移動平均の計算を実施可能であるためである。以上のように、系列データ101に対する様々な分析処理を柔軟に記述可能であり、データ量の増大に合わせて、機器を増加させることで、データ蓄積可能な領域と、分析処理を行う計算機能力を向上させることが可能な、系列データ並列分析基盤を構成することができる。
 (第二の実施例)
 第二の実施例は、第一の実施例に対し、データブロックをファイルで直接保持するのではなく、データブロックサーバ1501に格納して保持する点が異なる。図15には、本発明第二の実施例における系列データ並列分析基盤102の構成を示す。
 処理状況を監視・管理するジョブ・タスク管理サーバ401とデータブロックサーバ1501とデータブロックサーバ1501から提供されるデータブロック509を処理するデータブロック処理サーバ403と、データブロック処理サーバの結果を集約処理するブロック処理集約サーバ404と、分散データ管理部501から構成されている。
 分散データ管理部501は、データ読込部502とデータ選択部503と分散先決定部504とデータ検索部505とデータ入出力部506と分散情報管理データベース507から構成されている。分散情報管理データベース507は順序ラベル範囲303と系列ID304とメタ情報508から構成されている。メタ情報508にはデータブロック509が実際に保持されているデータブロックサーバ1501の情報を格納しており、データブロック509は複数のサーバデータブロックサーバ1501に重複してデータを設置してもよく、その場合にはメタ情報508に複数のデータブロックサーバ1501の情報が格納されている。
 本構成は、図3に示した系列データカラムストア301と図4に示した並列処理基盤104を組み合わせた構成を基本としているが、データブロック509については分散情報管理データベース507には保持せず、データブロック処理サーバ403と同一または、データブロック処理サーバ403が容易にデータ取得可能な機器にデータブロックサーバ1501を保持している点が特徴である。データブロック509は図3における値ブロック305をファイル化したものを利用することができ、データブロック509はデータブロックサーバ1501に保持されている。
 このような構成とすることで、系列データ101を複数のサーバ・機器等に保持することができ、データ蓄積における保持容量の増大や、機器類等を増設することによる保持容量の拡大を容易にすることができると共に、データが増大した場合においても機器類を増大させることで分析処理能力も向上させることが可能となる。
 以下、系列データ並列分析基盤102の基本動作を図6乃至図11のフローチャート図を用いて説明する。
 図16には系列データ並列分析基盤102における分散分析の実行の方法を示す。
 最初に、ユーザ106からの処理実行要求が系列データ並列分析基盤102に指示される。処理実行要求には、処理に用いる順序ラベル範囲303と系列ID304と処理内容を記述したプログラムが含まれている(Step 81)。次に処理実行要求に含まれる、順序ラベル範囲303と系列ID304に対応するデータブロック509を示す情報を、データ検索部505を介して分散情報管理データベース507から取得する(Step 82)。
 並列処理基盤104は、ジョブ・タスク管理サーバ401において、分散情報管理データベースから得られたデータブロック509の情報に基づいて、同時に抽出処理を行うデータブロックを選択し、一つのチャンクとする(Step 83)。この際、データブロックサーバ1501が存在する機器と抽出処理を行う機器は同一の機器であることが望ましいが、異なる機器であってもよい。異なる機器である場合には、その機器から例えばssh, scpなどの手段でデータブロック509のデータを取得することができる。
 次に、ジョブ・タスク管理サーバ401は、チャンク毎に抽出処理タスクを生成し、データブロック処理サーバ403に抽出処理タスクを指示する(Step 84)。データブロック処理サーバ403は、チャンクから順序性ラベルにおける順序に従って、データを取得し、Step 81で指定された処理内容を記述したプログラムに従って、抽出処理を行う。抽出処理においては、処理結果のデータは、データブロック509における値に対応する順序性ラベルとは別の順序性ラベル(以下、keyと呼ぶ)が付与された、値(以下、valueと呼ぶ)の形式をとる。keyは前述のデータブロック509における順序性ラベルと同一であってもよく、keyに指定されるラベルは重複していてもよい(Step 85)。
 次に、抽出処理の結果は、ブロック処理集約サーバ404に送信される(Step 86)。送信されたデータは、ブロック処理集約サーバ404においてkeyによってソートされる(Step 87)。ブロック処理集約サーバ404では、同一のkeyを持つ値毎に集約処理が行われる(Step 8)。
 最後に集約処理の結果を出力して分析処理は終了である。この際、出力先として、任意のファイル(例えばタブ区切りテキストやXMLファイル)であってもよいし、分散系列データ管理部501にデータを登録してもよいし、系列データ並列分析基盤102外の別プログラムにメモリ上で受け渡しを行ってもよい(Step 89)。
 このようにすると、データブロックの順序ラベル範囲303を適切に指定することで、Step 85における抽出処理で、データの順序性が保証されるため、例えば移動平均やフーリエ変換などの順序性に基づいて行われる処理が、抽出処理において記述できる。
 一般的に、集約処理は抽出処理よりも少ないサーバ数、タスク数で実行されるため、抽出処理において順序性に基づいて行われる処理が記述可能となることは、処理の高速化やStep 6における処理結果の送信量を削減することが可能となり、低負荷で高速な分散分析が、系列データ101に対しても実現できる。
 図17には系列データ並列分析基盤102におけるデータ選択の方法を示す。
 最初に、ユーザ106からの処理実行要求が系列データ並列分析基盤102に指示される。処理実行要求には、処理に用いる順序ラベル範囲303と系列ID304とが含まれている(Step 91)。次に処理実行要求に含まれる、順序ラベル範囲303と系列ID304に対応するデータブロック509を示す情報を、データ検索部505を介して分散情報管理データベース507から取得する(Step 92)。データブロックの内のデータを、例えばssh、scpなどの通信手段でデータブロックサーバ1501とデータ入出力部506とデータ検索部505を介して分散系列データ選択部に送信する(Step 93)。データ選択部では、ユーザ106の所望の形式となるように、データを、ファイル(例えばタブ区切りテキストやXMLファイル)や、系列データ並列分析基盤102外の別プログラムにメモリ上で受け渡し可能な形式に変換したうえで出力を行って終了となる(Step 94)。このようにすることで、並列処理基盤104を介さずにデータを入手することが可能となる。
101 系列データ
102 系列データ並列分析基盤
103 系列データ並列ストア
104 並列分散基盤
105 分析結果データ
106 ユーザ
201 順序性ラベル
202 値
203 データブロック
301 データ読込部
302 データベース
303 順序性ラベル範囲
304 系列ID
305 値ブロック
306 データ選択部
401 ジョブ・タスク管理サーバ
402 データブロック管理サーバ
403 データブロック処理サーバ
404 ブロック処理集約サーバ
501 分散系列データ管理部
502 データ読込部
503 データ選択部
504 分散先決定部
505 データ検索部
506 データ入出力部
507 分散情報管理データベース
508 メタ情報
509 データブロック
1501 データブロックサーバ

Claims (9)

  1.  順序性ラベルと前記順序性ラベルに一対一、もしくは一対多で対応付けされる少なくとも一つ以上の値と、前記値の内一つずつを区別するための値名とで構成された系列データに対して並列分散処理を行う系列データ並列分析基盤であって、
     一つ以上の計算機器と前記計算機器がデータ授受を行うためのネットワークで構成されるデータ処理を並列に行う並列処理基盤と、
     前記計算機器に分散されて配置された前記系列データを管理する分散系列データ管理部を具備し、
     前記並列処理基盤は、
     前記計算機器毎に少なくとも一つ以上の前記系列データの内一つの順序性ラベルに対応する一つの値を複数の順序性ラベルでブロック化したデータブロックと、
     前記計算機器毎に少なくとも一つ以上の前記データブロックに対して処理を行うデータブロック処理サーバと、
     前記計算機器毎に少なくとも一つ以上の前記データブロック処理サーバの結果を処理するブロック処理集約サーバとを具備し、
     前記分散系列データ管理部は、
     前記系列データを前記系列データ並列分析基盤に保持するためのデータ読込部と、
     前記系列データを前記系列データ並列分析基盤にから取得するためのデータ選択部と、
     前記データブロックを管理するための分散情報管理データベースを具備し、
     前記分散情報管理データベースには、前記データブロックの前記順序性ラベルの範囲を指示す順序ラベル範囲と、前記データブロックの前記値名に対応する系列IDと、前記データブロックを配置した前記計算機器を特定するメタ情報とで構成された管理データを保持すること
     を特徴とする系列データ並列分析基盤。
  2.  前記分散系列データ管理部には、前記データブロックを保持する前記計算機器を決定する分散先決定部を具備することを特徴とする請求項1記載の系列データ並列分析基盤。
  3.  前記分散先決定部は、前記順序ラベル範囲が同一乃至半分以上共有している前記データブロックを、前記計算機器のうち同一の前記計算機器に保持するように決定することを特徴とする請求項1記載の系列データ並列分析基盤。
  4.  前記分散先決定部は、前記系列IDが同一乃前記データブロックを、
     前記計算機器のうち同一の前記計算機器に保持するように決定することを特徴とする請求項1記載の系列データ並列分析基盤。
  5.  前記分散先決定部は、前記計算機器の記録装置の占有容量が最も少ない前記計算機器に決定することを特徴とする請求項1記載の系列データ並列分析基盤。
  6.  前記分散先決定部は、前記データブロックを保持する前記計算機器を周期的に決定することを特徴とする請求項1記載の系列データ並列分析基盤。
  7.  前記データブロックがファイル形式であることを特徴とする請求項1記載の系列データ並列分析基盤。
  8.  前記データブロックがサーバであることを特徴とする請求項1記載の系列データ並列分析基盤。
  9.  一つ以上の計算機器と前記計算機器がデータ授受を行うためのネットワークで構成される並列処理基盤を用い、順序性ラベルと前記順序性ラベルに一対一、もしくは一対多で対応付けされる少なくとも一つ以上の値と、前記値の内一つずつを区別するための値名とで構成された系列データに対して並列分散処理を行う並列分散処理方法であって、
     前記並列処理基盤の前記計算機器毎に、少なくとも一つ以上の前記系列データの内一つの順序性ラベルに対応する一つの値を複数の順序性ラベルでブロック化したデータブロックと、少なくとも一つ以上の前記データブロックに対して処理を行うデータブロック処理サーバと、少なくとも一つ以上の前記データブロック処理サーバの結果を処理するブロック処理集約サーバとを準備し、
     前記計算機器に分散されて配置された前記系列データを管理する分散系列データ管理部に、前記データブロックを管理するための分散情報管理データベースとして、前記データブロックの前記順序性ラベルの範囲を指示す順序ラベル範囲と、前記データブロックの前記値名に対応する系列IDと、前記データブロックを配置した前記計算機器を特定するメタ情報とを保持管理することを特徴とする系列データの並列分散処理方法。
PCT/JP2013/067972 2013-07-01 2013-07-01 系列データ並列分析基盤およびその並列分散処理方法 WO2015001596A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2015524916A JP6069503B2 (ja) 2013-07-01 2013-07-01 系列データ並列分析基盤およびその並列分散処理方法
PCT/JP2013/067972 WO2015001596A1 (ja) 2013-07-01 2013-07-01 系列データ並列分析基盤およびその並列分散処理方法
CN201380077504.7A CN105308579B (zh) 2013-07-01 2013-07-01 系列数据并行分析基础设施及其并行分散处理方法
US14/902,184 US10048991B2 (en) 2013-07-01 2013-07-01 System and method for parallel processing data blocks containing sequential label ranges of series data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/067972 WO2015001596A1 (ja) 2013-07-01 2013-07-01 系列データ並列分析基盤およびその並列分散処理方法

Publications (1)

Publication Number Publication Date
WO2015001596A1 true WO2015001596A1 (ja) 2015-01-08

Family

ID=52143219

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/067972 WO2015001596A1 (ja) 2013-07-01 2013-07-01 系列データ並列分析基盤およびその並列分散処理方法

Country Status (4)

Country Link
US (1) US10048991B2 (ja)
JP (1) JP6069503B2 (ja)
CN (1) CN105308579B (ja)
WO (1) WO2015001596A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108140043A (zh) * 2015-10-01 2018-06-08 微软技术许可有限责任公司 只附加分布式数据库的读写协议
JP2019035996A (ja) * 2017-08-10 2019-03-07 株式会社日立製作所 分散処理システム、分散処理方法、及び分散処理プログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6364727B2 (ja) * 2013-09-24 2018-08-01 日本電気株式会社 情報処理システム、分散処理方法、及び、プログラム
US10394620B2 (en) * 2016-11-21 2019-08-27 International Business Machines Corporation Method for changing allocation of data using synchronization token
CN108172268A (zh) * 2017-12-27 2018-06-15 苏州麦迪斯顿医疗科技股份有限公司 一种批量数据处理方法、装置、终端和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006252394A (ja) * 2005-03-14 2006-09-21 Sony Corp 情報処理システム、情報処理装置および方法、並びにプログラム
JP2011150503A (ja) * 2010-01-21 2011-08-04 Hitachi Ltd 並列分散処理方法、及び、計算機システム
JP2012117987A (ja) * 2010-12-03 2012-06-21 Hitachi Ltd データ処理方法、データ処理システム、及びデータ処理装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6408359B1 (en) * 1996-04-30 2002-06-18 Matsushita Electric Industrial Co., Ltd. Storage device management system and method for distributively storing data in a plurality of storage devices
KR100592753B1 (ko) * 2001-02-24 2006-06-26 인터내셔널 비지네스 머신즈 코포레이션 다차원 고속 푸리에 변환의 효율적 구현 방법, 시스템 및 그에 관한 프로그램을 기록한 컴퓨터 판독가능 기록 매체와, 다차원 어레이의 효율적 재배치 방법, 시스템 및 그에 관한 프로그램을 기록한 컴퓨터 판독가능 기록 매체
US7257716B2 (en) * 2002-08-27 2007-08-14 Apple Inc. Method and apparatus for uploading mass-distributed content to a server
MXPA06009355A (es) * 2004-02-21 2007-03-01 Datallegro Inc Base de datos paralela ultra - nada compartida.
JP4398777B2 (ja) * 2004-04-28 2010-01-13 株式会社東芝 時系列データ分析装置および方法
JP4502375B2 (ja) * 2004-05-27 2010-07-14 キヤノン株式会社 ファイルシステムおよびその制御方法
US7756919B1 (en) * 2004-06-18 2010-07-13 Google Inc. Large-scale data processing in a distributed and parallel processing enviornment
US7590620B1 (en) * 2004-06-18 2009-09-15 Google Inc. System and method for analyzing data records
US20080022343A1 (en) * 2006-07-24 2008-01-24 Vvond, Inc. Multiple audio streams
JP4854309B2 (ja) * 2006-01-23 2012-01-18 シャープ株式会社 データ格納制御装置
US8190610B2 (en) * 2006-10-05 2012-05-29 Yahoo! Inc. MapReduce for distributed database processing
JP4948276B2 (ja) * 2007-06-15 2012-06-06 三菱電機株式会社 データベース検索装置及びデータベース検索プログラム
US7870114B2 (en) * 2007-06-15 2011-01-11 Microsoft Corporation Efficient data infrastructure for high dimensional data analysis
US9195700B1 (en) * 2007-10-10 2015-11-24 United Services Automobile Association (Usaa) Systems and methods for storing time-series data
CN101183368B (zh) * 2007-12-06 2010-05-19 华南理工大学 联机分析处理中分布式计算及查询海量数据的方法和系统
US8566382B2 (en) * 2008-09-22 2013-10-22 Advanced Micro Devices, Inc. Method and apparatus for improved calculation of multiple dimension fast fourier transforms
US10002019B2 (en) * 2009-05-11 2018-06-19 International Business Machines Corporation System and method for assigning a transaction to a serialized execution group based on an execution group limit for parallel processing with other execution groups
JPWO2012020456A1 (ja) * 2010-08-11 2013-10-28 株式会社日立製作所 時系列データ処理装置及びその方法
JP5898409B2 (ja) * 2011-03-24 2016-04-06 オリンパス株式会社 データ処理装置およびデータ処理方法
US9798831B2 (en) 2011-04-01 2017-10-24 Google Inc. Processing data in a MapReduce framework
US8924426B2 (en) * 2011-04-29 2014-12-30 Google Inc. Joining tables in a mapreduce procedure
US8806588B2 (en) * 2011-06-30 2014-08-12 Amazon Technologies, Inc. Storage gateway activation process
US9239871B2 (en) * 2011-07-06 2016-01-19 Ca, Inc. System and method for analyzing sequential data access efficiency
US20130091266A1 (en) * 2011-10-05 2013-04-11 Ajit Bhave System for organizing and fast searching of massive amounts of data
JP5522155B2 (ja) * 2011-12-09 2014-06-18 株式会社デンソー プログラム書換方法及びプログラム書換装置,電子制御装置
US8898542B2 (en) * 2011-12-12 2014-11-25 Cleversafe, Inc. Executing partial tasks in a distributed storage and task network
US8938416B1 (en) * 2012-01-13 2015-01-20 Amazon Technologies, Inc. Distributed storage of aggregated data
US9229657B1 (en) * 2012-11-01 2016-01-05 Quantcast Corporation Redistributing data in a distributed storage system based on attributes of the data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006252394A (ja) * 2005-03-14 2006-09-21 Sony Corp 情報処理システム、情報処理装置および方法、並びにプログラム
JP2011150503A (ja) * 2010-01-21 2011-08-04 Hitachi Ltd 並列分散処理方法、及び、計算機システム
JP2012117987A (ja) * 2010-12-03 2012-06-21 Hitachi Ltd データ処理方法、データ処理システム、及びデータ処理装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108140043A (zh) * 2015-10-01 2018-06-08 微软技术许可有限责任公司 只附加分布式数据库的读写协议
CN108140043B (zh) * 2015-10-01 2022-05-24 微软技术许可有限责任公司 只附加分布式数据库的读写协议
JP2019035996A (ja) * 2017-08-10 2019-03-07 株式会社日立製作所 分散処理システム、分散処理方法、及び分散処理プログラム

Also Published As

Publication number Publication date
CN105308579B (zh) 2018-06-08
CN105308579A (zh) 2016-02-03
JPWO2015001596A1 (ja) 2017-02-23
JP6069503B2 (ja) 2017-02-01
US10048991B2 (en) 2018-08-14
US20160203032A1 (en) 2016-07-14

Similar Documents

Publication Publication Date Title
US11216302B2 (en) Modifying task dependencies at worker nodes using precompiled libraries
KR102361156B1 (ko) 분산 파일 시스템에서 데이터에 대한 병렬 액세스
US9135071B2 (en) Selecting processing techniques for a data flow task
CN108885641B (zh) 高性能查询处理和数据分析
JP5203733B2 (ja) コーディネータサーバ、データ割当方法及びプログラム
US9953071B2 (en) Distributed storage of data
US9986018B2 (en) Method and system for a scheduled map executor
JP6069503B2 (ja) 系列データ並列分析基盤およびその並列分散処理方法
US20160154867A1 (en) Data Stream Processing Using a Distributed Cache
US9535743B2 (en) Data processing control method, computer-readable recording medium, and data processing control device for performing a Mapreduce process
US20140101213A1 (en) Computer-readable recording medium, execution control method, and information processing apparatus
US11151141B2 (en) Data processing device and data processing method
US10334028B2 (en) Apparatus and method for processing data
Medvedev et al. Data ingestion and storage performance of iot platforms: Study of openiot
US8667008B2 (en) Search request control apparatus and search request control method
Deshai et al. Big data Hadoop MapReduce job scheduling: A short survey
Salehian et al. Comparison of spark resource managers and distributed file systems
CN111444148B (zh) 基于MapReduce的数据传输方法和装置
US10956506B1 (en) Query-based data modification
Bhushan et al. Cost based model for big data processing with hadoop architecture
KR20160145250A (ko) 가상 머지를 지원하는 셔플 내장형 분산 스토리지 시스템 및 그 방법
US20220374810A1 (en) Accelerating outlier prediction of performance metrics in performance managers deployed in new computing environments
JP6790552B2 (ja) データ特定プログラム、データ特定方法、及びデータ特定装置
US20200174847A1 (en) Enabling rewire-aware mapreduce cluster in disaggregated systems
Mesmoudi et al. A comparison of systems to large-scale data access

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201380077504.7

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13888819

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015524916

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14902184

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13888819

Country of ref document: EP

Kind code of ref document: A1