NoSQLデータベースの概要

NoSQLという頭字語は1998年に造語されました。多くの人々は、NoSQLはSQLを突き進むために作成された軽蔑的な言葉だと考えています。 実際には、この用語はSQLだけではないことを意味します。 アイデアは、両方の技術が共存することができ、それぞれがその場を持つことです。 NoSQLの動きは、Web 2.0のリーダーの多くがNoSQL技術を採用しているので、ここ数年のニュースでありました。 Facebook、Twitter、Digg、Amazon、LinkedIn、Googleなどの企業はいずれもNoSQLを使います。

NoSQLを解説して、CIOや同僚にも説明できるようにしましょう。

NoSQLが必要から出てきた

データ保存:世界の保存されたデジタルデータは、エクサバイト単位で測定されます。 エクサバイトは10億ギガバイト(GB)のデータに相当します。 Internet.comによると、2006年に追加された保存データの量は161エクサバイトでした。 わずか4年後の2010年には、保存されるデータの量はほぼ1,000のExaBytesになり、これは500%を超える増加です。 言い換えれば、世界には多くのデータが保存されており、今後もそのデータが成長し続けるでしょう。

相互接続されたデータ:データは引き続きより多くの接続になります。 ハイパーリンクで育ったウェブの作成、ブログにはピングバックがあり、すべての主要なソーシャルネットワークシステムには物事を結びつけるタグがあります。 主要なシステムは相互接続されています。

複雑なデータ構造: NoSQLは階層構造のネストされたデータ構造を簡単に処理できます。 SQLで同じことを達成するには、すべての種類のキーを持つ複数のリレーショナル表が必要です。

さらに、パフォーマンスとデータの複雑さには関係があります。 従来のRDBMSでは、ソーシャルネットワーキングアプリケーションやセマンティックWebに必要な大量のデータを格納するため、パフォーマンスが低下する可能性があります。

NoSQLとは何ですか?

私はNoSQLを定義する一つの方法は、それが何ではないかを検討することだと思います。

それはSQLではなく、リレーショナルではありません。 その名前が示唆するように、RDBMSを置き換えるものではありませんが、それを褒めてくれます。 NoSQLは、非常に大規模なデータニーズの分散データストア用に設計されています。 毎日テラビットのデータを蓄積している500,000,000人のユーザーやTwitterをFacebookと考えてみてください。

NoSQLデータベースでは、固定スキーマはなく、結合もありません。 RDBMSは、ハードウェアの高速化と高速化、メモリの追加によって「スケールアップ」されます。 一方、NoSQLは、「スケールアウト」を利用することができます。 スケールアウトとは、多くの商品システムに負荷を分散することを指します。 これはNoSQLのコンポーネントで、大規模なデータセットには安価なソリューションです。

NoSQLカテゴリ

現在のNoSQLの世界は、4つの基本カテゴリに適合しています。

  1. キー値ストアは、主に2007年に作成されたAmazonのDynamo Paperに基づいています 。主な考え方は、固有のキーと特定のデータ項目へのポインタがあるハッシュテーブルの存在です。 これらのマッピングには通常、パフォーマンスを最大化するためのキャッシュメカニズムが付随しています。
    Column Family Storesは、非常に大量のデータを多数のマシンに分散して格納および処理するために作成されました。 キーはまだありますが、複数の列を指しています。 BigTable(GoogleのColumn Family NoSQLモデル)の場合、行は行キーで識別され、データはこのキーでソートされて格納されます。 列は列ファミリによって配列されます。
  1. ドキュメントデータベースLotus Notesに触発され、キーバリューストアに似ています。 このモデルは、基本的に、他のKey-Valueコレクションのコレクションであるバージョン管理されたドキュメントです。 半構造化文書はJSONのような形式で保存されます。
  2. グラフデータベースはノード、ノートとノードのプロパティとの関係で構築されています。 行と列のテーブルとSQLの厳密な構造の代わりに、多くのマシンにまたがって拡張できる柔軟なグラフモデルが使用されています。

メジャーNoSQLプレーヤー

NoSQLの主要プレーヤーは、主にNoSQLを採用した組織のために浮上しています。 NoSQLテクノロジの中には、

NoSQLのクエリ

NoSQLデータベースを照会する方法の問題は、ほとんどの開発者が興味を持っていることです。結局のところ、巨大なデータベースに格納されたデータは、エンドユーザーやWebサービスに取得して表示することができなければ、 NoSQLデータベースは、SQLのような高水準の宣言的クエリ言語を提供していません。 代わりに、これらのデータベースを照会することは、データ・モデル固有のものです。

多くのNoSQLプラットフォームでは、データへのRESTfulなインタフェースが可能です。 他の提供クエリAPI。 複数のNoSQLデータベースを照会しようとする、いくつかの照会ツールが開発されています。 これらのツールは、通常、単一のNoSQLカテゴリで機能します。 1つの例はSPARQLです。 SPARQLは、グラフ・データベース用に設計された宣言型の問合せ仕様です。 次に、特定のブロガーのURLを取得するSPARQLクエリの例を示します(IBM提供)。

PREFIX foaf:
SELECT?url
FROM
どこに{
投稿者foaf:名前 "Jon Foobar"。
投稿者foaf:weblog?url。
}

NoSQLの未来

大量のデータストレージを必要とする組織は、NoSQLを真剣に検討しています。 明らかに、このコンセプトは小規模な組織ではあまり魅力を感じていません。 Information Weekが実施した調査では、ビジネスIT専門家の44%がNoSQLのことを知らなかった。 さらに、回答者の1%のみがNoSQLが戦略的方向性の一部であると報告しています。 明らかに、NoSQLは接続された世界にその地位を持っていますが、多くの人が考える大量アピールを得るために進化し続ける必要があります。