Keyspace(분산 데이터스토어

Keyspace (distributed data store)
열 패밀리가 여러 개인 키 공간 예제입니다.

NoSQL 데이터 저장소의 공간(또는 키 공간)은 설계의 [1][2]모든 열 패밀리를 유지하는 객체입니다.데이터 [3]저장소에서 가장 바깥쪽에 있는 데이터 그룹입니다.관계형 데이터베이스 관리 [4]시스템의 스키마 개념과 유사합니다.일반적으로 응용 프로그램당 하나의 키 공간이 있습니다.

구조.

키 공간에는 열 패밀리 또는 수퍼 열포함될 수 있습니다.각 상위 열에는 하나 이상의 열 패밀리가 포함되며 각 열 패밀리는 하나 이상의 열을 포함합니다.키 공간은 분산 데이터스토어에서 가장 높은 추상화입니다.이는 동적 데이터 [5]검색에서 구조 휴리스틱스를 보존하는 데 기본적입니다.다중 릴레이 프로토콜 알고리즘은 단순한 프레임워크 [6]내에 통합됩니다.

관계형 데이터베이스 시스템과의 비교

키 공간은 스키마가 데이터베이스에 있는 것과 유사한 중요성을 가집니다.그러나 스키마와는 대조적으로, 관계형 데이터 모델에서 널리 사용되는 실체-관계 모델에서 알려진 것처럼 구체적인 구조를 규정하지 않는다.예를 들어, 키 공간의 내용은 각각 열 수가 다르거나 다른 열 패밀리가 될 수 있습니다.따라서 관계형 데이터베이스의 개념과 어떻게든 관련된 열 패밀리는 고정된 구조를 규정하지 않습니다.스키마와 동일한 유일한 포인트는 스키마에 RDB 테이블인 "개체"도 다수 포함되어 있다는 점입니다.MS 시스템 및 여기 열 패밀리 또는 슈퍼 열.

따라서 분산형 데이터 저장소에서는 데이터 저장소 업데이트에서 업데이트로 변경될 수 있는 행을 처리해야 하는 부담이 고스란히 프로그래머의 몫입니다.

예를 들어 키 공간에 여러 개의 열 패밀리를 표시합니다.CompareWith키워드는 컬럼 비교 방법을 정의합니다.이 예에서는 UTF-8 표준이 선택되어 있습니다.다음과 같은 다른 비교 방법이 있습니다.AsciiType,BytesType,LongType,TimeUUIDType.

<키스페이스명="DeliciousClone"> <KeysCachedFraction> 0.01 </KeysCachedFraction> <컬럼패밀리 비교>="UTF8Type" Name=" 포함사용자"/> <칼럼 패밀리 비교>="UTF8Type" Name=" 포함북마크"/> <컬럼패밀리 비교>="UTF8Type" Name=" 포함태그"/> <컬럼 패밀리 비교>="UTF8Type" Name=" 포함UserTags"/> <컬럼패밀리 비교>="UTF8Type" CompareSubcolumns 포함With="시간UUIDType" ColumnType="Super" Name="사용자 북마크"/> </키스페이스>

또 다른 예는 단순화된 Twitter 클론 데이터 모델을 나타내고 있습니다.

<키스페이스명="TwitterClone"> <KeysCachedFraction> 0.01 </KeysCachedFraction> <컬럼패밀리 비교>="UTF8Type" Name=" 포함사용자" /> <칼럼 패밀리 비교>="UTF8Type" Name=" 포함User Audits" /> <칼럼 패밀리 비교>="UTF8Type" CompareSubcolumns 포함With="시간UUIDType" ColumnType="Super" Name="사용자 관계" /> <칼럼 패밀리 비교>="UTF8Type" Name=" 포함사용자명" /> <Column Family 비교>With="UTF8Type" Name="Statuss" /> <컬럼 패밀리 비교>With="UTF8Type" Name="StatusAudits" /> <컬럼 패밀리 비교>="UTF8Type" CompareSubcolumns 포함With="시간UUIDType" ColumnType="Super" Name="StatusRelations" /> </Keyspace>

레퍼런스

  1. ^ Ronald Mathies (2010-03-18). "Installing and using Apache Cassandra With Java Part 2 (Data model): Keyspaces". http://www.sodeso.nl/: Sodeso - Software Development Solutions. Retrieved 2011-03-28. Keyspaces are quite simple again, from an RDBMS point of view you can compare this to your schema, normally you have one per application. A keyspace contains the ColumnFamilies. Note, however, there is no relationship between the ColumnFamilies. They are just separate containers. {{cite web}}:외부 링크 location=(도움말)
  2. ^ "Overview: Terminology/Abbreviations: Keyspace". http://wiki.apache.org/cassandra/API: Cassandra Wiki. Retrieved 2011-03-31. [A Keyspace] Contains multiple Column Families. {{cite web}}:외부 링크 location=(도움말)
  3. ^ Arin Sarkissian (2010-08-23). "WTF is a SuperColumn? An Intro to the Cassandra Data Model". http://arin.me/blog/: Arin Sarkissian's blog. Archived from the original on 2010-12-31. Retrieved 2011-03-25. A Keyspace is the outer most grouping of your data. All your ColumnFamily‘s go inside a Keyspace. Your Keyspace will probably named after your application. {{cite web}}:외부 링크 location=(도움말)
  4. ^ Guy Harrison (2010-08-23). "Playing with Cassandra and Oracle". Terminology in NoSQL. http://guyharrison.squarespace.com/: Guy Harrison's Web bits. Retrieved 2011-03-25. In Cassandra:
    • A Keyspace is like a schema
    • ColumnFamily is roughly like a table
    It can be confusing, with each NoSQL database using terms differently from each other, and all of them using terms differently from RDBMS.
    {{cite web}}:외부 링크 location=(도움말)
  5. ^ Fagin; et al. (2009). "Extendible hashing—a fast access method for dynamic files". ACM Transactions on Database Systems. 41 (3): 315–344.
  6. ^ Fu; et al. "Security Issues and Solutions of the Key Management Protocols in Multi-Hop Relay Network". IEICE Transactions on Communications. 94 (5): 1295–1302.

외부 링크