CassandraでのJSONの使用

CassandraでのJSONの使用

  • オーケストレーション
6分で読めます 更新日 Jan 2, 2019

ポイント: CassandraでのJSONの使用は、ユーザーがJSON形式でデータを書き込むことを可能にすることで柔軟なデータ管理を実現します。このガイドには、キー空間とテーブルの作成、データの挿入、およびJSON構文を使用したクエリの例が含まれています。

  • JSON形式でのデータの保存と書き込みをサポートします。
  • JSON構文を使用してテーブルを作成し、レコードを挿入するための例が含まれています。

CassandraはJSONをサポートしています。当然のことながら、JSONテキストをCassandraのテキスト列に保存できます。しかし、ここで意味するのはそれだけではありません。ここでは、JSONを使用してCassandraテーブルに書き込むことができるということです。

例を示します。まず、キー空間を作成します。

    create keyspace json with REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor' : 2 };

シンプルなJSONの例

三つの列を持つテーブルを作成しましょう。そして、JSONキーワードを使用してデータを書き込みます。これにより、CassandraはJSON値を列名にマッピングします。これは、JSONで期待される通りです。

    create table books (isbn text primary key, title text, publisher text);

insert into books JSON '{"isbn": "123", 
"title": "The Magic Mountain",
 "publisher": "Knofp"}';

次に、データをリストします。それは通常のカラムデータのように見え、JSONではありません。なぜなら、それは通常のデータだからです。私たちは単にJSONを使用して追加しただけであり、これはデータがしばしばJSONとして表現されるため便利です。

    select * from books;

 isbn | publisher | title
------+-----------+--------------------
  123 |     Knofp | The Magic Mountain

ネストされたJSON

より複雑な例を示します。顧客レコードには、リスト型の販売タイプがあります。明らかに、顧客は複数の販売を持つでしょう。したがって、これはそれを表現する良い方法です。

まず、販売タイプを作成します。次に、顧客テーブルを作成します。各販売取引は変更できないため、FROZENキーワードを使用する必要があります。つまり、それは不変です。販売取引を変更したい場合は、それを削除してから再追加する必要があります。

    use json;

CREATE type json.sale ( id int, item text, amount int );

CREATE TABLE json.customers ( id int  PRIMARY KEY, name text, balance int, sales list> );

今、値を追加します。販売アイテムはリストなので、1つ以上を追加できます。

    INSERT INTO json.customers (id, name, balance, sales) 
VALUES (123, 'Greenville Hardware', 700,
 [{ id: 5544, item : 'tape', amount : 100},
  { id: 5545, item : 'wire', amount : 200}]) ;

アイテムをリストします。JSON内のキー値の周りに疑問符はないことに注意してください。これは、JSONオブジェクトであるためです。

    select * from customers;

 id  | balance | name                | sales
-----+---------+---------------------+--------------------------------------------------------------------------------
 123 |     700 | Greenville Hardware | [{id: 5544, item: 'tape', amount: 100}, {id: 5545, item: 'wire', amount: 200}]

これをJSON文字列に変換したい場合は、toJson()を使用します。

    select id, toJson(sales) from customers;

 id  | system.tojson(sales)
-----+--------------------------------------------------------------------------------------------
 123 | [{"id": 5544, "item": "tape", "amount": 100}, {"id": 5545, "item": "wire", "amount": 200}]

これらの投稿は私自身の意見であり、BMCの立場、戦略、または意見を必ずしも代表するものではありません。

オーケストレーションの関連記事

BMCからのさらなる情報に興味がありますか?

ザ・ブリーフは、メインフレームとエンタープライズオーケストレーションに関する月刊メールです:研究、顧客ストーリー、製品ニュース、イベント。

このオファーに登録することで、あなたはBMCのプライバシーポリシーを読み、同意したことを確認します。

ザ・ブリーフに登録しました

ザ・ブリーフは、メインフレームとエンタープライズオーケストレーション—BMC AMIおよびControl-M—に関するアナリストの研究、顧客の展開、両者にわたるイベントを網羅しています。