mongodb

[ガラケー版(QRコード)]
アクセス記録[推移 / PV内訳(過去1日 / 過去1週間) / 外部アクセス元 (昨日 / 過去1週間) / ログイン論客足跡]
プロフィール私書(メール)
   /   /送済
評価(一覧   /)
投票   /共:   /
ファン登録
作品/情報/
DB構築()
ブログ
[書く]
攻略記事リンク集
My Play List
 作成日時分類記事タイトル
12015/02/17mongodbmongodbの用途を講演会から感じてみる..
22015/02/16mongodbリリース前の3.0.0系をソースからインストールして..
32015/01/21mongodbインストール&活用..
 反応日時来客名来客者の最近のメッセージ
12017/02/25Merciこんばんは。サーバー移転後からだと思いますが、以前は見られた..
22017/02/17ねこじゃらしブログ投稿やコメントをしようとすると、たまにエラーになります..
32017/02/16Barnirunお世話になっております。https対応の影響か(またはhtm..
42016/11/10伏魔の剣こんばんわ。形式変更お疲れ様でした。 ところでこの改定につい..
52016/10/31雪霞いつもありがとうございます。ところで、ログアウトした時にポッ..
その他最近のコメント
1.
2015/02/17 mongodb > mongodbの用途を講演会から感じてみる」
[この書込みのみ表示(記事URL紹介用) / 編集 / 削除 / トラバ送信 / 共有分類に追加(タグ付け)]拍手:2個

1. はじめに
2. mongodb特徴
3. mongodbのユースケース例
4. 事例
5. コンセプト
6. アンチパターン
7. 海外話
8. オンプレミス、クラウド、ハイブリッドの話

      1. はじめに

【『次世代IT』勉強会】鈴木逸平氏によるMongoDB最新現地レポート
http://eventdots.jp/event/329826
に参加させて頂いたメモ。
mongodbは既に使っていますが、改めてその用途、ひいてはIT環境の未来について、考えさせられる内容でした。
      2. mongodb特徴

[利点]
・水平分散、冗長性の確保が簡単
3x3のゴールデンモデル
□□□
□□□
□□□
→水平分散(シャーディング)

冗長性
・Json形式なので、多数の項目があるというRDB向きでない用途に向いてる
・集計でアグリゲートフレームワークが便利
・管理ツール(MMS)が便利←(従量制の有料だけど企業用途なら...)

[デメリット]
・トランザクションが無い
・外部キー、結合が無い
・スキーマが無い
・集計が分散しない
※一般的にNoSQLではそのスケーラビリティが、トランザクション・外部キーとのトレードオフになっている
※超超ビッグデータには向いていないが、それなりの量には向いている

使い易い=アプリの開発コストが下がるのがメリット。
      3. mongodbのユースケース例

1. スキーマや、あれやこれやのスパゲッティのデータを集めて、スキーマレスで集約して表示。
2. RDBとmongodbのハイブリッド。RDBはトランザクションが必要な所に、トランザクションである必要がない所はmongodbに。
3. 水平分割、冗長性の確保が簡単に出来るので、Webアプリ、オンラインゲームに向いている
4. Pentahoと連携出来る
5. データーセンター間レプリケーション
6. 地理情報処理。位置情報分析に使い易い
7. Hadoopと組み合わせて使われる事多い
8. データハブとして使われる事が多い
9. テーブルに項目追加にあれやこれやと色々手間がかかる(社内手続き等)に対して、無停止で変更出来るので、結果開発リリースが速く出来る
      4. 事例

米国や欧州では利用が凄く広まっている。

@homeが不動産データをmongodbに。mongo + solr

city bankでpass基盤に

ゴールドマンサックスで、社内のソーシャルツール、ドキュメントツールの基盤に

戦略的に生産性を上げる時に

oracle と javaでは間に合わない

ruby + mongoとか

mongoというだけで開発者は元気になる

mongo信者が結構いる

RDBだと、あのテーブル、このテーブルと、あちこちを接合させながら説明しないといけないから結局エンジニアに閉じた話になり易いが、jsonの形式だと営業とも持つデータの形式について話を出来る。
      5. コンセプト

テーブルよりも、まずデータアクセスに基づいて、データモデリングを行う。
ユーザーのアクセスパターンから。
基本的に全部オンメモリで、ぶんぶん回す。
それが簡単に出来る。
大体のケースでAWSのようなクラウド上で使われている&クラウド向き。
      6. アンチパターン

色々ある。
例えば、コンパクションをしないと削除されてもディスクは解放されない。
      7. 海外話

米国にはSI屋はいない。
社内Paasシステムが出来てるレベルに、ユーザ企業側にエンジニアリング力が配置されている。

といっても、日本のようなSI文化でも、価格を下げる&ユーザーニーズに合わせて速く開発する為には、mongodbのようなものが必要になってきている。
時代がそうなってきてる。
設計・開発に時間かけてその分お金を貰うという供給側の論理ではなく、エンドユーザー側のニーズに沿う形に結局はなる。

AWS, Google Cloud Platform, Azzureの独自DBは、一貫したシステムによる囲い込み戦略の一貫。
固有のDBを使う事で固定されるデメリットもあるしお金も結構かかる。
Mongodbとかはその点安いという点でコンペに勝てたり。

全部揃えのクラウドはそのビッグスリー以外は手出しはできないが、色々ありすぎて負担がそこで生まれている面もあるので、Digital Oceanのように徹底的な開発者志向のクラウドとか、特定の用途で攻めているクラウドが人気になってきている面もある。
      8. オンプレミス、クラウド、ハイブリッドの話

少人数: オールクラウド
200-250人: オンプレミスの方が安い
より大人数: ディザスタリカバリ等のニーズからクラウド化が進む

少人数の時のクラウドのニーズと、大規模の時のクラウドのニーズは異なる。
その間に谷間がある。

オンプレミスとクラウド両方やるのは、コストが高い。
これからはクラウドしか知らない人とかが出てくるかと思うが、両方やらせて2重のコストをかけるよりも、そういう人はクラウドに専念させた方が良い。

IT系会社としてもオンプレミス向け、クラウド向けが分離していくのはそういう背景がある。

オンプレミスとクラウドを併用するハイブリッドクラウドは、今はともかく数年後もそれをしている価値ってあるのかな?
未来が見えない...

コメントする2個

2.
2015/02/16 mongodb > リリース前の3.0.0系をソースからインストールしてみる」
[この書込みのみ表示(記事URL紹介用) / 編集 / 削除 / トラバ送信 / 共有分類に追加(タグ付け)]

1. mongodb3.0.0系をフライングで使ってみる
2. iptablesの設定
3. mongodb3.0.0系のインストール
        1. mongodbのbuild指示に従う
        2. scons最新版のインストール
        3. gccのインストール
        4. ちょっとした設定
4. mongodbの開始

    1. mongodb3.0.0系をフライングで使ってみる

ロックの粒度が細かくなり、速度・圧縮率等々が上がっているmongodb3.0.0系。
まだRC(リリース候補)とはいえ、今後使うのは3.x系になる事は性能の定義上明白です。

という事で、正式版はまだリリース前ですが、3.0.0系を使い始めてみる事にしました。
mongodbの特徴・用途については、講演会の内容のメモが参考になるかもしれません。
    2. iptablesの設定

世の中向けにmongodbのポートをオープンしていると攻撃を受けてしまうので、iptablesなどで防御するようにはしておきましょう。
基本的に全部のポートを閉じつつ、信頼するサーバーのIPには全てOpen、あとは必要に応じてhttp等に穴を開けるという定義の仕方が良いかと思われます。

参考
http://www.atmarkit.co.jp/ait/articles/1008/23/news100_2.html

digital ocean

/etc/init.d/iptables
がない場合、Ubuntuの記述
#!/bin/sh
#
#This is a ubuntu adapted iptables script from gentoo
#(http://www.gentoo.org) which was originally distributed
# under the terms of the GNU General Public License v2
#and was Copyrighted 1999-2004 by the Gentoo Foundation
#
#This adapted version was intended for and ad-hoc personal
#situation and as such no warranty is provided.

ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin"

IPTABLES_SAVE="/etc/default/iptables-rules"
SAVE_RESTORE_OPTIONS="-c"
SAVE_ON_STOP="yes"

checkrules() {
if [ ! -f ${IPTABLES_SAVE} ]
then
echo "Not starting iptables. First create some rules then run"
echo "\"/etc/init.d/iptables save\""
return 1
fi
}

save() {
echo "Saving iptables state"
iptables-save ${SAVE_RESTORE_OPTIONS} > ${IPTABLES_SAVE}
}

start(){
checkrules || return 1
echo "Loading iptables state and starting firewall"
echo -n "Restoring iptables ruleset"
start-stop-daemon --start --quiet --exec /sbin/iptables-restore -- ${SAVE_RESTORE_OPTIONS} < ${IPTABLES_SAVE}
}

case $1 in
save)
save
echo "."
;;

start)
start
echo "."
;;

stop)
if [ "${SAVE_ON_STOP}" = "yes" ]; then
save || exit 1
fi
echo -n "Stopping firewall"

for a in `cat /proc/net/ip_tables_names`; do
iptables -F -t $a
iptables -X -t $a

if [ $a = "nat" ]; then
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
elif [ $a = "mangle" ]; then
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
elif [ $a = "filter" ]; then
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT
fi
done
start-stop-daemon --stop --quiet --pidfile /var/run/iptables.pid --exec iptables
echo "."
;;

restart)
echo -n "Flushing firewall"
for a in `cat /proc/net/ip_tables_names`; do
iptables -F -t $a
iptables -X -t $a
done;
start
echo "."
;;

status)
iptables -L
;;

*)
echo "Usage: /etc/init.d/iptables {start|stop|restart|save|status}" >&2
exit 1
;;
esac

exit 0

    3. mongodb3.0.0系のインストール


      1. mongodbのbuild指示に従う

VERSION=r3.0.0-rc8;
wget https://fastdl.mongodb.org/src/mongodb-src-$VERSION.tar.gz;
tar xvfz mongodb-src-$VERSION.tar.gz;
cd mongodb-src-$VERSION;

cat docs/building.md;
で自分に必要なbuild方法を見る。
Ubuntu の場合

sudo aptitude install libboost-filesystem-dev libboost-program-options-dev libboost-system-dev libboost-thread-dev python-pymongo scons;

sudo scons all;

ここでsconsのバージョンが足りないと言われるのなら、sconsも自分でインストールする必要がある。
      2. scons最新版のインストール

wget http://sourceforge.net/projects/scons/files/scons/2.3.4/scons-2.3.4.tar.gz/download;
tar xvfz download;
cd scons-2.3.4;
python setup.py install;

さて気を取り直して
scons all;

今度はgccが古い模様。
2.8.2以上が必要
      3. gccのインストール

# Ubuntuの場合

sudo apt-get -y install spython-software-properties;
sudo apt-get -y install software-properties-common;

sudo add-apt-repository ppa:ubuntu-toolchain-r/test;
sudo apt-get update;
sudo apt-get install g++-4.9;
ln -s /usr/bin/gcc-4.9 /usr/local/bin/gcc;
ln -s /usr/bin/g++-4.9 /usr/local/bin/g++;

/usr/local/bin/ の方が /usr/bin/;より先に使われる状態にして、再度mongodbのディレクトリ内で
scons all;
scons --prefix=/opt/mongo install;

これで通りました。
結構時間がかかるので、それは覚悟して待ちましょう。
      4. ちょっとした設定

# Ubuntu 64bitにて
sudo echo never > /sys/kernel/mm/transparent_hugepage/defrag;
    4. mongodbの開始

sudo mkdir -p /var/log/mongodb;
sudo chown -R `whoami` /var/log/mongodb;
mkdir -p /www/data/mongodb;
sudo mkdir -p /data/;
ln -s /www/data/mongodb /data/db;
/usr/local/bin/mongod --dbpath=/www/data/mongodb --storageEngine=wiredTiger --logpath=/var/log/mongodb/node1.log --fork --replSet=rep

コメントする

3.
2015/01/21 mongodb > インストール&活用」
[この書込みのみ表示(記事URL紹介用) / 編集 / 削除 / トラバ送信 / 共有分類に追加(タグ付け)]

1. インストール
2. 活用方法
    1. 既存DBの移行
    2. 移行プログラム

1. インストール

http://docs.mongodb.org/manual/installation/
を参考に
2. 活用方法


    1. 既存DBの移行

とりあえずBerkeleyDBの一部壊れ易い所について移行させたいと考える。
BDBを使っているファイルは
grep -rl BDB::Wrapper .
で自分の場合は出る。
だが、そこに何のbdbファイルがあるのか?
その管理は変数であると出来ていないという事になる。

これはMySQLを使うフレームワークの場合には、使うテーブルの宣言を最初にさせる事で解決させている。
フレームワークを使っていない部分については、それを補う文章を書くことをルール付ける必要があるという事が分かる。

つまり、移行作業をする為には、まず文章化から始めないといけない。
    2. 移行プログラム

BerkeleyDBからの変換移行プログラムも用意する。

コメントする
RSS購読
RSS
ブログ表示スタイル
リスト/携帯(QRコード)
画像/動画/音声/リンク
表示開始年月
分類
全て
1.このサイトについて
2.作品DB開発/運用
3.ホームページ制作技術
4.Perl
5.C言語 / C++
6.検索エンジン&SEO
7.サッカー
8.自分のこと
9.Linux
10.旅行
11.思ったこと
12.パソコン
13.Berkeley DB
14.その他技術系
15.企画
16.スマートフォン
17.鑑賞
18.皆声.jpニュース
19.インターネット業界
20.運用マニュアル(自分用)
21.技術系以外実用書
22.料理
23.ALEXA
24.アニメ
25.会計
26.漫画
27.設計書
28.色々サイト作成
29.サーバー
30.自分専用
31.生活
32.OP/ED/PV
33.ゲーム
34.DB整備
35.新規開始作品紹介
36.英語圏の話題
37.大道芸
38.映画
39.PHP
40.ダイエット
41.Mac
42.JavaScript
43.MySQL
44.介護
45.作品DB作品追加作業
46.BI
47.Web API
48.パフォーマンス
49.インターネットの活用方法
50.Riak
51.Androidアプリ開発
52.Cassandra
53.スパム
54.写真
55.iOSアプリ開発
56.AWS
57.マーケティング
58.Web漫画
59.法律
60mongodb
61.開発環境整備
62.Google Apps Script
63.meteor
64.Pentaho
65.Ansible
66.VPS
67.技術書メモ
68.Vagrant
69.Docker
70.dokuwiki
71.Apple Watch
72.Webサービス
73.セキュリティ
74.Elastic Search
75.Wordpress
76.クラウド
77.英語
78.MVNO
79.シンガポール
80.マレーシア
81.管理人さん
82.管理人さん
日記の主な内容
サイト運営/開発
検索エンジン情報
・技術ネタ(Berkeley DB,
Linux, Perl, サイト作成)等

サイト管理
全まとめ
サーバー管理
定期処理状況
開発予定
削除提案
作品追加依頼
OP/ED追加依頼
OP/ED not found
作品提案承認欄

格言 fromスクライド
この世の理は即ち速さ
20年かければ馬鹿でも
傑作小説を書ける

助けられたら助け返す
それが俺のルール

強くなるには
一番弱い考えをする事だ
そしてその考えに反逆する




右側に何か入れてみるテスト


仕事でのサイト
介護DB
Helpyou
Doctor career
Nurse career
上へ ↑上へ 最速検索作品DB皆声