ソフトウェア
 Computer >> コンピューター >  >> ソフトウェア >> ソフトウェア

NoSQLデータベースの概要

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

NoSQLデータベースの概要

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

主要なNoSQLプレーヤー

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

  • ダイナモ: DynamoはAmazon.comによって作成され、最も有名なKey-ValueNoSQLデータベースです。 Amazonは、eコマースビジネス用の高度にスケーラブルな分散プラットフォームを必要としていたため、Dynamoを開発しました。 Amazon S3は、ストレージメカニズムとしてDynamoを使用します。
  • カサンドラ: CassandraはFacebookによってオープンソース化されており、列指向のNoSQLデータベースです。
  • BigTable: BigTableは、Google独自の列指向データベースです。 GoogleではBigTableの使用が許可されていますが、GoogleAppEngineでのみ使用できます。
  • SimpleDB: SimpleDBは別のAmazonデータベースです。 Amazon EC2およびS3に使用され、使用量に応じて料金を請求するAmazonWebServicesの一部です。
  • 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
FROM
WHERE {
?contributor foaf:name "Jon Foobar"。
?contributor foaf:weblog ?url。
}

NoSQLの未来

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


  1. Ruby開発者向けのデータ構造の概要

    データ構造とは何ですか? データ構造は、データを整理してアクセスするための特定の方法です。 。 例: 配列 二分木 ハッシュ さまざまなデータ構造がさまざまなタスクに優れています。 たとえば、辞書(単語と定義)や電話帳(人の名前と番号)のようなデータを保存する場合は、ハッシュが最適です。 利用可能なデータ構造を知る 、およびそれぞれの特徴 、より優れたRuby開発者になります。 それがこの記事で学ぶことです! 配列について 配列は、プログラミングについて読み始めたときに最初に学習するデータ構造です。 配列は、オブジェクトがギャップなしで次々に格納される連続したメモリのチャン

  2. Excel でのデータ入力の種類 (簡単な概要)

    Microsoft Excel は、主要なデータ整理および分析プログラムの 1 つです。しかし、Excel でデータを分析するには、まずデータを入力する必要があります。 データ さまざまなタイプにすることができます。データ型に基づいて、Microsoft Excel に挿入するさまざまな手法があります。この記事では、さまざまなタイプのデータ入力について説明します 次のリンクから Excel ファイルをダウンロードして、それに沿って練習できます。 Excel のデータの種類 データは MS Excel の心臓部です。データを処理し、出力を生成します。 Excel には 4 種類のデータがあ