質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

2回答

4031閲覧

MySQLにCSVファイルを定期的にLOADして差分のみテーブル更新するベストプラクティス

fukazume

総合スコア78

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

0グッド

0クリップ

投稿2020/08/18 01:44

編集2020/08/18 02:56

##■質問
例えば、RSSなど日々更新データが継ぎ足しされるファイルから、内容の差分だけをMySQLのDB/テーブルに定期的にインポートしたい(=テーブルをUPDATEしたい)場合の慣習やベストプラクティスを教えていただけますでしょうか。

##■これまでに考えたこと
とりあえず、LOAD DATA LOCAL INFILE <csvファイル名> した後に、MySQL内でデータを整えるのがいいのか、あるいはインポートする前の下処理として一定条件で整理されたcsvを生成するべきなのか、などいくつか手順が思いつきましたがどちらが一般的なのか、ベターなのかよくわかりませんでした。実践的な観点からメリット、デメリットなどアドバイスをいただけると誠にありがたいです。

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

例えば、RSSなど日々更新データが継ぎ足しされるファイルから

システムを作る時は最初からそのシステムがこれからどんな変更があり得るか、その変更にたえられるか、どれだけ長く使えるように作っておくかをきちんと考えます。
最初から日毎に別ファイルで用意しておくのが吉では?急にデータ量が増える事があってもいちばん負荷が少ないのでは?

投稿2020/08/18 02:10

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fukazume

2020/08/18 02:33 編集

ありがとうございます!確認させていただきたいのですが、日毎の生データはMySQLにインポートする必要はなく、あくまでアーカイブとして別途ストレージに保存しておくと管理上いろいろと良い、という意味でしょうか?お手数おかけしますがよろしくお願い申し上げます。
Orlofsky

2020/08/18 02:48

質問の内容から、日毎のデータだけインポートするだけで済む案件では? 過去のデータのUPDATE, DELETEが必要なら、質問にきちんと情報を追記しては?
fukazume

2020/08/18 02:57 編集

質問文中の「内容の差分だけをMySQLのDB/テーブルに定期的にインポートしたい」=UPDATEが必要、の意図でした。追記いたします。ありがとうございました。
guest

0

規模によります
カラム数が20~30で極端に長いデータがなく、全レコードで1万件以下なら
トランケートして毎回流し込んでも大した負荷ではないでしょう。
毎回何万件も更新されるなら差分を予めとらないと破綻するかもしれません

投稿2020/08/18 01:51

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fukazume

2020/08/18 02:27 編集

早速ありがとうございます!規模感など参考になりました。また一部、私の説明不足でした。RSSのように日々更新され、かつ新しいレコードが1件追加されたら古いレコードが1件削除されるような(=直近1ヶ月分しか保存されていないような)ファイルから、継ぎ足しでMySQLに全日付分のタイトルやカテゴリ、投稿日時などのレコードを蓄積していくイメージですとどのような継ぎ足し方が良いでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問