読者です 読者をやめる 読者になる 読者になる

望月いちろうのREADME.md

書き溜めておいた技術記事や旅行記のバックアップです。

Spark から MongoDB が使える? Mongo Sparkが面白い

github.com Scalaの分散処理フレームワークSparkからMongoDBが使えるという触れ込みのこのライブラリ Spark 1.6以上に対応しているそうです。 初期設定 SparkContextを作成する前にMongoConnectorの準備を完了する必要があります。 最低限必要な設定はmongod…

MongoDB で TLS / SSL通信 を有効化させる方法

MongoDBで複数のインスタンスを利用したり、外部のアプリケーションからデータベースを参照するときがある。このとき、 サーバー間の情報のやり取りを暗号化するのが常識です。 バージョンについて MongoDBの古いバージョンではSSL通信をサポートしていない…

Node.js の MongoDB クライアント Mongoose で SSL通信 を有効化する方法

リモートサーバーのMongoDBでSSL通信が有効化されているという前提で、アプリケーションサーバーのMongooseでSSL通信を実行する方法です。 オプションsslを有効化する。 リモートサーバーのMongoDBクライアントにアクセスする際には mongodb://{ipアドレス}:…

MongoDBでのメモリーリークへの対処法

MongoDBはメモリーを食う 実際にデフォルトの設定でMongoDBを運用しているとOSの割り当てたメモリをほぼ使い切っているようで、ほかのプロセスのメモリーリークを頻繁に引き起こしています。 https://docs.mongodb.com/v3.2/reference/program/mongod/#cmdop…

MongoDBでの障害対策

データベースを管理していると稀にテーブルが破損することがあります。大事なデータを守るために対策をとりましょう。これはMongoDBでの注意点です。 ジャーナリングを有効化する これを有効にするにはmongodインスタンスの起動時に--journalオプションを追…

MongoDBでテーブルにないデータをinsertして、存在する場合は更新だけしたい

MongoDBで取得したデータをinsertで次々と追加しているときに困ったことがありました。 データに重複が生じてしまうのですね。 >db.find({title:"おいしいカレーの作り方"}).count() 結果:重複が生じている 2 この場合は updateのオプションupsertを使えば…

Pythonでタプルや集合をデータベースに保存する

あまりスマートなやり方ではないかもしれませんが、データベースにタプルや集合などの構造化されたデータを保存したいときは一回文字列に変換すると上手くいきます。 MongoDBではJSON形式(BSON)でデータを格納するのでタプルや集合などのPython組み込みのリ…

MongoDBとレプリケーション

前提知識 レプリケーション:サーバーの障害に備えてデータベースサーバーを複数台で運用・管理すること MongoDBで可能なレプリケーションは2種類 マスター・スレーブレプリケーション レプリカセット マスター・スレーブレプリケーション 親と子の関係 親…

MongoDBでサーバー外部からアクセスできるようにする

1. bind_ipを変更する cd /etc/mongod.conf bind_ip=127.0.0.1 これにコンマ区切りで通信を許可したいIPを追記する 例 bind_ip=127.0.0.1,64.42.32.12 すべてのIPアドレスからの通信を受けいれる場合(非推奨)は bind_ip=0.0.0.0 2.設定を反映する。 再起動…

MongoDBの安全な使い方ガイド

MongoDBはNoSQLとしては最も普及しています。非常に高速、高性能であり、スキーマレスな柔軟性を兼ね備えています。しかし一方で、セキュリティが弱い、などの根拠のないデマも流れています。しかし実際は適切な設定を行えば、MySQLなどのRDBMSに比較しても…

MongoDBをUbuntuにインストールする

デフォルトだと古いバージョンがインストールされてしまう。 デフォルトの設定で sudo apt-get install mongodb を実行するとかなりObsoleteなバージョンがインストールされてしまいます。 mongo -version MongoDB shell version: 2.4.6 これは一世代前のバ…