VDPDataLoad 抽出セクション¶
VDPDataLoad タイプのジョブの抽出セクションを構成するには、VDP タイプの データソース を選択する必要があります。選択後に、[Add Load Process] をクリックすると、VDP ビューのデータを更新する複数のロードプロセスが作成される場合があります。
さらに、ジョブ実行時に同時に実行するロードプロセスの数も構成できます ([Concurrency Level])。
[Add Load Process] をクリックすると、作成するロードプロセスのタイプを選択できます。
JDBC テーブルのロードプロセス¶
各ロードプロセス (Example of the extraction section of a VDPDataLoad job) は、次の内容から構成されます。
データの更新や挿入を行う VDP の ビュー 。ユーザーは、JDBC またはリモートテーブルのビュー名を入力できます。このコンボボックスには、ユーザーの入力によってフィルタされるビューの候補が表示されます。このコンボボックスのビューは、ジョブ用に構成された VDP データソースから取得されます (データソースで指定されたデータベースのビューだけでなく、ユーザーが権限を持つすべてのデータベースのビューがリストに表示されます)。対応する VDP サーバーが実行されている必要があります。また、レンズアイコンをクリックしてビューを選択することもできます。VDP から取得した、データベースとフォルダを含むツリー構造のポップアップが表示されます。目的のデータベースとフォルダをクリックしてビューを表示し、目的のビューにチェックを入れ、[OK] ボタンをクリックして選択します。

VDPDataLoad ジョブのビューツリーセレクターの例¶
クエリ オプション: VDP に送信されるクエリの
OPTIONS
句のプロパティを指定し、挿入を設定できます。なお、データソースの中には、一部のパラメータをサポートしないものも存在します。使用可能な挿入オプションは以下のとおりです。batch_insert_size: 各バッチ挿入のタプルの数。
parquet_row_group_size: 行グループのサイズ (MB 単位)。プロパティは、Virtual DataPort が Parquet ファイルを使用してデータを挿入するデータソース (Athena、Hive、Impala、Presto、Spark) のみで有効です。
Incremental セレクター: このセレクターは、選択したビューがリモートテーブルの場合のみ表示されます。通常の JDBC ビューは常に増分ロードを実行するため、セレクターは表示されません。
有効化 した場合、増分データロードが実行されます。読み込みクエリで取得したデータは選択したビューに挿入されます。ビュー上の既存のデータは削除されません。読み込みクエリを定義するフィールドを使用できます。
無効化 した場合、デフォルトの読み込みクエリを使用して、JDBC テーブルのビューやリモートテーブルのビューのデータがすべて更新されます。つまり、テーブル上の既存のデータがすべて削除され、デフォルトの読み込みクエリによって取得したデータが挿入されます。
増分ロードの構成¶
以下のフィールドは、[Incremental] セレクターが有効化されている場合のみ使用できます。
Load Query Selector: 選択したビューに挿入するデータの抽出に使用する読み込みクエリの作成方法に応じて、オプション [Custom conditions] と [Custom Load Query] を選択します。このセレクターが表示されるのはリモートテーブルの基本ビューのみです。通常の JDBC ビューは、常に Custom Load Query による増分読み込みを行います。
Custom Load Query: このオプションを選択した場合、読み込みクエリをユーザーが手動で定義します。
デフォルトでは、この値はリモートテーブルの作成に使用した読み込みクエリです。あるいは、選択したビューがリモートテーブルではない場合、デフォルトは空となります。ユーザーは希望するデータを取得できるようにデフォルト値を変更可能です。クエリの結果は JDBC テーブルまたはリモートテーブルに挿入される行です。
カスタム読み込みクエリを作成する際は、
OFFSET
句、LIMIT
句、FETCH
句を使用できません。これは、INSERT
文がこれらの句をサポートしないためです。
Custom Conditions: このオプションを選択した場合、読み込みクエリはテーブルの作成時に使用した読み込みクエリの where 句に、ユーザーが選択した [Field Name] と [Custom Conditions] の値から成る条件句を加えたものとなります。
Field Name: ビューからフィールドを選択する場合、条件
fieldName > '@LAST_REFRESH_DATE'
が読み込みクエリに追加されます。ユーザーが [Custom Conditions] を選択した場合、[Field Name] は任意です。Custom Conditions: 読み込みクエリの where 句です。ユーザーが [Field Name] を選択済みの場合、[Custom Conditions] は任意です。ユーザーは次の 2 つのコンボボックスを使用して条件を作成できます。
1 つは、選択したビューの フィールドを条件に追加 するためのものです (必須フィールドが示されます)。このコンボは、新しいビューが選択されるたびに更新されます (VDP データソースがアクセス可能な場合)。
もう 1 つは、条件に 演算子を追加 するためのものです。このコンボには条件で使用できるすべての指定可能な演算子が含まれます。
増分ロードを行う場合、
'\@LAST_REFRESH_DATE'
変数を使用して、最終実行日時を参照できます。
Enable update on duplicate keys オプション: 有効化した場合、指定したフィールドと同じ値の行が挿入ではなく更新されます。フィールドを選択するには、オプションの [Update on duplicate keys field] を使用します。このフィールドに値が入っていない場合、プライマリキーを利用可能であればプライマリキーが選択されます。
生成されるクエリ¶
これらのフィールドの値を考慮すると、VDP データソースに送信されるクエリは以下のようになります。
非増分¶
REFRESH view
[ OPTIONS ( <option information> [ , <option information> ]* ) ]
TRACE
この場合
<option information> ::=
'batch_insert_size' = <literal>
| 'parquet_row_group_size' = <literal>
増分¶
INSERT INTO view
{ ON DUPLICATE KEY UPDATE |
ON DUPLICATE KEY ( <field name> [, <field name>]* ) UPDATE }
[ OPTIONS ( <option information> [ , <option information> ]* ) ]
<select load query>
[ TRACE ]
ここで、 select load query
は、
Custom Conditions の場合
<select load query> ::= select * from (<default load query> <conditions clause>)
default load query
の WHERE
句の有無に応じて、 conditions clause
に AND
または WHERE
を付加します。
<conditions clause> ::= WHERE <conditions>
| AND <conditions>
<conditions> ::= <fieldName> > '@LAST_REFRESH_DATE'
| <custom_conditions>
| <fieldName> > '@LAST_REFRESH_DATE' AND <custom_conditions>
Custom Load Query の場合
<select load query> ::= <custom load query>
また、フィールド [Load Process Name] では、ユーザーが各ロードプロセスにわかりやすい名前を指定できます。この名前はロードプロセスを特定しやすいよう、それらプロセスのリストに表示されます。デフォルトでは、プリロードされたビューの名前が表示されます (同じ名前を複数のロードプロセスに割り当てることはできません)。

VDPDataLoad ジョブの抽出セクションの例¶
サマリロードプロセス¶
サマリロードプロセスは JDBC ロードプロセスと同様です。相違点として、[Incremental] セレクターを有効化した場合、ユーザーは [Custom Load Query] オプションしか選択できません。[Custom Conditions] や [Field name] は使用できません。
各ロードプロセスの構成は以下のとおりです。
VDP データベース: ビューコンボボックスでのビューの取得に使用する VDP データベースを指定できます。
データを更新/挿入する VDP ビュー: このコンボボックスのサマリビューは、データベースコンボボックスで選択したデータベースから取得されます。VDP データベースのコンボボックスが存在しない場合、このコンボボックスのビューはジョブに構成された VDP データソースから取得されます (データソースに指定されたデータベースからのビューだけではなく、ユーザーがアクセス許可を持つ各データベースからのすべてのビューがリストされます)。対応する VDP サーバーが稼働中である必要があります (いつでもビューを VDP データソースから再読み込みできる更新ボタンがあります)。
クエリ オプション: VDP に送信されるクエリの
OPTIONS
句のプロパティを指定し、挿入を設定できます。なお、データソースの中には、一部のパラメータをサポートしないものも存在します。使用可能な挿入オプションは以下のとおりです。batch_insert_size: 各バッチ挿入のタプルの数。
parquet_row_group_size: 行グループのサイズ (MB 単位)。プロパティは、Virtual DataPort が Parquet ファイルを使用してデータを挿入するデータソース (Athena、Hive、Impala、Presto、Spark) のみで有効です。
Incremental セレクター
有効化 した場合、増分データロードが実行されます。読み込みクエリで取得したデータは選択したビューに挿入されます。ビュー上の既存のデータは削除されません。読み込みクエリを定義するフィールドを使用できます。
無効化 した場合、デフォルトの読み込みクエリを使用して、サマリビューのデータがすべて更新されます。つまり、テーブル上の既存のデータがすべて削除され、デフォルトの読み込みクエリによって取得したデータが挿入されます。
増分ロードの構成¶
以下のフィールドは、[Incremental] セレクターが有効化されている場合のみ使用できます。
Custom Load Query
デフォルトでは、この値はサマリの作成に使用した読み込みクエリです。ユーザーは希望するデータを取得するようにデフォルト値を変更できます。クエリの結果はサマリに挿入される行です。
カスタム読み込みクエリを作成する際は、
OFFSET
句、LIMIT
句、FETCH
句を使用できません。これは、INSERT
文がこれらの句をサポートしないためです。
Enable update on duplicate keys オプション: 有効化した場合、指定したフィールドと同じ値の行が挿入ではなく更新されます。フィールドを選択するには、オプションの [Update on duplicate keys field] を使用します。このフィールドに値が入っていない場合、プライマリキーを利用可能であればプライマリキーが選択されます。
サマリを増分ロードすることは可能ですが、最初のサマリのロードには、増分ではない VDPDataLoad ジョブを構成する必要があることに注意してください。この完全な更新ジョブは、新しいリビジョンにより既存のサマリが変更され、ターゲット環境上で以前のサマリの内容を置き換える必要がある場合の、昇格時に特に重要です。サマリの昇格の詳細については、「 サマリの昇格 」のセクションを参照してください。
生成されるクエリ¶
これらのフィールドの値を考慮すると、VDP データソースに送信されるクエリは以下のようになります。
非増分¶
REFRESH summary_view
[ OPTIONS ( <option information> [ , <option information> ]* ) ]
TRACE
この場合
<option information> ::=
'batch_insert_size' = <literal>
| 'parquet_row_group_size' = <literal>
増分¶
INSERT INTO summary_view
{ ON DUPLICATE KEY UPDATE |
ON DUPLICATE KEY ( <field name> [, <field name>]* ) UPDATE }
[ OPTIONS ( <option information> [ , <option information> ]* ) ]
<custom load query>
[ TRACE ]
また、フィールド [Load Process Name] では、ユーザーが各ロードプロセスにわかりやすい名前を指定できます。この名前はロードプロセスを特定しやすいよう、それらプロセスのリストに表示されます。デフォルトでは、プリロードされたビューの名前が表示されます (同じ名前を複数のロードプロセスに割り当てることはできません)。
一般的な考慮事項¶
ジョブテーブルの「Extracted」列と「Processed」列の値の意味は次のとおりです。
「Extracted」列には、定義された読み込みクエリを使用して VDP ビューから抽出したタプルの数が表示されます。
「Inserted」列には、リモート/JDBC テーブル、またはサマリに挿入されたタプルの数が表示されます。
どちらの列も個別のロードプロセスの値の集計を示しています。何らかの警告またはエラーがある場合は、最終的にそのロードプロセスのレポートを個別に確認することができます。「Extracted」と「Inserted」のどちらの列も、各プロセスで生成されたエラーの数、つまり、それぞれ抽出エラーの数と挿入エラーの数を示します (他のジョブタイプと同様に、エラーがない場合、エラーの数は示されません)。
注釈
VDP へのコネクションが失われた場合、ユーザーは作業内容が失われないように、ジョブをドラフトとして保存できます。