JP6021111B2 - Flow aggregation apparatus and method - Google Patents
Flow aggregation apparatus and method Download PDFInfo
- Publication number
- JP6021111B2 JP6021111B2 JP2013211333A JP2013211333A JP6021111B2 JP 6021111 B2 JP6021111 B2 JP 6021111B2 JP 2013211333 A JP2013211333 A JP 2013211333A JP 2013211333 A JP2013211333 A JP 2013211333A JP 6021111 B2 JP6021111 B2 JP 6021111B2
- Authority
- JP
- Japan
- Prior art keywords
- index
- data
- dimension
- database
- dimensional
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 26
- 230000002776 aggregation Effects 0.000 title claims description 17
- 238000004220 aggregation Methods 0.000 title claims description 17
- 238000006243 chemical reaction Methods 0.000 claims description 54
- 238000010276 construction Methods 0.000 claims description 15
- 241000712062 Patricia Species 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 9
- 238000004458 analytical method Methods 0.000 claims description 7
- 230000001174 ascending effect Effects 0.000 claims description 6
- 230000004931 aggregating effect Effects 0.000 claims 1
- 230000002159 abnormal effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 208000014837 parasitic helminthiasis infectious disease Diseases 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、フロー集約装置及び方法に係り、特に、フローデータ分析装置及びフロー集約装置において、フローデータの分析結果に基づくフロー集約を効率化するためのフロー集約装置及び方法に関する。 The present invention relates to a flow aggregation apparatus and method, and more particularly, to a flow aggregation apparatus and method for improving the efficiency of flow aggregation based on flow data analysis results in a flow data analysis apparatus and flow aggregation apparatus.
ネットワーク上のトラヒックを監視することは、ネットワーク資源の適切な設計や、異常なトラヒックの検出・制御を実現する上で欠かせない技術である。このためには細粒度でのトラヒック監視技術が必要となる。 Monitoring the traffic on the network is a technology that is indispensable for the appropriate design of network resources and the detection and control of abnormal traffic. This requires a fine-grained traffic monitoring technique.
NetFlow技術では、フローの属性情報として、送信元アドレス(SrcIP)、宛先アドレス(DstIP)、送信元ポート(SrcPort)、宛先ポート(DstPort)、プロトコル(Proto)の5-tupleに加えて、送信元AS(Autonomous System)番号、宛先AS番号、転送に用いられるルータインタフェースの入出力番号、ToS(Type of Service)値、TCP(Transmission Control Protocol)_flag値等のフロー属性情報が含まれている。 In NetFlow technology, the source attribute (SrcIP), destination address (DstIP), source port (SrcPort), destination port (DstPort), and protocol (Proto) 5-tuple are added as the flow attribute information. It includes flow attribute information such as an AS (Autonomous System) number, a destination AS number, an input / output number of a router interface used for transfer, a ToS (Type of Service) value, and a TCP (Transmission Control Protocol) _flag value.
また、転送されるトラヒック量は日々増大しており、観測されるNetFlowデータのフロー数も爆発的に増加している。このため、従来手法でのNetFlowデータへの自在なアクセスが困難となりつつある。 In addition, the amount of traffic to be transferred is increasing day by day, and the number of flows of NetFlow data observed is increasing explosively. For this reason, it is becoming difficult to freely access NetFlow data using conventional methods.
多次元フローデータを保持するためのデータ構造として、FlowID(5-toupleのフロー情報)をキーとして保持する1次元ハッシュテーブルや、Tupleごとにハッシュテーブルを作成し、ハッシュテーブルのキーをLinked Listを用いて繋げたデータ構造を有する多次元ハッシュテーブルがある(例えば、非特許文献1)。 As a data structure to hold multidimensional flow data, create a one-dimensional hash table that holds FlowID (5-touple flow information) as a key or a hash table for each Tuple, and use the Linked List as the hash table key. There is a multi-dimensional hash table having a data structure connected by use (for example, Non-Patent Document 1).
しかしながら、1次元ハッシュテーブルは、5-tuple情報をそのまま保持するため、Tupleを自在に組み合わせての問合せができない。また、多次元ハッシュテーブルは、特定のtupleをワイルドカード指定して集約フローを探索する際に、探索時間が大きいという問題がある。 However, since the one-dimensional hash table holds the 5-tuple information as it is, it is not possible to make a query by combining Tuples freely. In addition, the multidimensional hash table has a problem that the search time is long when a specific tuple is designated as a wild card to search for an aggregate flow.
また、多次元論理データ空間ビットマップによる多次元データベースがある(例えば特許文献1参照)。これは、次元の特定の組み合わせにおいて、データが多次元論理データ空間内の座標を示すビットマップを作成しておくものである。 In addition, there is a multidimensional database based on a multidimensional logical data space bitmap (see, for example, Patent Document 1). This is to create a bitmap in which data indicates coordinates in a multidimensional logical data space in a specific combination of dimensions.
多次元フローデータベースにおいて、特定次元の組み合わせを指定したフロー検索(スライス検索)を実施することで、異常トラヒック等の特徴的なフローを抽出することができる。例えば、ワーム感染の疑いのあるホストの送信元IPアドレスとワーム感染拡大に利用される宛先ポート番号の組を指定して多次元データベース内を検索することで、ワーム感染拡大に伴って発信されるフローと、その感染先ホストのIPアドレス情報を得ることができる。 By performing a flow search (slice search) specifying a combination of specific dimensions in a multi-dimensional flow database, it is possible to extract a characteristic flow such as abnormal traffic. For example, by searching the multidimensional database by specifying the pair of the source IP address of the host suspected of worm infection and the destination port number used for spreading the worm infection, it will be transmitted along with the spread of the worm infection. You can get the flow and IP address information of the infected host.
上記の多次元データベースでは、高速にアクセスできるが、ビットマップ保持に必要な記憶容量が次元メンバ数、次元数、データ数に応じて増大するため、多次元大規模データにおいては、データベースに必要となるメモリ量が膨大となる。また、アクセス可能な次元の組み合わせパターンが限定されており、任意の次元の組み合わせでのアクセスが困難である。On-the-fly方式で問合せがある度に上記データベースを任意の組み合わせで構築する場合には、データベース構築時間及びデータベースに必要となるメモリ量が膨大となり、アクセスにかかるオーバヘッドが大きい。 The above multi-dimensional database can be accessed at high speed, but the storage capacity required to hold the bitmap increases according to the number of dimension members, the number of dimensions, and the number of data. The amount of memory becomes huge. In addition, accessible dimension combination patterns are limited, and access in any combination of dimensions is difficult. When the above database is constructed in any combination every time there is a query in the on-the-fly method, the database construction time and the amount of memory required for the database become enormous, and the access overhead is large.
分析対象となる異常トラヒックの特徴が予めわかっている場合で、かつ、一定以下の次元数・規模のデータであれば、特許文献1のように多次元論理データ空間ビットマップを作成することで高速なアクセスが可能である。しかし、分析対象となる異常トラヒックの特徴が未知である場合には、多次元データベースに対して任意の次元組み合わせでの複数パターンのスライス検索を実施しつつ、異常トラヒックの特徴を探る等の作業が必要となる。従来技術では、多次元データベースに対する、自在な次元組み合わせのスライス検索が困難である。
If the characteristics of abnormal traffic to be analyzed are known in advance, and if the number of dimensions / scale data is below a certain level, a multi-dimensional logical data space bitmap can be created at high speed as in
上記のように、1次元ハッシュテーブル、多次元ハッシュテーブルでは、フロー属性情報を自在に組み合わせた集約フローへのアクセスが困難である。また、多次元フローデータベースの多次元論理データ空間ビットマップでは、短時間でのアクセスが可能となる一方で、多次元の全ての組み合わせを考えると組み合わせ数が爆発するため、データベースに必要となる空間が膨大となり実施できない。 As described above, in a one-dimensional hash table and a multi-dimensional hash table, it is difficult to access an aggregated flow that freely combines flow attribute information. In addition, the multidimensional logical data space bitmap of the multidimensional flow database can be accessed in a short time, but the number of combinations explodes when considering all the multidimensional combinations. Is too large to implement.
本発明は、上記の点に鑑みなされたもので、大規模多次元データの任意の次元組み合わせの検索機能(スライス機能)を高速化可能なフロー集約装置及び方法を提供することを目的とする。 The present invention has been made in view of the above points, and an object of the present invention is to provide a flow aggregation apparatus and method capable of speeding up a search function (slice function) of an arbitrary dimension combination of large-scale multidimensional data.
一態様によれば、高次元かつ大規模なフローデータを対象として、多次元データを組み合わせた集約フローを検索するためのデータベースを構築するフロー集約装置であって、
読み込まれた多次元データの多次元属性を格納する多次元属性テーブルと、
前記多次元データに対するインデックス番号を格納するデータインデックステーブルと、
前記多次元データのフロー情報を格納するデータテーブルと、
前記検索するためのデータベースを構築するデータベース構築手段と、
を有し、
前記データベース構築手段は、
前記多次元属性テーブル内の次元毎に一意なメンバを次元ごとに次元メンバテーブルに格納する手段と、
前記次元メンバテーブルの前記メンバに対してインデックス番号を付与し、次元をまたがるメンバに対しては一意なインデックス番号を付与し、多次元メンバ情報を一元化し、メンバインデックス変換テーブルに格納する手段と、
前記多次元属性テーブルの属性をメンバインデックスに変換し、前記メンバインデックス変換テーブルを参照して、メンバに対するメンバインデックスを取得し、前記データテーブルのデータインデックスと取得した該メンバインデックスからメンバインデックス・データインデックス変換テーブルを作成する手段と、
前記メンバインデックス・データインデックス変換テーブルの前記メンバインデックスをウェーブレット木のルート列内インデックスに変換し、ウェーブレット木インデックス変換テーブルを作成する手段と、
前記メンバインデックス・データインデックス変換テーブルから前記メンバインデックスと前記データインデックスを取得し、該データインデックスから単一のデータ列に変換し、該データ列からウェーブレット木を作成し、該メンバインデックスと該データインデックス及び該ウェーブレット木の組み合わせからなる検索用ウェーブレット木DBを作成する手段と、を有するフロー集約装置が提供される。
According to one aspect, for a high-dimensional and large-scale flow data, a flow aggregation device that constructs a database for searching an aggregation flow that combines multidimensional data,
A multi-dimensional attribute table for storing multi-dimensional attributes of the read multi-dimensional data;
A data index table storing index numbers for the multidimensional data;
A data table for storing flow information of the multidimensional data;
Database construction means for constructing a database for the search;
Have
The database construction means includes
Means for storing a unique member for each dimension in the multi-dimensional attribute table in the dimension member table for each dimension;
Means for assigning an index number to the member of the dimension member table, assigning a unique index number to members across dimensions, centralizing multi-dimensional member information, and storing in a member index conversion table;
The attribute of the multi-dimensional attribute table is converted into a member index, a member index for the member is obtained by referring to the member index conversion table, and a data index of the data table and a member index / data index from the acquired member index Means for creating a conversion table;
Means for converting the member index of the member index / data index conversion table into an index in a root column of a wavelet tree, and creating a wavelet tree index conversion table;
The member index and the data index are acquired from the member index / data index conversion table, converted from the data index into a single data string, a wavelet tree is created from the data string, the member index and the data index And a means for creating a search wavelet tree DB comprising a combination of the wavelet trees.
一態様によれば、大規模高次元フローデータを現実的なメモリ空間量で管理することができ、さらに、目的のフローを検索する際には、フロー数に対数比例する時間計算量での高速な探索が可能となる。 According to one aspect, large-scale high-dimensional flow data can be managed with a realistic amount of memory space. Further, when searching for a target flow, high speed with a time calculation amount that is logarithmically proportional to the number of flows. Search becomes possible.
以下、図面と共に本発明の実施の形態を説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
本発明は、高次元かつ大規模なフローデータを対象として、自在な組み合わせの集約フローに対して高速なアクセスを可能にするフロー集約装置(多次元データベース構成装置)を提供するものである。 The present invention provides a flow aggregation device (multi-dimensional database configuration device) that enables high-speed access to any combination of aggregate flows for high-dimensional and large-scale flow data.
図1は、本発明の一実施の形態における多次元データベース構成装置の構成例である。 FIG. 1 is a configuration example of a multidimensional database configuration apparatus according to an embodiment of the present invention.
同図に示す多次元データベース構成装置100は、NetFlowデータ読み込み部110、テーブル作成部120、DB構築部130、ユーザクエリ解析部140、データベースアクセス部150、データ出力部160、中間DB170、DB180、データテーブル101、多次元属性テーブル102、データインデックステーブル103を有する。
The multidimensional
中間DB170は、メモリ上に設定され、次元メンバテーブル171と、メンバインデックス・データインデックス変換テーブル172を有する。DB180が構築されると当該中間DB170のメモリは解放される。
The
DB180は、検索用ウェーブレット木DB181、ウェーブレット木インデックス変換テーブル182、メンバインデックス変換テーブル183、Patricia木DB184を有する。
The
多次元データ読み込み部110は、フローデータ等の多次元データを読み込み、テーブル作成部120、DB構築部130に渡す。本例では、5次元のIPフロー情報の時系列トラヒック情報を読み込むものとする。
The multidimensional
テーブル作成部120は、読み込まれた多次元データを、図2に示すように、メモリ上のテーブル101,102,103に格納する。データインデックステーブル101は、読み込まれた各5次元情報に対して付与されたインデックス番号を保持する。多次元属性テーブル102は、各インデックス番号に対応するSrcIP、DstIP、SrcPort、DstPort、Protoを格納する。データテーブル103は、インデックス番号に対応するフローの情報(トラヒック量、パケット数等)を時系列に従って保持する。データテーブル103はフローごとに行が分かれており、多次元属性テーブル102は、データテーブル103の各行のポインタを返すため、当該多次元属性テーブル102を介してポインタを取得することで、データテーブル103内の該当するフローの情報を得ることができる。
The
DB構築部130は、以下のように中間DB170、DB180を構築する。
The
まず、DB構築部130は、多次元データを読み込む際に、図3に示すように次元ごとに、読み込みデータに出現した一意なメンバを次元メンバテーブル171に格納する。但し、SrcPort、DstPort、Protoについては昇順にメンバを格納する。SrcIP、DstIPについては、構築済みのPatricia木DB184を利用してIPアドレスの昇順にメンバを格納する。
First, when reading multidimensional data, the
DB構築部130は、メンバインデックス・データインデックス変換テーブル172を生成する。
The
メンバインデックス・データインデックス変換テーブル172は、図4に示すように、次元メンバテーブル171のメンバインデックスとデータテーブル103から得られたデータインデックスから構成される。 The member index / data index conversion table 172 includes a member index of the dimension member table 171 and a data index obtained from the data table 103, as shown in FIG.
DB構築部130は、以下の手順でメンバインデックス・データインデックス変換テーブル172を生成する。
The
(1)多次元属性テーブル102と図5に示すメンバインデックス変換テーブル183を用いて、多次元属性テーブル102の属性をメンバインデックスに変換する。例えば、図2の多次元テーブル102の1行目の
"SrcIP:10.0.01,DstIP:20.0.0.1,SrcPort:10,DstPort:20,Proto:6"
については、図5のメンバインデックス変換テーブル183を用いて
"SrcIP:0,DstIP:1000,SrcPort:2000,DstPort:3000,Proto:4000"
となる(これを仮に、多次元属性テーブル-2とする)。
(1) Using the multidimensional attribute table 102 and the member index conversion table 183 shown in FIG. 5, the attributes of the multidimensional attribute table 102 are converted into member indexes. For example, the first line of the multidimensional table 102 in FIG.
"SrcIP: 10.0.01, DstIP: 20.0.0.1, SrcPort: 10, DstPort: 20, Proto: 6"
About the member index conversion table 183 in FIG.
"SrcIP: 0, DstIP: 1000, SrcPort: 2000, DstPort: 3000, Proto: 4000"
(This is assumed to be multi-dimensional attribute table-2).
(2)データインデックステーブル101内の適当なData Indexから上記の多次元属性テーブル-2内の特定の行を得ることができる。例えば、Data Index1にアクセスすると、上記の
"SrcIP:0,DstIP:1000,SrcPort:2000,DstPort:3000,Proto:4000"
が得られ、下記のように、メンバインデックス・データインデックス変換テーブル172を作成する。
(2) A specific row in the multi-dimensional attribute table-2 can be obtained from an appropriate Data Index in the data index table 101. For example, when accessing
"SrcIP: 0, DstIP: 1000, SrcPort: 2000, DstPort: 3000, Proto: 4000"
The member index / data index conversion table 172 is created as follows.
メンバインデックス:0に対して、Data Index 1であるので、0→1;
メンバインデックス:1000に対して、Data Index 1であるので、1000→1;
メンバインデックス:2000に対して、Data Index 1であるので、2000→1;
メンバインデックス:3000に対して、Data Index 1であるので、3000→1;
メンバインデックス:4000に対して、Data Index 1であるので、4000→1;
上記の処理を全てのData Indexにアクセスして繰り返すことでメンバインデックス・データインデックス変換テーブル172を作成する。
Since member index: 0 is
Since member index: 1000 is
Since member index: 2000 is
Since member index: 3000 is
Since member index: 4000 is
The member index / data index conversion table 172 is created by accessing and repeating all the above-described processes.
Patricia木DB184は、SrcIP、DstIP次元に関して、多次元データを読み込む際に、読み込みデータに出現したメンバを用いて構築されたPatricia木を保持する。パトリシア木DB184は、後述する図13に示すように、SrcIP、DstIPそれぞれについて構成され、読み込まれる多次元データに存在する全てのSrcIPアドレス、DstIPアドレスが格納されている。
The
メンバインデックス変換テーブル183は、メンバ情報に対応するメンバインデックスを保持する。DB構築部130は、次元メンバテーブル171を参照してメンバに対してインデックス番号を付与する。同時に、図5に示すように、メンバ情報からインデックス番号に変換するテーブルを作成する。この際、次元をまたがるメンバに対して一意なインデックス番号を付与することで、多次元メンバ情報の一次元化を行う(ウェーブレット木を1次元リストで構築しなければならないため)。
The member index conversion table 183 holds a member index corresponding to member information. The
検索用ウェーブレット木DB181は、メンバインデックス・データインデックス変換テーブル172のメンバインデックス(図4のMember index)とデータインデックス(図4のData Index)を用いて、多次元データの一次元マッピングを行い、ウェーブレット木インデックス変換テーブル182を参照して、図6に示すようにマルチインデックス構造(ウェーブレット木)へと変換することにより生成される。
The
具体的には、メンバインデックス・データインデックス変換テーブル172を先頭から順に参照して、Data Index(図4)を単一のデータ列に変換する。図4の例では、1,3,2,4,6,5,…,1,2,3,5,4,6…となる。当該データ列からウェーブレット木を作成する。なお、データ列からウェーブレット列の生成については既存技術(例えば、非特許文献2:http://www.slideshare.net/pfi/ss-15916040)を用いることが可能である。図7にウェーブレット木の例を示す。ウェーブレット木は、完全二分木であり、各節点にはビット列が付随する。葉は各値に対応し、内部節点は子孫の葉の範囲に対応する。 Specifically, the member index / data index conversion table 172 is referred to in order from the top, and the Data Index (FIG. 4) is converted into a single data string. In the example of FIG. 4, it becomes 1,3,2,4,6,5,..., 1,2,3,5,4,6. A wavelet tree is created from the data sequence. Note that an existing technique (for example, Non-Patent Document 2: http://www.slideshare.net/pfi/ss-15916040) can be used for generating a wavelet sequence from a data sequence. FIG. 7 shows an example of a wavelet tree. The wavelet tree is a complete binary tree, and each node is accompanied by a bit string. A leaf corresponds to each value, and an internal node corresponds to a range of descendant leaves.
このウェーブレット木を用いることで、共通のメンバインデックスを含むデータインデックスの部分集合を得られる。このために例えば、Rank辞書という省メモリで構築可能な簡潔辞書を構築しておき、高速に(データ数に対して対数比例する時間計算量O(log n,但し、nはフロー数)で)共通部分集合を求めることが可能である(例えば、非特許文献3:T. Gagie, G. Navarro, S.J. Puglisi, New algorithms on wavelet trees and applications to information retrieval, Theoretical Computer Science 426-427 (2012) pp. 25-41.参照)。Rank辞書は索引構造を持ち、ビット列B[0…n]に対し、以下の操作を備えた辞書を完備辞書(FID)と呼ぶ。 By using this wavelet tree, a subset of data indexes including a common member index can be obtained. For this purpose, for example, a simple dictionary that can be constructed with low memory, called the Rank dictionary, is built, and at high speed (time complexity O (log n, where n is the number of flows) that is logarithmically proportional to the number of data) It is possible to obtain a common subset (for example, Non-Patent Document 3: T. Gagie, G. Navarro, SJ Puglisi, New algorithms on wavelet trees and applications to information retrieval, Theoretical Computer Science 426-427 (2012) pp See 25-41. The Rank dictionary has an index structure, and a dictionary having the following operations for the bit string B [0 ... n] is called a complete dictionary (FID).
・rankb(B,pos):B[0…pos]中のbの出現回数を返す;
・selectb(B,ind):(ind+1)番目のbの出現位置を返す;
例えば、図7の例では、rank1(6)=2であるとき、B[0,6)中に"1"は2回出現することを返し、select0(4)=8であるとき、(4+1)番目の"0"は8で出現することを返す。
Rankb (B, pos): returns the number of occurrences of b in B [0 ... pos];
Selectb (B, ind): returns the (ind + 1) th occurrence position of b;
For example, in the example of FIG. 7, when rank1 (6) = 2, “1” is returned twice in B [0,6), and when select0 (4) = 8, (4 The +1) th "0" returns to appear at 8.
ウェーブレット木インデックス変換テーブル182は、データ検索時に使用され、検索対象データがウェーブレット木のどの位置に存在するかを示すテーブルである。メンバインデックス変換テーブル183のメンバインデックス(Member index)をウェーブレット木のルート列内インデックスに変換するテーブルであり、メンバインデックス変換テーブル183の作成と同時に作成される。DB構築部130は、メンバインデックス・データインデックス変換テーブル172から当該ウェーブレット木インデックス変換テーブル182を作成する。具体的には、図6の例では、メンバインデックス"0"は、データ列において0〜1番目に存在し、メンバインデックス"3"は、データ列において4〜6番目に存在するという情報を、図8に示すように、メンバインデックスごとのウェーブレット開始インデックス(Wavelet_start_Index)と終了インデックス(Wavelet_last_Index)を設定する。
The wavelet tree index conversion table 182 is used at the time of data search, and is a table indicating where the search target data exists in the wavelet tree. This is a table for converting the member index (Member index) of the member index conversion table 183 into an index in the root column of the wavelet tree, and is created simultaneously with the creation of the member index conversion table 183. The
クエリ解析部140は、入力された各次元名とそのメンバ情報からなるユーザクエリを解析し、データベース180にアクセスするためのデータベースアクセスクエリを生成する。
The
データベースアクセス部150は、データベースアクセスクエリを以下の手順でデータインデックスへと変換する。
The
(1)データベースアクセスクエリをウェーブレット木インデックス変換テーブル182を参照して、ウェーブレット木ルート列内インデックスの組へと変換する。 (1) The database access query is converted into a set of indexes in the wavelet tree root column with reference to the wavelet tree index conversion table 182.
(2)検索用ウェーブレット木DB181に対して、共通部分集合を求める処理を実施する。
(2) A process for obtaining a common subset is performed on the search
本例では、5次元データであるので、最大5つの共通部分集合を求める関数を準備する。具体的には、非特許文献3の3章(3. New algorithms)に記載されている、2つの共通部分集合を得るためのアルゴリズムを用いる。当該非特許文献3の3.3節(3.3 Range intersection)において、3つ以上の共通部分集合を得るための関数拡張が可能である旨が記載されている。
In this example, since it is five-dimensional data, a function for obtaining a maximum of five common subsets is prepared. Specifically, an algorithm for obtaining two common subsets described in Chapter 3 (3. New algorithms) of
以下にデータベースアクセス部150の具体的な動作を説明する。
The specific operation of the
まず、ユーザクエリXとして、SrcIP,DstIP,SrcPort,DstPort,Protoの全てが指定されている場合について説明する。 First, a case where all of SrcIP, DstIP, SrcPort, DstPort, and Proto are specified as the user query X will be described.
図9は、本発明の一実施の形態におけるデータベースアクセス部の処理のフローチャート(その1)である。 FIG. 9 is a flowchart (No. 1) of the process of the database access unit in the embodiment of the present invention.
本例では、ユーザクエリXとして、
"SrcIP=10.0.0.1,DstIP=20.0.0.5,SrcPort=10,DstPort=20,Proto=6"
が入力されると(ステップ101)、当該ユーザクエリXでメンバインデックステーブル変換テーブル183(図5)を参照し、ユーザクエリXに対応するメンバインデックスX
"0,1001,2000,3000,4001"
を取得する(ステップ102)。
In this example, as user query X,
"SrcIP = 10.0.0.1, DstIP = 20.0.0.5, SrcPort = 10, DstPort = 20, Proto = 6"
Is entered (step 101), the member index table conversion table 183 (FIG. 5) is referred to by the user query X, and the member index X corresponding to the user query X is entered.
"0, 1001, 2000, 3000, 4001"
Is acquired (step 102).
次に、上記のメンバインデックスXに基づいて、ウェーブレット木インデックス変換テーブル182(図8)を参照し、メンバインデックスXに対するウェーブレット木インデックスX
"[0,1],[40,46],[60,72],[89,94],[130,132])"
を取得する(ステップ103)。
Next, based on the member index X, the wavelet tree index conversion table 182 (FIG. 8) is referred to, and the wavelet tree index X for the member index X is referred to.
"[0,1], [40,46], [60,72], [89,94], [130,132])"
Is acquired (step 103).
上記で取得したウェーブレット木インデックスXに対して、非特許文献3の技術を適用して共通部分集合演算を行い、データインデックス(1)を取得し、データ出力部160に出力する(ステップ104)。
A common subset operation is performed on the wavelet tree index X acquired above by applying the technique of
ステップ104のウェーブレット木を用いた共通部分集合演算は、図10の『0721436725047263』について共通部分集合を求める場合、二つの集合[(214)と(250)]の共通部分集合をウェーブレット木で求めるものとする。Rank0操作で左の節に移動(実線)し、Rank1操作で右の節に移動(破線)できる。Rank操作は集合の始点と終点でそれぞれ実施される(集合の長さに無関係)。Rank操作は定数時間とする。2つの集合が同じ値のポインタをさす場合、それが共通部分集合の値となる。
The common subset operation using the wavelet tree in
次に、ユーザクエリYとして、DstIP,Protoのみが指定されている場合について説明する。 Next, a case where only DstIP and Proto are specified as the user query Y will be described.
図11は、本発明の一実施の形態におけるデータベースアクセス部の処理のフローチャート(その2)である。 FIG. 11 is a flowchart (part 2) of the process of the database access unit in the embodiment of the present invention.
本例では、ユーザクエリYとして、
"SrcIP=*,DstIP=20.0.0.1,SrcPort=*,DstPort=*,Proto=6"
が入力されると(ステップ201)、当該ユーザクエリYでメンバインデックステーブル変換テーブル183(図5)を参照し、ユーザクエリYに対応するメンバインデックスY
"1000,4000"
を取得する(ステップ202)。
In this example, as user query Y,
"SrcIP = *, DstIP = 20.0.0.1, SrcPort = *, DstPort = *, Proto = 6"
Is entered (step 201), the member index table conversion table 183 (FIG. 5) is referred to by the user query Y, and the member index Y corresponding to the user query Y is entered.
"1000, 4000"
Is acquired (step 202).
次に、上記のメンバインデックスYに基づいて、ウェーブレット木インデックス変換テーブル182(図8)を参照し、メンバインデックスYに対するウェーブレット木インデックスY
" [30,40],[120,130])"
を取得する(ステップ203)。
Next, based on the member index Y, the wavelet tree index conversion table 182 (FIG. 8) is referred to, and the wavelet tree index Y for the member index Y is referred to.
"[30,40], [120,130])"
Is acquired (step 203).
上記で取得したウェーブレット木インデックスYに対して、非特許文献3の技術を適用して共通部分集合演算を行い、データインデックス(1,2,5)を取得し、データ出力部160に出力する(ステップ204)。共通部分集合演算は、上記と同様である。
The common subset operation is performed on the wavelet tree index Y acquired above by applying the technique of
次に、ユーザクエリZとして、SrcIPとDstIPのみが指定されている場合について説明する。 Next, a case where only SrcIP and DstIP are specified as the user query Z will be described.
図12は、本発明の一実施の形態におけるデータベースアクセス部の処理のフローチャート(その3)である。 FIG. 12 is a flowchart (No. 3) of the process of the database access unit in the embodiment of the present invention.
本例では、ユーザクエリZとして、
"SrcIP=*,DstIP=10.0.0.4/30, DstIP=20.0.0.1"
が入力されると(ステップ301)、当該ユーザクエリZにSrcIPについて、DstIP[10.0.0.4/30]の範囲でメンバインデックス変換テーブル183に含まれるアドレスが10.0.0.1〜10.0.0.6であるため[10.0.0.1,10.0.0.6]とし、図13に示すようなPatricia木DB184を参照する。(ステップ302)。
In this example, as user query Z,
"SrcIP = *, DstIP = 10.0.0.4 / 30, DstIP = 20.0.0.1"
Is input (step 301), since the address included in the member index conversion table 183 is 10.0.0.1 to 10.0.0.6 in the range of DstIP [10.0.0.4/30] for SrcIP in the user query Z [ 10.0.0.1, 10.0.0.6] and refer to the
ユーザクエリZのSrcIP=[10.0.0.1]とSrcIP= [10.0.0.6]に基づいてメンバインデックス変換テーブル183を参照し、メンバインデックス[0,3]を取得し、DstIP=20.0.0.1に基づいてメンンバインデックス"1000"を取得する。ここで、SrcIP_firstのメンバインデックスの先頭と末尾の組をクエリとする(ステップ303)。 Based on SrcIP = [10.0.0.1] and SrcIP = [10.0.0.6] of the user query Z, the member index conversion table 183 is referred to, the member index [0, 3] is obtained, and based on DstIP = 20.0.0.1 Get member index "1000". Here, the pair of the head and tail of the member index of SrcIP_first is used as a query (step 303).
ステップ303で得られたユーザクエリZ([0,3],1000)に基づいて、ウェーブレット木インデックス変換テーブル182(図8)を参照し、ウェーブレット木インデックスZ([0,6],[40,46])を取得する(ステップ304)。図8のウェーブレット木インデックス変換テーブル182の例では、1つ目の集合内の先頭であるメンバインデックス"0"のWevelet_start_Indexは"0"であり、集合内の末尾であるメンバインデックス"3"のWavelet_last_Indexは"6"である。 Based on the user query Z ([0, 3], 1000) obtained in step 303, the wavelet tree index conversion table 182 (FIG. 8) is referred to, and the wavelet tree index Z ([0, 6], [40, 46]) is acquired (step 304). In the example of the wavelet tree index conversion table 182 of FIG. 8, the Wavelet_start_Index of the member index “0” that is the head in the first set is “0”, and the Wavelet_last_Index of the member index “3” that is the end in the set. Is "6".
上記で取得したウェーブレット木インデックスZに対して、非特許文献3の技術を適用して共通部分集合演算を行い、データインデックス(1,2,3,5)を取得し、データ出力部160に出力する(ステップ305)。共通部分集合演算は、上記と同様である。
The common subset operation is performed on the wavelet tree index Z acquired above by applying the technique of
上記のように、本発明では、マルチインデックス構造とすることにより、任意のtupleの組み合わせに対して均一時間でのアクセスが可能となる。また、ウェーブレット木構造を組み合わせることで、アクセス時間の時間計算量をO(n)からO(log n)へ削減することが可能となる。 As described above, in the present invention, the multi-index structure allows access to any combination of tuples in a uniform time. Also, by combining the wavelet tree structure, the time complexity of access time can be reduced from O (n) to O (log n).
上記の実施の形態に示した多次元データベース構成装置の各構成要素の動作をプログラムとして構築し、多次元データベース構成装置として利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。 The operation of each component of the multidimensional database configuration apparatus shown in the above embodiment is constructed as a program and installed in a computer used as the multidimensional database configuration apparatus to be executed or distributed via a network. It is possible.
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。 The present invention is not limited to the above-described embodiments, and various modifications and applications are possible within the scope of the claims.
100 多次元データベース構成装置
101 データインデックステーブル
102 多次元属性テーブル
103 データテーブル
110 多次元データ読み込み部
120 テーブル作成部
130 DB構築部
140 ユーザクエリ解析部
150 データベースアクセス部
160 データ出力部
170 中間DB
171 次元メンバテーブル
172 メンバインデックス・データインデックス変換テーブル
180 DB
181 検索用ウェーブレット木DB
182 ウェーブレット木インデックス変換テーブル
183 メンバインデックス変換テーブル
184 Patricia木
DESCRIPTION OF
171 Dimension member table 172 Member index / data index conversion table 180 DB
181 Wavelet tree DB for search
182 Wavelet tree index conversion table 183 Member index conversion table 184 Patricia tree
Claims (6)
読み込まれた多次元データの多次元属性を格納する多次元属性テーブルと、
前記多次元データに対するインデックス番号を格納するデータインデックステーブルと、
前記多次元データのフロー情報を格納するデータテーブルと、
前記検索するためのデータベースを構築するデータベース構築手段と、
を有し、
前記データベース構築手段は、
前記多次元属性テーブル内の次元毎に一意なメンバを次元ごとに次元メンバテーブルに格納する手段と、
前記次元メンバテーブルの前記メンバに対してインデックス番号を付与し、次元をまたがるメンバに対しては一意なインデックス番号を付与し、多次元メンバ情報を一元化し、メンバインデックス変換テーブルに格納する手段と、
前記多次元属性テーブルの属性をメンバインデックスに変換し、前記メンバインデックス変換テーブルを参照して、メンバに対するメンバインデックスを取得し、前記データテーブルのデータインデックスと取得した該メンバインデックスからメンバインデックス・データインデックス変換テーブルを作成する手段と、
前記メンバインデックス・データインデックス変換テーブルの前記メンバインデックスをウェーブレット木のルート列内インデックスに変換し、ウェーブレット木インデックス変換テーブルを作成する手段と、
前記メンバインデックス・データインデックス変換テーブルから前記メンバインデックスと前記データインデックスを取得し、該データインデックスから単一のデータ列に変換し、該データ列からウェーブレット木を作成し、該メンバインデックスと該データインデックス及び該ウェーブレット木の組み合わせからなる検索用ウェーブレット木DBを作成する手段と、
を有することを特徴とするフロー集約装置。 A flow aggregation device that constructs a database for searching aggregate flows combining multidimensional data for high-dimensional and large-scale flow data,
A multi-dimensional attribute table for storing multi-dimensional attributes of the read multi-dimensional data;
A data index table storing index numbers for the multidimensional data;
A data table for storing flow information of the multidimensional data;
Database construction means for constructing a database for the search;
Have
The database construction means includes
Means for storing a unique member for each dimension in the multi-dimensional attribute table in the dimension member table for each dimension;
Means for assigning an index number to the member of the dimension member table, assigning a unique index number to members across dimensions, centralizing multi-dimensional member information, and storing in a member index conversion table;
The attribute of the multi-dimensional attribute table is converted into a member index, a member index for the member is obtained by referring to the member index conversion table, and a data index of the data table and a member index / data index from the acquired member index Means for creating a conversion table;
Means for converting the member index of the member index / data index conversion table into an index in a root column of a wavelet tree, and creating a wavelet tree index conversion table;
The member index and the data index are acquired from the member index / data index conversion table, converted from the data index into a single data string, a wavelet tree is created from the data string, the member index and the data index And means for creating a search wavelet tree DB comprising a combination of the wavelet trees;
A flow aggregating apparatus comprising:
前記次元メンバテーブルを作成する際に、次元が、送信元ポート(SrcPort)、宛先ポート(DstPort)、プロトコル(Proto)については、昇順に前記次元メンバテーブルに格納する手段と、
送信元アドレス(SrcIP)、宛先アドレス(DstIP)については、Patricia木を利用してIPアドレスの昇順に前記次元メンバテーブルに格納する手段と、
を含む
請求項1記載のフロー集約装置。 The database construction means includes
When creating the dimension member table, the dimension is a source port (SrcPort), a destination port (DstPort), and a protocol (Proto) for storing in the dimension member table in ascending order;
For the source address (SrcIP) and the destination address (DstIP), means for storing in the dimension member table in ascending order of IP addresses using the Patricia tree;
The flow aggregation device according to claim 1, comprising:
前記データベースアクセスクエリを前記ウェーブレット木インデックス変換テーブルを参照して、ウェーブウレット木ルート列内のインデックスの組に変換し、前記検索用ウェーブレット木DBを参照し、共通部分集合を求める処理を行うデータベースアクセス手段と、
を更に有する請求項1または2記載のフロー集約装置。 When a user query consisting of a dimension name and member information is input, query analysis means for analyzing the user query and generating a database access query for accessing the database;
A database that performs processing for converting the database access query to a set of indexes in a wavelet tree root sequence with reference to the wavelet tree index conversion table, and for obtaining a common subset by referring to the wavelet tree DB for search Access means;
The flow aggregation device according to claim 1, further comprising:
読み込まれた多次元データの多次元属性を格納する多次元属性テーブルと、
前記多次元データに対するインデックス番号を格納するデータインデックステーブルと、
前記多次元データのフロー情報を格納するデータテーブルと、
前記検索するためのデータベースを構築するデータベース構築手段と、
を有する装置において、
前記データベース構築手段が、
前記多次元属性テーブル内の次元毎に一意なメンバを次元ごとに次元メンバテーブルに格納するステップと、
前記次元メンバテーブルの前記メンバに対してインデックス番号を付与し、次元をまたがるメンバに対しては一意なインデックス番号を付与し、多次元メンバ情報を一元化し、メンバインデックス変換テーブルに格納するステップと、
前記多次元属性テーブルの属性をメンバインデックスに変換し、前記メンバインデックス変換テーブルを参照して、メンバに対するメンバインデックスを取得し、前記データテーブルのデータインデックスと取得した該メンバインデックスからメンバインデックス・データインデックス変換テーブルを作成するステップと、
前記メンバインデックス・データインデックス変換テーブルの前記メンバインデックスをウェーブレット木のルート列内インデックスに変換し、ウェーブレット木インデックス変換テーブルを作成するステップと、
前記メンバインデックス・データインデックス変換テーブルから前記メンバインデックスと前記データインデックスを取得し、該データインデックスから単一のデータ列に変換し、該データ列からウェーブレット木を作成し、該メンバインデックスと該データインデックス及び該ウェーブレット木の組み合わせからなる検索用ウェーブレット木DBを作成するステップと、
を行うことを特徴とするフロー集約方法。 A flow aggregation method for constructing a database for searching aggregate flows combining multidimensional data for high-dimensional and large-scale flow data,
A multi-dimensional attribute table for storing multi-dimensional attributes of the read multi-dimensional data;
A data index table storing index numbers for the multidimensional data;
A data table for storing flow information of the multidimensional data;
Database construction means for constructing a database for the search;
In a device having
The database construction means
Storing a unique member for each dimension in the multidimensional attribute table in the dimension member table for each dimension;
Assigning an index number to the member of the dimension member table, assigning a unique index number to members across dimensions, centralizing multi-dimensional member information, and storing in a member index conversion table;
The attribute of the multi-dimensional attribute table is converted into a member index, a member index for the member is obtained by referring to the member index conversion table, and a data index of the data table and a member index / data index from the acquired member index Creating a translation table;
Converting the member index of the member index / data index conversion table into an index in a root column of a wavelet tree to create a wavelet tree index conversion table;
The member index and the data index are acquired from the member index / data index conversion table, converted from the data index into a single data string, a wavelet tree is created from the data string, the member index and the data index Creating a search wavelet tree DB comprising a combination of the wavelet trees;
The flow aggregation method characterized by performing.
次元が、送信元ポート(SrcPort)、宛先ポート(DstPort)、プロトコル(Proto)については、昇順に前記次元メンバテーブルに格納するステップと、
送信元アドレス(SrcIP)、宛先アドレス(DstIP)については、Patricia木を利用してIPアドレスの昇順に前記次元メンバテーブルに格納するステップと、
を含む
請求項4記載のフロー集約方法。 When creating the dimension member table,
For the dimension, the source port (SrcPort), the destination port (DstPort), and the protocol (Proto) are stored in the dimension member table in ascending order; and
For the source address (SrcIP) and the destination address (DstIP), using the Patricia tree, storing in the dimension member table in ascending order of IP addresses;
The flow aggregation method according to claim 4, comprising:
前記クエリ解析手段が、次元名とメンバ情報からなるユーザクエリが入力されると、該ユーザクエリを解析し、データベースにアクセスするためのデータベースアクセスクエリを生成ステップと、
前記データベースアクセス手段が、前記データベースアクセスクエリを前記ウェーブレット木インデックス変換テーブルを参照して、ウェーブウレット木ルート列内のインデックスの組に変換し、前記検索用ウェーブレット木DBを参照し、共通部分集合を求める処理を行うステップと、
を更に行う請求項4または5記載のフロー集約方法。 In an apparatus further comprising query analysis means and database access means,
When the query analysis means receives a user query consisting of a dimension name and member information, the query analysis means analyzes the user query and generates a database access query for accessing the database;
The database access means converts the database access query into a set of indexes in a wavelet tree root sequence with reference to the wavelet tree index conversion table, refers to the search wavelet tree DB, and sets a common subset. Performing a process for obtaining
The flow aggregation method according to claim 4 or 5, further comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013211333A JP6021111B2 (en) | 2013-10-08 | 2013-10-08 | Flow aggregation apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013211333A JP6021111B2 (en) | 2013-10-08 | 2013-10-08 | Flow aggregation apparatus and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015075896A JP2015075896A (en) | 2015-04-20 |
JP6021111B2 true JP6021111B2 (en) | 2016-11-02 |
Family
ID=53000716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013211333A Expired - Fee Related JP6021111B2 (en) | 2013-10-08 | 2013-10-08 | Flow aggregation apparatus and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6021111B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105071983B (en) * | 2015-07-16 | 2017-02-01 | 清华大学 | Abnormal load detection method for cloud calculation on-line business |
CN114281874A (en) * | 2021-11-19 | 2022-04-05 | 北京大学 | Index conversion method and device based on soar AI processor |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3952518B2 (en) * | 1996-03-29 | 2007-08-01 | 株式会社日立製作所 | Multidimensional data processing method |
US6182060B1 (en) * | 1997-04-15 | 2001-01-30 | Robert Hedgcock | Method and apparatus for storing, retrieving, and processing multi-dimensional customer-oriented data sets |
US6298340B1 (en) * | 1999-05-14 | 2001-10-02 | International Business Machines Corporation | System and method and computer program for filtering using tree structure |
JP2001022766A (en) * | 1999-07-06 | 2001-01-26 | Degital Works Kk | Method and device for high speed processing for multidimensional database |
JP3449326B2 (en) * | 1999-12-08 | 2003-09-22 | 日本電気株式会社 | Data search system, packet processing apparatus, and control method |
JP2001216307A (en) * | 2000-01-31 | 2001-08-10 | Teijin Ltd | Relational database management system and storage medium stored with same |
JP4717106B2 (en) * | 2008-09-11 | 2011-07-06 | 株式会社日立製作所 | Flow information processing apparatus and network system |
-
2013
- 2013-10-08 JP JP2013211333A patent/JP6021111B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2015075896A (en) | 2015-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11601351B2 (en) | Aggregation of select network traffic statistics | |
US11681678B2 (en) | Fast circular database | |
Wullink et al. | ENTRADA: A high-performance network traffic data streaming warehouse | |
US9537972B1 (en) | Efficient access to sparse packets in large repositories of stored network traffic | |
WO2014136810A1 (en) | Similar data search device, similar data search method, and computer-readable storage medium | |
WO2016078592A1 (en) | Bulk data query method and apparatus | |
CN103605704B (en) | Mass url (uniform resource locator) data any field indexing and retrieving method | |
US9953058B1 (en) | Systems and methods for searching large data sets | |
Sarlis et al. | Datix: A system for scalable network analytics | |
JPWO2018143441A1 (en) | INFORMATION PROCESSING SYSTEM AND INFORMATION PROCESSING METHOD | |
Fusco et al. | pcapIndex: an index for network packet traces with legacy compatibility | |
JP6021111B2 (en) | Flow aggregation apparatus and method | |
Gou et al. | Graph stream sketch: Summarizing graph streams with high speed and accuracy | |
Boehm et al. | Sideloading–Ingestion of large point clouds into the Apache Spark Big data engine | |
Khan et al. | Set-based unified approach for attributed graph summarization | |
Zhou et al. | Exploring Netfow data using hadoop | |
KR102416580B1 (en) | Data management apparatus and method using hash table | |
Mishra et al. | Apache spark based analytics of squid proxy logs | |
Tapdiya et al. | A comparative analysis of state-of-the-art sql-on-hadoop systems for interactive analytics | |
JP7211255B2 (en) | Search processing program, search processing method and information processing device | |
Li et al. | Efficient distributed data clustering on spark | |
Wang et al. | KeyLabel algorithms for keyword search in large graphs | |
Klein et al. | Investigating bloom filters for web archives' holdings | |
Hintze et al. | Picky: Efficient and reproducible sharing of large datasets using merkle-trees | |
Kumar et al. | Raw Cardinality Information Discovery for Big Datasets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151125 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20151125 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160905 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160920 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160927 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6021111 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |