SlideShare une entreprise Scribd logo
1  sur  68
提 供LOCAL PHP部
PHPとMongoDBで学ぶ次世代データストア 佐藤琢哉 LOCAL PHP部
自己紹介 佐藤琢哉 aka nazo 旭川出身 東京在住 株式会社RYUS所属(http://ryus.co.jp) 3月末まで LOCAL PHP部 Hatena : nazone twitter : nazo
突然ですが
4月から札幌市民になります!!!!!
友達が少ないので皆さん遊んでやってください
アジェンダ MongoDBって何? 使い方 他のDBMSとの比較 MapReduce まとめ
そもそも何の話?
MongoDBすごいよ!
MongoDBって何?
http://www.mongodb.org/
MongoDB (from "humongous") is a scalable, high-performance, open source, schema-free, document-oriented database.
ドキュメント指向データベース スキーマがない データ定義自体が各ドキュメントに入っている
RDBMS 行と列に データを 当てはめていくのが RDBMS
ドキュメントの集合 ドキュメント指向 ID:1 名前:hokkai 性別:男 ID:3 名前:reath ID:2 名前:onodes 電話番号:xxx-xxx-xxxx ID:4 名前:riaf ライブラリ:rhaco ※名前は実在の人物とは一切関係ありません
AGPLライセンス Webからのみアクセスするものでもソースコードを公開しないといけないGPL 普通のGPLは、Webサイトとして使う分にはプログラムを配布するわけじゃないからソースコード公開する必要がないが、それが気にくわないために作られたライセンス
AGPLライセンス MongoDB自体をカスタマイズするなら例えWebサイト内部だけで使ってても公開要求に応じないと駄目よー 各言語からアクセスするドライバはApache Licenseだから大丈夫よー 社内からしかアクセスできないような場所で使う分には平気よー
特長
データをBSONで保存 BSON is a binary-encoded serialization of JSON-like documents { hoge: "fuga", foo: [bar, baz] } 構造が自由 XMLデータベースがJSONになったような感じ JSONなので操作も簡単 ちょっとした構造でJOINとかする必要がない
JavaScript処理系内蔵 MongoDB単体でJavaScriptでデータを操作することが可能 JSONで記録されたデータをそのまま処理できる ストアドプロシージャ的な使い方 MapReduce
スケーラブル MapReduce搭載 Master-Slave構成 ペアDB Master-Master構成(制限あり) Sharding
なんでMongoDBなの?
日本だとCouchDBのほうが情報が圧倒的に多いのになんでMongoDBとかマイナーそうなのを…
提 供LOCAL PHP部
http://php.net/mongo
そりゃMongoDBしかない!
ちなみに世界的には 青:CouchDB 赤:MongoDB
使い方[インストール]
インストール いろんなプラットフォームのバイナリが配布されているので好きなのを入れる。
インストール データフォルダをデフォルトで/data/dbに作るので、面倒であればフォルダを作っておく 起動時の設定でもちろん変更可能
インストール mongodを実行するだけで起動 面倒な人はinitスクリプト init.d for MongoDB http://gist.github.com/232227
インストール pecl install mongo あとphp.iniにextension=mongo.soと書くだけ PHPer歓喜
使い方[PHPコード]
接続 $mongo = new Mongo(); $mongo = new Mongo("example.com:65432");
データベースとコレクションの取得 $db = $mongo->selectDB( "dbname" ); $col = $db->selectCollection( "collectionname" );
データベースとコレクション
INSERT $doc = array( "name" => "MongoDB",    "type" => "database",    "count" => 1,    "info" => (object)array( "x" => 203,        "y" => 102),    "versions" => array("0.9.7", "0.9.8", "0.9.9") ); $col->insert( $doc );
INSERT PHPの配列がそのままデータとして入る 複雑な階層でももちろんそのまま入る 1コレクション内の構造が統一されていなくてもいい(ただしインデックスを張る場合はその項目は必須)
INSERT $doc = array( "name" => "Apple",    "color" => "Red", ); $col->insert( $doc ); $doc = array( "name" => "Beer",    "price" => 300, ); $col->insert( $doc );
SELECT 1件取得 $obj = $col->findOne(); 条件指定取得 $obj = $col->findOne(array("name"=>"MongoDB")); 全件取得 $cursor = $col->find();
SELECT $cursor = $col->find(array('num' => array('$gt' => 1))); $cursor = $col->find(array('name' => new MongoRegex('/ba/i'))); $cursor = $col->find(array('$where' => 'this.num > Math.abs(-1)'));
Update $obj = $col->findOne(array("name"=>"MongoDB")); $obj["value"] = 2; $col->save($obj);
Delete $col->remove(array("name" => "MongoDB")); $obj = $col->findOne(); $col->remove($obj); $col->drop(); $db->drop();
Count $col->count(); $col->count(array('x'=>1));
Index作成 $col->ensureIndex( array( "name" => 1 ) ); $col->ensureIndex( array( "name" => 1 , "count" => -1 ) ); ,[object Object],[object Object]
MapReduceとは? 大量のサーバ上で分散処理をするために考案された手法 Key-Valueの組み合わせを単純な方法で分散して再計算することによって、複雑な計算に対応する MapフェーズとReduceフェーズの処理を与えてあげるだけで、後の処理はシステムが自動的に分散して行ってくれる
MapReduceとは? Map ある大量のデータを、一連のKey-Valueの形式にして、システムに渡す システム Mapで渡されたデータを、同一のKeyで束ねる Reduce システムから渡ってきたデータを加工し、出力する
例:ユーザーごとの買い物金額の合計 MapReduceを使う必要があるかは謎 そもそも設計も怪しい
データ例 ※名前は実在の人物とは一切関係ありません
Map reath=300 元データ Map関数 hokkai=100 元データ onodes=100 元データ hokkai=100 元データ 元データ onodes=200 reath=100 元データ
Reduce hokkai=[100,100] hokkai=200 Reduce関数 onodes=[100,200] onodes=300 reath=[100, 300] reath=400
MongoDBでMapReduce MapReduceに与えるMap/Reduce関数をJavaScriptで記述 PHPで使う場合はMongoDB-MapReduce-PHPライブラリを使うと少し楽 でも処理自体は結局JavaScriptで書かないといけない
基本データ $col->insert( array("user" => "hokkai", "item" => "apple", "price" => 100 ) ); $col->insert( array("user" => "hokkai", "item" => "orange", "price" => 100 ) ); $col->insert( array("user" => "onodes", "item" => "bread", "price" => 100 ) ); $col->insert( array("user" => "onodes", "item" => "beef", "price" => 200 ) ); $col->insert( array("user" => "reath", "item" => "book", "price" => 300 ) ); $col->insert( array("user" => "reath", "item" => "pen", "price" => 100 ) );
Map $map = <<<MAP function() {    emit(this.user, this.price); } MAP;
Reduce $reduce = <<<REDUCE function(key, values) { var total = 0;     for(vari in values) total += values[i];     return total; } REDUCE;
PHP側(insert済みな前提) <?php require_once('./MongoDB-MapReduce-PHP/lib/MongoMapReduce.php'); require_once('./MongoDB-MapReduce-PHP/lib/MongoMapReduceResponse.php'); $mongo = new Mongo(); $db = $mongo->selectDB( 'mydb' ); $col = $db->selectCollection( 'shop' ); // $mapと$reduceは省略 $map_reduce = new MongoMapReduce($map, $reduce); $response = $map_reduce->invoke($db, "shop"); if ($response->valid()) { foreach($response->getResultSet() as $result) {         echo "name: ", $result["_id"] , " / price: ", $result["value"], PHP_    EOL;     } }
結果 name: hokkai / price: 200 name: onodes / price: 300 name: reath / price: 400
ほかのデータストアと比較
RDBMSとの違い 分散が楽! 様々な分散方法を標準搭載 MapReduce テーブル定義不要 動的に構造を付け足したりできる プログラミング言語の構造に密着 JOINはできない MapReduceでカバー トランザクションはない 銀行のシステムとか作りたいならRDBMSでいいんじゃね?
KVSとの違い KVS=Key-Value Store Memcached、Tokyo Cabinet/Tyrant、Flared、ROMA、BigTable、etc… KVSよりは分散は大変 KVSは置くだけで分散できるものが多い KVSよりはデータ構造が存在する KVSは単純にKey-Valueの構造しかない(キーでの検索しかできない) MongoDBは大体RDBMSに近い設計手法で操作ができる
CouchDBとの違い 基本的には同じ まだ比較できるほどの事例が存在しない PHPで使うならMongoDBのほうが楽 若干用語とかが違う
高速 KVS MongoDB 高機能 RDBMS
まとめ
実用的にMongoDBをPHPで使うなら Lithium( http://li3.rad-dev.org/) PHP5.3専用フレームワーク MongoDB推奨で設計されている チュートリアルももちろんMongoDB CakePHP用DataSource http://d.hatena.ne.jp/cakephper/20100122/1264140610 単体ライブラリ Mongodloid、Morph
実際使えるのか? もちろんレンタルサーバの類では不可 RDBMSより圧倒的に高速なので、高負荷に耐えれるサービスを作るなら重要 トランザクションが重要になるサービスでは使えない テーブル定義とか書かなくていいので、立ち上げ時とか試行錯誤する時とかはものすごく簡単に書ける
日本語の情報が少なくて… 概念とかはCouchDB関係で調べれば近いものが出てくる 情報がないなら自分たちで発信しよう! CakePHP用datastoreの作者は日本人だし日本語の情報しか存在しないが、公式に掲載された 翻訳も積極的に!
おわり
PHPとMongoDBで学ぶ次世代データストア

Contenu connexe

Tendances

MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析
MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析
MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析Takahiro Inoue
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法Tetsutaro Watanabe
 
FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介Recruit Technologies
 
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめKosuke Kida
 
Hadoop for programmer
Hadoop for programmerHadoop for programmer
Hadoop for programmerSho Shimauchi
 
今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)Toru Takizawa
 
Hadoopことはじめ
HadoopことはじめHadoopことはじめ
Hadoopことはじめ均 津田
 
Amazon Redshift ベンチマーク Hadoop + Hiveと比較
Amazon Redshift ベンチマーク  Hadoop + Hiveと比較 Amazon Redshift ベンチマーク  Hadoop + Hiveと比較
Amazon Redshift ベンチマーク Hadoop + Hiveと比較 FlyData Inc.
 
クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術Koichi Fujikawa
 
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門[OSC2016沖縄]商用DBからPostgreSQLへの移行入門
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門Kosuke Kida
 
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎Naruhiko Ogasawara
 
超入門データベース基礎の基礎
超入門データベース基礎の基礎超入門データベース基礎の基礎
超入門データベース基礎の基礎Matsuzawa Fumiaki
 
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜Masakazu Matsushita
 
Hadoopデータプラットフォーム #cwt2013
Hadoopデータプラットフォーム #cwt2013Hadoopデータプラットフォーム #cwt2013
Hadoopデータプラットフォーム #cwt2013Cloudera Japan
 
PinQAでのMongoDB活用事例
PinQAでのMongoDB活用事例PinQAでのMongoDB活用事例
PinQAでのMongoDB活用事例Misa Kondo
 
FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる!
FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる! FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる!
FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる! IWASAKI NOBUSUKE
 

Tendances (20)

MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析
MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析
MongoDBとAjaxで作る解析フロントエンド&GraphDBを用いたソーシャルデータ解析
 
Hadoop / MapReduce とは
Hadoop / MapReduce とはHadoop / MapReduce とは
Hadoop / MapReduce とは
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介FluentdやNorikraを使った データ集約基盤への取り組み紹介
FluentdやNorikraを使った データ集約基盤への取り組み紹介
 
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
 
Hadoop for programmer
Hadoop for programmerHadoop for programmer
Hadoop for programmer
 
MySQL
MySQLMySQL
MySQL
 
今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)今さら聞けないHadoop セントラルソフト株式会社(20120119)
今さら聞けないHadoop セントラルソフト株式会社(20120119)
 
Cassandra v0.6-siryou
Cassandra v0.6-siryouCassandra v0.6-siryou
Cassandra v0.6-siryou
 
Hadoopカンファレンス2013
Hadoopカンファレンス2013Hadoopカンファレンス2013
Hadoopカンファレンス2013
 
Hadoopことはじめ
HadoopことはじめHadoopことはじめ
Hadoopことはじめ
 
Amazon Redshift ベンチマーク Hadoop + Hiveと比較
Amazon Redshift ベンチマーク  Hadoop + Hiveと比較 Amazon Redshift ベンチマーク  Hadoop + Hiveと比較
Amazon Redshift ベンチマーク Hadoop + Hiveと比較
 
クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術
 
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門[OSC2016沖縄]商用DBからPostgreSQLへの移行入門
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門
 
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
 
超入門データベース基礎の基礎
超入門データベース基礎の基礎超入門データベース基礎の基礎
超入門データベース基礎の基礎
 
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
 
Hadoopデータプラットフォーム #cwt2013
Hadoopデータプラットフォーム #cwt2013Hadoopデータプラットフォーム #cwt2013
Hadoopデータプラットフォーム #cwt2013
 
PinQAでのMongoDB活用事例
PinQAでのMongoDB活用事例PinQAでのMongoDB活用事例
PinQAでのMongoDB活用事例
 
FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる!
FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる! FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる!
FOSS4GとOSMを使って 「逃げ地図」のようなものをつくってみる!
 

Similaire à PHPとMongoDBで学ぶ次世代データストア

40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) hamaken
 
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~Developers Summit
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 
Mongo db勉強会
Mongo db勉強会Mongo db勉強会
Mongo db勉強会otmb
 
【Hpcstudy】みんな、ベンチマークどうやってるの?
【Hpcstudy】みんな、ベンチマークどうやってるの?【Hpcstudy】みんな、ベンチマークどうやってるの?
【Hpcstudy】みんな、ベンチマークどうやってるの?Seiichiro Ishida
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門Yohei Sasaki
 
【IVS CTO Night & Day】AWSにおけるビッグデータ活用
【IVS CTO Night & Day】AWSにおけるビッグデータ活用【IVS CTO Night & Day】AWSにおけるビッグデータ活用
【IVS CTO Night & Day】AWSにおけるビッグデータ活用Amazon Web Services Japan
 
RDBってなに?
RDBってなに?RDBってなに?
RDBってなに?Soudai Sone
 
Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてKazuki Ohta
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料Recruit Technologies
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展Recruit Technologies
 
MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習Preferred Networks
 
初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなしOonishi Takaaki
 
AWS Elastic MapReduce詳細 -ほぼ週刊AWSマイスターシリーズ第10回-
AWS Elastic MapReduce詳細 -ほぼ週刊AWSマイスターシリーズ第10回-AWS Elastic MapReduce詳細 -ほぼ週刊AWSマイスターシリーズ第10回-
AWS Elastic MapReduce詳細 -ほぼ週刊AWSマイスターシリーズ第10回-SORACOM, INC
 
マイニング探検会#10
マイニング探検会#10マイニング探検会#10
マイニング探検会#10Yoji Kiyota
 

Similaire à PHPとMongoDBで学ぶ次世代データストア (20)

40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料) 40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
 
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
【17-E-3】Hadoop:黄色い象使いへの道 ~「Hadoop徹底入門」より~
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 
Mongo db勉強会
Mongo db勉強会Mongo db勉強会
Mongo db勉強会
 
【Hpcstudy】みんな、ベンチマークどうやってるの?
【Hpcstudy】みんな、ベンチマークどうやってるの?【Hpcstudy】みんな、ベンチマークどうやってるの?
【Hpcstudy】みんな、ベンチマークどうやってるの?
 
MapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知るMapReduce/YARNの仕組みを知る
MapReduce/YARNの仕組みを知る
 
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知るAI・HPC・ビッグデータで利用される分散ファイルシステムを知る
AI・HPC・ビッグデータで利用される分散ファイルシステムを知る
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門
 
【IVS CTO Night & Day】AWSにおけるビッグデータ活用
【IVS CTO Night & Day】AWSにおけるビッグデータ活用【IVS CTO Night & Day】AWSにおけるビッグデータ活用
【IVS CTO Night & Day】AWSにおけるビッグデータ活用
 
Hadoop事始め
Hadoop事始めHadoop事始め
Hadoop事始め
 
RDBってなに?
RDBってなに?RDBってなに?
RDBってなに?
 
Googleの基盤クローン Hadoopについて
Googleの基盤クローン HadoopについてGoogleの基盤クローン Hadoopについて
Googleの基盤クローン Hadoopについて
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
 
ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展ビッグデータ&データマネジメント展
ビッグデータ&データマネジメント展
 
MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習MapReduceによる大規模データを利用した機械学習
MapReduceによる大規模データを利用した機械学習
 
Apache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATAApache Spark 1000 nodes NTT DATA
Apache Spark 1000 nodes NTT DATA
 
初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし初心者向け負荷軽減のはなし
初心者向け負荷軽減のはなし
 
Orchestrate DBaaS入門
Orchestrate DBaaS入門Orchestrate DBaaS入門
Orchestrate DBaaS入門
 
AWS Elastic MapReduce詳細 -ほぼ週刊AWSマイスターシリーズ第10回-
AWS Elastic MapReduce詳細 -ほぼ週刊AWSマイスターシリーズ第10回-AWS Elastic MapReduce詳細 -ほぼ週刊AWSマイスターシリーズ第10回-
AWS Elastic MapReduce詳細 -ほぼ週刊AWSマイスターシリーズ第10回-
 
マイニング探検会#10
マイニング探検会#10マイニング探検会#10
マイニング探検会#10
 

Plus de Takuya Sato

レガシープロダクトを改善していくための戦い方
レガシープロダクトを改善していくための戦い方レガシープロダクトを改善していくための戦い方
レガシープロダクトを改善していくための戦い方Takuya Sato
 
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外Takuya Sato
 
本番環境で使いたいPHP
本番環境で使いたいPHP本番環境で使いたいPHP
本番環境で使いたいPHPTakuya Sato
 
徹底攻略!PHP5.4
徹底攻略!PHP5.4徹底攻略!PHP5.4
徹底攻略!PHP5.4Takuya Sato
 
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3Takuya Sato
 
2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワークTakuya Sato
 
Redmineで始めるチケット駆動開発
Redmineで始めるチケット駆動開発Redmineで始めるチケット駆動開発
Redmineで始めるチケット駆動開発Takuya Sato
 
フレームワーク使おうぜ!
フレームワーク使おうぜ!フレームワーク使おうぜ!
フレームワーク使おうぜ!Takuya Sato
 
本当は怖いPHP
本当は怖いPHP本当は怖いPHP
本当は怖いPHPTakuya Sato
 
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるPHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるTakuya Sato
 

Plus de Takuya Sato (12)

レガシープロダクトを改善していくための戦い方
レガシープロダクトを改善していくための戦い方レガシープロダクトを改善していくための戦い方
レガシープロダクトを改善していくための戦い方
 
設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外設計と実装で 抑えておきたい サービスクラスと例外
設計と実装で 抑えておきたい サービスクラスと例外
 
Vue.js入門
Vue.js入門Vue.js入門
Vue.js入門
 
本番環境で使いたいPHP
本番環境で使いたいPHP本番環境で使いたいPHP
本番環境で使いたいPHP
 
徹底攻略!PHP5.4
徹底攻略!PHP5.4徹底攻略!PHP5.4
徹底攻略!PHP5.4
 
Silex入門
Silex入門Silex入門
Silex入門
 
ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3ここがすごい! なぞとPHP5.3
ここがすごい! なぞとPHP5.3
 
2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワーク
 
Redmineで始めるチケット駆動開発
Redmineで始めるチケット駆動開発Redmineで始めるチケット駆動開発
Redmineで始めるチケット駆動開発
 
フレームワーク使おうぜ!
フレームワーク使おうぜ!フレームワーク使おうぜ!
フレームワーク使おうぜ!
 
本当は怖いPHP
本当は怖いPHP本当は怖いPHP
本当は怖いPHP
 
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考えるPHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
 

PHPとMongoDBで学ぶ次世代データストア