Cassandra를 사용한 Column Family 소개



이 블로그는 Cassandra를 사용한 column family의 중요성을 강조합니다.

컬럼 패밀리

컬럼 패밀리는 RDBMS 또는 관계형 데이터베이스 관리 시스템의 테이블과 유사하며 유사한 데이터를 연관시키는 논리적 분할입니다. 기본적으로 유사한 데이터에 유사한 주제의 데이터를 저장하는 경향이 있습니다.

def __init__

예를 들어 주문 데이터는 단일 열 제품군에 저장되므로 주문 ID를 행 키로 사용할 수있을뿐만 아니라 해당 주문의 일부로 가져온 제품의 종류와 같은 다양한 열을 특정 주문 제품군에 저장할 수 있습니다. . 특정 예를 제공하기 위해 사용자 열 패밀리는 사용자 ID를 키로 구성합니다. 따라서 ID를 자유롭게 선택할 수 있으며 열은‘name = Kunal’이 될 수 있습니다. 열 값은 Kunal 및 Bangalore입니다. 하나의 컬럼 패밀리에 크리켓 선수 통계를 저장할 수있는 Cricketer 컬럼 패밀리라는 두 번째 컬럼 패밀리가 있습니다. 예를 들어, 한 열에는 Sachin Tendulkar가 있고 다른 열에는 여러 세기가 있습니다. 따라서 원하는 수의 열이있을 수 있습니다.





컬럼 유형

Column Family는 RDBMS 세계의 테이블과 유사한 테이블에 불과합니다. 특정 유형이 있습니다.

정적 컬럼 제품군 – Static Column family는 이름과 데이터 유형이 정의되는 곳입니다. 따라서 column family를 만들 때 열 이름과 데이터 유형을 지정하는 옵션을 사용할 수 있습니다. 열이 정적으로 유지되고 사용 가능한 열 수를 알 수 있기 때문에이를 정적이라고합니다.



동적 컬럼 패밀리 – 반면에 동적 열 패밀리는 열 이름을 미리 정의하지 않으며 임의의 응용 프로그램 및 열 이름을 사용하여 데이터를 저장하는 Cassandra의 기능을 사용할 수 있습니다. 구조화되지 않은 데이터에서는 대부분의 경우 동적 열 패밀리가 나중에 추가 될 수있는 새 필드를 처리하는 데 도움이되기 때문에 동적으로 도움이됩니다.

정적 column family가 있고 데이터를로드하는 동안 코드에 동적 column family를 추가하려는 경우 언제든지 정적 column family에 추가 할 수 있습니다. Cassandra는 열 이름을 자유롭게 선택할 수 있습니다.

RDBMS와의 차이점

Cassandra 컬럼 패밀리는 스키마가 없으며 확장 성이 뛰어납니다. Cassandra 열 패밀리에는 Name 및 Comparator의 두 가지 속성이 있습니다. 따라서 Cassandra 열 패밀리가있는 경우 이름을 지정하는 것은 필수가되고 Comparator는 기본적으로 열 이름의 데이터 유형입니다. 비교기를 지정하지 않으면 기본 비교기로 간주됩니다.



Cassandra에는 수퍼 컬럼 패밀리 컬럼도 있습니다. 내부적으로 수퍼 컬럼을 사용합니다. 이는 논리적 그룹화이며 또 다른 수준의 열 그룹화입니다. 따라서 user column family에는 사용자의 개인 정보와 제품 정보를 포함 할 수있는 두 개의 슈퍼 열이있을 수 있습니다.

기둥

열은 Cassandra에서 가장 작은 데이터 증분입니다. 세 가지 구성 요소가 있습니다.

  • 이름
  • 타임 스탬프 – 충돌 해결에 사용되며 타임 스탬프를 편집 할 수 없습니다. 이 데이터 또는 열이 언제 업데이트되었는지 확인하는 내부 메커니즘입니다.
  • 만료되는 열 – 열이 만료 될 것임을 알기 위해 열에 만료 날짜를 지정할 수 있습니다.
  • 카운터 열 – 카운터 열은 열을 유지하기위한 것이므로 해당 카운터 열을 늘리거나 줄일 수 있습니다.

슈퍼 컬럼

Super Columns는 비즈니스 요구와 논리적 그룹화에 따라 모든 컬럼을 함께 그룹화합니다. 일반 열 패밀리 구조에 또 다른 수준의 내포를 추가합니다. 그들은 수퍼 컬럼 패밀리 구조로 구성됩니다.

수퍼 컬럼의 기본 사례는 구체화 된 뷰 데이터 검색을 허용하는 단일 행으로 다른 컬럼 패밀리의 여러 행을 비정규 화하는 것입니다.

사용 사례

수퍼 컬럼의 한계

한 가지 제한 사항은 단일 하위 열 패밀리를 읽으려면 수퍼 컬럼 패밀리의 모든 하위 컬럼을 역 직렬화해야한다는 것입니다. 또 다른 제한은 수퍼 열의 하위 열에 보조 인덱스를 만들 수 없다는 것입니다.

열 데이터 유형

열 데이터 유형

위 이미지에는 다양한 데이터 유형이 있습니다. 열 값의 데이터 유형을 유효성 검사기라고합니다. 그리고 comparator는 열의 데이터 유형입니다. 이름과 주소가 열 이름이됩니다. 따라서 열 이름의 경우 날짜를 가질 수 있습니다. 날짜를 열 이름으로 사용하여 시계열 데이터를 가질 수도 있습니다.

넓은 행과 여러 행이있을 수 있습니다. 수백만 개의 열과 행을 사용할 수 있습니다.

스키니 행에는 제한된 행만 갖는 옵션이있는 적은 수의 열이 있습니다.

초보자를위한 my SQL 튜토리얼

복합 키

하나 이상의 기본 키 필드로 구성됩니다. 도시의 이름이 행 키로 설정되어 있다고 가정하고 두 개의 다른 주에 이름이 지정된 도시가있을 수 있으므로 어느 도시와 어떤 주를 언급해야합니다. 이것은 단순히 키를 명시해야 함을 의미합니다. 한 유형의 단순 열 키를 갖는 대신 여러 유형의 구성 요소라고도하는 여러 값을 집계하여 하나의 고유 한 열 키를 형성 할 수 있습니다.

질문이 있으십니까? 댓글 섹션에 언급하시면 다시 연락 드리겠습니다.

관련 게시물:

Cassandra의 Snitches 소개