Show Menu
トピック×

LookupRows

LookupRows 変換は、同じ追跡 ID を持った他のログエントリを調べ、出力フィールドの値を、入力行に指定されたフィールドの値に設定します。
調べる対象がルックアップファイルではなくログエントリであるという点で、LookupRows 変換は CrossRows 変換とよく似ています。CrossRowsを参照し てください
LookupRows 変換が正しく動作するためには、ソースデータにおいて、データが時系列順に並んでおり、追跡 ID ごとにグループ化されている必要があります。したがって、 LookupRows はファイルまたはファイルで定義さ Transformation.cfg れている場合にのみ機能 Transformation Dataset Include します。
以降、次の点を踏まえて、表内のパラメーターの説明をお読みください。
  • 出力行とは、ある特定の時点における変換の処理対象となるデータ行です。
  • 入力行とは、その他すべてのデータ行です(出力行の前後の行や、出力行そのものを含む)。入力行の入力フィールドの値が変換の入力として使用されます。
パラメーター 説明 デフォルト
名前 変換のわかりやすい名前。ここには任意の名前を入力することができます。
Comments (オプション)変換についてのメモ。
Condition 変換の出力を特定のログエントリに限定します。特定のログエントリがその条件を満たしていない場合、Output Row Value Output パラメーターのフィールドは変更されません。ただし、その入力内容が引き続き使用され、他のログエントリに影響を及ぼす可能性はあります。
Input Condition 特定の入力行からのみ変換の入力を受け入れます。特定の入力行が Input Condition を満たしていない場合、その行の入力フィールドは無視され、他の出力行に影響を与えません。ただし、その行の出力フィールドには、指定された条件に従って変更が加えられます。
Input Row Key Input 入力行のキーとして使用するフィールドの名前。
Input Row Value Input すべての条件が満たされ、Output Row Value Output パラメーターのフィールドに値がコピーされるとき、そのコピー元となる入力行のフィールドの名前。
Operation
それぞれの出力行について特定の出力を得るために、 Input Condition パラメーターと Input Row Key Input パラメーターで定義された全条件を満たしたすべての入力行に適用される演算。
  • FIRST は、(出力行より後ろの最初に一致した行ではなく)データ内で最初に一致した入力行から、Input Row Value Input パラメーターで指定されたフィールドの値を出力します。
  • LAST は、(出力行より前の最後に一致した行ではなく)データ内の最後の入力行から、Input Row Value Input パラメーターで指定されたフィールドの値を出力します。
Output Row Key Input 出力行のキーとして使用するフィールドの名前。
Output Row Value Output すべての条件が満たされ、Input Row Value Input パラメーターのフィールドから値がコピーされるとき、そのコピー先となる出力行のフィールドの名前。同じ x-trackingid 値と Output Row Key Input 値を持つ出力行はすべて、同じ Output Row Value Output の値を持ちます。
Input Row Key Input、Input Row Value Input、Input Condition のすべてのパラメーターが組み合わさって、追跡 ID ごとのルックアップファイルが定義されるのに対し、Output Row Key Input、Output Row Value Input、Condition の各パラメーターは、ファイル内のルックアップの対象と、Output Row Value Output によって指定されたフィールドに格納される値を定義します。
この変換の動作について理解を深めるために押さえておくべき要点を以下にまとめました。
  • Condition を満たしており、なおかつ Output Row Key Input が空以外である各出力行について、次の処理が実行されます。
    • 次の条件をすべて満たした先頭(FIRST)または最後(LAST)の入力行を探します。
      • 入力行が Input Condition を満たしている。
      • 入力行の x-trackingid が出力行の x-trackingid と等しい。
      • 入力行の Input Row Key Input が出力行の Output Row Key Input と等しい。
  • そのうえで、出力行の Output Row Value Output を入力行の Input Row Value Input に設定します。
考慮事項: LookupRows
  • ブランクのキー値は、どのような値とも一致しません。Even if there are input rows with blank keys and nonblank values that match the Input Condition, an Output Row Key Input of "" will always produce an Output Row Value Output of "".
  • If not forbidden by the Input Condition, a row may look up itself if its Input Row Key Input and Output Row Key Input values are the same.
複数のキー値がある場合は、変換を適用する前に、変換を使用し Format て組み合わせるこ とができま LookupRows す(Formatを参照)。
ペットの登録ページを設けた Web サイトがあるとします。登録ページで名前と品種を入力すると、後から、そのペットの名前に特化した「おもちゃの購入」ページが表示されます。この場合、登録ページに入力されたペットの品種に対してペットの名前をリンクさせるしくみが必要です。そのためには、次のような LookupRows 変換を作成することが考えられます。
この例を先ほどの要点と照らして考えてみましょう。
  • 条件を満たしており、なおかつ cs-uri-query(petname) の値が空以外である各出力行について、次の処理が実行されます。
    • 次の条件をすべて満たした最後(LAST)の入力行を探します。
      • 入力行に、空以外の cs-uri-query(petbreed) 値を含む。
      • 入力行の x-trackingid が出力行の x-trackingid と等しい。
      • 入力行の cs-uri-query(petname) の値が、出力行の cs-uri-query(petname) の値と等しい。
  • 出力行の x-pet-breed の値を入力行の cs-uri-query(petbreed) の値に設定します。
この LookupRows 変換では、ペットの名前(キー)を使用して、ペットの登録ページとおもちゃの購入ページの両方にペットの品種が確実に関連付けられるので、複数のペットを飼っている訪問者であっても、ペットの品種ごとに購入されたおもちゃを分析することができます。