칼럼 패밀리의 요점은 무엇입니까?


9

RocksDB 와 같은 NoSQL 데이터베이스 시스템 은 열 패밀리 라는 기능을 제공하는 것으로 나타났습니다 . 나는 그 개념이 무엇을 의미하는지 이해한다고 믿지만, 그것들을 사용하면 실제 (실제적인) 이점은 무엇입니까? 나는 그들이 최소한 경우에 따라 조회 성능을 향상시킬 수 있다고 생각하거나 키-값 전체의 공간 지역성을 최소한으로 생각할 수 있습니까? 그러나 내가 이해하는 한 데이터베이스 액세스의 실제 의미에 영향을 미치지 않는 것 같습니다. 이 올바른지? 내가 놓친 것이 있습니까?

답변:


3

방금 RocksDB FAQ 에서 흥미로운 정보를 찾았습니다 . (RocksDB는 KV 저장소입니다.)

다음은 관련 추출물입니다.

Q : 컬럼 패밀리는 무엇에 사용됩니까?

A : 열 패밀리를 사용하는 가장 일반적인 이유는 다음과 같습니다. (1) 데이터의 다른 부분에 다른 압축 설정, 비교기, 압축 유형, 병합 연산자 또는 압축 필터를 사용합니다. (2) 열 패밀리를 삭제하여 데이터를 삭제합니다. (3) 메타 데이터를 저장하는 한 열군과 데이터를 저장하는 다른 열군.

Q : 여러 열 제품군과 여러 rockdb 데이터베이스에 데이터를 저장하는 것의 차이점은 무엇입니까?

A : 주요 차이점은 백업, 원자 쓰기 및 쓰기 성능입니다. 다중 데이터베이스 사용의 장점 : 데이터베이스는 백업 또는 검사 점 단위입니다. 열 패밀리가 아닌 다른 호스트에 데이터베이스를 복사하는 것이 더 쉽습니다. 여러 열 제품군 사용의 장점 : (1) 쓰기 배치는 하나의 데이터베이스에서 여러 열 제품군에 걸쳐 원자 적입니다. 여러 RocksDB 데이터베이스를 사용하여이 작업을 수행 할 수 없습니다. (2) WAL에 동기화 쓰기를 실행하면 너무 많은 데이터베이스가 성능을 저하시킬 수 있습니다.

Q : 키 공간이 다릅니다. 접두사로 구분하거나 다른 열 패밀리를 사용해야합니까?

A : 각 키 공간이 합리적으로 큰 경우 서로 다른 열 패밀리에 배치하는 것이 좋습니다. 크기가 작을 경우 열 그룹을 너무 많이 유지 관리하는 데 어려움이 없도록 여러 키 공간을 하나의 열 그룹으로 묶는 것을 고려해야합니다.


2

나는 당신이 SQL과 병행을 찾고 있지 않다는 것을 알고 있지만이 기사는 계획에 단순히 열 패밀리의 목적과 실제 이점을 설명합니다.

에서 는 SQL 관점에서 카산드라 데이터 모델을 이해 RubyScale에 :

그때의 컬럼 패밀리는 무엇입니까? 테이블 접두사 만? 컬럼 패밀리에는 동작을 변경하는 여러 가지 설정이 있습니다. 키에 대한 캐시 설정 (이 예제의 UUID), 전체 행에 대한 캐시 설정 (이 예제의 전체 테이블) 및 가장 중요한 정렬이 있습니다. Cassandra에는 OFFSET이 없으며 LIMIT 및 BETWEEN에 해당 합니다. 이 예에서 열 이름은 단지 문자열이지만 정수 또는 타임 스탬프 일 수도 있으며 항상 정렬 순서로 저장됩니다. 한 열 제품군에는 시간 조각별로 항목을 쿼리하는 타임 스탬프 정렬 데이터가 있고 다른 열 제품군에는 알파벳순으로 항목을 쿼리하는 주소록 데이터가있을 수 있습니다. 사실 이후에 할 수있는 유일한 정렬은 특정 조각을 뒤집는 것입니다.


흥미 롭군 당신이 말했듯이, 그것은 질문에 완전히 대답하지는 않지만 힌트를 제공합니다. 감사.
Noldorin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.