メインコンテンツへスキップ

はじめに

WorkbenchでUpsertを使用すると、新しい行または更新された行の小さいサブセットを特定し、既存のDomo DataSetにプッシュできます。Upsertは、一定のユースケースでデータ取り込みのパフォーマンスを大幅に向上させるために使用できるSQLマージの一種です。この更新方法を使用するには、データの各行を一意に識別するための主キーか複合キーが必要です。また、ODBCジョブのwhere句のように、Domoに送信する行のサブセットを特定する方法が必要です。行のサブセットが特定されると、Domoはキー列を比較して、その行が既にDataSetに存在するかどうかを判断し、それらの既存のレコードを 更新 します。存在していない行が 追加 されます。 Upsertは通常、DataSetがとても大きく、データが頻繁に更新されていて、データに固有の主キーまたは複合キーが含まれている場合に最適です。 すべての行を送信する代わりに、新しい行または更新された行のみを送信する場合に、Upsertを使用して効率を向上できます。 Upsertを適切に使用すると、Workbenchジョブのパフォーマンスや効率に大きなプラスの影響を与えるばかりでなく、データベースやファイルストレージシステムに要求されるリソースが少なくなります。不適切な使用は、パフォーマンスや実行時間にマイナスの影響を与える可能性があります。

Upsertの使用方法

WorkbenchでUpsert機能を使用するには、Domoに既存のWorkbenchジョブと正常なDataSetが既に存在している必要があります。Workbenchジョブの作成方法について詳しくは、「 Workbench 5.1でジョブを作成する 」を参照してください。
  1. [設定] タブに移動します。
  2. [更新方法][Append] に設定します。
    注記: これが新しいWorkbenchジョブである場合、 [Replace] で初めてジョブを実行してからDataSetを作成する必要があります。初めて実行した後、 [Append] に切り替えることができます。
    Upsert_Workbench_Update_Method.png
  3. [スキーマ] タブをクリックすると、 Upsertキー 列が表示されるようになります。
  4. 主キーまたは複合キーを表す対応する列のチェックボックスを選択します。 ヒント: 日付またはdatetime列は、常に一意であるとは限らないため、Upsertキーには推奨されません。 次の画像では、トランザクションごとに完全に一意なため、「Transaction ID」が選択されています。これで、Workbenchは常に「Transaction ID」を参照してトランザクションIDが存在するかどうかを確認します。存在する場合は更新し、存在しない場合は、新しい行を追加します。 注記: これらのステップを実行してもUpsertキーが表示されない場合は、Domoサポートに連絡し、Upsertが有効になっていることを確認するために、Domo DataSet IDを提供してください。詳しくは、「 テクニカルサポートに連絡する 」を参照してください。
    Upsert_Key.png
  5. 次に、 [設定] タブに戻り、処理中に [編集] をクリックしてクエリを作成します。
  6. ロジックを追加して、新規または更新される可能性のあるデータの小さなサブセットのみをプルするようにします。 この例では、トランザクションから7日以内にデータが更新される可能性があることが分かっているため、過去7日間のトランザクションを取得して、更新された行と新しい行を毎日キャプチャします。これは、「変更データ」または「デルタ」を識別するための様々な方法の簡単な一例にすぎません。
    Workbench_Upsert_Query.png
  7. [適用] をクリックします。
  8. プレビューを実行して適切なレコードが返されることを確認します。
  9. (オプション)ジョブのスケジュールを確認し、それに応じて調整する必要があります。
これで、Workbench Upsertジョブが適切に設定され、クエリによって返されたデータに基づいて新しい情報が更新または追加されるようになります。