web-dev-qa-db-ja.com

Cassandraでのテーブルの作成と列ファミリーの作成の違いは何ですか?

パフォーマンスとクエリの両方の側面の詳細が必要です。カラムファミリーを使用する場合、キーのみを指定できることをsomeサイトから学びました。 、order by、count、sum、ifnull、concat、join、および場合によってはネストされたクエリ。

26
kumar

あなたが提起した元の質問に答えるために、列ファミリーとテーブルは同じものです。

  • 「列ファミリー」という名前は、以前の Thrift API で使用されていました。
  • 「テーブル」という名前は、新しい CQL API で使用されています。

APIの詳細については、こちらをご覧ください。 http://wiki.Apache.org/cassandra/API

needを使用する場合、「group by、order by、count、sum、ifnull、concat、結合と、場合によってはネストされたクエリ」というように、Cassandraはほとんどサポートされていないため、おそらく使用したくないでしょう。

CQLはCOUNTをサポートしますが、10000までです。これはORDER BYをサポートしますが、クラスタリングキーでのみサポートします。あなたが言及する他のものは全くサポートされていません。

43
Ike Walker

ドキュメントを参照してください: https://cassandra.Apache.org/doc/old/CQL-3.0.html

COLUMNFAMILYがサポートされている場合は常に、CQLのLRMがTABLEキーワードをサポートすることを指定します。

これは、TABLEとCOLUMNFAMILYが同義語であることの証明です。

2
user2250246

cassandraでは、テーブルと列ファミリーに違いはありません。これらは1つの概念です。

2
Prijecone

Cassandra 3+およびcqlsh 5.0.1の場合

確認するには、キースペース(ksp)内のcqlshプロンプトに入力します。

CREATE COLUMNFAMILY myTable (
     ...  id text,
     ...  name int
);

そして、「desc myTable」と入力します。
わかるでしょ:

CREATE TABLE ksp.myTable (
      ...  id text,
      ...  name int
);

それらは同義語であり、Cassandraはデフォルトでテーブルを使用します。

0
gavin olsen