DevLOVE MongoDB勉強会 「怪物を手懐けろ!」に参加してきた #devlove

MongoDB、その名は英単語 "humongous" に由来する。

huge(巨大)+ mongous(怪物のような) = humongous(ばかでかい)

まさに、Big Dataを扱うために生まれたプロダクトである。

MongoDBを習得し、ともにBig Dataという名の怪物を手懐けようではないか。
.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
MongoDBを理解するため、講師とともに各自でライブコーディングを行います。

MongoDBの基本的な操作や、ReplicaSet/Sharding構成の構築方法、障害時の挙動などについて、ステップごとに環境を構築しながら理解していきます。

募集ページの【対象者】の項に、

MongoDBに興味のある方、もんごもんご言いたい方

とあり、『もんごもんご』言いたかったので参加して来ました。(しろめ


開催場所は株式会社サイバーエージェント@渋谷。

概要説明

参加者約20名のうち、半数以上がDevLOVE初参加だったようです。従来のDevLOVEイベントとは趣が異なり(?)ハンズオン・手を動かす事がメインとなっていたイベントというのもあり、ライブコーディング開催中は基本静かな雰囲気で作業が進みました。

ライブコーディングに先立ち、キーワード的なところの簡単な解説を少々。

  • Document-oriented
    • スキーマレス
    • BSON形式(Binary JSON)
    • 全然違う構造体でも同じコレクションの中に格納可能
      • とは言え何でもかんでも1つにまとめるのはイクナイ
    • ドキュメント志向で色々な構造体が持てる。
  • Full Index Support
    • ドキュメント内のどの属性にもindexを作成可能
  • Auto -Sharding
    • 指定したキーで水平分割
  • Querying 手法色々
    • field selectoin
    • sort
    • skip, limit
    • cursor

なお、解説については今回の講師であるMasakazu Matsushita (TwitterID:@matsukaz)さんが自身の過去スライド資料を元になされておりました。@matsukazさん、ありがとうございました!

ライブコーディング

概要説明の後は時間までひたすらライブコーディング。事前に公開されていた情報(github)を入手し、MongoDBをインストールしたフォルダに展開して実践を行うという形を取りました。資料は以下の場所から。

実施内容は大きく分けて3ステップ。(※資料構成自体も3つに分かれていました)

  1. .基本操作
  2. .レプリケーション(Reprication)
  3. .シャーディング(Shading)

基本的には実演〜解説(都度疑問があればその場で聞くスタイルで進められ、作業手詰まり等があればスタッフの方に適宜サポートして頂く形でした。万全のサポートの甲斐あって、何ら滞ること無く本編は進行されていたように思います。

途中MongoDBを構成する要素『oplog』については、Takahiro Inoue (TwitterID:@doryokujin) さんのスライドを解説資料として引用。

Step2(レプリケーション), Step3(シャーディング)等については初心者で環境構築を行うのは割と面倒だったりすると思いますがその辺も各種準備がなされており、実際に手を動かし内容を確認する事で理解もスムーズに進んだように思います。

終盤は全体を通しての質疑応答。実務での経験者の方々もそこそこ居らしたようで深入りしたテーマにも触れていたようでした。(個人的にはMongoDB初心者だったのであまりピンと来てなかったけど^^;)


2時間近く、ほぼ実践形式で進んだ今回のイベント(※そのせいかつぶやきもあんまり無かった:Togetter参照)。MongoDBに関する基礎的な理解は今回でだいぶ進んだようにも思いますが、本当の力として身に付けるにはまだまだ足りず、継続して実践していかないといけないでしょう。業務で使う事は(個人的な今の状況では)無さ気。となるとプライベートなプログラミング等で何か使う機会を設けてみたい所ですが、どんなシチュエーション(状況)、機能が適してるのかな?


また、今回の参加に先立ち、下記のPDF資料にも目を通し、実際に実践もしてみました。今回のハンズオン資料と併せて読み込み実践してみることで入門編として理解を深められる事と思います。


講師の@matsukazさん及びスタッフの皆様、そして会場ご提供頂いた株式会社サイバーエージェント様、ありがとうございました!
(※個人的には『DevLOVE HangarFlight -Snow Barrage-』以来のDevLOVEでした)


その他関連: