분류

카우치베이스 키 설계 및 데이터 모델링

지난번에는 빌딩 수동 보조 인덱스 즉, 사실상 문서 저장소보다는 키-값 저장소 속성을 위해 Couchbase를 더 많이 사용하는 것입니다.

키-값 스레드를 계속 진행하면 비관계형 데이터베이스 모델링에서 가장 중요한 질문 중 하나인 키의 이름을 어떻게 지정할 것인가에 대한 답을 얻을 수 있습니다. 답: 키 패턴으로 시작합니다. 데이터 모델링 모범 사례를 통해 Couchbase를 활용하는 방법을 자세히 살펴보세요.

Couchbase에서 키를 빌드하고 사용하는 세 가지 방법

크게 세 가지 방법으로 NoSQL 키-값 저장소에서 키 패턴을 만들 수 있습니다:

  • 결정론적: 예: 누군가가 시스템에 로그인하는 데 사용하는 이메일 주소
  • 컴퓨터 생성: 예: UUID
  • 결정론적 부분이 있는 UUID 등 둘의 일부 조합을 사용할 수 있습니다.

어떤 키 패턴을 선택할지는 데이터 액세스 계획에 따라 크게 달라집니다.

결정론적

사용자 프로필을 저장한다고 가정해 보겠습니다. 쿠키를 사용하지 않는다고 가정하면 사용자가 로그인한 후에 사용자에 대해 무엇을 알 수 있을까요?

한 가지는 로그인 이름입니다.

따라서 사용자 프로필을 쉽게 검색하려면 해당 사용자의 로그인 이름을 입력하면 됩니다. 그 사람에 대해 알아야 할 다른 모든 정보는 어떤 식으로든 사용자 프로필에서 파생될 수 있습니다.

사용자가 로그인 이름을 변경하려면 새 키로 새 사용자 프로필을 만들거나 조회 문서를 만들어야 하는 문제가 곧바로 발생했습니다. 사용자가 로그인 이름을 절대 변경할 수 없다고 주장할 수도 있지만, 사용자에게 불필요한 고통을 주는 것은 불합리합니다.

프로필 데이터를 새 키로 새 문서에 복사하는 것이 그리 어렵지 않다고 판단할 수도 있습니다. 또는 사용자 데이터와 관련이 없는 다른 것을 키로 사용할 수도 있습니다.

컴퓨터 생성

결정적 키의 가장 큰 단점은 일반적으로 저장하는 데이터의 요소가 된다는 점입니다.

UUID와 같은 것을 사용하면 사용자는 새로운 키로 프로필 문서를 다시 만들 필요 없이 이메일 주소나 로그인 이름으로 사용하는 다른 모든 것을 업데이트할 수 있습니다.

카운터를 사용하여 Couchbase에 키 디자인을 의뢰할 수도 있습니다.

작동 방식은 다음과 같습니다:

  1. 누군가가 새 계정 양식을 작성하고 '제출'을 클릭합니다.
  2. 카운터 문서를 증가시키면 다음 숫자를 반환합니다(예: 1001).
  3. 1001로 키가 지정된 새 사용자 프로필 문서를 만듭니다.
  4. 그런 다음 다음을 만듭니다. 문서 조회 를 사용하여 로그인 시점에 보유한 데이터를 간단히 조회할 수 있습니다.

또한 이 패턴을 사용하여 키 이름을 지정하면 애플리케이션의 수명 기간 동안 생성한 사용자 프로필 수를 알려주는 카운터와 같은 몇 가지 부수적인 이점도 얻을 수 있습니다.

복합 키

이 두 가지 방법을 결합하면 Couchbase와 키 이름 사용 방법을 통해 정말 흥미로운 작업을 시작할 수 있습니다.

앞서 살펴본 하나의 큰 문서에 데이터를 포함할 때와 참조하는 것이 가장 좋은 시기 를 다른 문서에 연결할 수 있습니다. 별도의 문서에 보관된 데이터를 참조하기로 선택한 경우, 문서에 포함된 내용을 알려주는 구성 요소에서 예측 가능한 키 이름을 만들 수 있습니다. 복합 키를 사용하면 자연스럽게 발생 패턴.

사용자 프로필을 다시 살펴봅시다. 기본 문서는 키 아래에 저장됩니다. 1001. 전자 상거래 사이트에서 작업하고 있으므로 고객이 주문한 모든 주문도 알고 싶습니다. 어떻게 해야 하나요? 간단합니다. 주문 목록을 키 아래에 저장합니다. 1001::주문.

마찬가지로, 시스템에서는 고객의 사이트 총 지출을 기반으로 고객에게 어떤 종류의 마케팅 이메일을 보낼지 판단할 수 있습니다. 시스템에서 이를 매번 새로 계산하는 대신, 한 번 계산한 다음 나중에 검색할 수 있도록 다음 키 아래에 저장하는 NoSQL 방식으로 수행합니다. 1001::주문::값.

다음 시간

다음 시간에는 카우치베이스 뷰에 사용하기 위해 데이터를 가장 효과적으로 모델링하는 방법을 살펴보겠습니다.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 Matthew Revell, 수석 개발자 옹호자, EMEA 지역, Couchbase

매튜 레벨은 EMEA 카우치베이스의 수석 개발자 옹호자입니다. 그는 제품 개발자들의 마음속에 Couchbase를 각인시키기 위한 글로벌 전략을 개발했습니다.

댓글 하나

  1. 안녕하세요, 매튜,

    카우치베이스 라이트 시나리오에서 카운터 키를 생성하는 데 어떤 접근 방식을 권장하나요? 카우치베이스 라이트, 동기화 게이트웨이, 카우치베이스 서버를 조합하여 사용할 계획입니다.

  2. [...] 키 이름에 시맨틱 접두사와 접미사를 사용하면 문서 네임스페이스를 쉽게 지정할 수 있으며, 특히 키 값에 Couchbase를 사용할 때 유용합니다. [...]

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.