同時インポート

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:5分
  • 受信データを複数のインポートセットに分割し、インポートセットを同時に変換して処理時間を短縮します。

    同時インポートの実行は、順序が重要ではなく、大量のデータセットが原因でインポートに時間がかかる場合に役立ちます。順序が重要な場合は、インポートを複数のパーティションに分割して、各パーティションが順番に処理されるようにすることができます。

    注:
    同時インポートでは、処理と監視のオーバーヘッドが増加します。大きなデータセットでのみ使用してください。

    他のすべてのパラメーター (データベースのインデックスや変換など) を微調整した後にのみ、同時インポートを有効にします。

    同時インポートのスケジュール

    同時インポートを有効にするには、[予定されているデータインポート] フォームで [同時インポート] を選択します。手順については、「データインポートのスケジュール」を参照してください。

    スケジュールが同時インポートを実行すると、システムはデータをデータベース、Excel スプレッドシート、CSV ファイル、またはその他のソースから一時的なステージングテーブルにプルし、ステージングテーブルからターゲットテーブルに変換します。

    同時インポートを実行すると、glide.scheduled_import.max.concurrent.import_sets システムプロパティの値 (デフォルト = 10) までの複数のインポートセットが作成されます。たとえば、2 ノードのクラスターでは 4 つのインポートセットが生成され、10 ノードのクラスターでは 10 のインポートセットが生成されます。

    インポートセットトランスフォーマージョブ

    各アクティブノードは、毎分 2 つのインポートセットトランスフォーマージョブを実行します。これらのジョブは、同時インポートセットジョブキューをポーリングし、キューからインポートセットを選択して、それらのインポートセットを変換します。ワーカースレッドの可用性に応じて、すべてのジョブが同時に実行されます。

    同時インポートセットレコード

    同時インポートごとに同時インポートセットレコードが作成されます。フォームビューには、関連するすべてのインポートセット、同時実行インポートセットジョブ、および変換履歴が表示されます。

    任意のインポートセットを再開または再処理できます。詳細については、「同時インポートセットを監視する」を参照してください。

    同時インポートセットのジョブキュー

    データをロードした後、インポートセットが同時インポートセットジョブテーブルに追加されます。同時インポートセットジョブテーブルは、各同時インポートセットジョブのジョブタイプとステータスを示します。

    詳細については、「同時インポートセットジョブを監視する」を参照してください。

    同時インポートのパーティショニング

    インポートセットをパーティション分割して、各パーティション内の処理順序を維持することができます。

    デフォルトでは、レコードはラウンドロビン方式でインポートセットに割り当てられます。ただし、カスタムスクリプトを作成して、ターゲットのインポートセットを識別するカスタムパーティションキーを定義することができます。同じパーティションキーを持つすべての行が同じインポートセットに追加され、そのインポートセット内のデータが順番に処理されます。

    階層インポート

    別のインポートセットの完了後にインポートをスケジュールすることで、スケジュール済みインポートセット階層を作成できます。1 つの親スケジュール済みインポートは多くの子スケジュール済みインポートを持つことができ、各子のスケジュール済みインポートは指定された順序で実行されます。同時スケジュール済みインポートの場合、子のスケジュール済みインポートは、すべてのインポートセットトランスフォーマージョブが完了した後にのみ開始できます。

    最後のインポートセットトランスフォーマージョブが、階層内の次のインポートを開始します。

    親インポートプロセスの開始時に実行計画が生成されます。各インポートプロセスは、実行計画を使用して次に呼び出すプロセスをフェッチします。同時インポートの場合、最後のインポートセットトランスフォーマージョブが次のインポートをフェッチして実行します。

    同期された挿入

    結合フィールドは、レコード間の一意性を定義するのに役立ちます。変換プロセスは、結合値を持つ既存のレコードをチェックし、既存のレコードが存在する場合は更新し、存在しない場合は新しいレコードを挿入します。詳細については、「結合を使用したレコードの更新」を参照してください。

    デフォルトでは、同時インポートにより、実行中の各インポートセットで新しいレコードを挿入できます。インポートセットがレコードを挿入すると、他のインポートセットが同じレコードを挿入しないように、ターゲットテーブルに書き込みロックが設定されます。

    同時インポートのテーブル

    テーブル 説明
    同時インポートセット (sys_concurrent_import_set) 各同時インポートセットの詳細をインポートセットレコードに保存します。
    同時インポートセットジョブ (sys_concurrent_import_set_job) 処理するインポートセットを一覧表示します。
    スケジュール済みインポートの実行コンテキスト (sys_execution_context) 各スケジュール済みインポートの実行コンテキストを指定します。実行コンテキストは、階層的なスケジュール済みインポートを処理するときに使用する次のスケジュール済みインポートを指定します。
    階層的なスケジュール済みインポートの実行計画 (sys_execution_plan)。 階層インポートの実行計画を保存します。実行計画は、先行するスケジュール設定済み入力の後に実行されるスケジュール済みインポートを識別するツリー構造です。

    同時インポートによるドメインセパレーション

    スケジュール済みインポートテーブルに sys_domain フィールドを追加して、インポートセットのドメインセパレーションを有効にすることができます。インポートセットのロードジョブと変換ジョブは、両方ともインポートセットスケジュールジョブで指定されたドメインで実行されます。