Modify Recordsコンポーネント

Endecaデータ・ドメイン内のレコードの割当てを変更するには、Modify Recordsコンポーネントを使用します。特定の割当てを追加、変更または削除できます。

Modify Recordsコンポーネントは、Endecaデータ・ドメイン内のレコードの割当ての変更にデータ収集Webサービス(DIWS)を使用します。このコンポーネントはレコードへの新しい割当ての追加、レコードの既存の割当ての変更または削除を行えます。1つのトランザクションで複数のレコードを変更できます。

変更するレコードの選択には、次の2つのオプションが使用できます。
  • 入力データ配列のレコードを選択するために使用する属性と値を含められます。これらの属性はレコード・セット指定子属性と呼ばれています。
  • Endeca問合せ言語(EQL)レコード・セット指定子(WHERE句)を入力して変更するレコードを選択できます。
これらのオプションは相互に排他的です。変更するレコードを選択するためにEQLレコード指定子を使用する場合、レコードの選択に入力配列を使用できません。Endecaレコードの割当てに対する追加、上書きまたは削除を行うためのデータの入力には、入力配列が必要になります。

レコードの追加または変更を行う場合、 レコードに対する追加または上書きを行うためのデータの入力には、この入力が必要になります。

注意: 収集対象として送信される文字列データは有効なXML文字で構成されている必要があります。詳細は、「収集で有効な文字」を参照してください。

入力配列の使用

Modify Recordsコンポーネントの入力配列は、プロパティ名と、変更するレコードを指定する値およびレコードに追加する値またはレコードから削除する値との任意の配列です。null値が指定されたレコードに追加されることに注意してください。null値は、既存の値をすべて上書きします。

次の例では、次の入力配列が使用されています。
ProductKey|Color|SafetyStockLevel|ReorderPoint
CA-5965|Black|500|375
CA-6738|White|500|375
CA-7457|Black|500|375
CB-2903|Silver|1000|750
CN-6137|Silver|1000|750
CR-7833|Gold|1000|750
FH-2981|Silver|500|375
ProductKeyを指定子属性と仮定します。この値は、変更するレコードを選択する、レコード・セット指定子属性プロパティに入力されます。

「操作」プロパティの値が割当ての追加であり、レコードにColorSafetyStockLevelおよびReorderPointプロパティの値が含まれていない場合、これらのプロパティの入力値がProductKeyプロパティで指定されたレコードに追加されます。レコードにこれらのプロパティに対する値がすでに含まれており、これらのプロパティが複数割当てをサポートする場合、これらのプロパティの既存の値に入力値が追加されます。プロパティが複数割当てをサポートしていない場合、操作は失敗します。また、結果としてバッチ全体が失敗します。

「操作」プロパティの値が割当ての置換の場合、ProductKeyで指定されたレコードで指定されたプロパティの既存の値は入力配列の値で置き換えられます。入力プロパティのいずれかの値がnullの場合、プロパティの既存の値がすべてnull値で上書きされます。たとえば、入力配列に次のレコードが含まれているとします。
ProductKey|Color|SafetyStockLevel|ReorderPoint
CA-6738|||

この場合、ColorSafetyStockLevelおよびReorderPointプロパティの値がnull値で上書きされます。(つまり、この操作は実質的に、これらのプロパティのワイルドカードによる削除操作になります。)

「操作」プロパティの値が割当ての削除であり、次の配列が入力される場合(ProductKeyは指定子属性)、
ProductKey|Color|SafetyStockLevel|ReorderPoint
CA-5965|Black|500|375
CA-7457|Black||
次のようになります。
  • ProductKey=CA-5965のレコードでは、指定されたプロパティから入力値が削除されます。
  • ProductKey=CA-7457のレコードでは、割当てBlackColorプロパティから削除されます。

複数値属性は、複数割当てデリミタまたはリスト・データ型を使用して指定できます。詳細は、「複数値データの処理」を参照してください。

複数値属性を使用してレコードを選択する場合、一致動作は複数割当て指定子属性の動作プロパティの値で定義されます。
  • 複数割当て指定子属性の動作プロパティの値が「完全に一致する」である場合、Endecaレコードはレコードの属性の値が属性の入力値と完全に一致する場合にのみ選択されます。つまり、Endecaレコードの属性値には入力レコードの属性のすべての値が含まれ、かつそれらの値のみである必要があります。つまり、Endecaレコードの属性値に入力レコードの属性値以外の追加の値が含まれていると、Endecaレコードは選択されません。
  • 複数割当て指定子属性の動作プロパティの値が「含む」である場合、レコードの属性値に入力レコードの値が1つ以上含まれていると、Endecaレコードが選択されます。すべての値が必ずしも一致している必要はなく、Endecaレコードには、入力レコードに含まれている以外の追加の値が含まれていてもかまいません。

EQLを使用した変更対象レコードの選択

EQLレコード指定子(EQL問合せのWHERE句)を使用して、変更するレコードを選択できます。変数を使用して、選択に使用する入力プロパティを指定します。たとえば、次の配列を入力するとします。
ProductCategory|ProductSubcategory|SafetyStockLevel|ReorderPoint
Components|Hardware|250|185
Components|Wheels|25|18
Clothing|Hats|40|35
Clothing|Shirts|25|20
次のEQLを入力できます: "EnglishProductCategoryName"=$input.ProductCategory and "EnglishProductSubcategoryName"=$input.ProductSubcategory

複数割当てプロパティの値に基づいてレコードを選択する場合は、属性の値の完全なセットに基づいて値を選択するか、または属性の値セットの個々のメンバーに基づいて値を選択するかに応じて、異なる構文を使用します。属性の値の完全なセットに基づいてレコードを選択する場合は、構文"attribute"='value'を使用して、入力値が複数値セットになるようにします。

たとえば、Colorが複数割当て属性で、割当てを更新する必要があるとします。次の入力配列を定義します。
AssignedColors|NewColor
red,gree,blue|black
yellow,pink,orange|brown
EQL: "Color"={$input.AssignedColors}を使用します。

セットのメンバーの順序は重要でないことに注意してください。つまり、入力値green,blue,redでは、入力値red,green,blueと同じレコード・セットが選択されます。

複数割当て指定子属性の動作プロパティの値により、入力セットよりも多いまたは少ない値がレコードに含まれている場合の動作が決まります。このプロパティの値が「含む」である場合は、レコードに入力セットのいずれかのメンバーが含まれており、入力セットの値と完全に一致する必要がないときに、レコードが選択されます。複数割当て指定子属性の動作の値が「完全に一致する」である場合は、属性の値に入力セットのすべてのメンバーが含まれているときにのみレコードが選択されます。含まれている値が多いか、または少ない場合、レコードは選択されません。つまり、レコード指定子"Color"={'red','green','blue'}を使用すると、Colorの値がblue,redのレコードは選択されず、Colorの値がred,green,blue,yellowの場合も選択されません。

複数割当てプロパティの値セットのメンバーの値に基づいてレコードを選択する場合は、明示的な修飾構文を使用します。たとえば、Colorが複数割当て属性の場合、次の入力配列を定義します。
AssignedColors|NewColor
red|red
brown|brown

レコード指定子EVERY "value" IN "Color" SATISFIES("value"<>$input.AssignedColors)は、Color属性の値にAssignedColors入力フィールドの値が含まれないレコードを選択します。

Endeca問合せ言語の詳細は、Oracle Endeca Server EQLガイドを参照してください。

構成プロパティ

注意: すべてのコネクタのビジュアル・プロパティの詳細は、「コンポーネントのビジュアル・プロパティ」を参照してください。すべてのコネクタに共通の構成プロパティの詳細は、「コンポーネントの共通構成プロパティ」を参照してください。

次の表は、Modify Recordsコンポーネントに使用可能な構成プロパティを示しています。

表1 Modify Recordsコンポーネントのプロパティ
名前 説明 有効な値
Endeca Serverホスト Endeca Serverが稼働しているマシンを指定します。 そのマシンの名前またはIPアドレス。localhostを使用できます。 MyEndecaServer

255.255.255.0

Endeca Serverポート Endeca Serverがリスニングしているポートを指定します。 有効なポート。

Endeca Serverのデフォルト・ポートは7001ですが、別のポートに変更できます。

7001
Endeca Serverコンテキスト・ルート Endeca ServerのWebLogicアプリケーション・ルート・コンテキストを指定します。 WebLogicでの有効なルート・コンテキスト名。 /endeca-server
データ・ドメイン名 変更されるデータ・ドメインの名前。

データ・ドメインは、コネクタが含まれているグラフが実行されるときに稼働している必要があります。

有効なデータ・ドメイン名 quickstart
操作 実行する操作を指定します。オプションは次のとおりです。
  • 割当ての追加
  • 割当ての置換
  • 割当ての削除
レコード・セット指定子属性 操作するレコードを選択するために使用する入力属性を指定します。 入力メタデータで使用可能な属性
複数割当て指定子属性の動作 レコード選択時の複数値入力属性の一致方法を指定します。
  • 完全に一致する

    レコードは、レコードの属性値に属性のすべての入力値が含まれている場合にのみ選択されます。

  • 含む

    レコードは、レコードの属性値が属性の任意の入力値と一致する場合に選択されます。

EQLレコード・セット指定子を使用する 操作するレコードの選択にEQL式を使用するかどうかを指定します。

EQLの標準的な使用方法では、属性名を二重引用符で囲み、属性値を一重引用符で囲みます。

選択解除(false)

選択(true)

"DimGeography_City"='Newton' AND "DimGeography_StateProvinceName"='British Columbia'
複数割当て指定子属性の動作 レコード選択時の複数値入力属性の一致方法を指定します。
  • 完全に一致する

    レコードは、レコードの属性値に属性のすべての入力値が含まれている場合にのみ選択されます。

  • 含む

    レコードは、レコードの属性値が属性の任意の入力値と一致する場合に選択されます。

EQLレコード・セット指定子 操作するレコードを選択するために使用するEQL式。 有効なEQL式
SSL有効 コンポーネントのSSLを有効化または無効化します。

接続しているEndeca ServerのSSLが有効になっている場合にのみSSLを有効にしてください。

選択(True)

選択解除(False)

バッチ・サイズ 収集操作のバッチ・サイズ(バイト単位)を指定します。1つまたは複数のレコードで構成されるバッチ。

「コンポーネントによるバッチ・サイズ調整」も参照してください。

1以上の正の整数でバッチ・サイズを定義します。バッチ・サイズが小さすぎて最後のレコードがバッチに収まらない場合は、そのレコードを収容できるようにサイズをリセットします。その後、バッチ・サイズは指定したバッチ・サイズに戻ります。

0 (ゼロ)または負の整数を指定すると、バッチ処理はオフになります。バッチ処理がオフになっていると、レコードは1つずつデータ・ドメインに送信されます。

1000000

0

複数割当てデリミタ ソース・レコードのプロパティ内の複数割当て値を区切る文字を設定します。このデリミタは、ソース・レコードのプロパティ・フィールドを区切るデリミタとは異なることに注意してください。

「複数割当てデリミタ」も参照してください。

複数割当てのデリミタである単一文字。デフォルトはUnicode DELETE文字(\U007F)です。データに複数割当てプロパティが含まれていない場合は、このフィールドを使用する必要はありません。
失敗バッチの最大数 収集操作が終了するまでに許容されるバッチの失敗の最大数。 0 (バッチの失敗は許容されない)または正の整数。 15

出力ポート

データ・ドメイン内のレコード・データを(レコードまたはキーと値のペアの追加または削除によって)変更する各Information Discoveryコンポーネントには次2つの出力ポートがあります。
  • ポート0は、正常に収集されたレコードのバッチを示すステータス情報を返します。
  • ポート1は、データ・ドメインが収集に失敗したレコードのバッチを示すエラー情報を返します。ポートに出力された各レコードは、個々のレコードではなく失敗したバッチに対応します。
表2 ポート0のメタデータ
ポート・フィールド名 データ型 説明
開始行 Long バッチの開始行のID 00001
終了行 Long バッチの終了行のID 99999
削除されるレコードの数 Long データ・ドメインから削除されるレコードの総数 42683
影響を受けるレコードの数 Long 他のレコードは保持したまま、キー/値のペア(割当て)が削除されたレコードの数 19834
所要時間(秒) Numeric バッチの合計処理時間(秒) 127
表3 ポート1のメタデータ
ポート・フィールド名 データ型 説明
開始行 Long バッチの開始行のID 00001
終了行 Long バッチの終了行のID 99999
フォルト・メッセージ String Endeca Serverによって返されたエラー・メッセージ