Couchbase 4.6의 데이터 구조는 시간을 절약하는 최신 SDK 기능입니다. 이를 통해 클라이언트 애플리케이션에서 배열 기반 JSON 데이터를 언어별 구조로 쉽게 매핑할 수 있습니다.
Couchbase의 기본 컬렉션 지원을 활용하면 시간과 번거로움을 줄일 수 있습니다:
- JSON 배열을 언어별 구조로 쉽게 매핑하기
- 하위 문서 호출을 사용하여 자동으로 문서를 효율적으로 관리합니다.
- 필요한 데이터 구조 유형을 선택하고 코딩을 시작합니다.
데이터 구조에 대한 지원은 모든 언어에서 사용할 수 있습니다: Java, .NET, Node.js, 이동, PHP, Python및 C. 컬렉션 프레임워크를 통한 강력한 Java 및 .NET 구현을 비롯하여 다른 모든 언어에는 다양한 기능 옵션이 있습니다.
이 게시물에서는 데이터 구조체를 사용하는 방법을 구체적인 예와 함께 설명합니다. Java ( 지도 유형) 및 Python (사용 목록 및 대기열 유형). 동영상 및 참조 링크는 아래에 나와 있습니다.
카우치베이스 데이터 구조 유형
카우치베이스 클라이언트 라이브러리에 네 가지 특정 유형의 구조가 추가되었습니다: 지도, 목록, 설정및 대기열. 이들은 모두 데이터베이스의 JSON 배열의 변형이지만 클라이언트 애플리케이션에는 기본 유형으로 표시됩니다.
- 목록 - 값을 순서대로 저장하는 배열
- 지도 - 사전이라고도 함 - 키별로 값을 저장합니다.
- 설정 - 고유한 값 조합만 유지하는 목록의 변형입니다.
- 대기열 - 목록의 변형으로, 선입 선출(FIFO) 방식
Java 컬렉션 예제 - 맵 및 목록
그리고 Java 그리고 .NET API에는 가장 긴밀한 기본 컬렉션 인터페이스가 있습니다. 이 짧은 예제에서는 사용자 프로필 문서를 지도 를 클릭하고 이메일 연락처 정보를 추가하거나 업데이트합니다.
지도가 업데이트되면 백그라운드의 문서도 업데이트되므로 수동으로 저장하거나 다시 삽입할 필요가 없습니다!
더 많은 아름다운 사진 보기 카우치베이스 .NET 데이터 구조 블로그 게시물에 있는 예시를 참고하세요.
1 2 |
지도<문자열, 문자열> 사용자 정보 = new 카우치베이스맵<문자열>("user:mnunberg", 버킷); 사용자 정보.put("이메일", "mark.nunberg@couchbase.com"); |
마찬가지로 목록 를 통해 액세스하고 쉽게 추가할 수 있습니다.
1 2 3 |
목록<문자열> ll = new 카우치베이스 배열 목록<문자열>("사용자:뮌버그_리스트", 버킷); ll.추가("msg1"); ll.추가("msg2"); |
- 다음을 사용하여 실제로 확인해 보세요. .NET 예제.
파이썬 데이터 구조 예제 - 큐
다음은 간단한 메시지입니다. 파이썬의 큐를 사용하여 타임스탬프, 발신자 및 일부 콘텐츠 사전을 포함합니다. 다음을 사용하여 대기열을 채웁니다. push 를 사용하여 새 메시지를 입력한 다음 팝 를 사용하여 대기열의 첫 번째 또는 다음 항목을 검색하는 동시에 대기열에서 제거할 수 있습니다.
이 모든 작업은 이러한 기능을 사용할 때 백그라운드에서 자동으로 수행됩니다. 변경된 내용을 저장하기 위해 서버를 추가로 호출할 필요가 없습니다. 대기열.
1 2 3 4 5 |
>>> cb.queue_push("메시지::타일러", {'타임스탬프': 1485389293, 'from':'user::mark', 'content':'타일러에게'}, create=True) >>> cb.queue_push("메시지::타일러", {'타임스탬프': 1486390293, 'from':'user::jody', 'content':'존에게...'}) >>> cb.queue_pop("메시지::타일러").값 {u'content': u'타일러에게', u'타임스탬프': 1485389293, u'from': u'user::mark'} |
Python 데이터 구조 예제 - 목록
다음 예제는 파이썬의 간단한 예제입니다. 목록 유형입니다. 각각의 경우 값으로 채워지는 동시에 새 문서도 만들어집니다. 새 문서의 카우치베이스 Python 문서 에서 다른 유형의 예를 확인할 수 있습니다.
IoT 사용 사례에서는 특정 타임스탬프가 찍힌 활동과 관련 데이터 값을 기록하는 센서가 있을 수 있습니다. 여기서 센서에는 자체 문서가 있으며 센서가 감지되면 차량 ID와 타임스탬프가 기록됩니다.
1 2 3 |
>>> cb.list_append("garage1", ['vehicle::1A', '2017-01-24 08:02:00'], create=True) >>> cb.list_append("garage1", ['vehicle::2A', '2017-01-24 10:21:00']) >>> cb.list_append("garage1", ['vehicle::1A', '2017-01-25 17:16:00']) |
결과 문서는 각 항목이 두 개의 값을 포함하는 배열입니다.
1 2 3 |
[ [ "vehicle::1A", "2017-01-24 08:02:00" ], [ "vehicle::2A", "2017-01-24 10:21:00" ], [ "vehicle::1A", "2017-01-25 17:16:00" ] ] |
값을 Python 목록으로 검색하는 것도 쉽습니다. 문서를 가져오기만 하면 즉시 반복 작업에 사용할 수 있습니다.
1 2 3 4 5 6 |
>>> garage1 = cb.get('garage1') >>> 에 대한 rec in garage1.값: 인쇄 rec [u'vehicle::1A', u'2017-01-24 08:02:00'] [u'vehicle::2A', u'2017-01-24 10:21:00'] [u'vehicle::1A', u'2017-01-25 17:16:00'] |
다음 단계
보시다시피 구문은 쉽고 예측 가능합니다. 이러한 구조의 관리를 Couchbase Server로 오프로드하면 동적 문서를 관리하는 데 필요한 많은 커뮤니케이션이 간소화됩니다. 곧바로 Couchbase 4.6을 애플리케이션의 데이터 구조 서버로 사용할 수 있습니다.
- Couchbase를 처음 사용하시나요? 저희의 시작하기 가이드 로 바로 이동하거나 개발자 포털.
- 시청하기 데이터 구조에 대한 Couchbase Connect 세션 등이 있습니다.
- 더 많은 .NET 데이터 구조 예제 보기 카우치베이스 목록, 대기열 및 사전 사용.
[...] 데이터 구조에서 코드 샘플 및 자세한 내용을 참조하세요: 카우치베이스 4.6의 새로운 네이티브 컬렉션. [...]
[...] 향후 블로그 게시물에서 다룰 다른 옵션은 아직 많이 남아 있는데, 예를 들어 서버가 .NET 또는 Java에서 컬렉션 프레임워크를 관리하는 모든 작업을 수행하도록 하는 것입니다. [...]