DoError

愛知県在住・オイカワのテンカラ修行中・PC自作マニア

ExcelでMySQL

f:id:doeryaa:20210207025034p:plain

ExcelVBAスクレイピングしたデータをデータベースのMySQLへ保存

欲張りな見出しで申し訳ないです。

 

先日amazonのランキングデータをExcelのシートに取り込みました。

(これはスクレイピングの勉強)

doeryaa.hatenablog.com

 

データの活用方法

そのデータを活用するには?

 

データの中には

  • 商品の順位
  • ☆の数
  • 評価の数
  • 金額

があります。

では商品の順位・金額などの推移を特定期間で見れれば安定して売れている商品なのか急上昇中の注目商品なのか、今お値打ちなのか などが分かります。

そこで、推移を見るのには100位までのデータを一定期間保管しないといけません。

amazonランキングは1時間ごとに更新しているようなのですが、例えば

1カテゴリーのランキングを1日置きに取ったら

1カ月で100×30日=3000データ

半年で3000×6か月=18000データ

1年で18000×2=36000データ

これ、Excelで集計するの厳しくない?

一応64bit版なのでデータ数は大丈夫ですが、きっと集計に時間かかりますよね?

という訳でデータベース登場です。

(データベースの勉強)

 

データーベース

データベースには

(人気順)

など沢山あります。

名前を知っているのは

Oracle / MySQL / Microsoft SQL Server / PostgreSQL / SQLite / Microsoft Accessです。

この中から選ぶのですが世界でもっともシェアされているオープンソースデータベースシステムのMySQLにします。

  • 大容量かつ高速での動作
  • 操作方法がシンプルで使いやすい
  • 無料
  • ネットの情報が豊富

 

実験

早速、Win10 PC にMySQLをインストールしExcelVBAから接続してみます。

丸丸1日掛かりました・・・

試しにExcelのシートに張り付けている2日分のデータをMySQLのテーブルに取込み、再度シートへ貼り付けました。

 

速い!

 

瞬きの間に処理終わっています。

Excelはシートへの読書きに時間がかかるそうなのでそういった処理をなくす事ができれば速度は落ちません。

 

まとめ

この速度であればカテゴリーごとにテーブルを造れば、データに使うシートは1つで見た目もすっきり出来そうです。

通常、Excelのシートにデータを蓄積すると間違って消さないか、書き込みをしないかを気にするのですが、MySQLであればデータはデーターベースにあるのでシートの誤った編集を気にしなくて良くなります。

また、データーベースは複数台からの同時アクセスが可能なので他の使い道も沢山ありそうです。

 

お願い

amazonのランキングデータには商品を特定する情報が商品名しかないのでしょうか?

何かコードとかがあれば作りやすいのですが・・・

あと、お気付きの方もおられるかと思いますが、これExcelじゃなくても良くね?って言わないで下さい。

 

最後に、まさかとは思いますが、

  • そういうサイトありますよ~ 
  • amazonで見れますよ~

って情報がありましたらコメントで宜しくお願いします。