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>
레퍼런스
- ^ 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=
- ^ "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=
- ^ 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=
- ^ 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:
It can be confusing, with each NoSQL database using terms differently from each other, and all of them using terms differently from RDBMS.- A Keyspace is like a schema
- ColumnFamily is roughly like a table
{{cite web}}
:외부 링크
(도움말)location=
- ^ Fagin; et al. (2009). "Extendible hashing—a fast access method for dynamic files". ACM Transactions on Database Systems. 41 (3): 315–344.
- ^ 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.