この記事を読むとわかること
・CSVファイルをmongoDBにインポートする方法がわかる
・インポートにかかる時間が5分以内であることが分かる
・なぜ、kaggleで戦うのにmongoDBを使うと良いのかわかる
なぜkaggleを戦うのにDBを用意するの?
kaggleで提供されるCSVデータは、10M以上あり、エクセルで開こうとするとかなり重くなります。
重いときは1Gを超えることもザラです。
その結果、データを調べることが相当手間になってしまいます。
kaggleのカーネル内でpandasつかってデータ分析する方法もありますが、pythonなどのコードを書かなければいけないため、手間がかかります。
「ちょっと調べたいな~、この条件のときの値はどうなっているんだろう?」というノリで調べるには、DBの検索機能を使って、データの中身を検索(find)すると非常に楽になります。
DBなら複数行のデータの比較にかかる時間が大幅に減らすことができます。
DBの中でもkaggleから提供されているデータを調査するならmongoDBがオススメです。
理由は、次の通りです!
なぜmongoDBがオススメなの?
理由1:テーブル定義の必要が無い
mongoDBを勧める一番の理由はテーブル定義をしなくても良いことです。
CSVデータがあれば、importコマンドを入力するだけで、DBにデータを格納してくれます。
MysqlやOracleDBでもcsvをインポートしてデータを見ることは可能です。
しかし、これらのDBは、テーブル定義が必要です。
列数が少なければ、テーブル定義してcsvをインポートしても良いのですが、kaggleには50列を超えるデータも存在します。50列分をテーブル定義を作るのは以外に面倒です。
MongoDBは、テーブル定義の必要が無いので、(データを確認できるまでの)時間をかけずにデータ分析が可能です。
理由2:条件を設定すれば該当データのみ抽出できる
たとえば、条件「int型変数 > 10」のデータを取得したいとします。
そんなときは、以下のような条件文を書いて検索します。
{answer_helpful: 1}
{“answer_helpful”:{$gte: 0.7}}
データの量にもよりますが、6000行ほどのデータの場合は、1秒以内に結果を返してくれました。
データを絞り込んで、短時間で調査できるので重宝しています。
理由3:簡単なデータの解析を自動的に実施する
MongoDB Compassというソフトを使う必要がありますが、それを使うと簡単なデータの分析をやってくれます。
この例では、値がどのような割合で分布しているのか分かります。
その結果、データの特性を調べるのに役立ちます。
実際にkaggleのデータをMongoDBでみる
前提条件として、MongoDBがインストールされているものとして解説します。
MongoDBの起動
まず、MongoDBのインストールです。
インストール方法は、以下のサイトが詳しいので、参考にしてください!
インストールが終わったら、以下のコマンドを入力してMongoDBを起動します。
MongoDB本体の起動
$mongod -dbpath /usr/local/var/mongodb
CSVをMongoDBにインポートする
CSVをMongoDBにインポートします。
インポート方法は、以下のようなコマンドで実行できます。
セパレーターは、「,」を使っています。
Mongo dbにcsv入れる
$mongoimport --db=test --collection=google-quest-qa --type=csv --headerline --file=train.csv
--db・・・DB(スキーマー)を指定する
--collection・・・コレクション(MySqlのテーブルに当たるもの)
--type・・・csv
--file・・・ファイル名
mongoimportコマンドの詳細は以下の通り
https://docs.mongodb.com/manual/reference/program/mongoimport/
MongoDB Compassを起動する
MongoDB Compassは、MongoDB内のデータを可視化したり、データの検索を簡単に実施できます。
検索(クエリ)してみる
データのクエリは以下のようなコマンドで可能です。
データのクエリ(findコマンド)は以下の通り。
{answer_helpful: 1}
{"answer_helpful":{$gte: 0.7}}
$gteは「以上」、$lteは「以下」の検索ができます。
クエリについては以下の資料を参考に!
https://docs.mongodb.com/manual/reference/command/find/#dbcmd.find
まとめ
今回は、mongoDBにcsvデータをインポートする方法を解説しました。
面倒なことは、できるかぎり省きたい。
そんなことを常に思います。
機械学習の入門から学べるスクールは、”挫折しないこと”で有名な
「TECH:CAMP(テックキャンプ)」
\副業始めるのに年齢は関係なし!/
テックキャンプ
今すぐ無料カウンセリングを申し込む!
無理な勧誘もなしで安心!