VDPIndexer 抽出セクション¶
このタイプのジョブの目的は、Data Catalog (このツールの詳細については、「 Data Catalog ガイド 」を参照) で使用される適切な構造のインデックスを生成することです。Data Catalog はいくつかのインデックス作成プロセスで構成されており、各プロセスが Virtual DataPort からビューをクエリして、何らかの結果を取得します。このジョブは、インデックスに保存されるいくつかのドキュメントをタプルごとに生成します (ユーザーは Elasticsearch または Scheduler Index エクスポーターからインデックスを選択できます)。より具体的には、タプルの各フィールドがインデックス内の 1 つのドキュメントとなり、それぞれがタプル自体への参照を保持します。こうして、同じタプルに属するすべてのドキュメントをグループ化できます。「 General architecture of a VDPIndexer job 」には、このジョブの一般的なアーキテクチャが示されています。
VDPIndexer タイプのジョブの抽出セクションを構成するには、VDP タイプの データソース を選択する必要があります。選択後、[New Indexing Process] をクリックして、いくつかのインデックス作成プロセスを作成し、ドキュメントをインデックスに追加することができます。各インデックス作成プロセスは VDP サーバーからビューをクエリし、いくつかの行を取得します。Scheduler は、各行のフィールドごとに、構成されたインデックスに追加されるドキュメントを生成します (エクスポーターセクション内)。
[New Indexing Process] > [Multiple processes] をクリックすることで、一度に複数のインデックス作成プロセスを作成できます。その場合、インデックスを作成するビューを (すべての使用可能なビューから) 選択する必要があり、それぞれのビューに対する新しいインデックス作成プロセスが自動的に作成され、独自の設定が構成されます。
「Example of the extraction section of a VDPIndexer job 」には、このタイプのジョブの例が示されています。
グローバルな設定¶
ジョブ実行時に同時に実行するインデックス作成プロセスの数 (Concurrency Level) と、各インデックス作成プロセスで Virtual DataPort から抽出する 最大行数 を構成できます。このパラメータは、構成されると、構成内で上書きしない限り、各インデックス作成プロセスに適用されます。インデックスにはビューの各フィールドのエントリが 1 つずつ含まれるため、レポートに表示される、抽出されたタプルの数は Virtual DataPort から抽出された行の数より多くなります (前述のとおり)。
また、 テキストフィールド (とプライマリキー) のみのインデックス を作成するか、ビューのすべてのフィールドのインデックスを作成するかを指定できます。このパラメータは、各インデックス作成プロセスにより上書きされない限り、それらのプロセスに適用されます (後述)。デフォルトでは、このパラメータを有効にするとインデックスが可能な限り小さく保たれ、ビューのテキストフィールドとプライマリキーのみのインデックスが作成されます。これらのフィールドは通常、最も重要なフィールドです。
さらに、各インデックス作成プロセスで増分インデックスの作成に使用されるグローバルな日付を構成することもできます (後述)。この機能を使用するには、各インデックス作成プロセスを有効にする必要があります。以下のいずれかの方法でこの日付を構成できます。
Use last successful execution 。正常に終了したジョブの最後の実行日を使用します。
カスタム値 を入力して、開始日を構成します (YYYY-MM-DD'T'hh:mm:ss.SSSZ の形式。例: 2016-01-15T18:35:12.345+0200)。
インデックス作成プロセスの構成¶
各インデックス作成プロセスでは、以下のフィールド/セクションを構成します。
タプルの抽出元の VDP の ビュー。ここには定義されたプライマリキーを持つビューのみが示され、選択されたビューのすべてのフィールドが投影されます (つまり、
select * from <view>
が実行されます)。ユーザーはビュー名を入力できます。このコンボボックスには、ユーザーの入力によってフィルタされるビューの候補が表示されます。このコンボボックスのビューは、ジョブ用に構成された VDP データソースから取得されます (データソースで指定されたデータベースのビューだけでなく、ユーザーが権限を持つすべてのデータベースのビューがリストに表示されます)。対応する VDP サーバーが実行されている必要があります。また、レンズアイコンをクリックしてビューを選択することもできます。VDP から取得した、データベースとフォルダを含むツリー構造のポップアップが表示されます。目的のデータベースとフォルダをクリックしてビューを表示し、目的のビューにチェックを入れ、[OK] ボタンをクリックして選択します。
すべてのインデックス作成プロセスに対して構成された Index only text fields (and primary keys) のグローバル値を上書きすることができます。そのためには、ドロップダウンから値を選択します ([Default] 値はグローバルパラメータを使用することを意味します)。
すべてのインデックス作成プロセスに構成される最大行数のグローバル値を上書きすることができます。そのためには、[use maximum number of rows of the global settings] チェックボックスを無効にし、インデックス作成プロセスの maximum number of rows に新しい値を指定します。
order by expression: このオプションは、インデックス作成プロセスにより抽出される最大行数を制限した場合に役立ちます。たとえば、
field1 ASC, field2 DESC
のように指定します。2 つのオプションを含むドロップダウンがあります。Default: これはデフォルトオプションです。テキスト領域が無効にされ、式によるデフォルトの順序で値が入力されます (ビューのプライマリキーと ASC (昇順) を使用)。
Custom: ユーザーがテキスト領域に式を使用して順序を入力できます。このオプションが選択されている場合、式による順序の入力は必須ではありません。結果を並べ替えない場合は、テキスト領域を空のままにしておきます。
incremental indexing セクション: このセクションを構成すると、増分インデックスを作成できます。この機能では、指定された日付より新しい結果に対してのみインデックスを作成できます。そうすることで、すべてのインデックスをもう一度作成するのではなく、以前の実行の結果を含むインデックスに新たな結果を追加していくことができます。この機能を使用するには、各インデックス作成プロセスの増分インデックス作成を 有効 にする必要があります。その後、ビューの フィールド名 を指定し (date-related タイプ のフィールドのみがこのコンボにリストされます)、その値をグローバルな開始日に設定するか、 カスタム開始日 を入力することができます (前に説明したのと同じ形式)。また、カスタム 式 も指定できます (例:
"Date Field" > TO_DATE('yyyy-MM-dd''T''HH:mm:ss.SSSZ','2020-01-01T10:11:12.345+0200')
)。この式では変数{0}
を使用できます。これは、最後にプロセスが正常に実行された日付です。プロセスの増分インデックス作成が有効な場合は、式またはフィールド名とその日付のいずれかを指定する必要があります。advanced query filter: VDP タイプのジョブでも説明したとおり、パラメータ化クエリの where 部分です。クエリ条件はオプションで、ユーザーがそれらの条件を作成するために役立つ 2 つのコンボボックスがあります。
1 つは、選択したビューの フィールドを条件に追加 するためのものです (必須フィールドが示されます)。このコンボは、新しいビューが選択されるたびに更新されます (VDP データソースがアクセス可能な場合)。
もう 1 つは、条件に 演算子を追加 するためのものです。このコンボには条件で使用できるすべての指定可能な演算子が含まれます。
クエリ条件にはパラメータを指定できます。ソースと同時実行性のレベルの定義方法は VDP ジョブの場合と同じです。
ジョブ構成を保存すると、各インデックス作成プロセスのクエリ条件が VDP に対して検証されます。エラーがある場合は、エラーのあるインデックス作成プロセスの名前が赤色で表示され、各エラーに関する詳細情報が該当のインデックス作成プロセスの詳細に表示されます。
注釈
記号「@」、「\」、「^」、「{」、「}」が 拡張クエリフィルタ の定数部分で使用される場合は、それらを文字「\」でエスケープする必要があります (例: \@、\\、\^、\{、\})。
また、フィールド [indexing process name] では、ユーザーが各インデックス作成プロセスにわかりやすい名前を指定できます。この名前はインデックス作成プロセスを特定しやすいように、それらプロセスのリストに表示されます。デフォルトでは、選択されたビューの名前が表示されます (同じ名前を複数のインデックス作成プロセスに割り当てることはできません)。
これらのフィールドの値を考慮すると、VDP データソースに送信されるクエリは以下のようになります。
SELECT_NAVIGATIONAL *
FROM <view>
[ WHERE <incremental_indexing_field> >
<incremental_indexing_date> AND
<incremental_indexing_filter_expression> AND
<advanced_query_filter>]
[ ORDER BY <order_by_expression> ]
[ LIMIT <max_number_of_tuples> ]
CONTEXT ('EVALUATE_PROPERTY' = 'contenttype')
注釈
VDP へのコネクションが失われた場合、ユーザーは作業内容が失われないように、ジョブをドラフトとして保存できます。
注釈
このタイプのジョブには、少なくとも Scheduler Index エクスポーターと Elasticsearch エクスポーターのいずれか 1 つを構成する必要があります。
インデックス作成プロセスの推奨事項¶
ほとんどの場合、すべてのビューのすべてのコンテンツに対してインデックスを作成し、データ検出に使用しようとしても、役に立ちません。
無用なコンテンツのインデックスを作成しないことで、より小さいインデックスが生成され (ストレージ領域が節約されて)、ジョブの実行時間が短縮されます。
以下の推奨事項を考慮してください。
データ検出に付加価値をもたらすコンテンツのみインデックスを作成する:
最終ビューのみインデックスを作成し、中間ビューのインデックスは作成しない。
集約情報を示すビュー (例: レポートの場合) のインデックスは作成しない。
外部キー、ID、数値の測定値のみを含むファクトテーブルにはインデックスを作成しない。
テキストフィールドのみインデックスの作成を検討する。
行のサブセットのみインデックスの作成を検討する。
例: ビューによっては、最新のデータ (1 年など) または最も重要なデータ (優先度が 3 より高いサポートケースなど) のインデックスを作成するだけで十分な場合があります。
増分インデックスを使用する:
多くのビューには [‘last_modified’] フィールドが含まれるため、このジョブでこのフィールドを活用できます。
同じジョブですべてのコンテンツのインデックスを作成する必要はありません。
複数のジョブを同じインデックスで同時に動作させることができます。