タグ

nosqlに関するsenecaのブックマーク (27)

  • MongoDBの薄い本

    2.6対応版 MongoDBの薄い The Little MongoDB Book Karl Seguin 著 / 濱野 司 訳 i 目次 目次 i このについて iii ライセンス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii 著者について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii 謝辞 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii 最新バージョン . . . . . . . . . . . . . . . . . .

  • NoSQLの世界へようこそ

    「NoSQL」とはリレーショナルデータベースを象徴するSQL言語がない(NoSQL)から誕生した言葉で、非リレーショナルデータベースの総称です。ただし、NoSQLを「もはやSQL要らない」と解釈してしまうと強すぎる印象を与えるという批判もあったことから、最近では「Not Only SQLSQLだけじゃない)」の略であるという解釈が一般的です。 NoSQLの分類に含まれるデータベースとしては、ROMAをはじめとするキー・バリュー型データストア(key-valueストア)や、MongoDBをはじめとするドキュメント指向データベースがあります(図1)。 RDBの限界とNoSQL リレーショナルデータベースには、大規模環境、特に高トラフィックWebのバックエンドとしての性能に限界があると考えられるようになってきました。リレーショナルデータベースには、基的原則としてACID特性というものがありま

    NoSQLの世界へようこそ
    seneca
    seneca 2012/03/24
  • NoSQLをRDBの代わりに使うと、どういう恐ろしいことが起こるか。PARTAKEの作者が語る

    データベースの世界でいま注目されているのがNoSQL。特にキーバリュー型データストアは、グーグルのBigTable、FacebookやTwitterが内部で利用しているCassandraやAmazonクラウドが提供しているSimpleDBなど、すでに実際に使われ始めています。 ではそのNoSQLをリレーショナルデータベースの代わりに使ってシステムを構築するとどうなるのか? 身をもって体験したことを記したShinya Kawanaka氏によるプレゼンテーション「間違った方向にCassandraを使ってみた」が公開されています。 NoSQLを用いたシステム構築は、リレーショナルデータベースによる構築どう違うのか? とても分かりやすくまとめられています。ご人の承諾もいただいたので、その内容を紹介しましょう。 NoSQLを使ったときに起こる恐ろしい事例 プレゼンテーションのテーマは「NoSQL

    NoSQLをRDBの代わりに使うと、どういう恐ろしいことが起こるか。PARTAKEの作者が語る
  • RDBとNoSQLのデータ書き込み法の違い

    最終回となる今回は、NoSQLRDBのデータ書き込み方法を比較して、それぞれの得意不得意を考えてみます(編集部) データ構造やインデックスを事前に用意 前回は、「NoSQLデータベースでRDBMSの機能を実現する」の後半戦として、RDBなら集計処理やテーブル結合を使って簡単にデータを取得できる場合を想定し、それをNoSQLデータベースで実現するための考え方や方法について説明しました。 NoSQLデータベースにはRDBのように読み取り時にデータを加工する機能はありません。集計や結合といったデータの加工は事前に済ませ、データキャッシュとして保存しておいたものを読み出します。また、キャッシュを格納するための物理的なデータの構造や配置にも気を配らなければなりません。NoSQLデータベースはデータの持ち方で読み出し性能が大きく変わるからです。 第3回で紹介したデータ検索や並べ替えの実現方法も、「転

    RDBとNoSQLのデータ書き込み法の違い
    seneca
    seneca 2011/06/25
  • RDBの機能をNoSQLで実現する(2)

    前回は、NoSQLデータベースを使って、RDBMSが備えるデータの絞り込みや並べ替えの機能を実現する方法を考えてみました。今回は、NoSQLを使いながら、テーブル結合やデータ集計の機能を実現する方法を考えます(編集部) テーブル結合やデータ集計に挑戦 前回は「リレーショナルデータベース管理システム(RDBMS)が提供しているさまざまな読み取り処理の機能を、NoSQLデータベースで実現するには?」をテーマに、KVS型のNoSQLデータベースで検索処理や並べ替えを実現する方法を紹介しました。 分散環境で性能を発揮できるようシンプルさを追求したNoSQLデータベースには、RDBMSのように便利なデータ加工処理機能はありません。RDBMSが相手なら、SQL文を書くだけで簡単に使えた検索処理や並べ替えも、「データベースにお任せ」というわけにはいかず、アプリケーション側での工夫が必要になります。今回も

    RDBの機能をNoSQLで実現する(2)
  • RDBの機能をNoSQLで実現する(1)

    NoSQLデータベースはRDBMSに比べて並列処理で性能を上げていけるという特長がある反面、単純なデータ構造しか扱えないとか、データの並べ替えなどが難しいという難点があります。今回からは、NoSQLを使いながらも、RDBMSが備える機能を部分的に実現する方法を解説していきます。(編集部) 高速な分、複雑なデータ加工が苦手なNoSQLデータベース 前回は、リレーショナルデータベース管理システム(RDBMS)からデータを読み出す流れを詳しく見ていきました。問い合わせを受けてから結果セットを動的に作って返すRDBMSのやり方では、分散環境においては十分な処理性能を発揮できないということがご理解頂けたかと思います。 RDBMSはデータの結合や検索のほかにも、データ集計や並べ替えなど、SQLを使った問い合わせ内容に応じてさまざまな形にデータを加工する機能を備えています。多様な要求に応えてくれる問い合

    RDBの機能をNoSQLで実現する(1)
    seneca
    seneca 2011/04/26
  • リレーショナルデータベースはNoSQLを取り込み始めた。NewSQLの登場とNoSQLの終わり、という予想

    リレーショナルデータベースはNoSQLを取り込み始めた。NewSQLの登場とNoSQLの終わり、という予想 MySQLの次期バージョンとPostgreSQLの次期バージョンにどのような新機能が追加されるのか、昨日、一昨日の2の記事で紹介しました。 MySQLの次期バージョンはMemcached APIを備える! MySQL Conference & Expo 2011基調講演 PostgreSQLの現状と次期バージョン9.1の新機能。MySQL Conference & Expo 2011 この2つのデータベースの次期バージョンに共通しているのが、NoSQLの機能を取り込んでいることです。NoSQLに対するリレーショナルデータベースによる反撃が始まっています。 リレーショナルデータベースがNoSQLを取り込み始めた MySQLの次期バージョンであるMySQL 5.6に搭載予定の新機能の1

    リレーショナルデータベースはNoSQLを取り込み始めた。NewSQLの登場とNoSQLの終わり、という予想
  • あえてNoSQLでクラウド上にエンタープライズアプリを作ってみる : 小野和俊のブログ

    RDBMSとNoSQLを巡る議論でいつも私が違和感を感じるのは、RDBMSに固執しようとする人と、NoSQLに固執しようとする人と、それぞれが極端にどちらかを擁護し、極端にどちらかの長所や可能性に対して目を瞑ろうとしているように見受けられることである。 これまでRDBMSを業務で使ってきた人にNoSQLの制約の話をすると、大抵の場合、「そんなのじゃ業務には使えない」という反応が返ってくる。特に即時一貫性が保てないという話をすると「まったく使い物にならない」と脊髄反射的に拒否反応を示されることが多い。 私が思うに、クラウドがシステム構築で活用されていくのに比例して、これからは「RDBMSとNoSQLを適材適所で使い分ける」ことがこれからのアーキテクトに求められるのではないか。 これまではRDBMSがあったから何もかも一貫性が保障されていた。だが、当にそこまですべてのデータに即時一貫性が必要

    あえてNoSQLでクラウド上にエンタープライズアプリを作ってみる : 小野和俊のブログ
    seneca
    seneca 2011/03/03
  • 『ドキュメント指向データベース「MongoDB」』

    皆様、はじめまして。 アメーバ事業部と言うところでサービス開発のプログラマをしている津田と申します。 先日、M.S.氏より、当エンジニアブログにて「技術に関して書くように」とお達しが下りました。 同じ技術者として、尊敬の気持ちを通り越し、畏怖の念すら抱いているM.S.氏に 「技術」に関して書けと言われるとは、もはや路頭に迷った子羊の気分です。 どうにか違う話題に出来ないかとごまかしてはみたものの、 やはり「技術」に関して書くようにと念を押されてしまいました。 路頭に迷っていても致し方ないので、今後サービスに利用する予定で検証を行っていた 「MongoDB」と言うドキュメント指向データベースに関して紹介させて頂きます。 ■MongoDBとは ここ数年注目を浴びている「NOSQL(NotOnlySQL)」のデータストアの一つ KVSとは異なり、スキーマレスではあるが、カラムに近い概念がある

    『ドキュメント指向データベース「MongoDB」』
  • Cassandra、MongoDB、Redisなど主要NoSQL比較 | gihyo.jp

    ハンガリーの企業でCTOを務めるKristof Kovacs氏による記事です。各主要NoSQLプロダクトについて機能比較や利用ケースなどをまとめています。この記事ではCassandraやRedisなど6つのプロダクトを挙げています(表1⁠)⁠。 CouchDBは使い勝手に優れており、双方向レプリケーションやリアルタイム更新をサポートしています。Redisは非常に高速なことが売りで、トランザクションや変更監視の機能が備わっています。Cassandraは書き込みが読み込みよりも速いことから銀行や金融などのリアルタイムなデータ解析が必要になる分野で実力を発揮し、Cassandraと同じくJavaで作られているHBaseは億単位の行と数百万のカラムというBig Dataを扱え、月に1,000億を超えるメッセージを処理するFacebookのバックエンドに採用されています。 次々にプロダクトが生まれた

    Cassandra、MongoDB、Redisなど主要NoSQL比較 | gihyo.jp
    seneca
    seneca 2011/02/26
  • NOSQLの新顔、分散KVS「okuyama」の機能

    NOSQLについて解説した前回の記事は、いかがだったでしょうか。今後のアプリケーションでは、増え続けるデータを扱うことが非常に多くなると思います。前回の記事が、こうしたケースに適した新たなストレージの1つとして、NOSQLを理解するきっかけになっていたら幸いです。 連載2回目の今回は、NOSQLの1つである「okuyama」の全体概要と、機能的な特徴を紹介します。 1. 「okuyama」の概要 okuyamaは、まだ聞きなれない方も多いかと思いますが、筆者が開発している分散キー・バリュー・ストアです。2009年12月ごろから開発を始めました。現在はSourceforge.jpにて公開しています。もともとは学習を兼ねて作成したため、一部のログ・ライブラリなどを除き、すべて1から実装しました。2010年1月にファースト・リリースを行い、現在はバージョン0.8.6となっています。 以降は、ok

    seneca
    seneca 2011/02/11
  • NOSQLは「知る時代」から「使う時代」へ

    連載では、オープンソースの分散KVS(Key-Value Store)である「okuyama」と、その関連技術について、4回にわたって解説します。 okuyamaは、クラウド時代のデータ・ストレージと言われる、「NOSQL」と呼ぶ部類に属するデータ・ストレージです。連載では、NOSQLが登場した背景や関連ソフトウエアの特色を整理したのち、okuyamaの概要と機能の紹介、そして実際にどのように配置・運用するか、などを解説します。 第1回: NOSQLは「知る時代」から「使う時代へ」 - NOSQLの登場した背景や特性、NOSQLの種別を紹介します。 第2回: NOSQLの新顔、分散KVS「okuyama」の機能 - 分散KVS「okuyama」の概要から機能の詳細までを解説します。 第3回: 分散KVS「okuyama」の使い方 - 実際にokuyamaを起動してから利用までの手順と運用

    seneca
    seneca 2011/02/04
  • キーバリュー型データベースの概要とその例

    まず、日々の天気を記録するようなプログラムを作ることを考えてみてください。この場合、表1のような2列の表を作って、片方の列に日付、もう片方の列に天気を保存する、といったことを行うことが考えられます。 この例のように、プログラムを作る中で、以下のような処理を行うことは、よくあることです。 2つの情報からなる組を扱う 2つの情報のうちの1つが、個々の組を識別するための情報になっている(表1の例だと日付) もう片方の情報が、主に必要な情報になっている(表1の例だと天気) このような「2つの情報の組」のうち、個々の組を識別する情報を「キー」(Key)と呼び、もう片方の情報を「バリュー」(Value、値)と呼びます。キーバリュー型データベースは、このような「キー」と「バリュー」の組を保存するためのデータベースです。 多くのプログラム言語では、キーとバリューからなるデータ構造を扱う機能を持っています(

    seneca
    seneca 2010/10/09
  • 第2回 RDBMSとNoSQLを比べよう | gihyo.jp

    NoSQLRDBMSの比較 さて前回ご紹介したNoSQLの特色ですが、もう一度書きますと、 データ構造が単純である リレーションがない 拡張性/柔軟性が高い トランザクションがない 分散環境への対応が容易 ということでありました。 これらはどういうことなのか、改めてRDBMSと比較してみてみたいと思います。 データ構造とリレーション RDBMSの場合 RDBMSはデータをテーブルという表形式に集約し、データ同士の関係性を定義することで厳格なデータモデルを表現しています。テーブルはデータモデルごとに作成され、カラムという単位で項目を分けていきます。カラムはデータ型を指定する必要があり、投入されるデータの意味を理解した上で定義しなければなりません。 また、データ同士の関連性を定義することで、論理的な整合性が担保されます。 このように厳密でありますが、同時に複雑なデータ構造を表現することが可能

    第2回 RDBMSとNoSQLを比べよう | gihyo.jp
    seneca
    seneca 2010/10/06
  • NoSQLの成功は1:10問題にかかっている:Kenn's Clairvoyance

    ここ2-3年ほど、いわゆる非SQL系データベースがホットな話題になってきています。このムーブメントを総称して「NoSQL (Not-only SQL)」と呼ばれることが多いようです。まるでSQLを否定しているかのような誤解を招きやすい用語ですが、かといってキー・バリュー型データストアや列指向DBを総称できる他の呼び方もないので、このエントリではNoSQLという用語を使うことにします。 OracleMySQLなどのSQLデータベースが成熟していく一方で、SQLデータベースを特徴づける弱点である柔軟性のなさ、堅牢さと引き換えに犠牲になった更新性能の低さ、スケールアウトの難しさなどから、「何でもかんでもRDB」から「目的に応じた永続化」が模索される流れになってきました。 時を同じくして、キャッシュサーバの世界でも、MemcachedのもつシンプルなAPIの使いやすさが評価される一方、LRUによ

    NoSQLの成功は1:10問題にかかっている:Kenn's Clairvoyance
    seneca
    seneca 2010/09/21
  • 第6回 パフォーマンスはどうなの? | gihyo.jp

    この表では言及していませんが、Consistent Hashingやshardingによって分散させやすいというのはすべてのNoSQLデータベースが備えている特徴でしたね。 検証用サーバの準備 では実際のパフォーマンスを比較してみましょう。比較のため、10,000件のデータの書込み/読込みを行います。実行にあたり各種サーバを起動します。 リスト1 検証用サーバの起動コマンド # memcached memcached -u nobody -d # TokyoTyrant sudo ttserver -pid /var/ttserver/pid -dmn /var/ttserver/bench.tch # MongoDB mongod --dbpath ~/tmp/mongodb & # HBase sudo /etc/init.d/hadoop-0.20-namenode start su

    第6回 パフォーマンスはどうなの? | gihyo.jp
    seneca
    seneca 2010/08/01
  • Hadoopシステム構築のノウハウ

    前回までの記事では、Hadoopがどのような背景で登場したのか、どのような能力を持っているのか、リレーショナル・データベース管理システム(RDBMS)やKey-Value Store(KVS)型データベースとはどのように異なるのかを解説してきました。 今回は、Hadoopを実際にエンタープライズ(企業情報システム構築)用途に活用するにあたって、押さえておきたいポイントを解説します。 Hadoop活用の課題 Hadoopは、オープンソースとして開発されています。2006年にDoug Cutting氏によってHadoopプロジェクトが立ち上げられて以来、ほぼ4年が経過し、現在ではApache Software財団が支援するトップ・レベル・プロジェクトとして多数の開発者が参加しています。 プロジェクトが立ち上がった当時、Hadoopはわずか20ノードのクラスタで動作していました。現在では、米Ya

  • 第5回 APIの全体像とデータの投入 | gihyo.jp

    前回でCassandraへのアクセスするコードの基をおさえました。今回解説するのは以下の2点です。 CassandraのAPIの全体像 Cassandraにデータを投入するコードの詳細 3つの分類からAPIの全体像をおさえる 第1回でもご紹介しましたが、CassandraのクライアントAPIはThriftによって自動生成されます。APIは非常にシンプルなものが幾つかあるだけで、覚えるのもさほど難しくはありません。連載ではその中からよく使うものに特化してご紹介していきます。 以下にCassandraのAPIを、データ挿入系・データ検索系・認証/管理系の3つに分類してまとめてみました。まずはこれらにひと通り目を通してみてください。 データ挿入/更新/削除のAPI データ挿入、更新、削除のAPIは以下の表のとおりです。現実的によく使う中心的なAPIはbatch_mutate、removeの2

    第5回 APIの全体像とデータの投入 | gihyo.jp
  • 第2回 RDBMSと組み合わせて使えるmemcached | gihyo.jp

    はじめに 今回からタイプ毎に代表的なNoSQLデータベースを扱っていきます。まず今回は、揮発性key-valueストアの代表としてmemcachedを取り上げます。 なお、利用したコードやプログラムはgithubに置いてあります。適宜参照してください。 どんなところに使える? memcachedの特徴は、何といってもデータの揮発性(memcachedサーバを停止すると全データが消えてしまうこと)です[1]⁠。そのため、データが消えても影響が小さいところに利用シーンは限られてきます。一方、連想配列(ハッシュ)のように使えて扱いやすいこと、様々なサイトでの事例があること、などから導入はしやすいです。 具体的な利用シーン memcachedの具体的な利用シーンとしては、以下の事柄が考えられます。 RDBMSから取得したデータのキャッシュ 消えても大きな影響の無いデータの保存 一般的には(1)のよ

    第2回 RDBMSと組み合わせて使えるmemcached | gihyo.jp
    seneca
    seneca 2010/06/05
  • 第1回 RDBMSとNoSQLデータベース | gihyo.jp

    はじめに NoSQL(Not Only SQL)という言葉が注目を集めています。これは「RDBMSが得意なことはRDBMSで、不得意なところにはRDBMSにこだわらず、用途に合ったデータストアを使いましょう』という考え方です。最近では、いわゆるNoSQLデータベース (⁠key-valueストアや各種データベース⁠)⁠ が次々と登場してきています。 そこで今回から数回に渡り、それぞれのNoSQLデータベースの特徴や具体的な使い方について紹介していきます。 RDBMSの強みとは そもそも、MySQLやPostgreSQLなどのRDBMSの弱みを補うため、様々なNoSQLデータベースが登場してきたわけですが、RDBMSにはたくさんの強みがあることも忘れてはいけません。 RDBMSの強み データの一貫性 (⁠トランザクション) 更新時のコストが少ない(JOINが前提でテーブルが正規化されている)

    第1回 RDBMSとNoSQLデータベース | gihyo.jp