더북(TheBook)

키만으로 값 조회하기

주민등록번호나 학생증 번호 같은 식별자만 사용해서 누군가에 대한 모든 정보를 조회해야 한다면 어떻게 될지 상상해 보자. 친구나 가족 한두 명의 식별자를 기억하는 것은 문제가 되지 않겠지만, 다른 관련 정보를 찾는 것은 어려워질 것이다.

키-값 데이터베이스에서도 같은 일이 일어날 수 있다. 때때로 키 값을 모른 채 어떤 객체에 관한 정보를 조회할 때가 있는데, 가장 기본적인 기능만 보유한 키-값 데이터베이스에서는 불가능한 일이다. 하지만 다행히 키-값 데이터베이스 개발자들은 이러한 제약을 해결하기 위해 확장 기능을 추가했다.

한 가지 해결 방법은 텍스트 검색 기능을 사용하는 것이다. 예를 들어 Riak는 검색 메커니즘과 데이터값을 찾을 수 있는 API를 제공한다. 이 API는 와일드카드(%) 검색, 유사 검색, 범위 검색, 불 연산자 같은 일반적인 검색 기능을 지원한다. 검색 함수들은 검색 기준을 만족하는 값과 연관된 키를 반환한다. CPU를 제외한 컴퓨터 케이스와 머더보드가 포함된 모든 주문을 검색하려면 다음과 같은 문장을 사용하면 된다.

field: ('motherboard' AND 'computer case') AND NOT 'CPU'

이러한 유형의 검색은 쓸모가 많다. 예를 들어 지난 2주 동안 구매 고객 중 일리노이주에 사는 고객을 모두 조회하는 경우에도 쓸 수 있다.

Note Riak 검색에 대해 더 알고 싶다면 http://docs.basho.com/riak/latest/dev/using/search/를 방문해 보기 바란다.

키만 사용해 검색하는 또 다른 방법은 보조 인덱스secondary index를 사용하는 것이다. 보조 인덱스를 지원하는 키-값 데이터베이스를 사용한다면 값에 있는 속성을 인덱스로 만들 수 있다. 예를 들어 주소 값에 있는 도시와 주 정보를 인덱스로 만들면 도시나 주로 검색이 가능하다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.