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

Carpe Diem

備忘録。https://github.com/jun06t

負荷が低いのにアクセスを捌けきれない時の対応

概要 MongoDBでCPU使用率やロードアベレージが高くないのに処理が詰まっている現象が起きました。 その時間にbatchが動いていてアクセスが急に増えることが原因と言うのは分かっているのですが、負荷的には十分余裕があり不思議な状態でした。 そこでdstatで…

MongoDBのデータをElasticsearchにリアルタイム同期

概要 以前はMongoRiverを使う - Carpe Diemで紹介したようにRiverという機能を使って同期を実現させていました。 しかしながらElasticsearchがRiverを廃止することを決め、バージョン2.x以降は使うことができなくなりました。 そこで調べてみて挙がったのは…

DockerでMongoDBのレプリカセットを構築

概要 MongoDBのレプリカセットを組んで検証する必要があったのでdockerを使って構築することにしてみました。 環境 Docker 1.12.0 Mongo 3.2.9 構成 コンテナ名 役割 ホスト側ポート mongo1 Primary 30001 mongo2 Secondary 30002 arbiter Arbiter。データは…

MongoDBのAggregationとSQLの比較

概要 MongoDBのAggregationとSQLとの比較です。 どうやって集計するかな?と悩んだ時に慣れているSQLとの比較があると分かりやすいと思って公式ドキュメントに沿った形で載せてます。 環境 MongoDB 3.0.7 オペレータの比較 SQL MongoDB WHERE $match GROUP B…

MongoDB 3.0 での explain

概要 MongoDB 3.0 からexplainの結果が大きく変わりました。 スロークエリを調べる上で、インデックスの使用、外部ソートの使用などをどこで確認するかをまとめてみました。 環境 Ubuntu 14.04 MongoDB 3.0.4 大まかな構造(全体) > db.users.find({name: "…

MongoDBのインデックス2

概要 MongoDBのインデックスにはIndex IntersectionやCovered Indexなんてのもあるので調べてみました。 環境 Ubuntu 14.04 MongoDB 2.6.8 Index Intersectionとは 1つのクエリーで2つのインデックスを使ってくれる機能で、より効率的にクエリーを処理でき…

MongoDB 3.0 をインストール

概要 3.0がリリースされたのでインストール方法をメモ。 Warningを消すのがちょっと面倒です。 環境 Ubuntu 14.04 MongoDB 3.0.0 インストール $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 $ echo "deb http://repo.mong…

MongoDBのインデックス

概要 MongoDBのインデックスをつける上で 複合インデックスの時はインデックスの順番に気をつける {a: 1, b: 1}の反対{a: -1, b: -1}は使えるけど{a: 1, b: -1}は使えない などいろいろ気をつける点が多く、一度しっかり学んでみましたのでそのメモ。 基本的…

MongoDBでシャーディング

概要 MongoDBでシャーディングを構築します。 MongoDBのインストールですでにインストールしている前提で進めます。 環境 Ubuntu 14.04 MongoDB 2.6.7 今回は1台でポートを別にして複数プロセスで構築します。 configサーバは1 or 3台必要(2だとサポー…

MongoRiverを使う

概要 MongoDBのデータをElasticSearchに流し込むMongoDB River Pluginを扱います。 あるデータに対して検索機能を追加したいけど、MongoDBで全文検索はちょっと。。という時に便利です。 環境 Ubuntu 14.04 MongoDB 2.6.7 Java 1.8.0_31 ElasticSearch 1.4.2…

MongoDBでTTL

概要 TTL(Time To Live)という自動でデータを消す仕組みを利用します。 データによっては「過去xx日までは必要だけどそれ以降は不要」みたいなものがあると思います。 例えばログなど。 そういったものに対して使えます。 環境 Ubuntu 14.04 MongoDB 2.6…

MongoDB に CSV 形式のファイルをインポートする

MySQL等と互換性のあるファイル形式といえばCSVですね。 これをMongoDBでインポートする方法です。 ◆環境 Ubuntu 14.04 MongoDB 2.6.4 ◆事前準備 CSVファイルをGETしてきましょう。LINEがデータを提供してくれているのでそれをダウンロードしてきます。 $ gi…

MongoDB のインストール

ドキュメント指向DBのMongoDBをインストールします。 ◆環境 Ubuntu 14.04 MongoDB 2.6.4 ◆インストール まず鍵を登録します $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10