지난번에는 빌딩 수동 보조 인덱스 즉, 사실상 문서 저장소보다는 키-값 저장소 속성을 위해 Couchbase를 더 많이 사용하는 것입니다.
키-값 스레드를 계속 진행하면 비관계형 데이터베이스 모델링에서 가장 중요한 질문 중 하나인 키의 이름을 어떻게 지정할 것인가에 대한 답을 얻을 수 있습니다. 답: 키 패턴으로 시작합니다. 데이터 모델링 모범 사례를 통해 Couchbase를 활용하는 방법을 자세히 살펴보세요.
Couchbase에서 키를 빌드하고 사용하는 세 가지 방법
크게 세 가지 방법으로 NoSQL 키-값 저장소에서 키 패턴을 만들 수 있습니다:
- 결정론적: 예: 누군가가 시스템에 로그인하는 데 사용하는 이메일 주소
- 컴퓨터 생성: 예: UUID
- 결정론적 부분이 있는 UUID 등 둘의 일부 조합을 사용할 수 있습니다.
어떤 키 패턴을 선택할지는 데이터 액세스 계획에 따라 크게 달라집니다.
결정론적
사용자 프로필을 저장한다고 가정해 보겠습니다. 쿠키를 사용하지 않는다고 가정하면 사용자가 로그인한 후에 사용자에 대해 무엇을 알 수 있을까요?
한 가지는 로그인 이름입니다.
따라서 사용자 프로필을 쉽게 검색하려면 해당 사용자의 로그인 이름을 입력하면 됩니다. 그 사람에 대해 알아야 할 다른 모든 정보는 어떤 식으로든 사용자 프로필에서 파생될 수 있습니다.
사용자가 로그인 이름을 변경하려면 새 키로 새 사용자 프로필을 만들거나 조회 문서를 만들어야 하는 문제가 곧바로 발생했습니다. 사용자가 로그인 이름을 절대 변경할 수 없다고 주장할 수도 있지만, 사용자에게 불필요한 고통을 주는 것은 불합리합니다.
프로필 데이터를 새 키로 새 문서에 복사하는 것이 그리 어렵지 않다고 판단할 수도 있습니다. 또는 사용자 데이터와 관련이 없는 다른 것을 키로 사용할 수도 있습니다.
컴퓨터 생성
결정적 키의 가장 큰 단점은 일반적으로 저장하는 데이터의 요소가 된다는 점입니다.
UUID와 같은 것을 사용하면 사용자는 새로운 키로 프로필 문서를 다시 만들 필요 없이 이메일 주소나 로그인 이름으로 사용하는 다른 모든 것을 업데이트할 수 있습니다.
카운터를 사용하여 Couchbase에 키 디자인을 의뢰할 수도 있습니다.
작동 방식은 다음과 같습니다:
- 누군가가 새 계정 양식을 작성하고 '제출'을 클릭합니다.
- 카운터 문서를 증가시키면 다음 숫자를 반환합니다(예: 1001).
- 1001로 키가 지정된 새 사용자 프로필 문서를 만듭니다.
- 그런 다음 다음을 만듭니다. 문서 조회 를 사용하여 로그인 시점에 보유한 데이터를 간단히 조회할 수 있습니다.
또한 이 패턴을 사용하여 키 이름을 지정하면 애플리케이션의 수명 기간 동안 생성한 사용자 프로필 수를 알려주는 카운터와 같은 몇 가지 부수적인 이점도 얻을 수 있습니다.
복합 키
이 두 가지 방법을 결합하면 Couchbase와 키 이름 사용 방법을 통해 정말 흥미로운 작업을 시작할 수 있습니다.
앞서 살펴본 하나의 큰 문서에 데이터를 포함할 때와 참조하는 것이 가장 좋은 시기 를 다른 문서에 연결할 수 있습니다. 별도의 문서에 보관된 데이터를 참조하기로 선택한 경우, 문서에 포함된 내용을 알려주는 구성 요소에서 예측 가능한 키 이름을 만들 수 있습니다. 복합 키를 사용하면 자연스럽게 발생 패턴.
사용자 프로필을 다시 살펴봅시다. 기본 문서는 키 아래에 저장됩니다. 1001. 전자 상거래 사이트에서 작업하고 있으므로 고객이 주문한 모든 주문도 알고 싶습니다. 어떻게 해야 하나요? 간단합니다. 주문 목록을 키 아래에 저장합니다. 1001::주문.
마찬가지로, 시스템에서는 고객의 사이트 총 지출을 기반으로 고객에게 어떤 종류의 마케팅 이메일을 보낼지 판단할 수 있습니다. 시스템에서 이를 매번 새로 계산하는 대신, 한 번 계산한 다음 나중에 검색할 수 있도록 다음 키 아래에 저장하는 NoSQL 방식으로 수행합니다. 1001::주문::값.
다음 시간
다음 시간에는 카우치베이스 뷰에 사용하기 위해 데이터를 가장 효과적으로 모델링하는 방법을 살펴보겠습니다.
안녕하세요, 매튜,
카우치베이스 라이트 시나리오에서 카운터 키를 생성하는 데 어떤 접근 방식을 권장하나요? 카우치베이스 라이트, 동기화 게이트웨이, 카우치베이스 서버를 조합하여 사용할 계획입니다.
[...] 키 이름에 시맨틱 접두사와 접미사를 사용하면 문서 네임스페이스를 쉽게 지정할 수 있으며, 특히 키 값에 Couchbase를 사용할 때 유용합니다. [...]