2013-04-19 6 views
5

私はCassandraデータベースの作業を開始しました。私はDatastax APIを使用して、cassandraデータベースをアップ/ダウンすることを計画しています。私はこのDatastax API(これは新しいバイナリプロトコルを使用しています)を全く新しくしており、適切な例を持つ多くのドキュメントを見つけることができません。Datastax API(新しいバイナリプロトコルを使用)を操作中にCassandraで列ファミリまたはテーブルを作成

私はNetflixのクライアント(アステュアナクスクライアント)を使用して、カサンドラCLIで働いていたとき、私は今、私はDatastaxのAPIを使用して同じことをやろうとしたthis-

create column family profile 
with key_validation_class = 'UTF8Type' 
and comparator = 'UTF8Type' 
and default_validation_class = 'UTF8Type' 
and column_metadata = [ 
    {column_name : crd, validation_class : 'DateType'} 
    {column_name : lmd, validation_class : 'DateType'} 
    {column_name : account, validation_class : 'UTF8Type'} 
    {column_name : advertising, validation_class : 'UTF8Type'} 
    {column_name : behavior, validation_class : 'UTF8Type'} 
    {column_name : info, validation_class : 'UTF8Type'} 
    ]; 

のように、列ファミリを作成しました。ですから、Datastax APIの使用を開始するには、上記のようにいくつかの方法で列ファミリを作成する必要がありますか?または、上記の列ファミリは、Datastax APIを使用してCassandraデータベースにデータを挿入しようとするとうまく動作します。

上記のカラムファミリは、私がbelow-

CREATE KEYSPACE USERS WITH strategy_class = 'SimpleStrategy' AND strategy_options:replication_factor = '1';

のような鍵空間を作成したすべてのthen-

最初に動作しない場合は今、私はテーブルを作成する方法を混同していますか?私はそれを行う正しい方法がわからないのですか?

このように作成する必要がありますか?

CREATE TABLE profile ( id varchar, account varchar, advertising varchar, behavior varchar, info varchar, PRIMARY KEY (id) );

または私はこのように作成する必要がありますか? DatastaxのAPIと連携しながら、上記の表または列の家族に

crd as DateType 
lmd as DateType 

をアドオンする方法

CREATE COLUMN FAMILY profile ( id varchar, account varchar, advertising varchar, behavior varchar, info varchar, PRIMARY KEY (id) );

も?

ご協力いただければ幸いです。

+0

datastax APIはどういう意味ですか? OpsCenterまたはdatastax java-driver? – abhi

+0

@ abhi、Datastax java-driver。 – ferhan

答えて

13

キーワードTABLEまたはCOLUMNFAMILYを使用するかどうか、両方が同じ(同義語)です。私はキーワードを推測しています。テーブルはCQL3で導入されました。だからあなたはあなたのステートメントのどちらかを使うことができます。

2番目の質問では、DateTypeを追加するには、タイムスタンプを使用する必要があります。

CREATE COLUMNFAMILY sample (rowkey text, ts timestamp, PRIMARY KEY(rowkey)); 

INSERT INTO sample (rowkey, ts) VALUES ('1','1366354711797'); 
// ts value is basically the System.currentTimeMillis(), I mean a long value 
+1

ありがとうございます。 varcharとテキストの違いは何ですか?私はほとんどの列のStringデータ型を持つ必要があります。その場合、varcharまたはtextを使用する必要がありますか? – ferhan

+1

は、両方ともcqlコンテキストでは同じ(同義語)、UTF8でエンコードされた文字列です。 – abhi

+0

クール。ありがとう。私の他の[質問](http://stackoverflow.com/questions/16096207/upsert-read-into-from-cassandra-database-using-datastax-api-using-new-binary-pr)について考えてみると – ferhan

1

cassandraのキースペースまたはデータベースでは、賢いcolumnfamilyとテーブルのように同じです。ここ

CREATE TABLE users (
user_name varchar, 
password varchar, 
gender varchar, 
session_token varchar, 
state varchar, 
birth_year bigint, 
PRIMARY KEY (user_name)); 

詳細情報::

カサンドラはその構文では、よりMySQLのようなもので、(SQLに似た)HQLをサポート

カサンドラの表は以下のように作成することができますCassandra Tutorials

0

を@ neel4soft - カサンドラのものは単純に進化します。したがって、人々にとってより簡単なものにするために、初心者にとってSQLからCQLへの移行を容易にする名前変更プロセスが着実に進められています。しかし、CQLは、SQLの相対的なものではなく、母親側の第3のいとこのように考えるべきであり、言い換えれば親密ではありません。それをMySQLと比較することは、その能力の不適切なイメージです。

関連する問題