はじめに
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でジョブを作成する 」を参照してください。- [設定] タブに移動します。
-
[更新方法]
を [Append] に設定します。
注記: これが新しいWorkbenchジョブである場合、 [Replace] で初めてジョブを実行してからDataSetを作成する必要があります。初めて実行した後、 [Append] に切り替えることができます。

- [スキーマ] タブをクリックすると、 Upsertキー 列が表示されるようになります。
-
主キーまたは複合キーを表す対応する列のチェックボックスを選択します。
ヒント: 日付またはdatetime列は、常に一意であるとは限らないため、Upsertキーには推奨されません。
次の画像では、トランザクションごとに完全に一意なため、「Transaction ID」が選択されています。これで、Workbenchは常に「Transaction ID」を参照してトランザクションIDが存在するかどうかを確認します。存在する場合は更新し、存在しない場合は、新しい行を追加します。
注記: これらのステップを実行してもUpsertキーが表示されない場合は、Domoサポートに連絡し、Upsertが有効になっていることを確認するために、Domo DataSet IDを提供してください。詳しくは、「 テクニカルサポートに連絡する 」を参照してください。

- 次に、 [設定] タブに戻り、処理中に [編集] をクリックしてクエリを作成します。
-
ロジックを追加して、新規または更新される可能性のあるデータの小さなサブセットのみをプルするようにします。
この例では、トランザクションから7日以内にデータが更新される可能性があることが分かっているため、過去7日間のトランザクションを取得して、更新された行と新しい行を毎日キャプチャします。これは、「変更データ」または「デルタ」を識別するための様々な方法の簡単な一例にすぎません。

- [適用] をクリックします。
- プレビューを実行して適切なレコードが返されることを確認します。
- (オプション)ジョブのスケジュールを確認し、それに応じて調整する必要があります。