BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Couchbaseで言語と開発者に使いやすいデータ構造を使用

Couchbaseで言語と開発者に使いやすいデータ構造を使用

ブックマーク

原文(投稿日:2021/01/29)へのリンク

最近書かれたブログで、開発者がそれぞれの言語API/SDKを使用して、Couchbase 7.0でデータ構造(リスト、マップなど)をどのように使うかのアウトラインが説明されている。

ほとんどのNoSQLデータベースと同様に、Couchbaseは元々、キーと値のペア、次にキーとドキュメント(通常はJSONまたは同様の形式のドキュメント)のためのデータストアを意図されていた。今では、データ構造で使用できるようになり、開発者にとってより使いやすくなった。ほとんどのNoSQLデータベースは、元々単純なキー/値とキー/ドキュメントのペアのシナリオを対象としていたが、よりプログラミング言語で使いやすいデータ構造をサポートするように進化した。プログラマーは、それぞれのデータモデルからデータ構造に、またはその逆に変換する負担があった。そのため、ボイラープレートコードを多く書く必要があった。

ドキュメントとカウンターに加えて、Couchbase言語APIは次の基本的なデータ構造をサポートするようになった。

  • リスト
  • マップ
  • セット
  • キュー

内部的には、Couchbaseはデータ構造をJSONドキュメントとして編成し、クラスター全体に分散して、それぞれの言語APIを介して言語ネイティブのデータ構造として利用できるようになる。以下のいくつかの例では、Couchbase Python SDKでデータ構造を使用する方法を示している。

まず、Pythonを使用したqueue の例を見ていく。以下のDoc IDはfibonacciであり、以下に示すように、値0、1、1をそれぞれプッシュする。

cb.queue_push("fibonacci", 0, create=True) # [0]
cb.queue_push("fibonacci", 0) # [0, 0]
cb.queue_push("fibonacci", 1) # [0, 0, 1]
cb.queue_size("fibonacci") # 3
cb.queue_pop("fibonacci") # 0 (in FIFO order)
cb.queue_pop("fibonacci") # 0
cb.queue_pop("fibonacci") # 1

同様に、以下はList APIの使用例である。

cb.list_append("qbs", "tom", create=True) # ["tom"]
cb.list_prepend("qbs", "josh") # ["josh","tom"]
cb.list_append("qbs", "patrick") # ["josh","tom", "patrick"]
cb.list_append("qbs", "aaron") # ["josh","tom", "patrick", "aaron"]
cb.list_size("qbs") # 4
cb.list_get("qbs", 0) # josh
cb.list_remove("qbs", 0) # ["tom", "patrick", "aaron"]
cb.list_get("qbs", 0) # tom
cb.list_get("qbs", 2) # aaron

以下に示すように、Map APIを使用してそれぞれの値をJSONドキュメントにすることができる。.

cb.map_add("quarterbacks", "bills", {'name': 'Josh Allen', 'age': 24}, Create=True)
cb.map_add("quarterbacks", "bucs", {'name': 'Tom Brady', 'age': 43})
cb.map_add("quarterbacks", "chiefs", {'name': 'Patrick Mahomes', 'age': 25})
cb.map_add("quarterbacks", "packers", {'name': 'Aaron Rogers', 'age': 37})
cb.map_get("quarterbacks", "chiefs") # {'name': 'Patrick Mahomes', 'age': 25}

 

Python用のその他のデータ構造APIは、データ構造のドキュメントで確認できる。以下に要約されている。

画像ソース:Couchbaseブログ

同様のAPIは、Couchbaseでサポートされている他の言語のSDKでも利用できる。

要約すると、Couchbaseとそれに付随する言語APIにより、開発者は容易にデータ構造APIを使用してデータ構造を永続化および取得できるようになる。APIとドキュメントチートシートは、Couchbaseを使い始め、アプリケーションに組み込むために利用できる。

この記事に星をつける

おすすめ度
スタイル

BT