エクスポーターセクション

Denodo Scheduler では、取得したタプルに異なる エクスポートアクション を定義できます (エクスポーターセクションのない VDPCache ジョブを除く)。

このセクションには、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])。

    注釈

    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] オプションは上書きされます。

  • Custom Exporters: ユーザーは独自のカスタムエクスポーターを作成することもできます。「 エクスポーター 」を参照してください。

ジョブで使用可能なエクスポーターのリストは、ジョブのタイプによって異なります。

ジョブの各タイプで使用可能なエクスポーター

エクスポーター/ジョブ

VDP

VDPCache

VDPIndexer

Scheduler Index

なし

Elasticsearch

なし

CSV

なし

JDBC

なし

カスタム

なし

注釈

Scheduler Index エクスポーターはバイナリフィールドのインデックスを作成できません。CSV エクスポーターは Base64 でエンコードされたテキストとしてバイナリフィールをエクスポートします。

注釈

複合データ型は、XML 形式でテキストとしてエクスポートされます。

注釈

JDBC エクスポーターを使用していて、1 つのタプルのエクスポートに失敗した場合、タプルのセット全体に例外を適用できない限り、ブロックの残りのタプルに対してプロセスが続行されます。その場合、それらのタプルは破棄されます。

ジョブのレポートには、失敗したドキュメントの ID (タプル番号) とその理由が示されます。

注釈

CSV エクスポーターについて:

  • 結果のファイルは 暗号化 (MD5/DES または SHA-512/AES-256 暗号化アルゴリズムを使用) または 圧縮 (ZIP ファイル) できます。

  • 標準変数 (projectNamejobNamejobIDjobStartTime) に加え、 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 には、たとえば、 yyyyMMddoutputDateFormat “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 を参照)。