A5:SQL Mk-2

開発のこと、日々のこと

CSVインポート時の重複処理について

ホーム フォーラム A5:SQL Mk-2掲示板 CSVインポート時の重複処理について

  • このトピックには4件の返信、2人の参加者があり、最後ににより5年、 1ヶ月前に更新されました。
5件の投稿を表示中 - 1 - 5件目 (全5件中)
  • 投稿者
    投稿
  • #4083 返信
    Masaru
    ゲスト

    お世話になっております。
    ウェブから収集したデータをExcel等で前処理後、
    CSV形式で定期的にMySQLに格納しております。

    ウェブデータなので重複が多く、duplicateエラーが頻発しており
    現状では都度CSVを編集してエラーに対応しております。

    CSVインポート時で重複が発生した際、「都度エラー表示」以外に
    ・すべて上書き
    ・すべてキャンセル
    といった処理を行うことは可能でしょうか。

    よろしくお願い申し上げます。

    #4095 返信
    松原正和
    キーマスター

    Masaru さんこんにちは。
     
    申し訳ありません。今のところ、重複エラーが起きると停止してしまいます。Version 2.14.0から高速化のロジックを入れたことも関係して、重複時はUpdate等のロジックも入れづらい状況です。
     
    たとえば、同じレイアウトのワークテーブルを作成し、そこにインポートした後、insert select等で、処理したりできないでしょうか?。

    • この返信は5年、 8ヶ月前に松原正和が編集しました。
    #4175 返信
    Masaru
    ゲスト

    松原様

    ご回答いただき、ありがとうございます。

    ウェブデータに関しましてはMySQL Workbenchがインポートエラー発生時に
    スキップする処理になっているようで、そちらでいったんは解決しました。
    (とは言えMySQL WorkbenchのCSVインポートはカラムが欠落するといった
    別の問題を抱えているのですが……)

    もし将来的にインポート時の課題を解決できそうでしたら、ご検討頂けますと
    幸いです。

    なお、A5:SQL Mk-2は定型データの取り扱いでは非常に動作が安定しており、
    重宝して利用させて頂いております。今後とも宜しくお願い申し上げます。

    #5614 返信
    Dark
    ゲスト

    一つ質問なのですが、A5M2のCSVインポートの機能はDBごとに固有のCSVインポートの機能を利用しているという理解で大丈夫でしょうか。
    もしinsert文を発行している形であれば発行する文をmerge文(あるいはinsert on duplicate key update文)にするオプションがあった場合、該当する処理をA5M2側で行わずにDB側で処理できるので実装しやすい形になるかと思うのですがいかがでしょうか。
    ご検討の程よろしくおねがいします。

    #5654 返信
    松原正和
    キーマスター

    Darkさんこんにちは。
     
    内部的な動作としては、DBごとに処理を切り分けています。たとえば、Oracleでは接続に使っているライブラリであるUniDACにバッチ実行という機能があり、これを使用しています(実は、内部の実装がどうなっているか把握できていません)。MySQLの場合は、1000件ごとのバルクインサート(valuesが複数あるinsert)などを使用します。
     
    重複時の更新はDBを個別に修正しなければいけないため少し大変かと思います。できれば行いたいのですが、少し優先度は下げなければいけないかもしれません。
     
    以上よろしくお願いいたします。

5件の投稿を表示中 - 1 - 5件目 (全5件中)
返信先: CSVインポート時の重複処理について
あなたの情報:




コメントは受け付けていません。