VPS上にあるMongoDBからデータを抽出する
Sakura VPSをかれこれ5年くらい使っています。いまのプランはメモリ1GでSSD30Gまであるのですが、ダウンロードやデータ数が膨らみduコマンドで使用量を調べると90%を超えるようになっていました。誰がこんなクソコード書いたんだよと思うくらいレガシー笑のコードもあります。vi使って直接バグ直したこともあったのでもう変更履歴とかわかんない、そんな使用状況です。
様々な要因を考慮してVPSで管理する必要なくなってきているので、今年から移行できるものをHeroku Postgresに移そうとしているところです。そのうちの一つがMongoDBです。
MongoDBはNoSQLに分類されるものの一つで、なぜ使っていたかというと当初は後からいろんなデータの項目が増えるだろうと想定していました。5年くらいデータ貯めてきて結局、項目増えなかったなというのが現実でして、実際のところリレーショナルDBで十分でした。
なので、今回の移行作業はMongoDB->CSV,JSON -> Postgresに投入(SQLAlchemey)という流れです。
同じような移行作業に直面している人がいるかわかりませんが、以下、MongoDBのドキュメントをCSV,JSONをエクスポートするまでの作業メモです。
SSHポートフォワーディング
VPS上のMongoDBにローカルPCからアクセスしたいので、そのための導線を作ります。
Terminalから
ssh -L [Localのポート]:[VPSのIP]:[VPS上のMongoDBのポート] [VPSにSSHするユーザ名]@[VPSのIP] -p [SSHポート]
します。SSHポートフォワーディングというやつです。
MongoDB Compass
MongoDBはMongoDB CompassというUIからDBの操作ができるアプリを提供しています。IPOした会社だけあって使いやすさを考えてますわ。
これをダウンロードして接続先を設定します。Portの部分が32123となっていますが、Terminalで指定した[Localのポート]と同じで空いているポートならなんでもOKです。
Compass側の設定はこれだけです。簡単すぎてわろたレベル。
接続すると
が出てきます。あとはDB選んで操作したいコレクションを選んでUIからサクサク作業できます。JSONやCSVでのExportが可能です。アドホックなクエリも実行できますよ!
MongoDB 解体新書: これ1冊で即実践レベル!究極の入門書 (専門書)
- 作者: 田村達也
- 発売日: 2018/03/12
- メディア: Kindle版
- この商品を含むブログを見る
MongoDB: The Definitive Guide: Powerful and Scalable Data Storage
- 作者: Shannon Bradshaw,Kristina Chodorow
- 出版社/メーカー: O'Reilly Media
- 発売日: 2019/07/05
- メディア: ペーパーバック
- この商品を含むブログを見る