KR101649128B1 - Method and device for analyzing bigdata using hash function without collision - Google Patents

Method and device for analyzing bigdata using hash function without collision Download PDF

Info

Publication number
KR101649128B1
KR101649128B1 KR1020150031464A KR20150031464A KR101649128B1 KR 101649128 B1 KR101649128 B1 KR 101649128B1 KR 1020150031464 A KR1020150031464 A KR 1020150031464A KR 20150031464 A KR20150031464 A KR 20150031464A KR 101649128 B1 KR101649128 B1 KR 101649128B1
Authority
KR
South Korea
Prior art keywords
hash
value
hash function
collision
minimum
Prior art date
Application number
KR1020150031464A
Other languages
Korean (ko)
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 KR1020150031464A priority Critical patent/KR101649128B1/en
Application granted granted Critical
Publication of KR101649128B1 publication Critical patent/KR101649128B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • G06F17/30949
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/325Hash tables
    • G06F17/30628

Abstract

A big data analyzing method using hash functions without collisions and a device thereof are disclosed. The method comprises the following steps of: dividing the hash functions into main hashes and general hashes; and adjusting the number of the hash functions.

Description

충돌이 없는 해시 함수를 이용한 빅데이터 분석 방법 및 장치{Method and device for analyzing bigdata using hash function without collision}[0001] The present invention relates to a method and apparatus for analyzing big data using a hash function without collision,

본 발명은 충돌이 없는 해시 함수를 이용한 빅데이터 분석 방법 및 장치 에 관한 것이다. 보다 상세하게는 다수의 해시 함수를 구성하여 해시 키 인덱스가 충돌이 일어나지 않도록 하는 충돌이 없는 해시 함수를 이용한 빅데이터 분석 방법 및 장치에 관한 것이다.
The present invention relates to a method and apparatus for analyzing big data using a hash function without collision. And more particularly, to a method and apparatus for analyzing big data using a hash function without collision to prevent a hash key index from being collided by constructing a plurality of hash functions.

세계경제포럼은 2012년의 떠오르는 10대 기술 중 첫 번째를 빅데이터 기술로 선정했으며 대한민국 지식경제부 R&D전략기획단은 10대 IT핵심기술 중 하나로 빅데이터를 선정하는 등 빅데이터가 중요시 되고 있다.
The World Economic Forum has selected the first of the top 10 emerging technologies in 2012 as the Big Data Technology, and the Ministry of Knowledge Economy R & D Strategic Planning Team of Korea has selected big data as one of the ten IT core technologies.

빅데이터는 기존의 분석체계로는 감당하기 힘들 정도로 거대한 데이터의 집합을 칭하며 고객정보와 같은 정형화되어있는 정보뿐만 아니라 비정형데이터, 실시간, 소셜 데이터 등 복합적으로 구성되어 있다. 특히나 몇 년 전부터 소셜네트워크가 폭발적으로 활성화되어가는 현상이 지속됨에 따라 빅데이터에 대한 관심은 커질 수밖에 없다. 그리고 빅데이터 자체만으로는 가치를 가지는 게 아니며 어떻게 분석하느냐에 따라 가치가 확연히 달라지기 때문에 빅데이터의 분석에 초점이 맞춰지는 것은 당연하다.
Big data is a huge collection of data that can not be met by conventional analysis systems. It is composed of unstructured data, real-time, and social data as well as standardized information such as customer information. Especially, as the phenomenon of social network explosion has been going on since a few years ago, there is a growing interest in big data. It is not surprising that Big Data itself is not worth its own value, and its value depends on how it is analyzed.

소셜네트워크가 활성화 되어가면서 빅데이터의 시장 규모는 시간이 지나감에 따라, 개인당 생산, 소비하는 데이터의 양이 많아짐에 따라 점점 커져가고 있고 앞으로도 계속해서 커질 것이다. 기존의 빅데이터 분석을 위한 인덱싱(Indexing)은 최소 완전 해시 함수(MPHF, minimal perfect hash function)라는 기법을 이용했다. 그러나 최소 완전 해시 함수의 구조상 데이터의 범위가 너무 커져버리면 충돌이 일어날 확률이 높아지며 그에 따라 처리속도가 떨어지게 된다.
As the social network becomes more active, the market size of big data is getting bigger and bigger as the amount of data produced and consumed per person grows over time. Indexing for existing big data analysis uses a technique called minimal perfect hash function (MPHF). However, if the structure of the minimum complete hash function becomes too large, the probability of collision increases and the processing speed decreases accordingly.

상기에서 설명하나 바와 같이, 최소 완전 해시 함수는 1980년대부터 데이터를 빠른 속도로 처리하는 방법으로 보편적으로 쓰였다. 최소 완전 해시 함수(MPHF)란 N개의 key set를 최소의 기억 공간인 N개의 해시 테이블(hash table)에 충돌이 없이 저장하여 검색할 수 있는 해시 함수이다.
As described above, the least-perfect hash function has been commonly used as a method of processing data at a high speed since the 1980s. The minimum complete hash function (MPHF) is a hash function that can retrieve N key sets by storing them in N hash tables without collision.

최소 완전 해시 함수를 개량해온 방법으로는 수 이론을 기초로 한 방법과, 키 집합 분할을 기초로 한 방법, 탐색공간제한을 기초로 한 방법, 희소행렬압축을 기초로 한 방법 등 여러 가지 연구들이 진행되어 왔다. 그 중 1992년 Fox, Chen, Heath가 발표한 탐색공간제한을 기초로 한 방법은 380만개의 key 집합까지 최소 완전 해시 함수 생성이 가능하며, 문자열 형태 키 또한 처리가 가능하며, 사용하는 기억공간이 작다는 장점이 있다.Several methods have been proposed to improve the least complete hash function, such as a number theory based method, a key set partitioning based method, a search space limitation based method, and a sparse matrix compression based method It has been progressed. In 1992, Fox, Chen and Heath announced that the method based on the search space limitation can generate a minimum complete hash function up to 380,000 key sets, There is an advantage that it is small.

N개의 키 세트(key set)를 N개의 해시 테이블(hash table)에 저장할 수 있는 방식은 최적화된 DB시스템으로 보이나 사실 최소 완전 해시 함수에는 결정적인 문제점이 있다. 구체적으로, 해시 함수의 특성상 다른 입력을 넣어도 같은 출력을 가지기도 한다는 점과, 빅데이터의 입력 데이터 범위가 제한되어 있는 게 아닌 지속적으로 추가된다는 점은 최소 완전 해시 함수의 결정적인 문제점이다.
The manner in which N key sets can be stored in N hash tables seems to be an optimized DB system, but in fact there is a critical problem with the least complete hash function. Specifically, it is a crucial problem of the minimum complete hash function that the same output is obtained by inserting another input due to the nature of the hash function, and the input data range of the big data is not limited but continuously added.

도1에 도시된 바와 같이, Key 1과 Key 3가 같은 버킷(Bucket)으로 충돌하는 것이 최소 완전 해시 함수의 문제점이다. 해시 함수는 모든 입력값에 대해 다른 출력값을 출력하는 함수가 아닌 최대한 빠르게 출력해주는 함수이므로 어느 정도의 충돌을 감수할 수 밖에 없다. 그러나 빅데이터의 경우 충돌이 끝도 없이 일어나게 되어 이러한 충돌을 줄이는 방법을 고안할 필요성이 있다.
As shown in FIG. 1, collision of Key 1 and Key 3 into the same bucket is a problem of the least complete hash function. The hash function is not a function that outputs a different output value to all input values, but a function that outputs it as fast as possible. However, in the case of big data, the collision will endlessly occur, and there is a need to devise a method to reduce such collision.

또한 최소 완전 해시 함수는 도2에서 보여지는 바와 같이, N개의 키 세트를 입력시 N개의 해시 테이블에 저장할 수 있는 방법이나 빅데이터의 특성상 지속적으로 추가되는 데이터에 적절한 계산을 하기 힘들다는 점이 문제점이다. 최소 완전 해시 함수를 적용하기 위해서는 데이터 세트(Data set)를 N개의 키 세트로 분할하는 작업을 거쳐야 하나 빅데이터는 데이터범위가 정해져있는 것이 아닌 연속적으로 입력되기 때문에 MPHF으로는 해결하기 힘들다.
Also, as shown in FIG. 2, the minimum complete hash function is problematic in that it is difficult to appropriately calculate the data to be continuously added due to the nature of big data or the method of storing N sets of keys in N hash tables . In order to apply the least-perfect hash function, it is necessary to divide the data set into N key sets. However, MPHF can not solve the problem because the big data is continuously input, not the data range.

해시 함수의 특성상 다른 입력을 넣어도 같은 출력을 가지기도 한다는 점과, 빅데이터의 입력 데이터 범위가 제한되어 있는 게 아닌 지속적으로 추가된다는 점은 최소 완전 해시 함수의 결정적인 문제점이다.
Because of the nature of the hash function, it is the crucial problem of the least-perfect hash function that it has the same output even if other inputs are input, and that the input data range of the big data is constantly added instead of being limited.

따라서, 상기 문제점들을 해결하기 위한 새로운 인덱싱 기법이 요구된다.
Therefore, a new indexing technique for solving the above problems is required.

본 발명이 이루고자 하는 기술적 과제는 다수의 해시 함수를 구성하여 키 인덱스가 충돌이 일어나지 않도록 하는 충돌이 없는 해시 함수를 이용한 빅데이터 분석 방법 및 장치를 제공하는데 있다.
SUMMARY OF THE INVENTION It is an object of the present invention to provide a method and an apparatus for analyzing big data using a hash function without collision in which a plurality of hash functions are constructed so that a key index does not collide.

본 발명이 이루고자 하는 다른 기술적 과제는 빅데이터를 빠른 속도로 분석하는 인덱싱을 이용하여 충돌이 없는 해시 함수를 이용한 빅데이터 분석 방법 및 장치를 제공하는데 있다.
Another aspect of the present invention is to provide a method and apparatus for analyzing big data using a hash function without collision using indexing for analyzing big data at a high speed.

상기 목적을 달성하기 위한, 본 발명에 따른 충돌이 없는 해시 함수를 이용한 빅데이터 분석 방법은 해시 함수를 메인 해시와 일반 해시로 분할하는 단계; 및 상기 해시 함수의 개수를 조절하는 단계를 포함할 수 있다.
According to another aspect of the present invention, there is provided a method of analyzing big data using a collisionless hash function, the method comprising: dividing a hash function into a main hash and a general hash; And adjusting the number of hash functions.

여기서, 상기 해시 함수의 개수를 조절하는 단계는, 최소 특성수를 결정하는 단계; 및 상기 최소 특성수를 기초로 인덱싱을 수행하는 단계를 포함할 수 있다.
Here, the step of adjusting the number of hash functions may include: determining a minimum number of characteristics; And performing indexing based on the minimum number of characteristics.

이 때, 상기 최소 특성수를 결정하는 단계는 휴리스틱 알고리즘을 사용할 수 있다.
At this time, the step of determining the minimum characteristic number may use a heuristic algorithm.

상기 최소 특성수를 결정하는 단계는, 인덱싱 함수를 를 정의하고,

Figure 112015022228747-pat00002
는 주 구분 특성,
Figure 112015022228747-pat00003
는 보조 구분 특성으로 나누는 단계;
Figure 112015022228747-pat00004
인 동안,
Figure 112015022228747-pat00005
를 산출하고, 산출된 결과 값이 최소인
Figure 112015022228747-pat00006
Figure 112015022228747-pat00007
에서 찾아
Figure 112015022228747-pat00008
에 추가하는 단계; 상기
Figure 112015022228747-pat00009
,
Figure 112015022228747-pat00010
그룹에서 임의의
Figure 112015022228747-pat00011
,
Figure 112015022228747-pat00012
값을 비교하여 충돌횟수가 감소하는 방향으로 값을 설정하는 단계; 상기
Figure 112015022228747-pat00013
,
Figure 112015022228747-pat00014
그룹에서 임의의
Figure 112015022228747-pat00015
,
Figure 112015022228747-pat00016
값을 선택하여
Figure 112015022228747-pat00017
라 하고, 상기
Figure 112015022228747-pat00018
를 상기
Figure 112015022228747-pat00019
로 대체 시 충돌횟수가 감소하는 경우 대체하는 단계;
Figure 112015022228747-pat00020
일 때까지 2 내지 4번 반복하고,
Figure 112015022228747-pat00021
가 되면 종료하는 단계를 포함하고, Wherein determining the minimum number of characteristics comprises: Lt; / RTI >
Figure 112015022228747-pat00002
Is a state classification characteristic,
Figure 112015022228747-pat00003
Dividing it into auxiliary classification characteristics;
Figure 112015022228747-pat00004
While,
Figure 112015022228747-pat00005
And if the calculated result value is the minimum value
Figure 112015022228747-pat00006
To
Figure 112015022228747-pat00007
Find
Figure 112015022228747-pat00008
; remind
Figure 112015022228747-pat00009
,
Figure 112015022228747-pat00010
Any
Figure 112015022228747-pat00011
,
Figure 112015022228747-pat00012
And setting a value in a direction in which the number of times of collision is decreased; remind
Figure 112015022228747-pat00013
,
Figure 112015022228747-pat00014
Any
Figure 112015022228747-pat00015
,
Figure 112015022228747-pat00016
By selecting a value
Figure 112015022228747-pat00017
Quot;
Figure 112015022228747-pat00018
Gt;
Figure 112015022228747-pat00019
When the number of collisions is reduced,
Figure 112015022228747-pat00020
2 < / RTI > to 4 < RTI ID =
Figure 112015022228747-pat00021
And terminating,

여기서,

Figure 112015022228747-pat00022
Figure 112015022228747-pat00023
을 구성할 특성 개수로써,
Figure 112015022228747-pat00024
을 특징으로 할 수 있다.
here,
Figure 112015022228747-pat00022
The
Figure 112015022228747-pat00023
As the number of characteristics to constitute,
Figure 112015022228747-pat00024
Can be characterized.

상기 최소 특성수를 기초로 인덱싱을 수행하는 단계는, 입력값에 대해 상기

Figure 112015022228747-pat00025
Figure 112015022228747-pat00026
로 분리하는 단계; 상기
Figure 112015022228747-pat00027
에 해수 함수를 통해 인덱스(index)를 설정하는 단계; 상기 인덱스 값에 해당하는
Figure 112015022228747-pat00028
값과, 입력값에 대한
Figure 112015022228747-pat00029
값을 비교하여, 일치하는 경우 인덱스 값을 출력하는 단계; 및 일치하지 않는 경우, 추가 인덱스 값을 생성하여 할당 후 출력하는 단계를 포함할 수 있다.
Wherein the step of performing indexing based on the minimum characteristic number comprises:
Figure 112015022228747-pat00025
and
Figure 112015022228747-pat00026
; remind
Figure 112015022228747-pat00027
Setting an index through a sea water function; Corresponding to the index value
Figure 112015022228747-pat00028
Value, and for the input value
Figure 112015022228747-pat00029
Comparing the values and outputting index values if they match; And if not, generating an additional index value and outputting the index value.

또한, 상기 목적을 달성하기 위한, 본 발명에 따른 충돌이 없는 해시 함수를 이용한 빅데이터 분석 장치는, 해시 테이블을 병렬로 입력하는 입력부; 상기 입력된 병렬 해시 테이블을 기초로 해시 함수를 메인 해시와 일반 해시로 나누어 진행하고, 충돌이 일어나는 경우 인덱싱 기법을 이용하여 해시 함수의 개수를 조절하는 제어부를 포함할 수 있다.
According to another aspect of the present invention, there is provided an apparatus for analyzing big data using a collision-free hash function, the apparatus comprising: an input unit for inputting a hash table in parallel; And a controller for dividing the hash function into a main hash and a general hash based on the input parallel hash table and adjusting the number of hash functions using an indexing method when a collision occurs.

본 발명에 따른 충돌이 없는 해시 함수를 이용한 빅데이터 분석 방법 및 장치에 의하면, 다수의 해시 함수를 구성하여 키 인덱스가 충돌이 일어나지 않게 할 수 있으며, 빅데이터를 빠른 속도로 분석할 수 있다.
According to the method and apparatus for analyzing big data using the collision-free hash function according to the present invention, a plurality of hash functions can be configured to prevent the key index from colliding with each other, and the big data can be analyzed at a high speed.

도 1은 해시 함수의 충돌 문제를 나타내는 도면이다.
도 2는 최소 완전 해시 함수을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 충돌이 없는 해시 함수를 이용한 빅데이터 분석 방법을 나타내는 흐름도이다.
도 4은 본 발명의 일 실시예에 따른 충돌이 없는 해시 함수를 이용한 빅데이터 분석 방법을 나타내는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 충돌이 없는 해시 함수를 이용한 빅데이터 분석 방법을 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 최적의 인덱스 개수를 결정하는 방법을 나타내는 도면이다.
도 7은 본 발명의 일 실시예에 따른 충돌이 없는 해시 함수를 이용한 빅데이터 분석 장치를 나타내는 블록도이다.
1 is a diagram showing a collision problem of a hash function.
FIG. 2 is a diagram showing a minimum complete hash function. FIG.
FIG. 3 is a flowchart illustrating a method of analyzing big data using a collision-free hash function according to an embodiment of the present invention.
4 is a flowchart illustrating a method of analyzing big data using a hash function without collision according to an embodiment of the present invention.
5 is a diagram illustrating a method of analyzing big data using a collision-free hash function according to an embodiment of the present invention.
6 is a diagram illustrating a method for determining an optimal number of indexes according to an embodiment of the present invention.
FIG. 7 is a block diagram showing a big data analysis apparatus using a collision-free hash function according to an embodiment of the present invention.

이하 본 발명의 실시예를 첨부된 도면들을 참조하여 상세히 설명할 수 있다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 할 수 있다. 또한 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 당업자에게 자명하거나 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략할 수 있다.
Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the drawings, the same reference numerals are used to designate the same or similar components throughout the drawings. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather obvious or understandable to those skilled in the art.

도 3 및 도 4은 본 발명의 일 실시예에 따른 충돌이 없는 해시 함수를 이용한 빅데이터 분석 방법을 나타내는 흐름도이다. FIG. 3 and FIG. 4 are flowcharts illustrating a method of analyzing big data using a collision-free hash function according to an embodiment of the present invention.

도 3및 도 4를 참조하면, 본 발명에 따라 빅데이터를 분석하기 위해서는, 우선, 해시 함수를 메인 해시와 일반 해시로 분할한다(S100). 이어서, 해시 함수의 개수를 조절한다(S200). Referring to FIG. 3 and FIG. 4, in order to analyze big data according to the present invention, a hash function is first divided into a main hash and a general hash (S100). Then, the number of hash functions is adjusted (S200).

보다 구체적으로, 상기 S100과 같이 해시 함수의 개수를 조절하는 하기 위해서, 최소 특성수를 결정하고(S210), 상기 최소 특성수를 기초로 인덱싱을 수행한다(S220).
More specifically, in order to adjust the number of hash functions as in S100, a minimum number of characteristics is determined (S210), and indexing is performed based on the minimum number of characteristics (S220).

이 때, S210와 같이 최소 특성수를 결정하기 위해서 본 발명은 휴리스틱 알고리즘을 이용한다. 이를 설명하면, 우선, 인덱싱 함수를

Figure 112015022228747-pat00030
를 정의하고,
Figure 112015022228747-pat00031
는 주 구분 특성,
Figure 112015022228747-pat00032
는 보조 구분 특성으로 나눈다. At this time, in order to determine the minimum number of characteristics as in S210, the present invention uses a heuristic algorithm. To explain this, first, an indexing function
Figure 112015022228747-pat00030
Lt; / RTI >
Figure 112015022228747-pat00031
Is a state classification characteristic,
Figure 112015022228747-pat00032
Is divided into secondary classification characteristics.

다음,

Figure 112015022228747-pat00033
인 동안,
Figure 112015022228747-pat00034
를 산출하고, 산출된 결과 값이 최소인
Figure 112015022228747-pat00035
Figure 112015022228747-pat00036
에서 찾아
Figure 112015022228747-pat00037
에 추가한다. next,
Figure 112015022228747-pat00033
While,
Figure 112015022228747-pat00034
And if the calculated result value is the minimum value
Figure 112015022228747-pat00035
To
Figure 112015022228747-pat00036
Find
Figure 112015022228747-pat00037
.

다음, 상기

Figure 112015022228747-pat00038
,
Figure 112015022228747-pat00039
그룹에서 임의의
Figure 112015022228747-pat00040
,
Figure 112015022228747-pat00041
값을 비교하여 충돌횟수가 감소하는 방향으로 값을 설정한다. Next,
Figure 112015022228747-pat00038
,
Figure 112015022228747-pat00039
Any
Figure 112015022228747-pat00040
,
Figure 112015022228747-pat00041
And sets the value in a direction in which the collision frequency decreases.

다음, 상기

Figure 112015022228747-pat00042
,
Figure 112015022228747-pat00043
그룹에서 임의의
Figure 112015022228747-pat00044
,
Figure 112015022228747-pat00045
값을 선택하여
Figure 112015022228747-pat00046
라 하고, 상기
Figure 112015022228747-pat00047
를 상기
Figure 112015022228747-pat00048
로 대체 시 충돌횟수가 감소하는 경우 대체한다.Next,
Figure 112015022228747-pat00042
,
Figure 112015022228747-pat00043
Any
Figure 112015022228747-pat00044
,
Figure 112015022228747-pat00045
By selecting a value
Figure 112015022228747-pat00046
Quot;
Figure 112015022228747-pat00047
Gt;
Figure 112015022228747-pat00048
The number of collisions is reduced.

다음,

Figure 112015022228747-pat00049
일 때까지 2 내지 4번 반복하고,
Figure 112015022228747-pat00050
가 되면 종료한다. 이 때,
Figure 112015022228747-pat00051
Figure 112015022228747-pat00052
을 구성할 특성 개수로써,
Figure 112015022228747-pat00053
을 특징으로 한다.
next,
Figure 112015022228747-pat00049
2 < / RTI > to 4 < RTI ID =
Figure 112015022228747-pat00050
. At this time,
Figure 112015022228747-pat00051
The
Figure 112015022228747-pat00052
As the number of characteristics to constitute,
Figure 112015022228747-pat00053
.

또한, S220과 같이, 최소 특성수를 기초로 인덱싱을 수행하기 위해서는, 우선적으로, 입력값에 대해 상기

Figure 112015022228747-pat00054
Figure 112015022228747-pat00055
로 분리하고, 상기
Figure 112015022228747-pat00056
에 해수 함수를 통해 인덱스(index)를 설정한다. 그리고, 상기 인덱스 값에 해당하는
Figure 112015022228747-pat00057
값과, 입력값에 대한
Figure 112015022228747-pat00058
값을 비교하여, 일치하는 경우 인덱스 값을 출력하며, 일치하지 않는 경우, 추가 인덱스 값을 생성하여 할당 후 출력한다.
In order to perform indexing based on the minimum characteristic number as in S220,
Figure 112015022228747-pat00054
and
Figure 112015022228747-pat00055
, And
Figure 112015022228747-pat00056
And sets an index through a sea water function. Then, the value corresponding to the index value
Figure 112015022228747-pat00057
Value, and for the input value
Figure 112015022228747-pat00058
Compare the values, and if they match, output the index value. If they do not match, generate the additional index value and output it.

도 5는 본 발명의 일 실시예에 따른 충돌이 없는 해시 함수를 이용한 빅데이터 분석 방법을 나타내는 도면이다. 즉, 도 5는 최소 완전 해시 함수(MPHF, minimal perfect hash function)의 문제점인 해시 함수 충돌을 피하기 위한 인덱싱 구조를 나타내고 있다. 또한, 도 6은 본 발명의 일 실시예에 따른 최적의 인덱스 개수를 결정하는 방법을 나타내는 도면이다. 5 is a diagram illustrating a method of analyzing big data using a collision-free hash function according to an embodiment of the present invention. That is, FIG. 5 shows an indexing structure for avoiding a hash function collision, which is a problem of a minimal perfect hash function (MPHF). FIG. 6 is a diagram illustrating a method for determining the optimal number of indexes according to an embodiment of the present invention. Referring to FIG.

도 5와 도 6을 참조하여 본 발명의 일 실시예에 따른 빅데이터 분석 방법을 설명할 수 있다. Referring to FIGS. 5 and 6, a method of analyzing big data according to an embodiment of the present invention can be described.

예를 들어, 우선, 도 5를 참조하여 설명하면, 종래와 같이, 6개의 키(key)를 해시 테이블(hash table)에 입력하기 위해 6개의 해시 테이블을 준비하는 것이 아닌, 4개의 해시 테이블을 병렬로 준비한다. For example, referring to FIG. 5, instead of preparing six hash tables for inputting six keys into a hash table, four hash tables Prepare in parallel.

태그에 연관되는 아이템을 처리하기 위한 최적의 병렬 컴퓨팅을 구현하기 위해서는 최적의 해시 함수 개수를 결정해야 한다. 또한, 다수의 아이템이 해시 함수를 거쳤을 경우, 충돌이 일어나지 않으면서도 최소 인덱스 개수를 결정 해야 한다.  The optimal number of hash functions must be determined in order to implement optimal parallel computing to handle the items associated with the tag. In addition, if a number of items have passed a hash function, the minimum index number must be determined without collision.

예를 들어, 도 5에 도시된 바와 같이, p1은 F1:1에 p4와 함께 2개 할당되어 있어 충돌이 일어난다. 그러나 충돌이 일어나는 경우, 해시 함수를 하나 더 생성하여 충돌이 일어났던 p4 는 F2:1로 할당이 되고 p1은 실선으로 F1:1에 할당이 된다. 이와 같은 방법으로 충돌이 일어나지 않은 인덱싱 함수를 형성할 수 있다. For example, as shown in FIG. 5, p1 is assigned to F1: 1 along with p4, and a collision occurs. However, if a collision occurs, another hash function is generated so that p4 where the collision occurred is assigned to F2: 1 and p1 is assigned to F1: 1 with a solid line. In this way, an indexing function without collision can be formed.

그러나, 여기서, 해시 함수에 할당된 인덱스의 개수가 증가할 경우 충돌 확률은 낮으나 인덱스가 사용되지 않을 가능성이 생겨 비효율적이다. 예를 들어, 도 5에서 p3의 인덱스는 F1:2와 F2:3인데 이분 최대 매칭 기법을 통해 F2:3에 할당되고 F1:2에는 아무런 아이템이 할당되지 않을 수 있다. 따라서, 인덱스의 개수를 줄여야 한다. 그러나 인덱스 개수를 너무 줄이게 되면 충돌이 일어나게 되고 해시 함수의 개수가 너무 늘어나게 되니 최적의 인덱스 개수 설정이 중요함을 알 수 있다. 즉, 도 6에 도시된 방법과 같이 최적의 인덱스 개수를 결정할 수 있다. However, when the number of indexes allocated to the hash function increases, the probability of collision is low, but the index is not used, which is inefficient. For example, in FIG. 5, the indexes of p3 are F1: 2 and F2: 3, which are allocated to F2: 3 through the maximum matching technique, and no items are allocated to F1: 2. Therefore, the number of indexes must be reduced. However, if the number of indexes is reduced too much, collisions will occur and the number of hash functions will increase too much. Therefore, it is important to set the optimum number of indexes. That is, the number of optimal indexes can be determined as shown in FIG.

충돌 없는 인덱싱을 위해 사용되는 특성의 수를 m, 각 특성의 특징 개수를

Figure 112015022228747-pat00059
라 하는 경우, 최대로 구분 지을 수 있는 인덱스의 수는
Figure 112015022228747-pat00060
로 나타낼 수 있다. 실제로 구분이 필요한 인덱스 수는 평균
Figure 112015022228747-pat00061
이며,
Figure 112015022228747-pat00062
보다 많지 않고,
Figure 112015022228747-pat00063
가지 특성으로 표현할 수 있다. Let m be the number of attributes used for collision-free indexing,
Figure 112015022228747-pat00059
, The maximum number of indices that can be
Figure 112015022228747-pat00060
. The number of indices that actually need to be separated is the average
Figure 112015022228747-pat00061
Lt;
Figure 112015022228747-pat00062
Not much more,
Figure 112015022228747-pat00063
It can be expressed by branch characteristics.

즉, 인덱싱에 필요한 최소 특성수와 해시 구조에 따라 요구되는 추가 특성을 구성할 수 있으면, 빅데이타 연산에 따른 비용을 절감할 수 있다. 따라서, 도 3및 도 4에서 상술된 바와 같이, 최소 특성수를 결정하고 인덱싱할 수 있다.
That is, if the minimum number of characteristics required for indexing and the additional characteristics required according to the hash structure can be configured, the cost of the big data operation can be reduced. Thus, as described above in FIGS. 3 and 4, the minimum number of characteristics can be determined and indexed.

도 7은 본 발명의 일 실시예에 따른 충돌이 없는 해시 함수를 이용한 빅데이터 분석 장치를 나타내는 블록도이다. FIG. 7 is a block diagram showing a big data analysis apparatus using a collision-free hash function according to an embodiment of the present invention.

도 7을 참조하면, 충돌이 없는 해시 함수를 이용한 빅데이터 분석 장치(1)는 입력부(110), 제어부(120), 출력부(130) 및 저장부(140)를 포함할 수 있다. 상기 해시함수는 하나의 문자열을 보다 빨리 찾을 수 있도록 주소에 직접 접근할 수 있는 짧은 길이의 값이나 키로 변환하는 알고리즘을 수식으로 표현한 것이다.
7, the big data analysis apparatus 1 using the collision-free hash function may include an input unit 110, a control unit 120, an output unit 130, and a storage unit 140. The hash function is a mathematical expression of a short-length value or a key-conversion algorithm that allows direct access to an address so that a string can be found more quickly.

우선, 입력부(110)는 해시 테이블을 병렬로 입력할 수 있다. 도 5를 참조하여 설명한 바와 같이, 6개의 키(key)를 해시 테이블(hash table)에 입력하기 위해 6개의 해시 테이블을 준비하는 것이 아닌, 4개의 해시 테이블을 병렬로 준비할 수 있다.
First, the input unit 110 can input the hash table in parallel. As described with reference to FIG. 5, it is possible to prepare four hash tables in parallel, instead of preparing six hash tables for inputting six keys into a hash table.

또한, 제어부(120)는 상기 입력된 병렬 해시 테이블을 기초로 해시 함수를 메인 해시와 일반 해시로 나누어 진행하고, 충돌이 일어나는 경우 인덱싱 기법을 이용하여 해시 함수의 개수를 조절할 수 있다.
In addition, the controller 120 divides the hash function into a main hash and a general hash based on the input parallel hash table, and adjusts the number of hash functions using an indexing method when a collision occurs.

또한, 출력부(130)는 최소 특성수를 출력할 수 있고, 인덱싱 결과를 출력할 수 있다.
Also, the output unit 130 can output the minimum characteristic number and output the indexing result.

마지막으로, 저장부(140)는 해시 연산을 통해서 산출된 결과값이 저장될 수 있다. 또한 저장부(140)는 최소 특성수 및 인덱스 값이 저장될 수 있다.
Finally, the storage unit 140 may store the resultant value calculated through the hash operation. The storage unit 140 may also store the minimum number of characteristics and the index value.

이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation in the embodiment in which said invention is directed. It will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the scope of the appended claims.

Claims (6)

빅데이터 분석 방법에 있어서,
해시 함수를 메인 해시와 일반 해시로 분할하는 단계; 및
상기 해시 함수의 개수를 조절하는 단계를 포함하되,
상기 해시 함수의 개수를 조절하는 단계는,
퓨리스틱 알고리즘을 이용하여 최소 특성수를 결정하는 단계; 및
상기 최소 특성수를 기초로 인덱싱을 수행하는 단계
를 포함하고,
상기 최소 특성수를 결정하는 단계는,
인덱싱 함수를
Figure 112016064865415-pat00102
를 정의하고,
Figure 112016064865415-pat00103
는 주 구분 특성,
Figure 112016064865415-pat00104
는 보조 구분 특성으로 나누는 단계;
Figure 112016064865415-pat00105
인 동안,
Figure 112016064865415-pat00106
를 산출하고, 산출된 결과 값이 최소인
Figure 112016064865415-pat00107
Figure 112016064865415-pat00108
에서 찾아
Figure 112016064865415-pat00109
에 추가하는 단계;
상기
Figure 112016064865415-pat00110
,
Figure 112016064865415-pat00111
그룹에서 임의의
Figure 112016064865415-pat00112
,
Figure 112016064865415-pat00113
값을 비교하여 충돌횟수가 감소하는 방향으로 값을 설정하는 단계;
상기
Figure 112016064865415-pat00114
,
Figure 112016064865415-pat00115
그룹에서 임의의
Figure 112016064865415-pat00116
,
Figure 112016064865415-pat00117
값을 선택하여
Figure 112016064865415-pat00118
라 하고, 상기
Figure 112016064865415-pat00119
를 상기
Figure 112016064865415-pat00120
로 대체 시 충돌횟수가 감소하는 경우 대체하는 단계;
Figure 112016064865415-pat00121
일 때까지 2 내지 4번 반복하고,
Figure 112016064865415-pat00122
가 되면 종료하는 단계
를 포함하고,
여기서,
Figure 112016064865415-pat00123
Figure 112016064865415-pat00124
을 구성할 특성 개수로써,
Figure 112016064865415-pat00125
을 특징으로 하는 충돌이 없는 해시 함수를 이용한 빅데이터 분석 방법.
In a big data analysis method,
Dividing the hash function into a main hash and a general hash; And
And adjusting the number of hash functions,
Wherein the step of adjusting the number of hash functions comprises:
Determining a minimum number of characteristics using a purulent algorithm; And
Performing indexing based on the minimum number of characteristics
Lt; / RTI >
Wherein the step of determining the minimum number of characteristics comprises:
Indexing functions
Figure 112016064865415-pat00102
Lt; / RTI >
Figure 112016064865415-pat00103
Is a state classification characteristic,
Figure 112016064865415-pat00104
Dividing it into auxiliary classification characteristics;
Figure 112016064865415-pat00105
While,
Figure 112016064865415-pat00106
And if the calculated result value is the minimum value
Figure 112016064865415-pat00107
To
Figure 112016064865415-pat00108
Find
Figure 112016064865415-pat00109
;
remind
Figure 112016064865415-pat00110
,
Figure 112016064865415-pat00111
Any
Figure 112016064865415-pat00112
,
Figure 112016064865415-pat00113
And setting a value in a direction in which the number of times of collision is decreased;
remind
Figure 112016064865415-pat00114
,
Figure 112016064865415-pat00115
Any
Figure 112016064865415-pat00116
,
Figure 112016064865415-pat00117
By selecting a value
Figure 112016064865415-pat00118
Quot;
Figure 112016064865415-pat00119
Gt;
Figure 112016064865415-pat00120
When the number of collisions is reduced,
Figure 112016064865415-pat00121
2 < / RTI > to 4 < RTI ID =
Figure 112016064865415-pat00122
Step to end if
Lt; / RTI >
here,
Figure 112016064865415-pat00123
The
Figure 112016064865415-pat00124
As the number of characteristics to constitute,
Figure 112016064865415-pat00125
A method for analyzing big data using a hash function without collision.
삭제delete 삭제delete 삭제delete 제 1항에 있어서,
상기 최소 특성수를 기초로 인덱싱을 수행하는 단계는,
입력값에 대해 상기
Figure 112016064865415-pat00088
Figure 112016064865415-pat00089
로 분리하는 단계;
상기
Figure 112016064865415-pat00090
에 해수 함수를 통해 인덱스(index)를 설정하는 단계;
상기 인덱스 값에 해당하는
Figure 112016064865415-pat00091
값과, 입력값에 대한
Figure 112016064865415-pat00092
값을 비교하여, 일치하는 경우 인덱스 값을 출력하는 단계; 및
상기 인덱스 값에 해당하는
Figure 112016064865415-pat00093
값과, 입력값에 대한
Figure 112016064865415-pat00094
값을 비교하여, 일치하지 않는 경우 추가 인덱스 값을 생성하여 할당 후 출력하는 단계
를 포함하는 것을 특징으로 하는 충돌이 없는 해시 함수를 이용한 빅데이터 분석 방법.
The method according to claim 1,
Wherein the step of performing indexing based on the minimum number of characteristics comprises:
For the input value,
Figure 112016064865415-pat00088
and
Figure 112016064865415-pat00089
;
remind
Figure 112016064865415-pat00090
Setting an index through a sea water function;
Corresponding to the index value
Figure 112016064865415-pat00091
Value, and for the input value
Figure 112016064865415-pat00092
Comparing the values and outputting index values if they match; And
Corresponding to the index value
Figure 112016064865415-pat00093
Value, and for the input value
Figure 112016064865415-pat00094
Compares the values, generates additional index values if they do not match, and outputs them after allocation
Wherein the hash function is a hash function.
해시 테이블을 병렬로 입력하는 입력부;
상기 입력된 병렬 해시 테이블을 기초로 해시 함수를 메인 해시와 일반 해시로 나누어 진행하고, 충돌이 일어나는 경우 인덱싱 기법을 이용하여 해시 함수의 개수를 조절하는 제어부를 포함하되,
상기 해시함수의 개수를 조절하기 위해서, 퓨리스틱 알고리즘을 이용하여 최소특성수를 결정하고, 상기 최소특성수를 기초로 인덱싱을 수행하며,
상기 최소 특성수는,
인덱싱 함수를
Figure 112016064865415-pat00126
를 정의하고,
Figure 112016064865415-pat00127
는 주 구분 특성,
Figure 112016064865415-pat00128
는 보조 구분 특성으로 나누는 단계;
Figure 112016064865415-pat00129
인 동안,
Figure 112016064865415-pat00130
를 산출하고, 산출된 결과 값이 최소인
Figure 112016064865415-pat00131
Figure 112016064865415-pat00132
에서 찾아
Figure 112016064865415-pat00133
에 추가하는 단계;
상기
Figure 112016064865415-pat00134
,
Figure 112016064865415-pat00135
그룹에서 임의의
Figure 112016064865415-pat00136
,
Figure 112016064865415-pat00137
값을 비교하여 충돌횟수가 감소하는 방향으로 값을 설정하는 단계;
상기
Figure 112016064865415-pat00138
,
Figure 112016064865415-pat00139
그룹에서 임의의
Figure 112016064865415-pat00140
,
Figure 112016064865415-pat00141
값을 선택하여
Figure 112016064865415-pat00142
라 하고, 상기
Figure 112016064865415-pat00143
를 상기
Figure 112016064865415-pat00144
로 대체 시 충돌횟수가 감소하는 경우 대체하는 단계;
Figure 112016064865415-pat00145
일 때까지 2 내지 4번 반복하고,
Figure 112016064865415-pat00146
가 되면 종료하는 단계를 수행하여 산출되며,
여기서,
Figure 112016064865415-pat00147
Figure 112016064865415-pat00148
을 구성할 특성 개수로써,
Figure 112016064865415-pat00149
인 것을 특징으로 하는 충돌이 없는 해시 함수를 이용한 빅데이터 분석 장치.
An input unit for inputting the hash tables in parallel;
And a controller for dividing the hash function into a main hash and a general hash on the basis of the input parallel hash table and adjusting the number of hash functions using an indexing method when a collision occurs,
In order to adjust the number of hash functions, a minimum characteristic number is determined using a purulistic algorithm, indexing is performed based on the minimum characteristic number,
The minimum number of characteristics may be,
Indexing functions
Figure 112016064865415-pat00126
Lt; / RTI >
Figure 112016064865415-pat00127
Is a state classification characteristic,
Figure 112016064865415-pat00128
Dividing it into auxiliary classification characteristics;
Figure 112016064865415-pat00129
While,
Figure 112016064865415-pat00130
And if the calculated result value is the minimum value
Figure 112016064865415-pat00131
To
Figure 112016064865415-pat00132
Find
Figure 112016064865415-pat00133
;
remind
Figure 112016064865415-pat00134
,
Figure 112016064865415-pat00135
Any
Figure 112016064865415-pat00136
,
Figure 112016064865415-pat00137
And setting a value in a direction in which the number of times of collision is decreased;
remind
Figure 112016064865415-pat00138
,
Figure 112016064865415-pat00139
Any
Figure 112016064865415-pat00140
,
Figure 112016064865415-pat00141
By selecting a value
Figure 112016064865415-pat00142
Quot;
Figure 112016064865415-pat00143
Gt;
Figure 112016064865415-pat00144
When the number of collisions is reduced,
Figure 112016064865415-pat00145
2 < / RTI > to 4 < RTI ID =
Figure 112016064865415-pat00146
And then terminating the process.
here,
Figure 112016064865415-pat00147
The
Figure 112016064865415-pat00148
As the number of characteristics to constitute,
Figure 112016064865415-pat00149
Wherein the hash function is a hash function.
KR1020150031464A 2015-03-06 2015-03-06 Method and device for analyzing bigdata using hash function without collision KR101649128B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150031464A KR101649128B1 (en) 2015-03-06 2015-03-06 Method and device for analyzing bigdata using hash function without collision

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150031464A KR101649128B1 (en) 2015-03-06 2015-03-06 Method and device for analyzing bigdata using hash function without collision

Publications (1)

Publication Number Publication Date
KR101649128B1 true KR101649128B1 (en) 2016-08-19

Family

ID=56875116

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150031464A KR101649128B1 (en) 2015-03-06 2015-03-06 Method and device for analyzing bigdata using hash function without collision

Country Status (1)

Country Link
KR (1) KR101649128B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116680279A (en) * 2023-08-03 2023-09-01 北京冠群信息技术股份有限公司 Hash index-based data processing method, system, device and computer readable medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009169316A (en) * 2008-01-21 2009-07-30 Mitsubishi Electric Corp Hash function operational device, signature device, program and hash function operational method
JP2014130489A (en) * 2012-12-28 2014-07-10 Fujitsu Ltd Data storage program, data retrieval program, data retrieval device, data storage method, and data retrieval method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009169316A (en) * 2008-01-21 2009-07-30 Mitsubishi Electric Corp Hash function operational device, signature device, program and hash function operational method
JP2014130489A (en) * 2012-12-28 2014-07-10 Fujitsu Ltd Data storage program, data retrieval program, data retrieval device, data storage method, and data retrieval method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116680279A (en) * 2023-08-03 2023-09-01 北京冠群信息技术股份有限公司 Hash index-based data processing method, system, device and computer readable medium

Similar Documents

Publication Publication Date Title
Nagpal et al. Comparative study of density based clustering algorithms
CN105760889A (en) Efficient imbalanced data set classification method
US20170177705A1 (en) Clustering using locality-sensitive hashing with improved cost model
GB2583290A (en) Blockwise extraction of document metadata
US9619501B2 (en) Index scan device and index scan method
US11579208B2 (en) Method, apparatus and device for evaluating the state of a distribution transformer, and a medium and a program
CN102682086A (en) Data segmentation method and data segmentation equipment
CN117033424A (en) Query optimization method and device for slow SQL (structured query language) statement and computer equipment
JP2018046406A (en) Data compression method, data compression device, computer program and database system
KR101649128B1 (en) Method and device for analyzing bigdata using hash function without collision
KR20160113826A (en) A Method on Initial Seeds Selection of K-Means for Big Data Clustering
CN106302236A (en) A kind of method of data distribution and access device
EP3786816A1 (en) Local search with global view for large scale combinatorial optimization
Adasme et al. Stochastic maximum weight forest problem
KR101344649B1 (en) Hash-based skyline query processing method and apparatus thereof
RU2020129151A (en) Thinned Merkle tree method and system for processing data sets for their storage and tracking in a specific network
CN109657060B (en) Safety production accident case pushing method and system
CN108021935B (en) Dimension reduction method and device based on big data technology
CN110704535A (en) Data binning method, device, equipment and computer readable storage medium
KR102279323B1 (en) Method and device for grape spasification using edge prunning
Allias et al. A hybrid gini PSO-SVM feature selection: an empirical study of population sizes on different classifier
KR102404982B1 (en) Device and method for variable selection using elastic net regression
WO2019220608A1 (en) Information processing device, information processing method, and information processing program
Knyazeva et al. Comparison of the dynamics of active regions by methods of computational topology
CN104516978B (en) The method of compression intermediate candidate frequent item set for Database Intrusion Detection field

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant