NoSQLの概要

click fraud protection

頭字語NoSQLは1998年に造られました。 多くの人が、NoSQLはSQLを突くために作成された蔑称的な用語だと考えています。 実際には、この用語はSQLだけではありません。 アイデアは、両方のテクノロジーが共存でき、それぞれに場所があるということです。 多くのWeb2.0リーダーがNoSQLテクノロジーを採用しているため、NoSQLの動きは過去数年間ニュースになっています。 Facebook、Twitter、Digg、Amazon、LinkedIn、Googleなどの企業はすべて、何らかの方法でNoSQLを使用しています。 NoSQLを分解して、CIOや同僚に説明できるようにしましょう。

MYSQLデータベース。

ニーズから生まれたNoSQL

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

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

複雑なデータ構造: NoSQLは、階層的なネストされたデータ構造を簡単に処理できます。 SQLで同じことを実現するには、すべての種類のキーを持つ複数のリレーショナルテーブルが必要になります。 さらに、パフォーマンスとデータの複雑さの間には関係があります。 従来のRDBMSでは、ソーシャルネットワーキングアプリケーションに必要な大量のデータを保存しているため、パフォーマンスが低下する可能性があります。 セマンティックWeb.

NoSQLとは何ですか?

NoSQLを定義する1つの方法は、そうでないものを検討することだと思います。 これはSQLではなく、リレーショナルでもありません。 名前が示すように、これはRDBMSの代わりではありませんが、それを補完します。 NoSQLは、非常に大規模なデータニーズに対応する分散データストア向けに設計されています。 5億人のユーザーがいるFacebookや、毎日テラビットのデータを蓄積するTwitterについて考えてみてください。

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

NoSQLカテゴリ

現在のNoSQLの世界は、4つの基本的なカテゴリに分類されます。

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

主要なNoSQLプレーヤー

NoSQLの主要なプレーヤーは、主にそれらを採用した組織のために出現しました。 最大のNoSQLテクノロジーには次のものがあります。

  • ダイナモ: DynamoはAmazon.comによって作成され、最も有名なKey-ValueNoSQLデータベースです。 Amazonは、eコマースビジネス用の拡張性の高い分散プラットフォームを必要としていたため、Dynamoを開発しました。 Amazon S3は、ストレージメカニズムとしてDynamoを使用します。
  • カサンドラ:カサンドラ Facebookによってオープンソース化されており、列指向のNoSQLデータベースです。
  • BigTable: BigTableは、Google独自の列指向データベースです。 GoogleではBigTableの使用が許可されていますが、Google AppEngineでのみ使用できます。
  • SimpleDB: SimpleDBは別のAmazonデータベースです。 Amazon EC2およびS3に使用され、使用量に応じて料金を請求するAmazon WebServicesの一部です。
  • CouchDB:CouchDB MongoDBとともに、オープンソースのドキュメント指向のNoSQLデータベースがあります。
  • Neo4J:Neo4j はオープンソースのグラフデータベースです。

NoSQLのクエリ

NoSQLデータベースをクエリする方法の問題は、ほとんどの開発者が関心を持っていることです。 結局のところ、巨大なデータベースに保存されたデータは、それを取得してエンドユーザーやWebサービスに表示できなければ、何の役にも立ちません。 NoSQLデータベースは、SQLのような高レベルの宣言型クエリ言語を提供しません。 代わりに、これらのデータベースへのクエリはデータモデル固有です。

NoSQLプラットフォームの多くは、データへのRESTfulインターフェイスを可能にします。 その他のオファークエリAPI。 複数のNoSQLデータベースにクエリを実行するために開発されたクエリツールがいくつかあります。 これらのツールは通常、単一のNoSQLカテゴリで機能します。 一例はSPARQLです。 SPARQLは、グラフデータベース用に設計された宣言型クエリ仕様です。 これは、特定のブロガーのURLを取得するSPARQLクエリの例です(提供: IBM):

PREFIX foaf: 
SELECT?url
から
どこ {
?contributor foaf:name "JonFoobar"。
?contributor foaf:ウェブログ?url。
}

NoSQLの未来

大規模なデータストレージを必要とする組織は、NoSQLを真剣に検討しています。 どうやら、この概念は小規模な組織ではそれほど注目されていません。 Information Weekが実施した調査では、ビジネスITプロフェッショナルの44%がNoSQLについて聞いたことがありません。 さらに、回答者の1%のみが、NoSQLが戦略的方向性の一部であると報告しました。 明らかに、NoSQLは私たちの接続された世界でその位置を占めていますが、多くの人がそれが持つことができると考える大衆の魅力を得るために進化し続ける必要があります。