.png/500px-Keyspace_example_(data_store).png)
NoSQLデータストアのキースペース(またはキースペース)は、設計のすべての列ファミリをまとめたオブジェクトです。 [1] [2]これは、データストア内のデータの最も外側のグループです。[3]これは、リレーショナルデータベース管理システムのスキーマの概念に似ています。[4]通常、アプリケーションごとに1つのキースペースがあります。
構造
キースペースには、列ファミリーまたはスーパー列を含めることができます。各スーパー列には1つ以上の列ファミリーが含まれ、各列ファミリーには少なくとも1つの列が含まれます。キースペースは、分散データストアにおける最高の抽象化です。これは、動的なデータ取得における構造的ヒューリスティックスの保持に不可欠です。[5]複数のリレープロトコルアルゴリズムが、シンプルなフレームワーク内に統合されています。[6]
リレーショナルデータベースシステムとの比較
キースペースは、データベースにおけるスキーマと同等の重要性を持っています。ただし、スキーマとは異なり、リレーショナル データ モデルで広く使用されているエンティティ リレーションシップ モデルで知られているような具体的な構造は規定しません。たとえば、キースペースの内容は列ファミリにすることができ、それぞれが異なる数の列、または異なる列を持つこともあります。したがって、リレーショナル データベースの行の概念に何らかの形で関連する列ファミリは、固定構造を規定しません。スキーマと同じ唯一の点は、スキーマにも多数の「オブジェクト」が含まれていることです。これは、RDBMS システムではテーブルであり、ここでは列ファミリまたはスーパー列です。
したがって、分散データ ストアでは、データ ストアの更新ごとに変更される可能性のある行を処理する負担はすべてプログラマーの肩にかかっています。
例
例として、キースペース内のいくつかの列ファミリを示します。キーワードは、列の比較方法を定義します。 この例では、UTF-8 標準が選択されています。 、、、などCompareWithの他AsciiTypeの比較方法も存在します。
BytesTypeLongTypeTimeUUIDType
<Keyspace Name= "DeliciousClone" > <KeysCachedFraction> 0.01 </KeysCachedFraction> < ColumnFamily CompareWith = "UTF8Type" Name= "Users" /> <ColumnFamily CompareWith= "UTF8Type" Name= "Bookmarks" /> <ColumnFamily CompareWith= "UTF8Type" Name= "Tags" /> <ColumnFamily CompareWith= "UTF8Type" Name= "UserTags" /> <ColumnFamily CompareWith= "UTF8Type" CompareSubcolumnsWith= "TimeUUIDType" ColumnType= "Super" Name= "UserBookmarks" /> </Keyspace>
別の例では、簡略化されたTwitterクローン データ モデルを示します。
<Keyspace Name= "TwitterClone" > <KeysCachedFraction> 0.01 </KeysCachedFraction> < ColumnFamily CompareWith= "UTF8Type" Name= "Users" /> <ColumnFamily CompareWith = " UTF8Type " Name = " UserAudits" /> <ColumnFamily CompareWith= "UTF8Type" CompareSubcolumnsWith= "TimeUUIDType" ColumnType= "Super" Name= "UserRelationships" /> <ColumnFamily CompareWith= " UTF8Type " Name= "Usernames" /> <ColumnFamily CompareWith= "UTF8Type" Name= "Statuses" /> <ColumnFamily CompareWith= "UTF8Type" Name= "StatusAudits" /> <ColumnFamily CompareWith= "UTF8Type" CompareSubcolumnsWith= "TimeUUIDType" ColumnType= "Super" Name= "StatusRelationships" /> </Keyspace>
参考文献
- ^ Ronald Mathies (2010-03-18). 「Java による Apache Cassandra のインストールと使用 パート 2 (データ モデル): キースペース」。Sodeso - ソフトウェア開発ソリューション。2014-02-03 にオリジナルからアーカイブ。2011-03-28に取得。
キースペースも非常に単純で、RDBMS の観点からは、これをスキーマと比較することができます。通常、アプリケーションごとに 1 つあります。キースペースには、ColumnFamily が含まれます。ただし、ColumnFamily 間には関係がないことに注意してください。これらは、単に別のコンテナーです。
- ^ 「概要: 用語/略語: キースペース」。Cassandra Wiki。2013 年 7 月 23 日のオリジナルからアーカイブ。2011 年 3 月 31 日取得。 [
キースペース] 複数の列ファミリが含まれます。
- ^ Arin Sarkissian (2010-08-23). 「WTF is a SuperColumn? An Intro to the Cassandra Data Model」 Arin Sarkissian のブログ。2010-12-31 にオリジナルからアーカイブ。2011-03-25に取得。キー
スペースは、データの最も外側のグループです。すべての ColumnFamily はキースペース内にあります。キースペースは、おそらくアプリケーションにちなんで名付けられます。
- ^ Guy Harrison (2010-08-23). 「Cassandra と Oracle で遊ぶ」。NoSQL の用語。Guy Harrison の Web bits 。2011-03-25に取得。Cassandra
の場合:
各 NoSQL データベースがそれぞれ異なる用語を使用し、またそれらすべてが RDBMS とは異なる用語を使用しているため、混乱が生じる可能性があります。- キースペースはスキーマのようなもの
- ColumnFamilyは大体テーブルのようなものだ
- ^ Fagin; et al. (2009). 「拡張可能なハッシュ - 動的ファイルへの高速アクセス方法」ACM Transactions on Database Systems 41 ( 3): 315–344.
- ^ Fu; et al. "マルチホップリレーネットワークにおける鍵管理プロトコルのセキュリティ問題と解決策". IEICE Transactions on Communications . 94 (5): 1295–1302.
外部リンク
- Cassandra – はじめに (Java)
