2015-10-05 11 views
6

私は最近、通常のトランザクションを経なければならない重い大量のデータを扱うようになりました。Cassandraのファントムでダイナミックカラムファミリを操作してクエリを実行するにはどうすればよいですか?

Cassandraを選択すると、私のデータモデルは動的列を使用します。私は、CQLを使用してテーブルを変更し、必要なデータを取得するためにカラムを挿入またはクエリできることを理解しています。

しかし、私はCassandraのためにScalaでPhantomクライアントを使用していましたが、動的列ファミリへの書き込みやクエリを行う方法が見つからないドキュメントを読んでいました。

ケースクラスを使用すると、ScalaのCassandraで動的列を使用するにはどうすればよいですか?

答えて

6

データモデルの一部としてテーブルスキーマを動的に変更しないことをお勧めします。 Cassandraは、パーティション内の行の分割とクラスタリングを行う行指向のデータベースです。したがって、列を追加または削除することによって表現しようとしているものは、固定された列のセットに値を設定する方が効果的です。

Cassandraでは、列の追加と削除のためにテーブル定義を変更できますが、これは通常、アプリケーションに新しい機能を追加する場合にのみ行われるため、オペレータは手動でスキーマを変更し、新しいスキーマを利用する。

複数のクライアントを同時に変更するリスクがあるため、クライアントアプリケーションがテーブルを作成または変更してスキーマを変更することは危険です。

+0

また、テーブルを動的に変更する場合には、コンプライアンスの問題があります。 – DineMartine

+0

@ Jimあなたの意見では、カサンドラでダイナミックデータを扱うにはどうすればよいでしょうか?私は物事がかなり動的なMongoDBの世界から来ています。正確にデータ型が何であるかにかかわらず、ドキュメントにたくさんのものを追加することができます。 – chbh

+1

カサンドラのコレクションデータタイプ(リスト、マップ、セット)を調べるとよいでしょう。また、ユーザー定義の型もあります。他のすべてが失敗した場合は、ブロブとして格納できます。 –

関連する問題