Habréに関する私の意見では、無料のNoSQLベースのGlobalsDBに関する情報はほとんどありません。 元の記事は2011年8月に作成されたものであり、引き続き関連しています。 これが最初の部分です。 2番目の部分では、GlobalsDBを使用してさまざまな種類のNoSQLデータベースをシミュレートする方法を説明します。
はじめに
GlobalsDBは、Global Persistent Variablesのメカニズムを使用する無料のデータベースです。 ハードドライブに自動的に保存される変数値。 これらはバイナリツリー(Bツリー)の抽象化であり、多次元のスパース配列として表される大量のデータを格納するために使用できます。
Global Permanently Stored Variables(通常は「globals」と呼ばれるため、ベースはGlobalsDBと呼ばれます)の助けを借りて、今日さまざまなNoSQLベースを使用するのが慣例となっているすべての通常のタスクを表現的かつ非常に効率的に解決できます。
GlobalsDBの中心は、 Cachéデータベースで使用されるエンジンと同じです。
GlobalsDBでの開発の主な利点は、GlobalsDBが、ヘルスケアや金融サービスなどの重要かつ重要なビジネス分野で歴史的に実証されたスケーラビリティと非常に高いパフォーマンスを備えた、実績のあるテスト済みの大人のテクノロジーに基づいていることです。
CachéGlobalsDBとは異なり、制限なく自由に使用、開発、配布できるため、このプラットフォームは非常に魅力的です(ただし、これはオープンソース製品ではありません)。
この記事では、GlobalsDBを使用して、さまざまな種類のNoSQLデータベースのデータをモデル化および保存する方法について説明します。
- キー/値
- 表/列の保管
- ドキュメント指向ストレージ
- グラフデータベース。
そして、その結果、最大の利点を得る方法:重要なビジネスアプリケーションに必要なパフォーマンス、信頼性、および成熟度と組み合わせたNoSQL機能。
GlobalsDBは、Node.JS(Javascript)、. NET、およびJavaで使用可能な高性能のインプロセスAPIを介してアクセスできます。
GlobalsDBへのコマンドは、データベースの処理速度を低下させるポートやソケットを介してではなく、アプリケーションプロセスからGlobalsDBプログラムコードに直接アクセスして送信されます。 最大のパフォーマンスを得るために、GlobalsDBプロセスはアプリケーションプロセスに対して認証されます。
他の言語からのアクセスは、今後実装される予定です。
この記事では、Node.JSのJavascriptインターフェイスを使用してGlobalsDBにアクセスします。
注:この記事のグローバルは、グローバルスコープを持つ変数ではありません。 GlobalsDBの観点では、グローバルはデータを格納するための構造です。
NoSQLの簡単な紹介。
NoSQLという用語は、ほんの数年前のものです。 Webまたはインターネットスケールの厳しい要件を満たすストレージテクノロジを指定するために造られました。
簡単に言うと、ここにWebスケールの3つの機能があります。
- 大量のデータまたはビッグデータ。 最大のWebアプリケーション(Twitter、Facebook、Googleなど)は、以前はデータベースで利用可能と考えられていたよりも数桁多いデータ量で動作します
- 絶えず同時にシステムにアクセスする数百万人の膨大な数のユーザー
- 複雑なデータ構造 :通常、Webアプリケーションは通常のテーブルよりも複雑なもので動作します
前世紀の80年代以降に支配されたリレーショナルデータベースは、Webスケールで適用されると、これら3つの分野で弱点を示し始めました。 したがって、開発者は代替案を探し始めました。
需要が供給を生み出す:NoSQLデータベースが登場し始めました。 NoSQLデータベースにはさまざまな種類がありますが、それらにはすべて次の共通機能があります。
- 膨大な量の情報を処理するために、サーバー間で分散されます。 このプロセスはシャーディングと呼ばれます。
- 膨大な数のユーザーにサービスを提供するために、負荷はサーバー間で分散されます。 並列処理が使用されます
- 事前に決められたスキームのない、よりシンプルなデータベースデバイスが使用されます
最も成功し、最も有名なNoSQLデータベースはすべて、過去数年にわたってゼロから開発されてきました。 変です。 Webスケールを操作するための強固な基盤を提供できる既存の適切に実装されたデータベーステクノロジーを誰も探していないようです。
この記事は、GlobalsDBが既存の実績のあるテスト済みのテクノロジーを使用してNoSQLデータベースを作成するための優れた基盤になり得ることを示すことを目的としています。
GlobalsDBは、非常に高性能なNode.JSと組み合わせて、NoSQLデータベースを実装するための理想的で強力な高性能産業プラットフォームを提供します。
グローバルな概要
データを保存するための構造を意味することをグローバルによって、またグローバル上に構築されたデータベースをGlobalsDBによって再度思い出させてください。
グローバル:
- 事前に定義された構造を持たない(スキーマフリー)。 グローバルは、テーブルとは異なり、作業を開始する前に定義(CREATE TABLE)を必要としません。
- 階層構造(個々のグローバルの内部構造について話している)
- まばらな
- ダイナミック
これらはディスクに自動保存された連想配列であると思われるかもしれませんが、真実からそう遠くないでしょう。
グローバルのいくつかの例:
myTable["101-22-2238", "Chicago", 2] = "Some information" account["New York", "026002561", 35120218433001] = 123456.45
各グローバルには名前があります(配列に名前があるように)。 以下はいくつかのインデックスで、値は数値または文字列です。 インデックスはいくつでも持つことができます。 全長のみに制限があり、これは非常に大きくなります。
グローバルの各要素(グローバルの名前とインデックスの組み合わせによって決定されます)には、テキスト文字列が格納されます。 空行は許可されます。
必要なときにグローバル要素を作成または削除できます。 すべてが動的に行われ、宣言やデータスキーマ定義は必要ありません。
すべての高レベルの抽象化とデータスキームは開発者の頭にあり、データベースは物理的にグローバルに保存されます。
グローバルはセカンダリインデックスを提供しないため、高速な検索とクエリを提供するには、開発者はグローバルでセカンダリインデックスの役割を果たす追加の要素を作成および維持する必要があります。
グローバルは非常に用途が広く、4種類すべてのNoSQLデータベースを同等または多くの場合非常に優れたパフォーマンスでシミュレートするために簡単に使用できます。
- ストレージキー/値(Redis、memcached)
- テーブル/カラムストレージ(BigTable、Cassandra、SimpleDB)
- ドキュメント指向データベース(CouchDB、MongoDB)
- グラフベース(Neo4j)
2番目の部分では、これを行う方法の詳細な例を示します。
RAMのベースとしてのパフォーマンス、ディスクのベースとしての整合性。
GlobalsDBの非常に高いパフォーマンスの主な理由の1つは、Cachéで長年にわたって改善および最適化されたインテリジェントキャッシュメカニズムです。これにより、GlobalsDBはデータベースエンジンを継承しました。
その結果、ほとんどの場合、アクセスが必要なグローバル要素は既にRAMにあります。
ほとんどのNoSQLデータベースは、メモリに保存されたデータ(速度)とディスクに保存されたデータ(永続的なストレージと整合性)の処理に未熟な関係があり、ノードまたはシャードサーバーが突然シャットダウンした場合に脆弱です。
比較のために、このような状況では、Cachéと、その結果として、GlobalsDBははるかに信頼性の高い動作をします。
Cachéコアは、ヘルスケア、銀行、金融などの要求の厳しい分野で数十年にわたって開発および運用されてきました。 これらの分野では、ノンストップのパフォーマンス、整合性、および可用性が基本です。
長期的な開発、デバッグ、およびテストの結果、RAMに配置されたデータベースと同様の速度と、ディスクで動作するデータベースに固有のデータ整合性が実現しました。
GlobalsDB内のデータベースエンジンの開発を決定および推進した目標は、NoSQL運動の目標とほぼ完全に一致しています。
NoSQLデータベースの機能
2010年、TechRepublic は「NoSQLデータベースについて知っておくべき10の事柄」というタイトルの投稿を公開しました。
NoSQLデータベースに特徴的な5つの利点と5つの弱点が含まれています。
この投稿の観点からGlobalsDBを検討する場合、5つの利点すべてがそれに固有ですが、さらに興味深いことに、5つの欠点のうち4つはそれに関連しておらず、他のNoSQLデータベースは自慢できません。
これらの基準を見ていきましょう。
5つの利点 :
- 弾性スケーリング
- 大量のデータ
- さようなら、データベース管理者!
- 収益性
- 柔軟なデータモデル
5つの弱点 :
- 技術の未熟さ
- サポートする
- 分析とビジネス分析
- 政権
- 専門家の数
各利点を順番に検討してください。
- 柔軟なスケーリング。 長年、Cachéは複数のサーバーへのスケーリングをサポートしてきました。各サーバーは通常の安価なマシンにすることができます。
Cachéの場合、多数のサーバーに物理的に分散されているグローバルを透過的に操作できるECPネットワーキングテクノロジが作成されています。
現在、GlobalsDBにはECPが含まれていませんが、エラスティックスケーリングが必要な場合は、GlobalsDBのプログラムをCachéに移植できます。Cachéでは、変更を加えることなくGlobalsDBのアプリケーションを実行できます。 - 大量のデータ。 GlobalsDBは、従来のリレーショナルデータベースをはるかに超えるデータボリュームで動作するように設計されています。 同時に非常に高いパフォーマンス。
- さようなら、データベース管理者! 興味深いことに、インターシステムズ(Cachéのプロバイダー)は、長年にわたってこの議論をマーケティングで使用してきました。 何十年も無人で動作してきた世界的に知られているシステムが知られています。
- 収益性。 GlobalsDBは、安価で通常の機器で正常に動作し、最大レベルのパフォーマンスを絞り出します。 マサチューセッツ州のヘルスケアシステムでは、1980年代と1990年代に、数万人のユーザーが、MS-DOSで前身のCachéデータベースが起動された数百台の通常のPCのネットワーククラスターで同時に作業しました。
- 柔軟なデータモデル。 これは、後で説明するグローバル上のストレージの本質です。
弱点に関して:
- 技術の未熟さ。 新しいNoSQLデータベースとは異なり、Cachéには長い血統と傑出した実績があります。 Cachéには、要求の厳しいビジネス部門に巨大で洗練されたデータベースがあります。 同じデータベースエンジンを備えたGlobalsDBは、重要なビジネス分野で自信を持って使用できる、高速で非常に信頼性が高く安定したテクノロジーです。
- サポート。 Cachéは米国のヘルスケア業界を支配しており、金融セクターで頻繁に使用されています。 この信頼の理由の1つは、インターシステムズの商用サポートの品質です。 GlobalsDBは無料でサポートなしで提供されますが、必要な場合は、GlobalsDBのアプリケーションを完全にサポートされているCachéに変更することなく転送できます。
- 分析およびビジネス分析。 興味深いことに、InterSystemsは現在、DeepSeeと呼ばれる製品を広く宣伝しています。 分析用に特別に作成され、Caché上で実行されます。 長年にわたって、CachéはSQLベースのビジネスインテリジェンスツールを使用して接続できます。 したがって、この機能が必要な場合は、GlobalsDBのアプリケーションを変更せずにCachéに転送できます。
- 運営 GlobalsDBはインストールと保守が簡単であり、Cachéと同様に、IT担当者が数人しかいない場合でも使用できます。
- 専門家の数。 これは、GlobalsDBの立場が弱い唯一の領域です。 Cachéユーザーの数は常に増加しています。 ただし、グローバルベースのデータベースでの作業経験を持つ経験豊富な専門家の数は、リレーショナルデータベースでの作業経験を持つ人の数に比べて非常に少ないです。 実際、GlobalsDBを開発する目的の1つは、GlobalsDBを通じてCachéについて学ぶ開発者とユーザーのコミュニティを拡大することです。
すべての特性を総合すると、無料のGlobalsDBデータベースは、NoSQLテクノロジーを必要とするが、高速で信頼できる大人の製品を必要とする企業にとって理想的な候補です。
商用のCaché製品にアップグレードする簡単な方法により、高度な機能とハイテクNoSQL機能にアクセスできます。
さまざまな種類のNoSQLデータベースのモデリング。
継続する。 パート2