WO2018117504A1 - 다차원 데이터를 관리하기 위한 장치 및 그 방법 - Google Patents

다차원 데이터를 관리하기 위한 장치 및 그 방법 Download PDF

Info

Publication number
WO2018117504A1
WO2018117504A1 PCT/KR2017/014375 KR2017014375W WO2018117504A1 WO 2018117504 A1 WO2018117504 A1 WO 2018117504A1 KR 2017014375 W KR2017014375 W KR 2017014375W WO 2018117504 A1 WO2018117504 A1 WO 2018117504A1
Authority
WO
WIPO (PCT)
Prior art keywords
dimension
data
specific
chunk
hash value
Prior art date
Application number
PCT/KR2017/014375
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 WO2018117504A1 publication Critical patent/WO2018117504A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/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/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Definitions

  • the present invention relates to a data management technology based on a multi-dimensional database, and more particularly, a new multi-dimensional data distribution management method capable of performing optimized distribution management for multi-dimensional data based on a hash technique. It is about.
  • the multidimensional database is a database that manages data including a large number of attribute items to model a large amount of multidimensional data such as scientific information and medical information, and to support query processing and operation.
  • the multidimensional data is managed in a data file format (for example, CSV) by using a cluster.
  • a data file format for example, CSV
  • HDF5 data it is possible to load only by changing the format.
  • a process of distributing CSV-type multidimensional data and distributing it to the corresponding instance DB server is performed, and a round-robin method is mainly used as a distributed method.
  • each instance DB server of the multidimensional database sorts the distributed data to form each chunk.
  • distributed multidimensional data may not be managed.
  • the multidimensional data is sorted, converted into a database format, and loaded into the instance DB server.
  • the present invention has been made in view of the above circumstances, and an object of the present invention is to achieve unnecessary distribution management for data loading by performing optimized distributed management on multidimensional data based on a hash technique.
  • a new multidimensional data distribution management scheme is realized, which enables high-speed data loading by minimizing loading cost and time.
  • Multi-dimensional data management apparatus for achieving the above object, the specific dimensional data in at least one chunk based on the specific hash information for each of the at least one specific dimensional data included in the multi-dimensional data Distribution management unit for dispensing; An alignment management unit for arranging the specific dimension data distributed to each chunk based on the dimension of the specific dimension data distributed for each chunk; And a storage management unit converting the sorted specific dimension data into a predetermined specific format and storing the sorted dimension data in an instance DB server associated with the corresponding chunk.
  • the distribution manager may calculate a final hash value corresponding to the specific hash information based on a result of calculating the hash value for each dimension of the specific dimension data based on the specific hash function.
  • the specific dimension data includes a position value corresponding to a position in a corresponding dimension for each dimension, and the specific hash function is a hash value of a second dimension in which a hash value is calculated before the first dimension to calculate a hash value.
  • At least one of a prime number, a position value of the first dimension, and a chunk range of the first dimension is used as a parameter.
  • the specific hash function may include a first result value obtained by multiplying the hash value of the second dimension by the prime number, and a difference value between the position value of the first dimension and the minimum position value of the first dimension. And an exclusive logic sum (XOR) for the second result value divided by the chunk range.
  • XOR exclusive logic sum
  • the distribution manager when the hash value of the first dimension is calculated using the hash value of the second dimension based on the specific hash function, an instance DB managing the hash value of the first dimension and the multidimensional data.
  • the final hash value may be calculated by performing a modular operation based on the total number of servers.
  • the size of the final hash value is matched with a chunk number for dividing the chunks, and the distribution management unit is specific dimension data related to the final hash value in a corresponding chunk having the chunk number matching the final hash value. Characterized in distributing.
  • the sorting management unit determines a sorting order for each dimension of the specific dimension data distributed for each chunk based on a preset dimension management method, sorts the location information values of the corresponding dimension with the fastest sorting order, and at the same time, the corresponding order in the next order. And aligning the dimension information of the dimension.
  • the storage management unit converts the sorted specific dimension data based on a predetermined specific format to generate specific dimension transform data, and stores the specific dimension transform data in an instance DB server associated with the corresponding chunk. .
  • a method of operating a multidimensional data management apparatus wherein the specific dimension data is stored in at least one chunk based on specific hash information for at least one specific dimension data included in the multidimensional data.
  • the final hash value corresponding to the specific hash information is calculated based on a result of calculating the hash value for each dimension of the specific dimension data based on the specific hash function.
  • the specific dimension data includes a position value corresponding to a position in a corresponding dimension for each dimension, and the specific hash function is a hash value of a second dimension in which a hash value is calculated before the first dimension to calculate a hash value.
  • At least one of a prime number, a position value of the first dimension, and a chunk range of the first dimension is used as a parameter.
  • the specific hash function may include a first result value obtained by multiplying the hash value of the second dimension by the prime number, and a difference value between the position value of the first dimension and the minimum position value of the first dimension. And an exclusive logic sum (XOR) for the second result value divided by the chunk range.
  • XOR exclusive logic sum
  • the distribution management step when the hash value of the first dimension is calculated using the hash value of the second dimension based on the specific hash function, an instance of managing the hash value of the first dimension and the multidimensional data.
  • the final hash value may be calculated by performing a modular operation based on the total number of DB servers.
  • the magnitude of the final hash value is matched with a chunk number that distinguishes the chunks, and the distribution management step includes specifying a particular chunk associated with the final hash value to the corresponding chunk having the chunk number matching the final hash value. Distribute the dimensional data.
  • the sorting order for each dimension of the specific dimension data distributed for each chunk is determined based on a preset dimension management method, and the location information values of the corresponding dimension having the fastest sorting order are arranged at the same time. Characterize the location information value of the corresponding dimension.
  • the specific dimension transformation data is generated by converting the sorted specific dimension data based on a preset specific format, and storing the specific dimension transformation data in an instance DB server associated with the corresponding chunk. do.
  • the apparatus and method for managing the multi-dimensional data of the present invention by performing the optimized distribution management for the multi-dimensional data based on the hash technique, loading time that is unnecessarily consumed for loading data and It is possible to provide a new multidimensional data distribution management method that enables high-speed data loading with minimal cost.
  • FIG. 1 is a diagram illustrating a communication environment to which a multidimensional data management apparatus according to an exemplary embodiment of the present invention is applied.
  • FIG. 2 is a diagram illustrating a schematic configuration diagram of a multidimensional database according to an exemplary embodiment of the present invention.
  • FIG. 3 is a view showing a schematic configuration diagram of a multi-dimensional data management apparatus according to an embodiment of the present invention.
  • FIG. 4 is a diagram illustrating an example of multidimensional data to be distributed based on a hash technique according to an embodiment of the present invention.
  • 5 and 6 are diagrams illustrating an example of calculating specific hash information based on a hash technique according to an embodiment of the present invention.
  • FIG. 7 is a diagram illustrating an example in which specific dimension data distributed in a chunk according to an exemplary embodiment of the present invention is stored.
  • FIG. 8 is a diagram illustrating another example in which specific dimension data distributed in a chunk according to an embodiment of the present invention is stored.
  • FIG. 9 is a diagram illustrating a flow of providing a hash-based data distribution management service according to an embodiment of the present invention.
  • a communication environment to which an apparatus for performing data management based on a multi-dimensional database (hereinafter, referred to as a multi-dimensional data management apparatus) to which the present invention is applied will be described with reference to FIG. 1.
  • the communication environment to which the present invention is applied may have a configuration including a multidimensional data management apparatus 100, a user terminal 200, and a multi-dimensional database 300.
  • the multi-dimensional data management apparatus 100 is an apparatus for performing optimized distributed management of multi-dimensional data through interworking with the multi-dimensional database 300.
  • the service to be provided by the present invention that is, unlike the existing multi-dimensional data loading
  • a service that performs optimized distributed management of multi-dimensional data based on hash technique that minimizes unnecessary loading time and cost to enable high speed data loading (hereinafter, hash based data distribution management service). ) Is a device for providing.
  • Such a multi-dimensional data management device 100 may be implemented in the multi-dimensional database 300, or may be implemented separately into a separate device. In the embodiment of the present invention will be described by referring to the multi-dimensional data management device 100 is separate from the multi-dimensional database 300 is present independently.
  • the multidimensional data management apparatus 100 when the multidimensional data management apparatus 100 receives the multidimensional data from the user terminal 200, the multidimensional data management apparatus 100 performs an algorithm (hereinafter, a distributed management algorithm) for distributed management of the multidimensional data through interworking with the multidimensional database 300.
  • a distributed management algorithm for distributed management of the multidimensional data through interworking with the multidimensional database 300.
  • Multi-dimensional data is distributed and stored in each instance DB server of the multi-dimensional database 300 to generate distributed management performance results.
  • the multi-dimensional data management apparatus 100 provides the distributed terminal management result to the user terminal 200.
  • the user terminal 200 may be a terminal used by a user to receive a hash-based data distribution management service, and may transmit multidimensional data to the multidimensional data management apparatus 100 to request generation of a distributed management performance result.
  • the multidimensional data is data that a user intends to store in the multidimensional database 300 and may include all data expressed in various formats (HDF5, HDF4, NetCDF, CSV, etc.). In the present invention, regardless of the data format, all data represented by multi-dimensional data is targeted.
  • the user terminal 200 may be a terminal of an organization / organization that wants to receive a hash-based data distribution management service, or may be a terminal used by an individual.
  • the multidimensional database 300 is a database for modeling a large amount of multidimensional data (for example, scientific information, medical information, etc.) and managing data including a plurality of attribute items in order to support query processing and operation.
  • multidimensional data for example, scientific information, medical information, etc.
  • the operation corresponding to the distributed management procedure Substantially execute and distribute and store the multidimensional data.
  • FIG. 2 illustrates an example of the multidimensional database 300 that operates in conjunction with the multidimensional data management apparatus 100 so that a hash based data distribution management service may be provided.
  • the multidimensional database 300 of the present invention is operated by at least one instance DB server (0, 1 ... n).
  • Each instance DB server (0,1 ... n) is assigned an array storage (AS0,1 ... n) to store and manage multidimensional data distributed according to the execution of distributed management procedures.
  • chunk arrays (hereinafter, chunks) corresponding to the array storages AS0, 1 ... n are allocated and parallelized.
  • multi-dimensional data is distributed to each chunk of the instance DB server (0, 1 ... n) in the process of performing the distributed management procedure.
  • the corresponding array storage (AS0,1 ... n) corresponding to each chunk has multi-dimensional transform data which is finally generated when the distribution management procedure (distribution, sorting, conversion) for the corresponding multidimensional data distributed in the chunk is completed. Will be saved.
  • the multidimensional database 300 may support parallel distributed operation on multidimensional data by substantially executing an operation corresponding to a distributed management procedure through interworking with the multidimensional data management apparatus 100.
  • the multi-dimensional data management apparatus 100 and the multi-dimensional database 300 are linked to perform the distributed management procedure according to the distributed management algorithm.
  • the present invention is not limited thereto and the multi-dimensional database 300 may be multi-dimensional.
  • the multi-dimensional database 300 alone may provide a service by performing a distributed management procedure.
  • the multi-dimensional data management apparatus 100 may include at least one chunk based on specific hash information for at least one specific dimension data included in the multi-dimensional data.
  • the distribution management unit 110 for distributing specific dimension data to the array, the sorting management unit 120 for sorting the specific dimension data distributed to each chunk based on the dimension of the specific dimension data distributed for each chunk, and the sorted specific dimension data. It may have a configuration including a storage management unit 130 to convert to a specific format is set in the instance DB server associated with the chunk.
  • the multi-dimensional data management apparatus 100 stores all the information (for example, multi-dimensional data, hash functions, distributed management performance results, etc.) generated and transmitted to provide a hash-based data distribution management service, It may have a configuration that further includes a storage unit 140 provided on request.
  • the whole or at least part of the configuration of the multi-dimensional data management apparatus 100 including the distribution management unit 110, the alignment management unit 120, the storage management unit 130, and the storage unit 140 may be executed by a processor. Or it may be implemented in the form of a hardware module, or may be implemented in the form of a combination of a software module and a hardware module.
  • the multi-dimensional data management apparatus 100 by performing the optimized distributed management for the multi-dimensional data based on the hash technique, unlike the conventional loading time and unnecessary unnecessary for data loading It provides a new multi-dimensional data distribution management method to enable high-speed data loading to minimize the cost, in the following it will be described in detail for each configuration in the multi-dimensional data management apparatus 100 for this purpose.
  • the distribution manager 110 distributes multidimensional data based on a hash technique.
  • the distribution management unit 110 when the user selects the multi-dimensional data to be stored in the multi-dimensional database 300, the distribution management unit 110 includes at least one chunk based on the specific hash information for each of the at least one specific dimension data included in the multi-dimensional data. Distribute specific dimension data to
  • the distribution management unit 110 calculates the final hash value corresponding to the specific hash information based on the result of calculating the hash value for each dimension of the specific dimension data based on the specific hash function, and the final hash value. Based on this, identify the chunk to be distributed and distribute specific dimension data.
  • the specific hash function is to find a hash value for each dimension of the specific dimension data, and may be defined as in Equation 1.
  • H i (H i-1 * Prime) ((V i -Min i ) / ChunkInterval i )
  • H i is a hash value for each dimension, and initial values H 0 of all the dimensions are initialized to "0".
  • H d is the final hash value finally calculated in the d dimension based on the hash value calculated for each dimension when the number of dimensions is d.
  • Prime is a prime number for finding non-overlapping hash values
  • V i is a position data value corresponding to a position in the i-th dimension of the multidimensional data.
  • Min i is the minimum position data value in the dimension
  • ChunkInterval is the chunk range of the i-th dimension
  • N is the number of instance DB servers in the multidimensional database. Is the XOR of the bitwise operation.
  • Equation 2 which is a modular operation, is used to calculate the final hash value.
  • H d is a final hash value finally calculated in the d dimension based on a hash value calculated for each dimension when the number of dimensions is d
  • N is the number of instance DB servers of the multidimensional database.
  • FIG. 4 illustrates an example of multidimensional data to be distributed based on a hash technique.
  • attribute values for multidimensional data are not separately indicated.
  • the X-axis is one-dimensional
  • the Y-axis is two-dimensional
  • the chunk size (ChunkInterval) for each dimension is ". 3 "
  • the number of instance DB servers (N) is 4
  • the prime number is" 991 "
  • the minimum position data value per dimension is (0,0)
  • the distribution management unit 110 first performs a process for finding a hash value for each dimension of specific dimension data D00-D55 included in the multidimensional data.
  • H 0 "0" which is the initial value of all the dimensions
  • the distribution management unit 110 calculates the hash value H 1 in one dimension (X axis) of the specific dimension data D00 by applying the first parameter to Equation 1 as follows.
  • the distribution management unit 110 calculates the hash value H 2 in the two-dimensional (Y-axis) of the specific dimension data D00 by applying the second parameter to Equation 1 as follows.
  • the second parameter in the function (H i) to a particular application, a particular year when function (H 2) the hash value in a given dimension data one-dimensional (X-axis) in the (D00) (H 1)
  • the distribution management unit 110 calculates the final hash value of the specific dimension data D00. Equation 2 is used.
  • the distribution management unit 110 calculates a final hash value of the specific dimension data D00 by applying the third parameter to Equation 2 as follows.
  • the distribution management unit 110 distributes specific dimension data D00 related to the final hash value to the corresponding chunk having the chunk number matching the final hash value.
  • the size of the final hash value (0,1,2 %) and the chunk number (0,1,2 ...) for distinguishing the chunks may be matched in advance. For example, if the size of the final hash value is "0”, the chunk number also matches “0", and if the size of the final hash value is "1", the chunk number also matches "1".
  • the final hash value of the specific dimension data D00 is calculated as "0"
  • the corresponding chunk having the chunk number "0" matching the size of the final hash value is detected and the specific dimension data D00 is distributed. You can do it.
  • 5 and 6 illustrate a process of distributing specific dimensional data D00 to the corresponding chunk after detecting the corresponding chunk by calculating a final hash value based on the hash values for each dimension of the specific dimensional data D00 described above. If the remaining specific dimensional data (D01-D55) to perform the same, as shown in Figure 7, the final hash value of the specific dimensional data (D00, D01, D02, D10, D11, D12, D20, D21, D22) Since it is calculated as "0", the distribution will be made to the chunk Chunk0 having the chunk number "0".
  • the distribution management unit 110 informs the alignment management unit 120 that the distribution of the corresponding chunks for all the specific dimension data D00-D55 included in the multidimensional data is completed.
  • the sorting management unit 120 sorts the specific dimension data distributed for each chunk.
  • the alignment management unit 120 sorts the specific dimension data distributed to each chunk based on the dimension of the specific dimension data distributed for each chunk.
  • the sorting management unit 120 determines the sorting order for each dimension of the specific dimension data distributed for each chunk based on the preset dimension management method. Thereafter, the sorting management unit 120 sorts the location information values of the corresponding dimension having the fastest sort order and the location information values of the corresponding dimension in the next order.
  • the preset dimension management method may be a method previously set by each instance DB server (0,1 ... n) of the multidimensional database 300 to manage the dimension.
  • the preset dimension management method for example, when the multi-dimensional data is two-dimensional (2-dimension) two-dimensional (Y-axis) than one dimension (X-axis) of one (X-axis) and two-dimensional (Y-axis) If the sorting order of) is preceded, the sorting order is performed on the two-dimensional (Y-axis) position information value based on the fastest two-dimensional (Y-axis), and at the same time, the one-dimensional (X-axis) of the next order is performed. ) May be to align the location information values of one dimension (X-axis).
  • the alignment management unit 120 performs a chunk 0. Check the preset dimension management method of instance DB server 0 corresponding to.
  • the alignment management unit 120, the preset dimension management method is a way that the two-dimensional (Y-axis) sorting order precedes one dimension (X-axis) of the two dimensions (X-axis, Y-axis) of the multi-dimensional data Therefore, after sorting the location information values of 2D (Y axis) based on the 2D (Y axis) which has the fastest sort order, 1D (X axis) based on 1D (X axis) of the next order It is possible to confirm that the location information of) should be sorted.
  • the alignment management unit 120 may determine the location information of the specific dimensional data D00, D01, D02, D10, D11, D12, D20, D21, and D22 in the chunk (Chunk0). Check it.
  • the alignment management unit 120 obtains the position information of the remaining specific dimension data D01, D02, D10, D11, D12, D20, D21, D22 in the same manner as (0,1), (0,2), ( 1,0), (1,1), (1,2), (2,0), (2,1), (2,2).
  • the sorting management unit 120 sorts the "0" having the smallest two-dimensional (Y-axis) location information value in order based on the two-dimensional (Y-axis) having the fastest sorting order, and at the same time, the one-dimensional of the next order. (0,0), (1,0), and (2,0), which are the result of aligning the position information values in one dimension (X axis) with respect to (X axis), are placed in the chunk (Chunk0). Then, the alignment management unit 120, (0,1), (1,1), (2, which is a result of the alignment of the position information values " 1 " and " 2 " 2,1) and (0,2), (1,2) and (2,2) are placed in the chunk (Chunk0).
  • the alignment chunk Chunk0 is generated by changing the arrangement of the specific dimension data D00, D01, D02, D10, D11, D12, D20, D21, and D22 included in the chunk Chunk0.
  • Chunk 1, 2, 3 when the alignment of the specific dimension data distributed to each chunk is completed based on the dimension of the specific dimension data distributed by the remaining chunks (Chunk 1, 2, 3), the alignment corresponding to the remaining chunks (Chunk 1, 2, 3) is completed. Chunks Chunk1 ', 2', and 3 'are generated.
  • Such a sorting method of the present invention can use an external-merge sort method because a large amount of multidimensional data is sorted as a synchronization method, and a sorting algorithm suitable for the quantity of multidimensional data can be used.
  • the data is continuously merged and sorted during the distribution of the multi-dimensional data by the hash method
  • it can also be sorted based on asynchronous methods such as insertion sort, bucket sort, and the like.
  • the storage manager 130 converts and stores the specific dimension data arranged in a predetermined specific format.
  • the storage management unit 130 when the alignment of the specific dimension data distributed for each chunk from the alignment management unit 120 is completed, converts the sorted specific dimension data into a predetermined specific format instance associated with the chunk Save to DB server.
  • the storage management unit 130 generates specific dimension conversion data by converting the specific dimension data arranged based on the preset specific format, and stores the specific dimension conversion data in the instance DB server associated with the corresponding chunk.
  • the predetermined specific format may be a storage format for managing multidimensional data in each instance DB server (0,1 ... n) of the multidimensional database 300.
  • the preset specific format includes a Dense Array Format having values in all cells of the array storage (AS0,1 ... n) allocated to each instance DB server (0,1 ... n), It may include a sparse array format in which values are scattered in only a few cells of the array storage AS0, 1... N.
  • the storage management unit 130 When the storage management unit 130 generates the alignment chunks (Chunk0 ', 1', 2 ', 3') corresponding to the chunks (Chunk0, 1, 2, 3) from the alignment management unit 120, the alignment chunk ( After converting the data stored in Chunk0 ', 1', 2 ', 3') based on Dense Array Format, which is a specific format, the cell values corresponding to the cells of array storage (AS0,1,2,3) are allocated. Create specific dimension transform data.
  • the storage management unit 130 checks the array storages AS0, 1, 2, and 3 corresponding to the chunks (Chunk 0, 1, 2, and 3), and checks the corresponding instance DB servers (0, 1, 2, and 3). Detect. Subsequently, the storage management unit 130 converts the specific dimensional transformation data generated for each chunk (Chunk0, 1, 2, 3) into an instance DB server (0, 1, 2) associated with the corresponding chunks (Chunk0, 1, 2, 3). 3).
  • the storage management unit 130 When the storage of the specific dimensional conversion data is completed according to the above, the storage management unit 130, since all the distributed management procedures are completed, to generate the distributed management performance results to inform that the completion of the distributed management for the multi-dimensional data do.
  • the storage manager 130 transmits the distributed management performance result to the user terminal 200.
  • the array storage AS0, 2 is allocated to the instance DB server 0 and the array storage AS1, 3 is allocated to the instance DB server 1, the array storage AS0, 2 is assigned to the instance storage server AS0,2.
  • the chunks (0, 2) correspond to each other and the chunks (1, 3) are returned to the array storage (AS1, 3), so that specific dimensional conversion data generated for each chunk (Chunk0, 1, 2, 3) is associated with the corresponding chunk. Can be stored in the associated instance DB server (0,1).
  • the multi-dimensional data management apparatus 100 of the present invention since the multi-dimensional data is directly mapped to each instance DB server based on the hash value and loaded, the multi-dimensional data management process is different from the existing multi-dimensional data storage method. Can be essentially blocked, reducing the overhead of loading. This minimizes the overall loading cost and time.
  • the multi-dimensional data management apparatus 100 of the present invention by performing the optimized distributed management for the multi-dimensional data based on the hash technique, by minimizing the loading time and cost that is unnecessary for the data loading unlike the conventional The effect of providing a new multi-dimensional data distribution management scheme that enables high-speed data loading is derived.
  • the multi-dimensional data management apparatus 100 When the user selects the multi-dimensional data to be stored in the multi-dimensional database 300 (S100), the multi-dimensional data management apparatus 100 based on at least one specific hash information for each specific dimension data included in the multi-dimensional data at least one Distribute specific dimension data to the chunks (S110-S140).
  • the multi-dimensional data management apparatus 100 calculates the final hash value corresponding to the specific hash information based on the result of calculating the hash value for each dimension of the specific dimension data based on the specific hash function, and the final solution. Distribute specific dimension data by identifying the chunk to be distributed based on the time value.
  • the specific hash function is to find a hash value for each dimension of the specific dimension data, and may be defined as in Equation 1 below.
  • H i (H i-1 * Prime) ((V i -Min i ) / ChunkInterval i )
  • H i is a hash value for each dimension, and initial values H 0 of all the dimensions are initialized to "0".
  • H d is the final hash value finally calculated in the d dimension based on the hash value calculated for each dimension when the number of dimensions is d.
  • Prime is a prime number for finding non-overlapping hash values
  • V i is a position data value corresponding to a position in the i-th dimension of the multidimensional data.
  • Min i is the minimum position data value in the dimension
  • ChunkInterval is the chunk range of the i-th dimension
  • N is the number of instance DB servers in the multidimensional database. Is the XOR of the bitwise operation.
  • Equation 2 which is a modular operation, is used to calculate the final hash value.
  • H d is a final hash value finally calculated in the d dimension based on a hash value calculated for each dimension when the number of dimensions is d
  • N is the number of instance DB servers of the multidimensional database.
  • FIG. 4 illustrates an example of multidimensional data to be distributed based on a hash technique.
  • attribute values for multidimensional data are not separately indicated.
  • the X-axis is one-dimensional
  • the Y-axis is two-dimensional
  • the chunk size (ChunkInterval) for each dimension is ". 3 "
  • the number of instance DB servers (N) is 4
  • the prime number is" 991 "
  • the minimum position data value per dimension is (0,0)
  • the multidimensional data management apparatus 100 applies the first parameter to Equation 1 to calculate the hash value H 1 in one dimension (X axis) of the specific dimension data D00 as follows.
  • the multidimensional data management apparatus 100 calculates the second parameter for calculating the hash value H 2 in the two-dimensional (Y-axis) of the specific dimension data D00.
  • H 1 "0" which is a hash value in one dimension (X axis)
  • Prime Number 991 "
  • Min 2 0 "which is the minimum position data value in two-dimensional (Y-axis)
  • ChunkInterval " 3 "which is the size of the chunk in two-dimensional (Y-axis).
  • the multi-dimensional data management apparatus 100 applies the second parameter to Equation 1 to calculate the hash value H 2 in the second dimension (Y axis) of the specific dimension data D00 as follows.
  • the second parameter in the function (H i) to a particular application, a particular year when function (H 2) the hash value in a given dimension data one-dimensional (X-axis) in the (D00) (H 1)
  • value will correspond to the exclusive-OR (XOR) of the second result value ((0-0) / 3) for the division (Min 2) in the chunk range (ChunkInterval).
  • the hash value H 2 of the two-dimensional (Y-axis) to calculate the hash value of the two dimensions (X-axis, Y-axis) included in the specific dimension data D00
  • the hash value (H 1 ) first.
  • the parameter of Equation 2 which is a modular operation, will be described later, only the hash value H 2 of the two-dimensional (Y-axis) is applied to calculate the final hash value for the specific dimension data D00, the specific dimension data All dimensions of (D00), that is, (X-axis, Y-axis), are reflected to determine the chunk.
  • the multi-dimensional data management unit 100 is modular in order to calculate the final solution when the value of a specific dimension data (D00) Equation 2 is used.
  • the multidimensional data management apparatus 100 calculates a final hash value of the specific dimension data D00 by applying the third parameter to Equation 2 as follows.
  • the multidimensional data management apparatus 100 distributes specific dimension data D00 related to the final hash value to the corresponding chunk having the chunk number matching the final hash value. .
  • 5 and 6 illustrate a process of distributing specific dimensional data D00 to the corresponding chunk after detecting the corresponding chunk by calculating a final hash value based on the hash values for each dimension of the specific dimensional data D00 described above. If the remaining specific dimensional data (D01-D55) to perform the same, as shown in Figure 7, the final hash value of the specific dimensional data (D00, D01, D02, D10, D11, D12, D20, D21, D22) Since it is calculated as "0", the distribution will be made to the chunk Chunk0 having the chunk number "0".
  • the multi-dimensional data management apparatus 100 determines a sorting order for each dimension of specific dimension data distributed for each chunk based on a preset dimension management scheme. Thereafter, the multi-dimensional data management apparatus 100 sorts the location information values of the corresponding dimension having the fastest sort order and at the same time arranges the location information values of the corresponding dimension in the next order (S150).
  • the multidimensional data management apparatus 100 has a preset dimension management method in which the order of alignment of two dimensions (Y axis) is higher than one dimension (X axis) of two dimensions (X axis and Y axis) of the multidimensional data. If the method is to be preceded, the sorting order is performed on the two-dimensional (Y-axis) position information value based on the fastest two-dimensional (Y-axis), and then 1 on the one-dimensional (X-axis) of the next order. It is possible to confirm that the location information of the dimension (X axis) should be aligned.
  • the multidimensional data management apparatus 100 obtains the position information of the remaining specific dimension data D01, D02, D10, D11, D12, D20, D21, D22 in the same manner as (0,1), (0,2). , (1,0), (1,1), (1,2), (2,0), (2,1), (2,2).
  • the multi-dimensional data management apparatus 100 sorts, in order, the "0" having the smallest two-dimensional (Y-axis) positional information value based on the two-dimensional (Y-axis) having the fastest sorting order in the following order. (0,0), (1,0), and (2,0), which are the result of aligning the location information values of one dimension (X axis) with respect to one dimension (X axis), are placed in the chunk (Chunk0). Then, the multidimensional data management apparatus 100 is (0,1), (1,1), which is a result of the alignment of the position information values " 1 " and " 2 " , (2,1) and (0,2), (1,2), (2,2) are placed in the chunk (Chunk0).
  • the alignment chunk Chunk0 is generated by changing the arrangement of the specific dimension data D00, D01, D02, D10, D11, D12, D20, D21, and D22 included in the chunk Chunk0.
  • the multidimensional data management apparatus 100 performs the rest in the same manner.
  • An alignment chunk Chunk1 ', 2', 3 'corresponding to the chunks Chunk1, 2, 3 is generated.
  • the multidimensional data management apparatus 100 generates specific dimension converted data by converting the specific dimension data arranged based on a predetermined specific format, and stores the specific dimension converted data in an instance DB server associated with the corresponding chunk. (S160, S170).
  • the predetermined specific format may be a storage format for managing multidimensional data in each instance DB server (0,1 ... n) of the multidimensional database 300.
  • the preset specific format includes a Dense Array Format having values in all cells of the array storage (AS0,1 ... n) allocated to each instance DB server (0,1 ... n), It may include a sparse array format in which values are scattered in only a few cells of the array storage AS0, 1... N.
  • the alignment chunks (Chunk0 ', 1', 2 ', 3') corresponding to the chunks (Chunk0, 1, 2, 3)
  • the alignment chunks (Chunk0 ', 1) are completed.
  • the multi-dimensional data management apparatus 100 checks the array storages AS0, 1, 2, and 3 corresponding to the chunks Chunk0, 1, 2, and 3, and checks the corresponding instance DB servers (0, 1, 2, 3) is detected. Subsequently, the multidimensional data management apparatus 100 converts the specific dimensional transformation data generated for each chunk (Chunk0, 1, 2, 3) into an instance DB server (0, 1) associated with the corresponding chunks (Chunk0, 1, 2, 3). Store in (2,3).
  • the multi-dimensional data management apparatus 100 When the storage of the specific dimensional conversion data is completed according to the above, the multi-dimensional data management apparatus 100, since all the distributed management procedures have been completed, distributed management performance results to inform that the completion of the distributed management for the multi-dimensional data is completed Generates and delivers it to the user terminal (200).
  • the present invention since the multi-dimensional data is directly mapped to each instance DB server based on the hash value and loaded, the present invention can fundamentally block the relocation process of the multi-dimensional data, unlike the existing multi-dimensional data storage method. This can reduce overhead, which in turn minimizes overall loading costs and time.
  • the apparatus and method for managing the multi-dimensional data of the present invention by allowing the optimized distributed management of the multi-dimensional data to be performed based on the hash technique, loading time and cost, which is unnecessarily consumed for data loading unlike the conventional We can derive the effect that can provide a new multi-dimensional data distribution management method, which enables high-speed data loading by minimizing the number.
  • Embodiments of the present invention can be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
  • Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
  • the hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

Landscapes

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

Abstract

본 발명은 해시 기법을 기반으로 다차원 데이터에 대한 최적화된 분산 관리가 수행되도록 함으로써, 기존과 달리 데이터 적재를 위해 불필요하게 소비되는 적재 시간 및 비용을 최소화하여 고속 데이터 로딩이 가능하고, 새로운 다차원 데이터 분산관리 방안이 실현되도록 하는 다차원 데이터를 관리하기 위한 장치 및 그 방법을 제안한다. 다차원데이터관리 장치는 다차원 데이터에 포함되는 적어도 하나의 특정차원데이터 별 특정해시(hash)정보를 기반으로 적어도 하나의 청크(chunk)에 특정차원데이터를 분배하는 분배 관리부; 청크 별로 분배된 특정차원데이터의 차원을 기반으로 각 청크에 분배된 특정차원데이터를 정렬하는 정렬관리부; 및 정렬된 특정차원데이터를 기 설정된 특정 포맷으로 변환하여 해당 청크와 관련되는 인스턴스DB서버에 저장하는 저장관리부를 포함한다.

Description

다차원 데이터를 관리하기 위한 장치 및 그 방법
본 발명은 다차원 데이터베이스(Multi-dimensional database) 기반의 데이터 관리 기술에 관한 것으로, 더욱 상세하게는, 해시 기법을 기반으로 다차원 데이터에 대한 최적화된 분산 관리를 수행할 수 있는, 새로운 다차원 데이터 분산관리 방안에 관한 것이다.
다차원 데이터베이스는 과학정보, 의료정보 등과 같은 대용량의 다차원 데이터를 모델링하고, 질의 처리 및 연산을 지원하기 위해 다수의 애트리뷰트(Attribute, 이하 속성) 항목이 포함된 자료를 관리하는 데이터베이스이다.
이러한 다차원 데이터베이스를 기반으로 대용량의 다차원 데이터를 분석 및 그 결과를 저장할 수 있다. 그러나, 최근 실험 데이터 및 과학연구에서 활용되는 데이터의 용량이 관측 장비와 관련 기술의 발달로 이러한 다차원 데이터를 적재하기까지 오랜 시간이 소비되어야만 한다.
즉, 다차원 데이터의 경우, 하나의 레코드가 여러 특징을 가지는 형태를 가지므로 이를 데이터베이스에 적재하기 위해서는, 적재하려는 다차원 데이터베이스의 포맷으로 변환하는 과정, 분배하는 과정, 정렬하는 과정 등이 수행되어야만 한다.
이러한 다차원 데이터의 기존 저장 과정을 보다 구체적으로 설명하면, 다차원 데이터베이스의 경우, 클러스터를 활용하여 데이터 파일 포맷(예: CSV 등)으로 다차원 데이터를 관리하게 된다. 이때, 다차원 데이터가 HDF5 데이터로 입력되는 경우, 반드시 포맷 변경을 수행해야만 적재가 가능하다. 이후, CSV 형태의 다차원 데이터를 분산하여 해당 인스턴스DB서버에 배치하는 과정이 수행되며, 분산 방식으로는 주로 라운드로빈(Round-Robin) 방식이 이용된다.
이처럼 데이터 분산이 완료되면, 다차원 데이터베이스의 각 인스턴스DB서버에서는 분산된 데이터를 정렬하여 각 청크(Chunk)를 구성하게 된다. 이 과정에서 분배된 다차원 데이터를 관리하지 못하는 경우가 발생할 수 있다. 이에, 관리가 어려운 해당 데이터를 다른 인스턴스DB서버로 전송하는 재분배 과정을 수행한 이후, 다차원 데이터를 정렬하고, 데이터베이스 포맷으로 변환하여 해당 인스턴스DB서버에 적재되게 된다.
전술에서 알 수 있듯이, 기존 저장 과정을 수행하게 되면, 다차원 데이터베이스의 각 인스턴스DB서버에서 관리하기 어려운 다차원 데이터가 분배될 수 있기 때문에 해당 데이터를 재배치하기 위해 불필요한 재배치 과정을 수행해야 한다. 이로 인해 네트워크 I/O가 발생하여 네트워크 병목 현상이 발생하게 되는 문제가 있다.
또한, 분배된 다차원 데이터를 재배치하기 위해서는 인스턴스DB서버 간의 통신이 발생하게 되므로, 오버헤드가 증가될 수 밖에 없으며, 그에 따라 적재 비용 및 시간이 증가하게 되는 한계점이 존재한다.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은, 해시 기법을 기반으로 다차원 데이터에 대한 최적화된 분산 관리가 수행되도록 함으로써, 기존과 달리 데이터 적재를 위해 불필요하게 소비되는 적재 비용 및 시간을 최소화하여 고속 데이터 로딩이 가능하도록 하는, 새로운 다차원 데이터 분산관리 방안이 실현되도록 하는데 있다.
상기 목적을 달성하기 위한 본 발명에 따른 다차원데이터관리장치는, 다차원 데이터에 포함되는 적어도 하나의 특정차원데이터 별 특정해시(hash)정보를 기반으로 적어도 하나의 청크(chunk)에 상기 특정차원데이터를 분배하는 분배관리부; 상기 청크 별로 분배된 특정차원데이터의 차원을 기반으로 각 청크에 분배된 특정차원데이터를 정렬하는 정렬관리부; 및 상기 정렬된 특정차원데이터를 기 설정된 특정포맷으로 변환하여 해당 청크와 관련되는 인스턴스DB서버에 저장하는 저장관리부를 포함하는 것을 특징으로 한다.
상기 분배관리부는, 특정해시함수를 기반으로 상기 특정차원데이터의 차원 별 해시값을 산출한 결과에 기초하여 상기 특정해시정보에 해당하는 최종해시값을 산출하는 것을 특징으로 한다.
상기 특정차원데이터는 차원 별로 해당 차원에서의 위치에 대응하는 위치값을 포함하며, 상기 특정해시함수는, 금번 해시값을 산출하려는 제1 차원보다 먼저 해시값이 산출된 제2 차원의 해시값, 소수(Prime Number), 상기 제1 차원의 위치값, 제1 차원의 청크범위 중 적어도 하나를 파라미터로 이용하는 것을 특징으로 한다.
상기 특정해시함수는, 상기 제2 차원의 해시값과 상기 소수를 곱한 제1 결과값과, 상기 제1 차원의 위치값과 상기 제1 차원의 최소 위치값의 차이값을 상기 제1 차원의 청크범위로 나눗셈한 제2 결과값에 대한 배타적논리합(XOR)에 대응하는 것을 특징으로 한다.
상기 분배관리부는, 상기 특정해시함수를 기반으로 상기 제2 차원의 해시값을 이용하여 상기 제1 차원의 해시값이 산출되면, 상기 제1 차원의 해시값과 상기 다차원 데이터를 관리하는 인스턴스DB서버의 전체개수를 기반으로 모듈러 연산을 수행하여 상기 최종해시값을 산출하는 것을 특징으로 한다.
상기 최종해시값의 크기는 상기 청크를 구분하는 청크번호와 매칭되며 상기 분배관리부는, 상기 최종해시값과 매칭되는 상기 청크번호를 갖는 해당 청크에 상기 최종해시값과 관련되는 특정차원데이터를 분배하는 것을 특징으로 한다.
상기 정렬관리부는, 기 설정된 차원관리방식을 기반으로 상기 청크 별로 분배된 특정차원데이터의 차원 별 정렬순서를 결정하고, 상기 정렬순서가 가장 빠른 해당 차원의 위치정보값을 정렬하는 동시에 다음 순서의 해당 차원의 위치정보값을 정렬하는 것을 특징으로 한다.
상기 저장관리부는, 기 설정된 특정포맷을 기반으로 상기 정렬된 특정차원데이터를 변환하여 특정차원변환데이터를 생성하고, 상기 특정차원변환데이터를 해당 청크와 관련되는 인스턴스DB서버에 저장하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명에 따른 다차원데이터관리장치의 동작방법은, 다차원 데이터에 포함되는 적어도 하나의 특정차원데이터 별 특정해시정보를 기반으로 적어도 하나의 청크(chunk)에 상기 특정차원데이터를 분배하는 분배관리단계; 상기 청크 별로 분배된 특정차원데이터의 차원을 기반으로 각 청크에 분배된 특정차원데이터를 정렬하는 정렬관리단계; 및 상기 정렬된 특정차원데이터를 기 설정된 특정포맷으로 변환하여 해당 청크와 관련되는 인스턴스DB서버에 저장하는 저장관리단계를 포함하는 것을 특징으로 한다.
상기 분배관리단계는, 특정해시함수를 기반으로 상기 특정차원데이터의 차원 별 해시값을 산출한 결과에 기초하여 상기 특정해시정보에 해당하는 최종해시값을 산출하는 것을 특징으로 한다.
상기 특정차원데이터는 차원 별로 해당 차원에서의 위치에 대응하는 위치값을 포함하며, 상기 특정해시함수는, 금번 해시값을 산출하려는 제1 차원보다 먼저 해시값이 산출된 제2 차원의 해시값, 소수(Prime Number), 상기 제1 차원의 위치값, 제1 차원의 청크범위 중 적어도 하나를 파라미터로 이용하는 것을 특징으로 한다.
상기 특정해시함수는, 상기 제2 차원의 해시값과 상기 소수를 곱한 제1 결과값과, 상기 제1 차원의 위치값과 상기 제1 차원의 최소 위치값의 차이값을 상기 제1 차원의 청크범위로 나눗셈한 제2 결과값에 대한 배타적논리합(XOR)에 대응하는 것을 특징으로 한다.
상기 분배관리단계는, 상기 특정해시함수를 기반으로 상기 제2 차원의 해시값을 이용하여 상기 제1 차원의 해시값이 산출되면, 상기 제1 차원의 해시값과 상기 다차원 데이터를 관리하는 인스턴스DB서버의 전체개수를 기반으로 모듈러 연산을 수행하여 상기 최종해시값을 산출하는 것을 특징으로 한다.
상기 최종해시값의 크기는 상기 청크를 구분하는 청크번호와 매칭되며, 상기 분배관리단계는, 상기 최종해시값과 매칭되는 상기 청크번호를 갖는 해당 청크에 상기 최종해시값과 관련되는 특정차원데이터를 분배하는 것을 특징으로 한다.
상기 정렬관리단계는, 기 설정된 차원관리방식을 기반으로 상기 청크 별로 분배된 특정차원데이터의 차원 별 정렬순서를 결정하고, 상기 정렬순서가 가장 빠른 해당 차원의 위치정보값을 정렬하는 동시에 다음 순서의 해당 차원의 위치정보값을 정렬하는 것을 특징으로 한다.
상기 저장관리단계는, 기 설정된 특정포맷을 기반으로 상기 정렬된 특정차원데이터를 변환하여 특정차원변환데이터를 생성하고, 상기 특정차원변환데이터를 해당 청크와 관련되는 인스턴스DB서버에 저장하는 것을 특징으로 한다.
이에, 본 발명의 다차원 데이터를 관리하기 위한 장치 및 그 방법에 의하면, 해시 기법을 기반으로 다차원 데이터에 대한 최적화된 분산 관리가 수행되도록 함으로써, 기존과 달리 데이터 적재를 위해 불필요하게 소비되는 적재 시간 및 비용을 최소화하여 고속 데이터 로딩이 가능하도록 하는, 새로운 다차원 데이터 분산관리 방안을 제공할 수 있다.
도 1은 본 발명의 실시예에 따른 다차원데이터관리장치가 적용될 통신 환경을 나타내는 도면이다.
도 2는 본 발명의 실시예에 따른 다차원 데이터베이스의 개략적인 구성도를 나타내는 도면이다.
도 3은 본 발명의 실시예에 따른 다차원데이터관리장치의 개략적인 구성도를 나타내는 도면이다.
도 4는 본 발명의 실시예에 따른 해시 기법을 기반으로 분배하려는 다차원 데이터의 일례를 나타내는 도면이다.
도 5 및 도 6은 본 발명의 실시예에 따른 해시 기법을 기반으로 특정해시정보를 산출하는 일례를 나타내는 도면이다.
도 7은 본 발명의 실시예에 따른 청크에 분배된 특정차원데이터가 저장되는 일례를 나타내는 도면이다.
도 8은 본 발명의 실시예에 따른 청크에 분배된 특정차원데이터가 저장되는 다른예를 나타내는 도면이다.
도 9는 본 발명의 실시예에 따른 해시 기반 데이터 분산관리 서비스를 제공하는 흐름을 나타내는 도면이다.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 발명의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 발명에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 발명의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 발명의 사상이 제한되는 것으로 해석되어서는 아니됨을 유의해야 한다. 본 발명의 사상은 첨부된 도면 외에 모든 변경, 균등물 내지 대체물에 까지도 확장되는 것으로 해석되어야 한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 대하여 설명한다.
먼저, 도 1을 참조하여 본 발명의 다차원 데이터베이스(Multi-dimensional database) 기반의 데이터 관리를 수행하는 장치(이하, 다차원데이터관리장치)가 적용될 통신 환경을 설명하도록 하겠다.
도 1에 도시된 바와 같이, 본 발명이 적용될 통신 환경은, 다차원데이터관리장치(100), 사용자단말(200) 및 다차원 데이터베이스(Multi-dimensional database)(300)를 포함하는 구성을 가질 수 있다.
다차원데이터관리장치(100)는, 다차원 데이터베이스(300)와의 연동을 통해 다차원 데이터에 대한 최적화된 분산 관리가 수행되도록 하기 위한 장치로서, 특히 본 발명에서 제공하고자 하는 서비스 즉, 기존과 달리 다차원 데이터 적재를 위해 불필요하게 소비되는 적재 시간 및 비용을 최소화하여 고속 데이터 로딩이 가능하도록 하는, 해시(hash) 기법을 기반으로 다차원 데이터에 대한 최적화된 분산 관리를 수행하는 서비스(이하, 해시 기반 데이터 분산관리 서비스)를 제공하기 위한 장치이다.
이러한, 다차원데이터관리장치(100)는, 다차원 데이터베이스(300) 내에 구현되거나, 또는 별도의 장치로 분리되어 구현될 수 있다. 본 발명의 실시예에서는 다차원데이터관리장치(100)가 다차원 데이터베이스(300)와 별도로 분리되어 독립적으로 존재하는 것으로 언급하여 설명하도록 하겠다.
즉, 다차원데이터관리장치(100)는, 사용자단말(200)로부터 다차원 데이터가 수신되면, 다차원 데이터베이스(300)와의 연동을 통해 다차원 데이터의 분산 관리를 위한 알고리즘(이하, 분산관리 알고리즘)을 수행하여 다차원 데이터베이스(300)의 각 인스턴스DB서버에 다차원 데이터가 분산 및 저장되도록 하여 분산관리수행결과를 생성한다. 그리고, 다차원데이터관리장치(100)는, 분산관리수행결과를 사용자단말(200)로 제공한다.
사용자단말(200)은, 해시 기반 데이터 분산관리 서비스를 제공받기 위해 사용자가 이용하는 단말일 수 있으며, 다차원 데이터를 다차원데이터관리장치(100)로 전송하여 분산관리수행결과의 생성을 요청할 수 있다.
여기서, 다차원 데이터는, 사용자가 다차원 데이터베이스(300)에 저장하려는 데이터로서, 다양한 포맷(HDF5, HDF4, NetCDF, CSV 등)으로 표현되는 모든 데이터를 포괄할 수 있다. 본 발명에서는 이러한 데이터 포맷과 상관 없이 다차원 데이터로 표현되는 모든 데이터를 대상으로 한다.
이러한, 사용자단말(200)은, 해시 기반 데이터 분산관리 서비스를 제공받기 원하는 기관/조직의 단말이거나, 또는 일반개인이 이용하는 단말일 수 있다.
다차원 데이터베이스(300)는, 대용량의 다차원 데이터(예: 과학정보, 의료정보 등)를 모델링하고, 질의 처리 및 연산을 지원하기 위해 다수의 속성 항목이 포함된 자료를 관리하는 데이터베이스이다.
이러한, 다차원 데이터베이스(300)는, 해시 기반 데이터 분산관리 서비스가 제공될 수 있도록 다차원데이터관리장치(100)로부터 분산관리 알고리즘에 따라 해당 분산관리절차의 수행이 요청되면, 분산관리절차에 해당하는 동작을 실질적으로 실행하여 다차원 데이터를 분산 및 저장한다.
이와 관련하여, 도 2에는 해시 기반 데이터 분산관리 서비스가 제공될 수 있도록 다차원데이터관리장치(100)와 연동하여 동작하는 다차원 데이터베이스(300)의 일례가 도시되어 있다.
도 2에 도시된 바와 같이, 본 발명의 다차원 데이터베이스(300)는, 적어도 하나의 인스턴스DB서버(0,1...n)에 의해 운영된다. 각 인스턴스DB서버(0,1...n)에는 어레이스토리지(AS0,1...n)가 할당되어 있어 분산관리절차의 실행에 따라 분산되는 다차원 데이터를 저장 및 관리할 수 있다.
이러한 분산관리절차를 수행하기 위해서는 다차원 데이터가 분할되어 관리되어야 한다. 이에, 어레이스토리지(AS0,1...n)에 대응하는 청크어레이(chunk array)(이하, 청크)가 할당되어 병렬화되게 된다.
즉, 인스턴스DB서버(0,1...n)의 각 청크에는, 분산관리절차가 실행되는 과정에서 다차원 데이터가 분배된다. 각 청크에 대응하는 해당 어레이스토리지(AS0,1...n)에는, 청크에 분배된 해당 다차원 데이터에 대한 분산관리절차(분배, 정렬, 변환)가 완료되었을 때 최종적으로 생성되는 다차원 변환데이터가 저장되게 된다.
이에, 다차원 데이터베이스(300)는, 다차원데이터관리장치(100)와의 연동을 통해 분산관리절차에 해당하는 동작을 실질적으로 실행하여 다차원 데이터에 대한 병렬분산연산을 지원할 수 있게 된다.
본 발명의 실시예에서는 다차원데이터관리장치(100)와 다차원 데이터베이스(300)가 연동하여 분산관리 알고리즘에 따른 분산관리절차가 수행되는 것으로 언급하였으나, 이에 한정되지 않으며, 다차원 데이터베이스(300) 내에서 다차원데이터관리장치(100)의 기능이 구현되는 경우에는 다차원 데이터베이스(300) 단독으로도 분산관리절차를 수행하여 서비스를 제공할 수도 있다.
이하에서는, 도 3을 참조하여 본 발명의 실시예에 따른 다차원데이터관리장치의 구성을 구체적으로 설명하겠다.
도 3에 도시된 바와 같이, 본 발명에 따른 다차원데이터관리장치(100)는, 다차원 데이터에 포함되는 적어도 하나의 특정차원데이터 별 특정해시(hash)정보를 기반으로 적어도 하나의 청크(chunk)에 특정차원데이터를 분배하는 분배관리부(110), 청크 별로 분배된 특정차원데이터의 차원을 기반으로 각 청크에 분배된 특정차원데이터를 정렬하는 정렬관리부(120), 및 정렬된 특정차원데이터를 기 설정된 특정포맷으로 변환하여 해당 청크와 관련되는 인스턴스DB서버에 저장하는 저장관리부(130)를 포함하는 구성을 가질 수 있다.
또한, 본 발명에 따른 다차원데이터관리장치(100)는, 해시 기반 데이터 분산관리 서비스를 제공하기 위해 생성 및 송수신되는 모든 정보(예: 다차원 데이터, 해시함수, 분산관리수행결과 등)을 저장하고, 요청에 따라 제공하는 저장부(140)를 더 포함하는 구성을 가질 수 있다.
이상의 분배관리부(110), 정렬관리부(120), 저장관리부(130) 및 저장부(140)를 포함하는 다차원데이터관리장치(100)의 구성 전체 내지는 적어도 일부는, 프로세서에 의해 실행되는 소프트웨어 모듈 형태 또는 하드웨어 모듈 형태로 구현되거나, 소프트웨어 모듈과 하드웨어 모듈이 조합된 형태로도 구현될 수 있다.
결국, 본 발명의 실시예에 따른 다차원데이터관리장치(100)는, 해시 기법을 기반으로 다차원 데이터에 대한 최적화된 분산 관리가 수행되도록 함으로써, 기존과 달리 데이터 적재를 위해 불필요하게 소비되는 적재 시간 및 비용을 최소화하여 고속 데이터 로딩이 가능하도록 하는, 새로운 다차원 데이터 분산관리 방안을 제공하게 되는 데, 이하에서는 이를 위한 다차원데이터관리장치(100) 내 각 구성에 대해 구체적으로 설명하기로 한다.
분배관리부(110)는, 해시 기법을 기반으로 다차원 데이터를 분배한다.
보다 구체적으로, 분배관리부(110)는, 사용자가 다차원 데이터베이스(300)에 저장하려는 다차원 데이터를 선택하면, 다차원 데이터에 포함되는 적어도 하나의 특정차원데이터 별 특정해시정보를 기반으로 적어도 하나의 청크에 특정차원데이터를 분배한다.
즉, 분배관리부(110)는, 특정해시함수를 기반으로 특정차원데이터의 차원 별 해시값을 산출한 결과에 기초하여 특정해시정보에 해당하는 최종해시값을 산출하고, 최종해시값을 기반으로 분배하려는 해당 청크를 확인하여 특정차원데이터를 분배한다.
여기서, 특정해시함수는, 특정차원데이터의 차원 별 해시값을 찾기 위한 것으로, 수학식 1과 같이 정의될 수 있다.
[수학식 1]
Hi= (Hi-1*Prime)
Figure PCTKR2017014375-appb-I000001
((Vi-Mini)/ChunkIntervali)
여기서, Hi는, 각 차원(dimension) 마다의 해시값이며, 이때 모든 차원의 초기값 H0은 "0"으로 초기화된다. Hd는, 차원의 수가 d일 때, 각 차원 별로 산출된 해시값을 기반으로 d차원에서 최종적으로 산출되는 최종해시값이다. Prime는, 중복되지 않는 해시값을 찾기 위한 소수(Prime Number)이며, Vi는, 다차원 데이터의 i번째 차원에서의 위치에 대응하는 위치 데이터값이다. Mini는, 해당 차원에서의 최소 위치 데이터값이며, ChunkInterval은 i번째 차원의 청크범위이며, N은 다차원 데이터베이스의 인스턴스DB서버의 개수이다.
Figure PCTKR2017014375-appb-I000002
는, 비트 연산의 XOR이다.
이처럼 수학식 1을 이용하여 특정차원데이터의 차원 별 해시값의 산출이 완료되면, 최종해시값의 산출을 위해 모듈러 연산인 수학식 2를 이용하게 된다.
[수학식 2]
H(F)= Hd%N
여기서, Hd는, 차원의 수가 d일 때, 각 차원 별로 산출된 해시값을 기반으로 d차원에서 최종적으로 산출되는 최종해시값이며, N은 다차원 데이터베이스의 인스턴스DB서버의 개수이다.
이와 관련하여, 도 4에는 해시 기법을 기반으로 분배하려는 다차원 데이터의 일례가 도시되어 있다. 도 4에서는, 차원(Dimension)에 대한 정보만이 활용되므로 다차원 데이터에 대한 속성값을 별도로 표기하지 않았다.
도 4에 도시된 바와 같이, 사용자로부터 선택되는 다차원 데이터가 2차원(2-dimension)일 때, X축이 1차원이고, Y축이 2차원이며, 각 차원 별로 청크의 크기(ChunkInterval)가 "3"이고, 인스턴스DB서버의 개수(N)가 4개이며, 소수(Prime Number)가 "991"이며, 차원 별 최소 위치 데이터값은 (0,0)인 경우, 다차원 데이터에 포함되는 적어도 하나의 특정차원데이터(D00-D55) 별 특정해시정보를 기반으로 적어도 하나의 청크에 특정차원데이터를 분배하는 과정에 대하여 설명하도록 하겠다.
분배관리부(110)는, 먼저 다차원 데이터에 포함되는 특정차원데이터(D00-D55)의 차원 별 해시값을 찾기 위한 과정을 수행한다.
즉, 분배관리부(110)는, 도 5에 도시된 바와 같이, 특정차원데이터(D00)의 1차원(X축)에서의 해시값(H1)을 산출하기 위한 제1 파라미터를 확인한다. 즉, 모든 차원의 초기값인 H0="0", 1차원(X축)에서의 위치에 대응하는 위치값인 V1 ="0", 1차원(X축)에서의 최소 위치 데이터값인 Min1="0", 1차원(X축)에서의 청크의 크기인 ChunkInterval="3"를 확인한다.
이후, 분배관리부(110)는, 수학식 1에 제1 파라미터를 적용하여 특정차원데이터(D00)의 1차원(X축)에서의 해시값(H1)을 아래와 같이 산출한다.
H1=(H0*991)
Figure PCTKR2017014375-appb-I000003
((0-0)/3)=0
이처럼 해시값(H1)의 산출이 완료되면, 분배관리부(110)는, 특정차원데이터(D00)의 2차원(Y축)에서의 해시값(H2)을 산출하기 위한 제2 파라미터를 확인한다. 즉, 1차원(X축)에서의 해시값인 H1="0", 소수(Prime Number)="991", 2차원(Y축)에서의 위치에 대응하는 위치값인 V2 ="0", 2차원(Y축)에서의 최소 위치 데이터값인 Min2="0", 2차원(Y축)에서의 청크의 크기인 ChunkInterval="3"를 확인한다.
이후, 분배관리부(110)는, 수학식 1에 제2 파라미터를 적용하여 특정차원데이터(D00)의 2차원(Y축)에서의 해시값(H2)을 아래와 같이 산출한다.
H2=(H1*991)
Figure PCTKR2017014375-appb-I000004
((0-0)/3)=0
결국, 제2 파라미터에는, 금번 해시값(H2)을 산출하려는 2차원(Y축)보다 먼저 해시값이 산출된 1차원(X축)의 해시값(H1), 소수(Prime Number), 2차원(Y축)에서의 위치에 대응하는 위치값(V2), 2차원(Y축)의 청크범위(ChunkInterval), 2차원(Y축)에서의 최소 위치 데이터값(Min2) 중 적어도 하나가 포함되게 된다.
이에, 특정해시함수(Hi)에 제2 파라미터가 적용되게 되면, 특정해시함수(H2)는, 특정차원데이터(D00)의 1차원(X축)에서의 해시값(H1)과 소수(Prime Number)를 곱한 제1 결과값(H1*991)과, 2차원(Y축)에서의 위치에 대응하는 위치값(V2)과 2차원(Y축)에서의 최소 위치 데이터값(Min2)을 청크범위(ChunkInterval)로 나눗셈한 제2 결과값((0-0)/3)에 대한 배타적논리합(XOR)에 대응하게 된다.
즉, 특정차원데이터(D00)에 포함되는 2개의 차원(X축, Y축) 중 금번 해시값을 산출하려는 2차원(Y축)의 해시값(H2)의 경우, 먼저 해시값(H1)이 산출된 1차원(X축)의 해시값을 반영된다. 이에, 후술하게 될 모듈러 연산인 수학식 2의 파라미터가 2차원(Y축)의 해시값(H2)만이 적용되어 특정차원데이터(D00)에 대한 최종해시값이 산출되게 되더라도, 특정차원데이터(D00) 별 모든 차원, 즉 (X축, Y축)이 반영되어 청크를 결정할 수 있게 된다.
이처럼 특정차원데이터(D00)의 차원 별 해시값(H1, H2)의 산출이 완료되면, 분배관리부(110)는, 특정차원데이터(D00)의 최종해시값의 산출을 위해 모듈러 연산인 수학식 2를 이용한다.
즉, 분배관리부(110)는, 특정차원데이터(D00)의 최종해시값을 산출하기 위한 제3 파라미터를 확인한다. 즉, 특정차원데이터(D00)의 2차원(Y축)에서의 해시값(H2), 다차원 데이터를 관리하는 인스턴스DB서버의 전체개수인 N="4"를 확인한다.
이후, 분배관리부(110)는, 수학식 2에 제3 파라미터를 적용하여 특정차원데이터(D00)의 최종해시값을 아래와 같이 산출한다.
H(F)= H2%4=0
결국, 최종해시값은, 1차원(X축)에서의 해시값(H1)을 이용하여 2차원(Y축)에서의 해시값(H2)이 산출되면, 2차원(Y축)에서의 해시값(H2)과 인스턴스DB서버의 전체개수(N)를 기반으로 모듈러 연산을 수행하여 산출되게 된다.
이처럼 최종해시값의 산출이 완료되면, 분배관리부(110)는, 최종해시값과 매칭되는 청크번호를 갖는 해당 청크에 최종해시값과 관련되는 특정차원데이터(D00)를 분배한다.
이때, 최종해시값의 크기(0,1,2...)와 청크를 구분하는 청크번호(0,1,2...)는 미리 매칭되어 있는 것이 바람직할 것이다. 예를 들어, 최종해시값의 크기가 "0"이면, 청크번호도 "0"으로 매칭되며, 최종해시값의 크기가 "1"이면, 청크번호도 "1"으로 매칭되도록 하는 것이다.
이에, 특정차원데이터(D00)의 최종해시값이 "0"으로 산출된다면, 최종해시값의 크기에 매칭되는 청크번호 "0"을 갖는 해당 청크를 검출하여 특정차원데이터(D00)를 분배할 수 있게 되는 것이다.
전술한 특정차원데이터(D00)의 차원 별 해시값을 기반으로 최종해시값을 산출하여 해당 청크를 검출한 후 특정차원데이터(D00)를 해당 청크에 분배하는 과정을 도 5 및 도 6에 도시된 나머지 특정차원데이터(D01-D55) 별로 동일하게 수행하게 된다면, 도 7과 같이, 특정차원데이터(D00, D01, D02, D10, D11, D12, D20, D21, D22)의 최종해시값은 "0"으로 산출되므로, 청크번호 "0"을 갖는 청크(Chunk0)에 분배가 이루어 질 것이다. 동일한 수행에 따라 특정차원데이터(D03, D04, D05, D13, D14, D15, D23, D24, D25)의 최종해시값은 "1"로 산출되므로, 청크번호 "1"를 갖는 청크(Chunk1)에 분배가 이루어 질 것이다. 특정차원데이터(D33, D34, D35, D43, D44, D45, D53, D54, D55)의 최종해시값은 "2"로 산출되므로, 청크번호 "2"를 갖는 청크(Chunk2)에 분배가 이루어 질 것이다. 특정차원데이터(D30, D31, D32, D40, D41, D42, D50, D51, D52)의 최종해시값은 "3"으로 산출되므로, 청크번호 "3"을 갖는 청크(Chunk3)에 분배가 이루어 질 것이다.
이후, 분배관리부(110)는, 다차원 데이터에 포함되는 모든 특정차원데이터(D00-D55)에 대한 해당 청크로의 분배가 완료되었음을 정렬관리부(120)로 알린다.
정렬관리부(120)는, 청크 별로 분배된 특정차원데이터를 정렬한다.
보다 구체적으로, 정렬관리부(120)는, 청크 별로 분배된 특정차원데이터의 차원을 기반으로 각 청크에 분배된 특정차원데이터를 정렬한다.
즉, 정렬관리부(120)는, 기 설정된 차원관리방식을 기반으로 청크 별로 분배된 특정차원데이터의 차원 별 정렬순서를 결정한다. 이후, 정렬관리부(120)는, 정렬순서가 가장 빠른 해당 차원의 위치정보값을 정렬하는 동시에 다음 순서의 해당 차원의 위치정보값을 정렬한다.
여기서, 기 설정된 차원관리방식이라 함은, 다차원 데이터베이스(300)의 각 인스턴스DB서버(0,1...n)가 차원을 관리하기 위해 미리 설정한 방식일 수 있다.
즉, 기 설정된 차원관리방식이, 예를 들어 다차원 데이터가 2차원(2-dimension)일 때 1차원(X축)과 2차원(Y축) 중 1차원(X축)보다 2차원(Y축)의 정렬순서가 선행하도록 하는 방식이면, 정렬순서가 가장 빠른 2차원(Y축)을 기준으로 2차원(Y축)의 위치정보값에 대한 정렬을 수행하는 동시에 다음 순서의 1차원(X축)을 기준으로 1차원(X축)의 위치정보값을 정렬하는 것일 수 있다.
이하에서는, 설명의 편의를 위해 도 7에 도시된 청크(Chunk0,1,2,3) 중 청크(Chunk0)와 앞서 언급한 기 설정된 차원관리방식에 대한 일례를 이용하여 설명을 이어가도록 하겠다.
도 7에 도시된 바와 같이, 청크(Chunk0)에는 특정차원데이터(D00, D01, D02, D10, D11, D12, D20, D21, D22)가 할당되므로, 정렬관리부(120)는, 청크(Chunk0)에 대응하는 인스턴스DB서버0의 기 설정된 차원관리방식을 확인한다.
이후, 정렬관리부(120)는, 기 설정된 차원관리방식이 다차원 데이터의 2개의 차원(X축, Y축) 중 1차원(X축)보다 2차원(Y축)의 정렬순서가 선행되도록 하는 방식이므로, 정렬순서가 가장 빠른 2차원(Y축)을 기준으로 2차원(Y축)의 위치정보값에 대한 정렬을 수행한 후 다음 순서의 1차원(X축)을 기준으로 1차원(X축)의 위치정보값을 정렬해야 함을 확인할 수 있게 된다.
이처럼 기 설정된 차원관리방식의 확인이 완료되면, 정렬관리부(120)는, 청크(Chunk0) 내 특정차원데이터(D00, D01, D02, D10, D11, D12, D20, D21, D22)의 위치정보를 확인한다.
즉, 정렬관리부(120)는, 특정차원데이터(D00)의 1차원(X축)에서의 위치에 대응하는 위치값인 V1 ="0"과 2차원(Y축)에서의 위치에 대응하는 위치값인 V2 ="0"을 이용하여 특정차원데이터(D00)의 위치정보 (0,0)을 확인한다. 이어서, 정렬관리부(120)는, 동일한 방식으로 나머지 특정차원데이터(D01, D02, D10, D11, D12, D20, D21, D22)의 위치정보를 (0,1), (0,2), (1,0), (1,1), (1,2), (2,0), (2,1), (2,2)으로 확인한다.
이후, 정렬관리부(120)는, 정렬순서가 가장 빠른 2차원(Y축)을 기준으로 2차원(Y축)의 위치정보값이 가장 작은 "0"을 순서대로 정렬하는 동시에 다음 순서의 1차원(X축)을 기준으로 1차원(X축)의 위치정보값을 정렬한 결과인 (0,0), (1,0), (2,0)를 청크(Chunk0)에 배치한다. 그리고, 정렬관리부(120)는, 다음 크기의 2차원(Y축)의 위치정보값 "1"및 "2"역시 동일한 방식으로 정렬한 결과인 (0,1), (1,1), (2,1)과 (0,2), (1,2), (2,2)를 청크(Chunk0)에 배치한다.
즉, 청크(Chunk0)에 포함되는 특정차원데이터(D00, D01, D02, D10, D11, D12, D20, D21, D22)의 배치 구조를 변경하여 정렬청크(Chunk0')를 생성한다.
전술에 따라 나머지 청크(Chunk1,2,3) 별로 분배된 특정차원데이터의 차원을 기반으로 각 청크에 분배된 특정차원데이터의 정렬이 완료되면, 나머지 청크(Chunk1,2,3)에 대응하는 정렬청크(Chunk1',2',3')가 생성되게 된다.
이러한 본 발명의 정렬방식은, 동기화 방식으로서, 대용량의 다차원 데이터를 정렬하기 때문에 외부정렬(External-Merge Sort) 방식 등을 이용할 수 있으며, 다차원 데이터의 수량에 따라 적합한 정렬 알고리즘을 활용할 수도 있다.
한편, 본 발명의 실시예에서는, 동기화 방식을 기반으로 대용량의 다차원 데이터를 정렬하는 것으로 언급하였으나, 이에 한정되지 않으며, 해시기법에 의해 다차원 데이터의 분배가 진행되는 동안에 지속적으로 데이터를 병합 및 정렬하게 되는 삽입정렬법(insertion sort), 버킷정렬(bucket sort) 등과 같은 비동기 방식을 기반으로도 정렬될 수도 있음은 물론이다.
저장관리부(130)는, 기 설정된 특정포맷으로 정렬된 특정차원데이터를 변환하여 저장한다.
보다 구체적으로, 저장관리부(130)는, 정렬관리부(120)로부터 청크 별로 분배된 특정차원데이터에 대한 정렬이 완료되면, 정렬된 특정차원데이터를 기 설정된 특정포맷으로 변환하여 해당 청크와 관련되는 인스턴스DB서버에 저장한다.
즉, 저장관리부(130)는, 기 설정된 특정포맷을 기반으로 정렬된 특정차원데이터를 변환하여 특정차원변환데이터를 생성하고, 특정차원변환데이터를 해당 청크와 관련되는 인스턴스DB서버에 저장한다.
여기서, 기 설정된 특정포맷이라 함은, 다차원 데이터베이스(300)의 각 인스턴스DB서버(0,1...n)에서 다차원 데이터를 관리하려는 저장형식일 수 있다.
예를 들어, 기 설정된 특정포맷은, 각 인스턴스DB서버(0,1...n)에 할당된 어레이스토리지(AS0,1...n)의 모든 셀에 값이 존재하는 Dense Array Format과, 어레이스토리지(AS0,1...n)의 일부 몇 개의 셀에만 값이 산개되어 드문드문 존재하게 되는 Sparse Array Format 등을 포함할 수 있다.
이하에서는, 설명의 편의를 위해 도 7의 청크(Chunk0,1,2,3)와 기 설정된 특정포맷이 Dense Array Format인 것으로 언급하여 설명을 이어가도록 하겠다.
저장관리부(130)는, 정렬관리부(120)로부터 청크(Chunk0,1,2,3)에 대응하는 정렬청크(Chunk0',1',2',3')의 생성이 완료되면, 정렬청크(Chunk0',1',2',3')에 저장된 데이터를 기 설정된 특정포맷인 Dense Array Format을 기반으로 변환한 후 어레이스토리지(AS0,1,2,3)의 셀에 대응하는 셀값을 할당하여 특정차원변환데이터를 생성한다.
이후, 저장관리부(130)는, 청크(Chunk0,1,2,3)에 대응하는 어레이스토리지(AS0,1,2,3)를 확인하여 해당하는 인스턴스DB서버(0,1,2,3)를 검출한다. 이어서, 저장관리부(130)는, 청크(Chunk0,1,2,3) 별로 생성된 특정차원변환데이터를 해당 청크(Chunk0,1,2,3)와 관련되는 인스턴스DB서버(0,1,2,3)에 저장한다.
전술에 따라 특정차원변환데이터에 대한 저장이 완료되면, 저장관리부(130)는, 모든 분산관리절차의 수행이 완료된 것이므로, 다차원 데이터에 대한 분산관리의 수행이 완료되었음을 알리기 위해 분산관리수행결과를 생성한다. 그리고 저장관리부(130)는, 분산관리수행결과를 사용자단말(200)로 전달한다.
한편, 도 8과 같이 청크(Chunk0,1,2,3)와 인스턴스DB서버(0,1)가 매칭되지 않는 경우에는, 각 인스턴스DB서버(0,1)에 적어도 2개의 어레이스토리지를 할당하여 적재를 수행할 수도 있다.
예를 들어, 인스턴스DB서버(0)에 어레이스토리지(AS0,2)가 할당되도록 하고, 인스턴스DB서버(1)에 어레이스토리지(AS1,3)가 할당되도록 하면, 어레이스토리지(AS0,2)에는 청크(0,2)가 대응되며, 어레이스토리지(AS1,3)에는 청크(1,3)가 되응되게 되므로, 청크(Chunk0,1,2,3) 별로 생성된 특정차원변환데이터를 해당 청크와 관련되는 인스턴스DB서버(0,1)에 저장할 수 있게 된다.
이상에서 설명한 바와 같이, 본 발명의 다차원데이터관리장치(100)는, 해시 값을 기반으로 다차원 데이터를 각 인스턴스DB서버에 직접 맵핑하여 적재하게 되므로, 기존 다차원 데이터 저장 방식과 달리 다차원 데이터를 재배치 과정을 근본적으로 차단할 수 있어 적재로 인한 오버헤드를 감소시킬 수 있게 된다. 그에 따라 전반적인 적재 비용 및 시간을 최소화할 수 있게 된다.
따라서, 본 발명의 다차원데이터관리장치(100)는, 해시 기법을 기반으로 다차원 데이터에 대한 최적화된 분산 관리가 수행되도록 함으로써, 기존과 달리 데이터 적재를 위해 불필요하게 소비되는 적재 시간 및 비용을 최소화하여 고속 데이터 로딩이 가능하도록 하는, 새로운 다차원 데이터 분산관리 방안을 제공할 수 있는 효과를 도출한다.
이하에서는, 도 9를 참조하여 본 발명의 실시예에 따른 해시 기반 데이터 분산관리 서비스를 제공하는 흐름을 구체적으로 설명하도록 한다. 이하에서는 설명의 편의를 위해, 전술의 도 1 내지 도 8에서 언급한 참조번호를 언급하여 설명하도록 하겠다.
다차원데이터관리장치(100)는, 사용자가 다차원 데이터베이스(300)에 저장하려는 다차원 데이터를 선택하면(S100), 다차원 데이터에 포함되는 적어도 하나의 특정차원데이터 별 특정해시정보를 기반으로 적어도 하나의 청크에 특정차원데이터를 분배한다(S110-S140).
즉, 다차원데이터관리장치(100)는, 특정해시함수를 기반으로 특정차원데이터의 차원 별 해시값을 산출한 결과에 기초하여 특정해시정보에 해당하는 최종해시값을 산출하고, 최종해시값을 기반으로 분배하려는 해당 청크를 확인하여 특정차원데이터를 분배한다.
여기서, 특정해시함수는, 특정차원데이터의 차원 별 해시값을 찾기 위한 것으로, 하기 수학식 1과 같이 정의될 수 있다.
Hi= (Hi-1*Prime)
Figure PCTKR2017014375-appb-I000005
((Vi-Mini)/ChunkIntervali)
여기서, Hi는, 각 차원(dimension) 마다의 해시값이며, 이때 모든 차원의 초기값 H0은 "0"으로 초기화된다. Hd는, 차원의 수가 d일 때, 각 차원 별로 산출된 해시값을 기반으로 d차원에서 최종적으로 산출되는 최종해시값이다. Prime는, 중복되지 않는 해시값을 찾기 위한 소수(Prime Number)이며, Vi는, 다차원 데이터의 i번째 차원에서의 위치에 대응하는 위치 데이터값이다. Mini는, 해당 차원에서의 최소 위치 데이터값이며, ChunkInterval은 i번째 차원의 청크범위이며, N은 다차원 데이터베이스의 인스턴스DB서버의 개수이다.
Figure PCTKR2017014375-appb-I000006
는, 비트 연산의 XOR이다.
이처럼 수학식 1을 이용하여 특정차원데이터의 차원 별 해시값의 산출이 완료되면, 최종해시값의 산출을 위해 모듈러 연산인 하기 수학식 2를 이용하게 된다.
H(F)= Hd%N
여기서, Hd는, 차원의 수가 d일 때, 각 차원 별로 산출된 해시값을 기반으로 d차원에서 최종적으로 산출되는 최종해시값이며, N은 다차원 데이터베이스의 인스턴스DB서버의 개수이다.
이와 관련하여, 도 4에는 해시 기법을 기반으로 분배하려는 다차원 데이터의 일례가 도시되어 있다. 도 4에서는, 차원(Dimension)에 대한 정보만이 활용되므로 다차원 데이터에 대한 속성값을 별도로 표기하지 않았다.
도 4에 도시된 바와 같이, 사용자로부터 선택되는 다차원 데이터가 2차원(2-dimension)일 때, X축이 1차원이고, Y축이 2차원이며, 각 차원 별로 청크의 크기(ChunkInterval)가 "3"이고, 인스턴스DB서버의 개수(N)가 4개이며, 소수(Prime Number)가 "991"이며, 차원 별 최소 위치 데이터값은 (0,0)인 경우, 다차원 데이터에 포함되는 적어도 하나의 특정차원데이터(D00-D55) 별 특정해시정보를 기반으로 적어도 하나의 청크에 특정차원데이터를 분배하는 과정에 대하여 설명하도록 하겠다.
다차원데이터관리장치(100)는, 도 5에 도시된 바와 같이, 특정차원데이터(D00)의 1차원(X축)에서의 해시값(H1)을 산출하기 위한 제1 파라미터를 확인한다. 즉, 모든 차원의 초기값인 H0="0", 1차원(X축)에서의 위치에 대응하는 위치값인 V1 ="0", 1차원(X축)에서의 최소 위치 데이터값인 Min1="0", 1차원(X축)에서의 청크의 크기인 ChunkInterval="3"를 확인한다.
이후, 다차원데이터관리장치(100)는, 수학식 1에 제1 파라미터를 적용하여 특정차원데이터(D00)의 1차원(X축)에서의 해시값(H1)을 아래와 같이 산출한다.
H1=(H0*991)
Figure PCTKR2017014375-appb-I000007
((0-0)/3)=0
이처럼 해시값(H1)의 산출이 완료되면, 다차원데이터관리장치(100)는, 특정차원데이터(D00)의 2차원(Y축)에서의 해시값(H2)을 산출하기 위한 제2 파라미터를 확인한다. 즉, 1차원(X축)에서의 해시값인 H1="0", 소수(Prime Number)="991", 2차원(Y축)에서의 위치에 대응하는 위치값인 V2 ="0", 2차원(Y축)에서의 최소 위치 데이터값인 Min2="0", 2차원(Y축)에서의 청크의 크기인 ChunkInterval="3"를 확인한다.
이후, 다차원데이터관리장치(100)는, 수학식 1에 제2 파라미터를 적용하여 특정차원데이터(D00)의 2차원(Y축)에서의 해시값(H2)을 아래와 같이 산출한다.
H2=(H1*991)
Figure PCTKR2017014375-appb-I000008
((0-0)/3)=0
결국, 제2 파라미터에는, 금번 해시값(H2)을 산출하려는 2차원(Y축)보다 먼저 해시값이 산출된 1차원(X축)의 해시값(H1), 소수(Prime Number), 2차원(Y축)에서의 위치에 대응하는 위치값(V2), 2차원(Y축)의 청크범위(ChunkInterval), 2차원(Y축)에서의 최소 위치 데이터값(Min2) 중 적어도 하나가 포함되게 된다.
이에, 특정해시함수(Hi)에 제2 파라미터가 적용되게 되면, 특정해시함수(H2)는, 특정차원데이터(D00)의 1차원(X축)에서의 해시값(H1)과 소수(Prime Number)를 곱한 제1 결과값(H1*991)과, 2차원(Y축)에서의 위치에 대응하는 위치값(V2)과 2차원(Y축)에서의 최소 위치 데이터값(Min2)을 청크범위(ChunkInterval)로 나눗셈한 제2 결과값((0-0)/3)에 대한 배타적논리합(XOR)에 대응하게 된다.
즉, 특정차원데이터(D00)에 포함되는 2개의 차원(X축, Y축) 중 금번 해시값을 산출하려는 2차원(Y축)의 해시값(H2)의 경우, 먼저 해시값(H1)이 산출된 1차원(X축)의 해시값을 반영하게 된다. 이에, 후술하게 될 모듈러 연산인 수학식 2의 파라미터가 2차원(Y축)의 해시값(H2)만이 적용되어 특정차원데이터(D00)에 대한 최종해시값이 산출되게 되더라도, 특정차원데이터(D00) 별 모든 차원, 즉 (X축, Y축)이 반영되어 청크를 결정할 수 있게 된다.
이처럼 특정차원데이터(D00)의 차원 별 해시값(H1, H2)의 산출이 완료되면, 다차원데이터관리장치(100)는, 특정차원데이터(D00)의 최종해시값의 산출을 위해 모듈러 연산인 수학식 2를 이용한다.
즉, 다차원데이터관리장치(100)는, 특정차원데이터(D00)의 최종해시값을 산출하기 위한 제3 파라미터를 확인한다. 즉, 특정차원데이터(D00)의 2차원(Y축)에서의 해시값(H2), 다차원 데이터를 관리하는 인스턴스DB서버의 전체개수인 N="4"를 확인한다.
이후, 다차원데이터관리장치(100)는, 수학식 2에 제3 파라미터를 적용하여 특정차원데이터(D00)의 최종해시값을 아래와 같이 산출한다.
H(F)= H2%4=0
이처럼 최종해시값의 산출이 완료되면, 다차원데이터관리장치(100)는, 최종해시값과 매칭되는 청크번호를 갖는 해당 청크에 최종해시값과 관련되는 특정차원데이터(D00)를 분배한다.
전술한 특정차원데이터(D00)의 차원 별 해시값을 기반으로 최종해시값을 산출하여 해당 청크를 검출한 후 특정차원데이터(D00)를 해당 청크에 분배하는 과정을 도 5 및 도 6에 도시된 나머지 특정차원데이터(D01-D55) 별로 동일하게 수행하게 된다면, 도 7과 같이, 특정차원데이터(D00, D01, D02, D10, D11, D12, D20, D21, D22)의 최종해시값은 "0"으로 산출되므로, 청크번호 "0"을 갖는 청크(Chunk0)에 분배가 이루어 질 것이다. 동일한 수행에 따라 특정차원데이터(D03, D04, D05, D13, D14, D15, D23, D24, D25)의 최종해시값은 "1"로 산출되므로, 청크번호 "1"을 갖는 청크(Chunk1)에 분배가 이루어 질 것이다. 특정차원데이터(D33, D34, D35, D43, D44, D45, D53, D54, D55)의 최종해시값은 "2"로 산출되므로, 청크번호 "2"를 갖는 청크(Chunk2)에 분배가 이루어 질 것이다. 특정차원데이터(D30, D31, D32, D40, D41, D42, D50, D51, D52)의 최종해시값은 "3"으로 산출되므로, 청크번호 "3"을 갖는 청크(Chunk3)에 분배가 이루어 질 것이다.
이후, 다차원데이터관리장치(100)는, 기 설정된 차원관리방식을 기반으로 청크 별로 분배된 특정차원데이터의 차원 별 정렬순서를 결정한다. 이후 다차원데이터관리장치(100)는, 정렬순서가 가장 빠른 해당 차원의 위치정보값을 정렬하는 동시에 다음 순서의 해당 차원의 위치정보값을 정렬한다(S150).
보다 구체적으로, 다차원데이터관리장치(100)는, 기 설정된 차원관리방식이 다차원 데이터의 2개의 차원(X축, Y축) 중 1차원(X축)보다 2차원(Y축)의 정렬순서가 선행되도록 하는 방식이면, 정렬순서가 가장 빠른 2차원(Y축)을 기준으로 2차원(Y축)의 위치정보값에 대한 정렬을 수행한 후 다음 순서의 1차원(X축)을 기준으로 1차원(X축)의 위치정보값을 정렬해야 함을 확인할 수 있게 된다.
이처럼 기 설정된 차원관리방식의 확인이 완료되면, 다차원데이터관리장치(100)는, 특정차원데이터(D00)의 1차원(X축)에서의 위치에 대응하는 위치값인 V1 ="0"과 2차원(Y축)에서의 위치에 대응하는 위치값인 V2 ="0"을 이용하여 특정차원데이터(D00)의 위치정보 (0,0)을 확인한다. 이어서, 다차원데이터관리장치(100)는, 동일한 방식으로 나머지 특정차원데이터(D01, D02, D10, D11, D12, D20, D21, D22)의 위치정보를 (0,1), (0,2), (1,0), (1,1), (1,2), (2,0), (2,1), (2,2)으로 확인한다.
이후, 다차원데이터관리장치(100)는, 정렬순서가 가장 빠른 2차원(Y축)을 기준으로 2차원(Y축)의 위치정보값이 가장 작은 "0"을 순서대로 정렬하는 동시에 다음 순서의 1차원(X축)을 기준으로 1차원(X축)의 위치정보값을 정렬한 결과인 (0,0), (1,0), (2,0)를 청크(Chunk0)에 배치한다. 그리고, 다차원데이터관리장치(100)는, 다음 크기의 2차원(Y축)의 위치정보값 "1"및 "2" 역시 동일한 방식으로 정렬한 결과인 (0,1), (1,1), (2,1)과 (0,2), (1,2), (2,2)를 청크(Chunk0)에 배치한다.
즉, 청크(Chunk0)에 포함되는 특정차원데이터(D00, D01, D02, D10, D11, D12, D20, D21, D22)의 배치 구조를 변경하여 정렬청크(Chunk0')를 생성한다.
전술에 따라 나머지 청크(Chunk1,2,3) 별로 분배된 특정차원데이터의 차원을 기반으로 각 청크에 분배된 특정차원데이터의 정렬이 완료되면, 다차원데이터관리장치(100)는, 동일한 방식으로 나머지 청크(Chunk1,2,3)에 대응하는 정렬청크(Chunk1',2',3')를 생성한다.
이후, 다차원데이터관리장치(100)는, 기 설정된 특정포맷을 기반으로 정렬된 특정차원데이터를 변환하여 특정차원변환데이터를 생성하고, 특정차원변환데이터를 해당 청크와 관련되는 인스턴스DB서버에 저장한다(S160, S170).
여기서, 기 설정된 특정포맷이라 함은, 다차원 데이터베이스(300)의 각 인스턴스DB서버(0,1...n)에서 다차원 데이터를 관리하려는 저장형식일 수 있다.
예를 들어, 기 설정된 특정포맷은, 각 인스턴스DB서버(0,1...n)에 할당된 어레이스토리지(AS0,1...n)의 모든 셀에 값이 존재하는 Dense Array Format과, 어레이스토리지(AS0,1...n)의 일부 몇 개의 셀에만 값이 산개되어 드문드문 존재하게 되는 Sparse Array Format 등을 포함할 수 있다.
이하에서는, 설명의 편의를 위해 도 7의 청크(Chunk0,1,2,3)와 기 설정된 특정포맷이 Dense Array Format인 것으로 언급하여 설명을 이어가도록 하겠다.
다차원데이터관리장치(100)는, 청크(Chunk0,1,2,3)에 대응하는 정렬청크(Chunk0',1',2',3')의 생성이 완료되면, 정렬청크(Chunk0',1',2',3')에 저장된 데이터를 기 설정된 특정포맷인 Dense Array Format을 기반으로 변환한 후 어레이스토리지(AS0,1,2,3)의 셀에 대응하는 셀값을 할당하여 특정차원변환데이터를 생성한다.
이후, 다차원데이터관리장치(100)는, 청크(Chunk0,1,2,3)에 대응하는 어레이스토리지(AS0,1,2,3)를 확인하여 해당하는 인스턴스DB서버(0,1,2,3)를 검출한다. 이어서, 다차원데이터관리장치(100)는, 청크(Chunk0,1,2,3) 별로 생성된 특정차원변환데이터를 해당 청크(Chunk0,1,2,3)와 관련되는 인스턴스DB서버(0,1,2,3)에 저장한다.
전술에 따라 특정차원변환데이터에 대한 저장이 완료되면, 다차원데이터관리장치(100)는, 모든 분산관리절차의 수행이 완료된 것이므로, 다차원 데이터에 대한 분산관리의 수행이 완료되었음을 알리기 위해 분산관리수행결과를 생성하고, 이를 사용자단말(200)로 전달한다.
이상에서 설명한 바와 같이, 본 발명은, 해시 값을 기반으로 다차원 데이터를 각 인스턴스DB서버에 직접 맵핑하여 적재하게 되므로, 기존 다차원 데이터 저장 방식과 달리 다차원 데이터를 재배치 과정을 근본적으로 차단할 수 있어 적재로 인한 오버헤드를 감소시킬 수 있게 되며, 그에 따라 전반적인 적재 비용 및 시간을 최소화할 수 있게 되는 것입니다.
따라서, 본 발명의 다차원 데이터를 관리하기 위한 장치 및 그 방법은, 해시 기법을 기반으로 다차원 데이터에 대한 최적화된 분산 관리가 수행되도록 함으로써, 기존과 달리 데이터 적재를 위해 불필요하게 소비되는 적재 시간 및 비용을 최소화하여 고속 데이터 로딩이 가능하도록 하는, 새로운 다차원 데이터 분산관리 방안을 제공할 수 있는 효과를 도출한다.
본 발명의 실시예들은, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
지금까지 본 발명을 바람직한 실시 예를 참조하여 상세히 설명하였지만, 본 발명이 상기한 실시 예에 한정되는 것은 아니며, 이하의 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 또는 수정이 가능한 범위까지 본 발명의 기술적 사상이 미친다 할 것이다.

Claims (16)

  1. 다차원 데이터에 포함되는 적어도 하나의 특정차원데이터 별 특정해시(hash)정보를 기반으로 적어도 하나의 청크(chunk)에 상기 특정차원데이터를 분배하는 분배관리부;
    상기 청크 별로 분배된 특정차원데이터의 차원을 기반으로 각 청크에 분배된 특정차원데이터를 정렬하는 정렬관리부; 및
    상기 정렬된 특정차원데이터를 기 설정된 특정포맷으로 변환하여 해당 청크와 관련되는 인스턴스DB서버에 저장하는 저장관리부
    를 포함하는 것을 특징으로 하는 다차원데이터관리장치.
  2. 제 1 항에 있어서,
    상기 분배관리부는,
    특정해시함수를 기반으로 상기 특정차원데이터의 차원 별 해시값을 산출한 결과에 기초하여 상기 특정해시정보에 해당하는 최종해시값을 산출하는 것을 특징으로 하는 다차원데이터관리장치.
  3. 제 2 항에 있어서,
    상기 특정차원데이터는 차원 별로 해당 차원에서의 위치에 대응하는 위치값을 포함하며,
    상기 특정해시함수는,
    금번 해시값을 산출하려는 제1 차원보다 먼저 해시값이 산출된 제2 차원의 해시값, 소수(Prime Number), 상기 제1 차원의 위치값, 제1 차원의 청크범위 중 적어도 하나를 파라미터로 이용하는 것을 특징으로 하는 다차원데이터관리장치.
  4. 제 3 항에 있어서,
    상기 특정해시함수는,
    상기 제2 차원의 해시값과 상기 소수를 곱한 제1 결과값과, 상기 제1 차원의 위치값과 상기 제1 차원의 최소 위치값의 차이값을 상기 제1 차원의 청크범위로 나눗셈한 제2 결과값에 대한 배타적논리합(XOR)에 대응하는 것을 특징으로 하는 다차원데이터관리장치.
  5. 제 3 항에 있어서,
    상기 분배관리부는,
    상기 특정해시함수를 기반으로 상기 제2 차원의 해시값을 이용하여 상기 제1 차원의 해시값이 산출되면, 상기 제1 차원의 해시값과 상기 다차원 데이터를 관리하는 인스턴스DB서버의 전체개수를 기반으로 모듈러 연산을 수행하여 상기 최종해시값을 산출하는 것을 특징으로 하는 다차원데이터관리장치.
  6. 제 5 항에 있어서,
    상기 최종해시값의 크기는 상기 청크를 구분하는 청크번호와 매칭되며,
    상기 분배관리부는,
    상기 최종해시값과 매칭되는 상기 청크번호를 갖는 해당 청크에 상기 최종해시값과 관련되는 특정차원데이터를 분배하는 것을 특징으로 하는 다차원데이터관리장치.
  7. 제 3 항에 있어서,
    상기 정렬관리부는,
    기 설정된 차원관리방식을 기반으로 상기 청크 별로 분배된 특정차원데이터의 차원 별 정렬순서를 결정하고, 상기 정렬순서가 가장 빠른 해당 차원의 위치정보값을 정렬하는 동시에 다음 순서의 해당 차원의 위치정보값을 정렬하는 것을 특징으로 하는 다차원데이터관리장치.
  8. 제 1 항에 있어서,
    상기 저장관리부는,
    기 설정된 특정포맷을 기반으로 상기 정렬된 특정차원데이터를 변환하여 특정차원변환데이터를 생성하고, 상기 특정차원변환데이터를 해당 청크와 관련되는 인스턴스DB서버에 저장하는 것을 특징으로 하는 다차원데이터관리장치.
  9. 다차원 데이터에 포함되는 적어도 하나의 특정차원데이터 별 특정해시정보를 기반으로 적어도 하나의 청크(chunk)에 상기 특정차원데이터를 분배하는 분배관리단계;
    상기 청크 별로 분배된 특정차원데이터의 차원을 기반으로 각 청크에 분배된 특정차원데이터를 정렬하는 정렬관리단계; 및
    상기 정렬된 특정차원데이터를 기 설정된 특정포맷으로 변환하여 해당 청크와 관련되는 인스턴스DB서버에 저장하는 저장관리단계
    를 포함하는 것을 특징으로 하는 다차원데이터관리장치의 동작방법.
  10. 제 9 항에 있어서,
    상기 분배관리단계는,
    특정해시함수를 기반으로 상기 특정차원데이터의 차원 별 해시값을 산출한 결과에 기초하여 상기 특정해시정보에 해당하는 최종해시값을 산출하는 것을 특징으로 하는 다차원데이터관리장치의 동작방법.
  11. 제 10 항에 있어서,
    상기 특정차원데이터는 차원 별로 해당 차원에서의 위치에 대응하는 위치값을 포함하며,
    상기 특정해시함수는,
    금번 해시값을 산출하려는 제1 차원보다 먼저 해시값이 산출된 제2 차원의 해시값, 소수(Prime Number), 상기 제1 차원의 위치값, 제1 차원의 청크범위 중 적어도 하나를 파라미터로 이용하는 것을 특징으로 하는 다차원데이터관리장치의 동작방법.
  12. 제 11 항에 있어서,
    상기 특정해시함수는,
    상기 제2 차원의 해시값과 상기 소수를 곱한 제1 결과값과, 상기 제1 차원의 위치값과 상기 제1 차원의 최소 위치값의 차이값을 상기 제1 차원의 청크범위로 나눗셈한 제2 결과값에 대한 배타적논리합(XOR)에 대응하는 것을 특징으로 하는 다차원데이터관리장치의 동작방법.
  13. 제 11 항에 있어서,
    상기 분배관리단계는,
    상기 특정해시함수를 기반으로 상기 제2 차원의 해시값을 이용하여 상기 제1 차원의 해시값이 산출되면, 상기 제1 차원의 해시값과 상기 다차원 데이터를 관리하는 인스턴스DB서버의 전체개수를 기반으로 모듈러 연산을 수행하여 상기 최종해시값을 산출하는 것을 특징으로 하는 다차원데이터관리장치의 동작방법.
  14. 제 13 항에 있어서,
    상기 최종해시값의 크기는 상기 청크를 구분하는 청크번호와 매칭되며,
    상기 분배관리단계는,
    상기 최종해시값과 매칭되는 상기 청크번호를 갖는 해당 청크에 상기 최종해시값과 관련되는 특정차원데이터를 분배하는 것을 특징으로 하는 다차원데이터관리장치의 동작방법.
  15. 제 11 항에 있어서,
    상기 정렬관리단계는,
    기 설정된 차원관리방식을 기반으로 상기 청크 별로 분배된 특정차원데이터의 차원 별 정렬순서를 결정하고, 상기 정렬순서가 가장 빠른 해당 차원의 위치정보값을 정렬하는 동시에 다음 순서의 해당 차원의 위치정보값을 정렬하는 것을 특징으로 하는 다차원데이터관리장치의 동작방법.
  16. 제 9 항에 있어서,
    상기 저장관리단계는,
    기 설정된 특정포맷을 기반으로 상기 정렬된 특정차원데이터를 변환하여 특정차원변환데이터를 생성하고, 상기 특정차원변환데이터를 해당 청크와 관련되는 인스턴스DB서버에 저장하는 것을 특징으로 하는 다차원데이터관리장치의 동작방법.
PCT/KR2017/014375 2016-12-20 2017-12-08 다차원 데이터를 관리하기 위한 장치 및 그 방법 WO2018117504A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160174842A KR101757253B1 (ko) 2016-12-20 2016-12-20 다차원 데이터를 관리하기 위한 장치 및 그 방법
KR10-2016-0174842 2016-12-20

Publications (1)

Publication Number Publication Date
WO2018117504A1 true WO2018117504A1 (ko) 2018-06-28

Family

ID=59352449

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/014375 WO2018117504A1 (ko) 2016-12-20 2017-12-08 다차원 데이터를 관리하기 위한 장치 및 그 방법

Country Status (2)

Country Link
KR (1) KR101757253B1 (ko)
WO (1) WO2018117504A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114221755A (zh) * 2021-12-17 2022-03-22 建信金融科技有限责任公司 用于样本对齐的方法和装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102569145B1 (ko) * 2020-03-11 2023-08-24 한국전자통신연구원 Rsa 키 생성 방법 및 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09265479A (ja) * 1996-03-29 1997-10-07 Hitachi Ltd 多次元データ処理方法
JP2001022621A (ja) * 1999-07-08 2001-01-26 Hitachi Ltd 多次元データベース管理システム
US20040095349A1 (en) * 2000-10-12 2004-05-20 Hitachi America, Ltd. Method for visualizing multidimensional data
US7284011B1 (en) * 2004-12-28 2007-10-16 Emc Corporation System and methods for processing a multidimensional database
US20140201238A1 (en) * 2012-01-19 2014-07-17 Telefonaktiebolaget L M Ericsson (Publ) Data Distribution/Retrieval Using Multi-Dimensional Index

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09265479A (ja) * 1996-03-29 1997-10-07 Hitachi Ltd 多次元データ処理方法
JP2001022621A (ja) * 1999-07-08 2001-01-26 Hitachi Ltd 多次元データベース管理システム
US20040095349A1 (en) * 2000-10-12 2004-05-20 Hitachi America, Ltd. Method for visualizing multidimensional data
US7284011B1 (en) * 2004-12-28 2007-10-16 Emc Corporation System and methods for processing a multidimensional database
US20140201238A1 (en) * 2012-01-19 2014-07-17 Telefonaktiebolaget L M Ericsson (Publ) Data Distribution/Retrieval Using Multi-Dimensional Index

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114221755A (zh) * 2021-12-17 2022-03-22 建信金融科技有限责任公司 用于样本对齐的方法和装置
CN114221755B (zh) * 2021-12-17 2023-06-13 建信金融科技有限责任公司 用于样本对齐的方法和装置

Also Published As

Publication number Publication date
KR101757253B1 (ko) 2017-07-13

Similar Documents

Publication Publication Date Title
WO2018036167A1 (zh) 测试任务执行机分配方法、装置、服务器和存储介质
WO2012111905A2 (ko) 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법
WO2019156309A1 (ko) 플래시 저장장치의 내부 병렬성을 이용하는 키 값 기반의 데이터 액세스 장치 및 방법
WO2018093094A1 (ko) 데이터베이스 관리 시스템에서의 데이터 복제 기법
WO2013117104A1 (zh) Bt离线数据下载系统及方法、计算机存储介质
WO2018117504A1 (ko) 다차원 데이터를 관리하기 위한 장치 및 그 방법
WO2013151221A1 (ko) 대용량 데이터의 클러스터 결과 분석 시스템 및 방법
WO2014044136A1 (zh) 基于分布式数据的并发处理方法、系统和计算机存储介质
WO2012108623A1 (ko) 이미지 데이터베이스에 신규 이미지 및 이에 대한 정보를 추가하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
WO2014189190A1 (ko) 데이터 부재 태깅 기반의 정보 검색 시스템 및 방법
CN107004013A (zh) 用于使用基于硬件的处理来提供分布式树遍历的系统和方法
WO2021107211A1 (ko) 인메모리 데이터베이스 기반의 시계열 데이터 관리시스템
WO2012050252A1 (ko) 분류기의 동적 결합에 의한 대용량 분류기 자동 생성 시스템 및 방법
WO2013094837A1 (ko) 해시 함수 결과를 이용한 서버 부하 분산 처리 방법 및 그 장치
WO2021141294A1 (ko) 데이터의 하이브리드 저장을 이용한 데이터 아카이빙 방법 및 시스템
WO2018182060A1 (ko) 관계형 데이터베이스 기반의 텍스트 로그데이터 저장 및 검색 방법
WO2020186791A1 (zh) 数据传输方法、装置、设备及存储介质
WO2019221377A1 (ko) 블록체인 기반 트랜잭션 관리 시스템 및 그 동작 방법
Silberstein et al. Efficient bulk insertion into a distributed ordered table
WO2013176431A1 (ko) 단말을 서버에 할당하고 단말로의 효율적인 메시징을 위한 시스템 및 방법
WO2022108318A1 (ko) 스마트 컨트랙트 코드 취약점 분석 장치 및 방법
WO2019198950A1 (ko) 컨텐츠 정보 제공 장치 및 그 방법
WO2021141292A1 (ko) 하이브리드 클라우드 기반의 실시간 데이터 아카이빙 방법 및 시스템
WO2014069767A1 (ko) 염기 서열 정렬 시스템 및 방법
WO2015068929A1 (ko) 컨텐츠 중심 네트워크에서 패킷 특성을 고려하는 노드의 동작 방법 및 노드

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

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

Country of ref document: EP

Kind code of ref document: A1