카우치베이스 서버

NoSQL 문서 데이터베이스

카우치베이스 서버는 유연한 JSON 모델로 고정 데이터베이스 스키마의 제약 없이 쉽게 어플리케이션을 수정할 수 있으며, submilisecond (1/1000 ms 이하)의 초고속 데이터 입출력 처리의 높은 성능을 보장합니다. 또한, 간편한 스케일 아웃(scale-out)으로 다운타임 없이 시스템 구성 변경 및 확장을 지원합니다.

간단한 확장성

카우치베이스 서버는 데이터베이스 계층의 확장이 용이합니다. 여러분의 시스템이 하나의 클러스터 내에 있든 여러 개의 데이터센터에 나누어져 있든 단지 버튼 클릭 한 번으로 시스템 다운 또는 어플리케이션 변경 없이 서비스 작업 부하를 균일하게 유지하면서 25대 혹은 100대 이상의 서버 클러스터로 손쉽게 확장할 수 있습니다.

무중단 서비스

카우치베이스 서버를 이용해서 개발한 어플리케이션은 24x365 무중단 서비스가 가능합니다. 만약 데이터베이스, 시스템 소프트웨어 또는 하드웨어 업그레이드 작업이 진행 중 일 때에도, 심지어 재난 복구 중일지라도, 어플리케이션 다운타임 없이 지속적인 서비스 제공이 가능합니다.

일관성 있는 고성능 보장

카우치베이스 서버의 일관성 있는 응답시간(1000분의 1초 미만)은 어플리케이션 사용자에게 놀라운 경험을 제공합니다. 데이터와 업무 부하를 모든 서버에서 골고루 나누어서 처리하여 높은 업무 처리량을 제공하기 때문에, 적은 수의 서버로 보다 많은 사용자에게 서비스 할 수 있습니다.

유연한 데이터 모델

이제 어플리케이션 변경 시 더 이상 데이터베이스에 대해 고민하지 않아도 됩니다. 카우치베이스 서버는 고정 스키마가 없기 때문에 모든 레코드는 다양한 구조를 가질 수 있고, 데이터베이스 내 다른 문서의 수정 없이 언제든지 구조 변경 가능합니다.

모든 기능 자세히 보기

Couchbase Server 의 새로운 기능

>유연한 JSON 문서

JSON 문서 모델은 개발 시 데이터 모델 변경에 따르는 어려움을 줄여줍니다. 경직된 스키마와 위험성 있는 데이터 이관 대신 문서 기반 데이터베이스는 요구사항 변경에 따른 데이터 모델 수정 및 확장을 용이하게 해 줍니다.

  자세히

인덱스와 쿼리

편리한 데이터 조회를 위한 강력한 보조 색인 (index) 기능을 사용해 보세요. 카우치베이스는 인덱스를 유지관리하고, 데이터를 분산하여 처리하며 클러스터 기반의 데이터 조회가 가능합니다.

자세히

데이터센터 상호 복제 (XDCR)

XDCR(Cross Datacenter Replication, 데이터센터 상호 복제)는 전세계 사용자에게 놀라운 고성능 서비스를 직접 경험할 수 있도록 합니다.

자세히

증분 맵리듀스

증분 맵리듀스(MapReduce)는 대용량 데이터셋의 실시간 분석을 위한 강력한 집합 및 요약을 제공합니다.

자세히

카우치베이스 SDK

커뮤니티

기본적인 사용법은 “자바를 이용한 카우치베이스 서버 개발 Couchbase Server with Java 웨비나를 통해 배워보세요. 좀더 관심이 있다면 community Clojure driver 또는 a Couchbase Labs JRuby driver 를 체크아웃 해 보세요. 참고하세요!

System.out.println("Hello Couchbase!");

// Connect
CouchbaseClient client = new CouchbaseClient(
    Arrays.asList(URI.create("http://<your-ip>:8091/pools")),
    "beer-sample",""
)

// Set and print a nice greeting
client.set("greeting", 0, "Hello Couchbase!");
System.out.println(client.get("greeting"));

// Run a view query (first 10 beers/breweries)
View view = client.getView("beer", "brewery_beers");
Query query = new Query();
query.setIncludeDocs(true).setLimit(10);
ViewResponse response = client.query(view, query);
for(ViewRow row : response) {
  System.out.printf("Id:%s Name:%s Doc:%s\n",
    row.getId(), row.getKey(), row.getDocument());
}

// Disconnect
client.shutdown(3, TimeUnit.SECONDS);

커뮤니티

기본적인 사용법은 Couchbase Server with Rails 문서를 통해 배워보세요.

만약 Heroku의 벌크 패키지를 사용하고자 한다면 아래 블로그 Hello World in Ruby 를 참고하세요.

puts "Hello Couchbase!"

new_beer = {"name" => "Atlantic Amber"}
client.add("beer_Atlantic_Amber", new_beer)

view = client.design_docs["beers"].by_name(:limit => 1)
view.each(:key => "Atlantic Amber") do |beer|
  puts beer["name"]
end

커뮤니티

비디오 웹 캐스트 .NET is on YouTube 를 참고하세요..

Console.WriteLine("Hello Couchbase!");

var newBeer = new Beer { Name = "Atlantic Amber" };
client.StoreJson(StoreMode.Add, "beer_Atlantic_Amber", newBeer);
var view = client.GetView<Beer>("beers", "by_name")
foreach(var beer in view.Key("Atlantic Amber").Limit(1))
{
  Console.WriteLine(beer.Name);
}

커뮤니티

Evented C에 관심이 있다면 , maybe you can help with our node.js 를 참고하세요.

printf("Hello Couchbase!");

lcb_http_request_t req;
lcb_http_cmd_t *cmd = calloc(1, sizeof(lcb_http_cmd_t));
lcb_error_t err;

cmd->version = 0;
cmd->v.v0.path = "_design/beers/_view/by_name?key=Atlantic%20Amber";
cmd->v.v0.npath = strlen(item->v.v0.path);
cmd->v.v0.method = LCB_HTTP_METHOD_GET;
cmd->v.v0.content_type = "application/json";
err = lcb_make_http_request(instance, NULL,
                                                                                                                LCB_HTTP_TYPE_VIEW, &cmd, &req);
if (err == LCB_SUCCESS) {
        /* ... */
}

커뮤니티

카우치베이스 서버를 세션 저장소로 사용하고자 한다면 Couchbase Server as a session store블로그를 참고하세요.

echo "Hello Couchbase!"

$cb = new Couchbase("127.0.0.1:8091", "default", "", "default");
$cb->set("a", 1);
$result = $cb->view("design_doc","my_view");
foreach($result["rows"] as $row) {
  echo $row->key;
}
 

커뮤니티

Do you have suggestions about what we should link to here?만약 추천할 링크가 있으면 제안해 주세요.

print "Hello Couchbase!"

client = Couchbase("localhost:8091", "default", "")
bucket = client["default"]
beer = { "name" : "Atlantic Amber" }
bucket.set("beer_Atlantic_Amber", 0, 0, json.dumps(beer))  
view = bucket.view("_design/beer/_view/by_name", \
                   key="Atlantic Amber", limit=1)
for row in view:
    id = row["id"].__str__()
    beer = json.loads(bucket.get(id))
    print beer["name"]