エクスポーターセクション¶
Denodo Scheduler では、取得したタプルに異なる エクスポートアクション を定義できます (エクスポーターセクションのない VDPCache ジョブと VDPDataLoad ジョブを除く)。
このセクションには、JDBC エクスポーターにのみ影響するグローバルオプション [Export as transaction] があります。有効にすると、すべての JDBC エクスポーターへのエクスポートが (ある場合) 単一のトランザクションとして処理されます。つまり、ジョブが終了すると、すべてのターゲットテーブルに同じデータが含まれます。それらのいずれかでエラーが発生した場合、すべての JDBC エクスポーター (他のタイプには影響しない) へのエクスポートはロールバックされ、それぞれ実行の開始時の状態に戻ります。エラーが発生しない場合のみ、新しいデータでのエクスポートが JDBC エクスポーターにコミットされます。
Scheduler は、以下のエクスポーターを提供しています。
Scheduler Index: 抽出されたタプルを Scheduler Index Server のインデックスに保存します。このエクスポーターを構成するには、次のパラメータを指定する必要があります。
Data source: タプル/ドキュメントがエクスポートされるインデックスに関連付けられた Scheduler Index データソースを選択する場合。
Index name: タプル/ドキュメントが保存される Scheduler Index Server インデックスの名前。
Clear index: チェックすると、新しいドキュメントを指定されたインデックスに保存する前に、現在のジョブの ID に関連付けられたすべてのドキュメントが削除されます。
注釈
Denodo 6.0 以前は、これらのエクスポーターは ARN-Index と呼ばれていました。
Elasticsearch: 抽出されたドキュメントを Elasticsearch インデックスサーバーのインデックスに保存します。このエクスポーターを構成するには、次のパラメータを指定する必要があります。
Data source: タプル/ドキュメントがエクスポートされるインデックスに関連付けられた Elasticsearch データソースを選択する場合。
Index name: タプル/ドキュメントが保存されるインデックスの名前。
Clear index: チェックすると、新しいドキュメントを指定されたインデックスに保存する前に、現在のジョブの ID に関連付けられたすべてのドキュメントが削除されます。
Recreate index: チェックすると、選択されたインデックスと、そのすべてのドキュメントが削除されます。その後、次のパラメータで指定された構成で、再びインデックスが作成されます。
Index Configuration: インデックスを作成するためのパラメータを指定する場合。これらのパラメータは、インデックスの作成時にのみ影響します。インデックスがすでに存在し、[Recreate Index] がチェックされていない場合は、何の影響もありません。
Shards: インデックスを構成するプライマリシャードの数。シャードは Elasticsearch によって自動的に管理される単一の Lucene インスタンスです。デフォルトでは、1 つのインデックスには 5 つのプライマリシャードがあり、クラスタ内のすべてのノード間で分散されています。
Replicas: クラスタ内のプライマリシャードのコピーの数。デフォルトでは、複製はありません。
Analyzer: 使用されるアナライザーは、ドキュメントの予期される言語に従って選択する必要があります。ストップワード (その言語の中で非常に一般的なワード) は削除されます。
Bulk processor configuration: 大量のデータを処理するために、エクスポーターがリクエスト (ドキュメントのインデックス作成または削除) をバッチ処理でグループ化し、バッチごとにすべてのリクエストを一度に Elasticsearch サーバーに送信します。バッチを送信するタイミングを構成するためのいくつかのパラメータがあります。
Document chunk size: 結果のチャンクを構成するドキュメントの数。(削除されたか、インデックスが作成された) ドキュメントがこの数に達すると、他のパラメータがこの数に達していない場合でも (デフォルトでは 10000)、エクスポーターはそれらをサーバーに送信します。
Chunk size (MB): 結果のチャンクを構成するドキュメントのサイズ。インデックスを作成するか削除されるドキュメントのサイズがこのサイズに達すると、他のパラメータがこのサイズに達していない場合でも (デフォルトでは 50 MB)、エクスポーターはそれらをサーバーに送信します。
Flush interval: エクスポーターが保留中のリクエストをサーバーに送信するのを待機する最長時間 (秒単位)。このタイムアウトに達すると、他のパラメータがこのタイムアウトに達していない場合でも (デフォルトでは 60 秒)、保留中のリクエストはサーバーに送信されます。
Concurrency level: エクスポーターにより同時に実行されることが許可されるリクエストの数、つまり、サーバーに同時に送信できるバッチの数を設定します (デフォルトでは 5)。
CSV: Separator パラメータで指定された文字で区切られたプレーンテキストファイルに取得されたタプルを保存します。ユーザーは、生成されるファイルのパスと名前を [Output file] フィールドに指定できます。デフォルトでは、ディレクトリ
<DENODO_HOME>/work/scheduler/data/csv
に<PROJECT_NAME>_<JOB_NAME>_<JOB_ID>_Group#<GID>_CSVExporter#<EID>_<JOB_START_TIME>.csv
という名前で生成されます。ここで、JOB_START_TIME は 1970 年 1 月 1 日以降ジョブが実行される瞬間までをミリ秒単位で表しています。[Include header] チェックボックスをチェックすると、ファイルの 1 行目に、エクスポートされた各タプルのフィールド名が含まれます。[Overwrite to old file] オプションが選択されている場合は、実行の瞬間の情報なしで (JOB_START_TIME なしで) ファイル名が生成されるため、新しいファイルを生成する代わりにジョブを複数回実行することで同じファイルが上書きされます。それ以外に、[Create new file] オプションが選択されている場合は、(ファイル名に JOB_START_TIME を追加することで) 実行ごとに新しいファイルが作成されます。最後に、[Append to old file] オプションが選択されている場合は、エクスポートされたデータが既存のファイルに付加されます。[Encoding] ドロップダウンを使用してテキストファイルのエンコード (BOM (バイトオーダーマーク) 付きファイルの生成をサポート) を選択できます (UTF-8、UTF16-LE、UTF16-BE、UTF-32LE、UTF-32BE、および GB-18030 のいずれか)。選択したエンコードに応じて日付と数字を書式化するには [i18n] ドロップダウンを使用します。その後、エクスポートされるタプルのフィールドにプロジェクト名、ジョブ名、ジョブ ID、およびジョブ開始時間を含める場合は、最後のチェックボックスをチェックする必要があります ([Export job identifier, job name project name and execution time fields])。デフォルトでは、このエクスポーターは RFC 4180 に従うので、必要に応じて二重引用符で値を囲みます。ただし、[Quote Options] フィールドで、すべてのフィールドを二重引用符でカプセル化するオプション ([Add quotation marks for all fields])、または二重引用符を決して追加しないオプション ([Never add quotation marks]) を選択することにより、このポリシーを変更できます。注釈
CSV エクスポーターを使用すると Microsoft Excel で直接開くことができるファイルを生成できます。そのためには、区切り文字として「;」を指定する必要があります。
JDBC: タプルをリレーショナルデータベースのテーブルに保存しますが、そのように構成するには、テーブルを含むリレーショナルデータベースにアクセスする JDBC 型の データソース を指定する必要があります。オプションパラメータ Schema では、テーブルが保存される既存のスキーマを指定できます。 Table name パラメータ (大文字小文字が区別されます) は、タプルが挿入される既存のテーブルを指定します。デフォルトでは、挿入先のテーブルスキーマは、各ジョブフィールドと互換性のあるデータ型のフィールドを保持している必要があります。[Export job identifier]、[job name]、[project name]、[execution time fields] チェックボックスをチェックすることで、エクスポートされるタプルのフィールド間にプロジェクト名、ジョブ名、ジョブ ID、およびジョブの実行時間を含めることもできます。エクスポートされるタプルに挿入する前にテーブルの内容を削除する場合は、[Delete table content] オプションをチェックします (この場合、テーブルの内容は、エクスポートフェーズの開始時ではなく、ジョブ実行の開始時に削除されます)。デフォルトでは、JDBC エクスポーターは挿入を実行するため、プライマリキーに同じ値を持つ別のタプルがすでに存在する場合、結果はエラーとなります。[Update tuple if entry already exists in DB] オプションをチェックすると、JDBC エクスポーターはタプルを挿入せずに、既存のタプルを更新します (複合プライマリキーが許容されます)。その他、このオプションがチェックされていない場合は、エクスポーターが受信するドキュメントのチャンク (サイズはパラメータ Batch size によって決定される) がバッチとしてデータベースに挿入されます (JDBC バッチ挿入を使用)。[Error Management] を構成することもできます。次の 3 つのオプションがあります。
Never rollback: エクスポートのエラーに関係なく、ロールバックは決して実行されません。ドキュメントのチャンクごとに独自のトランザクションでエクスポートされ、テーブルの以前の内容の削除 (そのオプションが使用されている場合) も別のトランザクションで実行されます。各チャンクの終わりに、正常に挿入/更新されたタプルはデータベースに永続的に保存されます。
Rollback if the exportation of all documents fails: 一部のドキュメントをエクスポートできなかった場合に、ロールバックが実行されます。すべてのドキュメントのエクスポートと、テーブルの以前の内容の削除 (そのオプションが使用されている場合) に同じトランザクションが使用されます。
Rollback if any exportation error occurs: 上記と同じですが、テーブルの以前の内容の削除中 (そのオプションが使用されている場合) にエラーが発生した場合、またはドキュメントのエクスポートに失敗した場合に、ロールバックが実行されます。
注釈
[Export as transaction] が有効な場合、各 JDBC エクスポーターの [Error Management] オプションは上書きされます。
Excel:Excel 2007 OOXML (.xlsx) ファイルに取得されたタプルを保存します。ユーザーは、生成されるファイルのパスと名前を [Output file] フィールドに指定できます。デフォルトでは、ディレクトリ
<DENODO_HOME>/work/scheduler/data/excel
に<PROJECT_NAME>_<JOB_NAME>_<JOB_ID>_Group#<GID>_ExcelExporter#<EID>_<JOB_START_TIME>.xlsx
という名前で生成されます。ここで、JOB_START_TIME は 1970 年 1 月 1 日以降ジョブが実行される瞬間までをミリ秒単位で表しています。ユーザーは、[Sheet name] フィールドで Excel シートの名前を指定できます。デフォルトでは、Excel シート名はSheet1
になります。[Include header] チェックボックスをチェックすると、ファイルの 1 行目に、エクスポートされた各タプルのフィールド名が含まれます。[Overwrite to old file] オプションが選択されている場合は、実行の瞬間の情報なしで (JOB_START_TIME なしで) ファイル名が生成されるため、ジョブを複数回実行すると、新しいファイルが生成されるのではなく、同じファイルが上書きされます。それ以外に、[Create new file] オプションが選択されている場合は、(ファイル名に JOB_START_TIME を追加することで) 実行ごとに新しいファイルが作成されます。最後に、[Append to old file] オプションが選択されている場合は、エクスポートされたデータが既存のファイルに付加されます。選択したエンコードに応じて日付と数字を書式化するには [i18n] ドロップダウンを使用します。[Export numbers as] セレクターを使用すると、数値をエクスポートするために使用する必要がある Excel を構成できます。ユーザーが選択できるオプションを以下に示します。
General
Number
。このオプションを選択する場合、[Number of decimals] フィールドで、10 進値のセルで表示する小数点以下桁数を指定する必要があります。Text
注釈
General
またはNumber
の形式で数値をエクスポートする場合、Excel が保存するのは、最上位の 15 桁のみです。全桁を保存する場合、数値をText
としてエクスポートする必要があります。Date pattern:
date
型の値に適用するパターン。フィールドが空のままの場合、以下の 2 つのオプションがあります。ユーザーが
datesubtypepattern
フィールドの値を定義する i18n を選択した場合、datesubtypepattern
が使用されます。i18n を選択しない場合、VDP データソースから取得したデフォルトの i18n が使用されます。
Time pattern:
time
型の値に適用するパターン。フィールドが空のままの場合、以下の 2 つのオプションがあります。ユーザーが
timesubtypepattern
フィールドの値を定義する i18n を選択した場合、timesubtypepattern
が使用されます。i18n を選択しない場合、VDP データソースから取得したデフォルトの i18n が使用されます。
Timestamp pattern:
timestamp
型の値に適用するパターン。フィールドが空のままの場合、以下の 2 つのオプションがあります。ユーザーが
datepattern
フィールドの値を定義する i18n を選択した場合、datepattern
が使用されます。i18n を選択しない場合、VDP データソースから取得したデフォルトの i18n が使用されます。
注釈
date
、time
、およびtimestamp
の各パターンで使用される構文は、Java の日付パターン (詳細については、「 日付と時間のパターン文字列 」を参照) と同じです。最後に、エクスポートされたタプルのフィールドの中のプロジェクト名、ジョブ名、ジョブ Id、およびジョブ開始時間を含める場合は、最後のチェックボックス ([Export job identifier, job name project name and execution time fields]) をチェックする必要があります。
Custom Exporters: ユーザーは独自のカスタムエクスポーターを作成することもできます。「 エクスポーター 」を参照してください。
ジョブで使用可能なエクスポーターのリストは、ジョブのタイプによって異なります。
エクスポーター/ジョブ |
VDP |
VDPIndexer |
VDPCache |
VDPDataLoad |
---|---|---|---|---|
Scheduler Index |
emoji |
emoji |
なし |
なし |
Elasticsearch |
emoji |
emoji |
なし |
なし |
CSV |
emoji |
emoji |
なし |
なし |
JDBC |
emoji |
emoji |
なし |
なし |
Excel |
emoji |
emoji |
なし |
なし |
カスタム |
emoji |
emoji |
なし |
なし |
注釈
Scheduler Index エクスポーターは、バイナリフィールドのインデックスを作成できません。CSV エクスポーターおよび Excel エクスポーターは Base64 でエンコードされたテキストとしてバイナリフィールドをエクスポートします。
注釈
複合データ型は、XML 形式でテキストとしてエクスポートされます。
注釈
JDBC エクスポーターを使用していて、1 つのタプルのエクスポートに失敗した場合、タプルのセット全体に例外を適用できない限り、ブロックの残りのタプルに対してプロセスが続行されます。その場合、それらのタプルは破棄されます。
ジョブのレポートには、失敗したドキュメントの ID (タプル番号) とその理由が示されます。
注釈
CSV エクスポーターおよび Excel エクスポーターについて:
結果のファイルは 暗号化 (CSV の場合は MD5/DES または SHA-512/AES-256 暗号化アルゴリズム、Excel の場合は SHA-512/AES-256 暗号化を使用) または 圧縮 できます (オプションでパスワードで保護された ZIP ファイルを生成するようにエクスポーターを構成可能)。
標準変数 (
projectName
、jobName
、jobID
、jobStartTime
) に加え、 Output file パラメータで (構文@{field:<DOCUMENT_FIELD_NAME>}
に従い) 任意の変数を指定できます。DOCUMENT_FIELD_NAME
は、エクスポートされるドキュメントのフィールドを表しています。これにより、エクスポートされたドキュメントは、これらの変数の値に従って、ファイルまたは別のもの (ファイル名はエクスポートされたドキュメントのフィールドの値に依存) に保存されるか、または同じファイルの別のシートに保存されます。入力および出力の日付パターンを指定することで、日付変数を書式化することもできます (入力パターンはオプション。指定しないと、日付はミリ秒単位と想定される)。標準変数jobStartTime
の構文は@{jobStartTime, outputDateFormat:<output_format>}
で、エクスポートされるドキュメントの他のすべての日付フィールドの構文は@{field:<DOCUMENT_FIELD_NAME>,inputDateFormat: <input_format>,outputDateFormat: <output_format>}
です。inputDateFormat
には、たとえば、yyyyMMdd
やoutputDateFormat “yyyy-MM-dd”
を指定できます。デフォルトでは、タプルがエクスポートされない場合、出力ファイルは削除されます (それらのファイルが以前の実行からすでに存在する場合を除く)。空のファイルも保持されるようにするには、[Create file even if no tuples are exported] フィールドをチェックします。
注釈
データを ODBC ターゲットにエクスポートする場合、使用される JDBC エクスポーターは「JDBC-ODBC ブリッジ」ドライバーで構成されたデータソースを保持している必要があります。ターゲットが Excel シートの場合、データソースは「Excel」アダプターで構成されている必要があり、[Table name] フィールドには「[Sheet1$]」が入力されている必要があります。どちらのドライバーも Denodo Scheduler に付属しています (表「 JDBC Drivers 」を参照)。Excel シートで作業する場合は、いくつかの制限事項を考慮することが重要です (https://support.office.com/en-us/article/Excel-specifications-and-limits-1672b34d-7043-467e-8e27-269d656771c3 を参照)。