データセットの差分更新

現在の仕様だとデータセットを更新する場合は「置き換え」か「追加」しか選択肢がありませんが、

状況に応じて内容が書き換えられる大量データを連携する場合などは、毎回全データの置き換えをするしかなく、

データ連携にかかる負荷が大きくなってしまいます。

 

こういったケースの場合、変更があった差分レコードのみを渡して、

DOMO側のデータを更新するようなことができれば

データ量による負荷が軽減できると思います。

 

キーとなるカラムを指定して一致した場合は

更新するような更新の機能の実装をお願いできればと思います。

21 votes

· Last Updated

Comments

  • 私も切実にこれをお願いしたいです。よくある運用だと思います。

    DataFlow(SQL)でupsertをする方法をここ(Dojo)で教えていただいたのですが

    設定でサクっとできればいいなと思っています。

    Domo側に直接お願いしたりしていますが今のところ進展はないです。

  • 同感です。

    データフローで頑張って結合するのやめたいです。。。

    MySQLコネクタにはUPSERTがあるので、これを全コネクタに実装していただければなーと思います。

    mysql.PNG

  • わ。。。すみません。

    MySQLのupsert(結合)って前からありましたでしょうか・・?それだと恥ずかしながら見逃していました。。

    私の方でupsertしたいdatasetのconnectorはmysqlの部分なので私が解決したいところは解決できるかもしれません。ありがとうございます!

    差分だけ拾ってくるupsertみたいなこと出来ないか結構前からDomoさんに伝えてて、出来ない/DataFlow(SQL)でupsertと回答をもらっていて

    無いものだと思いこんでいたかもしれません。

     

     

  • お!であればちょうどよかったです~!

    わたしも今年の2月?3月?くらいにはじめて見つけて、

    他のデータセットも全部これにしてほしい…と思っていたところでしたw

     

    MySQL SSHコネクタには残念ながら結合はありませんが、

    MySQLコネクタであれば先日添付した画像のとおり、結合できると思います~スマイリー ハッピー

     

     

  • 共有となりますが

     

    MySQLの差分更新「結合」モードは、

    普通に設定すると取込時に必ずエラーになってしまいました。

    サポートに問い合わせたところDataset毎にDomoへ申請しないと使えないとの回答でした。

     

    ・結合モードが必要な理由
    ・想定される1回毎のアップロード行数
    ・1日あたりのアップロードの回数
    ・結合キー

     

    が申請時に質問される項目となります。

     

    「推奨」と記載されているのに申請が都度必要という表示面については今後改修していくとのことです。

  • >ユーザー09489さん
    >DataFlow(SQL)でupsertをする方法をここ(Dojo)で教えていただいたのですが

     

    これが見つけられないので自分なりにコネコネしてみました。

    CSVをWorkBenchで送っています(MySQLコネクタではない)

     

    ここでは
    「Org01」オリジナルの入力DataSet
    「Update02」更新内容(差分)のDataSet
    「Output03」出力したい(更新し続けたい)DataSet名
    とします。いずれもカラム数、カラム属性は同一の前提です。


    (1)DataFlowのSQLで入力DataSet「Org01」、出力DataSet「Output03」
    出力のSQLに

    SELECT * FROM `Org01`

    を記述して、保存して実行

     

    (2)(1)で作成したMySQL DataFlow を編集モードに

     

    (3)入力DataSetに「Update02」と「Output03」の二つを指定
       最初に使った「Org01」は外す

     

    (4)変換のSQLに

    SELECT * FROM `Output03`
    WHERE `Keyにしたい項目` NOT IN (SELECT `Keyにしたい項目` FROM `Update02`);

    を記述し「出力表を生成」にチェック 「transform_data1」

     

    (5)出力のSQLに

    (SELECT * FROM `transform_data_1`) UNION (SELECT * FROM `Update02`)
    ORDER BY `Keyにしたい項目`;

    を記述して保存。


    (1)で一度出力を作るのと、(4)で先に重複排除する荒業です。

    既存レコードの更新にも、新規レコードの追加にも対応可能。

    この設定で、Workbenchから「Update02」をReplaceモードで送れば 「Output03」は差分更新と同じ結果が得られているように見えます。

     

    ※Keyが重複なしが前提ですね

  • Workbenchでも出来るのですね。参考になります。

     

     

    DataFlow-MySQLでupsertが出来ると教えてもらい、

    はじめは実行にすごい時間がかかってたため、

    ここでDataFlow-MySQL上でindex作成文を書けると聞いて

    ゴリゴリ頑張ることで実現できました。

    が、振り返るとDatasetの数や、設定・SQLの記述が結構な量で

    upsertをしたいデータの種類だけ掛け算で増えていくのが少し辛く。。

     

    MySQLコネクタに結合(upsert)モードがあると聞き

    Datasetの取込設定だけで出来ると幸せになれる!と思い飛びついたのですが

    エラー&申請が必要ということで現在に至ります。

     

  • @ay_dew

    こんにちは。 Domo Tomoです。

    DataFlowでは現在でもupsertできますが、全てのコネクターに「結合」機能が付いて、申請なく利用できるというのがご希望ですね?

     

  • @Tomoさん

    こんにちは。

     

    おっしゃる通りですね。

    よくある運用かと思いますので、「結合」の機能が

    全てのコネクターでデフォルトで使えると非常に便利かと思います。

     

    ぜひご対応よろしくお願いいたします。

  • @ay_dew @ユーザー09489 @ユーザー02879 @honda 全コネクターだと、優先順位が決められないため、実装の実現性を高めたいので、差分更新が欲しい具体的なコネクター名を幾つか上げて貰えませんか。(ドメインより後ろのコネクターURLを貼ってくれると嬉しいです。)

     

    Tomo

  • @Tomo こんにちは。ご検討ありがとうございます。

    弊社では特に以下のコネクタに差分更新があると大変助かります。

     

    /com.domo.connector.microsoft.sharepoint.online

    /connectors/com.domo.connector.workbenchodbc

    /com.domo.connector.googlebigqueryservice

    /com.domo.connector.fileupload

    /com.domo.connector.mssql.data

     

  • @Tomo 

    ありがとうございます。

    お返事遅くなって申し訳ございません。

     

    /com.domo.connector.googleAnalytics.adv

    /com.domo.connector.boxfileservice

    WorkBenchからのODBC接続

     

    にあると嬉しいです。

     

    よろしくお願いいたします。

     

  • こんにちは。 Domo Tomo です。

    Upsertできるコネクターが随時増えています。

    先週のリリースで下記3つのコネクターでも Upsert が利用出来る様になりました。

     

    The following connectors have upsert support:

     - Shopify

     - Box Advanced

     - Airtable

     

    今後の追加にもご期待ください!!