レポート:IPDBルールのチューニング

Document created by RSA Information Design and Development on Feb 17, 2017
Version 1Show Document
  • View in full screen mode
  

このトピックでは、ルール定義を作成してレポートのパフォーマンスを向上させる方法について説明します。ルール定義を作成してレポートのパフォーマンスを向上させることができます。次に示すのは、パフォーマンスの向上を実現するためのルールを定義する方法のリストです。

  • パフォーマンスの向上を実現するには、WHERE句の変数に、完全一致句(「=」、「IN」)とともにIPDBインデックス変数を含めるようにします。
  • IPDBインデックス変数とともに「LIKE」、「>」(より大きい)、「<」(より小さい)演算子などの完全一致句を使用している場合、パフォーマンスは向上しません。

次の表に、クエリーでレポートのパフォーマンスにどのような影響があるか、例を示します。

                                          
ケース番号where句パフォーマンス向上の可能性備考
1IndexedVar1 = 'value1' AND
UnIndexedVar2 = 'value2'
IndexedVar1のIPDBフィルタ インデックスがチェックされて、「value1」が存在するかどうかが確認されます。「value1」が存在する場合、データ ファイルが読み取られます。存在しない場合は、スキップされます。 
2UnIndexedVar2 = 'value2' AND
IndexedVar1 = 'value1'
IPDBフィルタ インデックスは、IndexedVar1にのみ適用されて、「value1」が存在するかどうかが確認されます。「value1」が存在する場合、データ ファイルが読み取られます。存在しない場合は、スキップされます。
インデックス付き変数と
インデックスが付いていない変数の順序は関係しません。
3IndexedVar1 = ‘value1’ OR
UnIndexedVar2 = 'value2'
×インデックス付き変数とインデックスが付いていない変数の間に「OR」演算子があるため、
IPDBフィルタ インデックスは、データを利用できるかどうかを判断できません。
4IndexedVar1 = ‘value1’ OR
IndexedVar2 = 'value2'
IPDBフィルタ インデックスは、
IndexedVar1とIndexedVar2の両方に適用され、
「value1」と「value2」がそれぞれ確認されます。いずれかの値が存在する場合、データ ファイルが読み取られます。存在しない場合は、スキップされます。
5IndexedVar1 = 'value1' AND
UnIndexedVar2 LIKE ‘value%’
IPDBフィルタ インデックスは、IndexedVar1にのみ適用されて、「value1」が存在するかどうかが確認されます。「value1」が存在する場合、データ ファイルが読み取られます。存在しない場合は、スキップされます。
6IndexedVar1 LIKE ‘value1%’
AND UnIndexedVar2 LIKE
‘value2%’
×IPDBフィルタ インデックスは完全一致句のみで機能します。
7IndexedVar1 LIKE ‘value1%’
AND UnIndexedVar2 LIKE
‘value2%’ AND IndexedVar3 =
‘value3’
IPDBフィルタ インデックスは、IndexedVar3にのみ適用されて、「value3」が存在するかどうかが確認されます。「value1」が存在する場合、データ ファイルが読み取られます。存在しない場合は、スキップされます。

このセクションでは、インデックス付き変数を使用したルール定義の例を示します。

ケース1の例:インデックス付き変数とAND演算子 

次に示すのは、ケース1のクエリーの例です。 

            
ケース番号where句パフォーマンス向上の可能性備考
1.IndexedVar1 = 'value1' AND

UnIndexedVar2 = 'value2'
IndexedVar1のIPDBフィルタ インデックスがチェックされて、「value1」が存在するかどうかが確認されます。「value1」が存在する場合、データ ファイルが読み取られます。存在しない場合は、スキップされます。 

このクエリーは、特定のlevel値を持つ宛先IPアドレスを表示するように定義されています。Where句にインデックス付き変数ip.dstとインデックスの付いていない変数levelがAND演算子とともに含まれている点に注目してください。 

BloomFilterRule1.png

以下に示すように、レコード数は数百万件ありますが、インデックス付き変数を使用しているため、レポートは迅速にレンダリングされます。 

BloomFilterResult1.png

ケース5の例:インデックス付き変数とLIKE関数 

次に示すのは、ケース5のクエリーの例です。

            
ケース番号where句パフォーマンス向上の可能性備考
5.IndexedVar1 = 'value1' AND
UnIndexedVar2 LIKE ‘value%’
IPDBフィルタ インデックスは、
IndexedVar1にのみ適用されて、
「value1」が存在するかどうかが確認されます。「value1」が存在する場合、データ ファイルが読み取られます。存在しない場合は、スキップされます。

 次に示すのは、特定のユーザーのソースIPアドレスを表示するクエリーの例です。表のケース5で説明したように、Where句にインデックス付き変数ip.srcとインデックスの付いていない変数user.dstがLIKE演算子とともに含まれている点に注目してください。 

BloomFilterRule7.png

ケース3の例:インデックス付き変数とOR演算子 

次に示すのは、ケース1のクエリーの例です。 

            
ケース番号where句パフォーマンス向上の可能性備考
3.<IndexedVar1 = ‘value1’ OR
UnIndexedVar2 = 'value2'
×インデックス付き変数とインデックスが付いていない変数の間に
「OR」演算子があるため、
IPDBフィルタ インデックスはデータを
利用できるかどうかを判断できません。

以下のクエリーは、特定のlevel値を持つ宛先IPアドレスを表示するように定義されています。where句には、インデックス作成された変数ip.dstとインデックス作成されていない変数レベルがOR演算子付きで含まれています。次のクエリーではパフォーマンスの向上は見られません。 

BloomFilterRule3.png

Previous Topic:ルールのテスト
You are here
Table of Contents > レポート ルールの操作 > ルール グループおよびルールの定義 > IPDBルールのチューニング

Attachments

    Outcomes