2013-04-19 17 views
5

Rozpocząłem pracę z bazą danych Cassandra. Planuję użyć Datastax API do wznowienia/odczytu do/z bazy danych Kasandra. Jestem całkowicie nowy w tym Datastax API (który używa nowego protokołu binarnego) i nie jestem w stanie znaleźć wielu dokumentacji, które mają kilka odpowiednich przykładów.Tworzenie rodziny lub tabeli kolumn w Cassandra podczas pracy z Datastax API (który używa nowego protokołu binarnego)

Kiedy pracowałem z Cassandra CLI przy użyciu klienta Netflix (klient Astyanax), potem stworzył rodzinę kolumny jak to-

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'} 
    ]; 

Teraz starałem się zrobić to samo przy użyciu Datastax API. Aby rozpocząć pracę z interfejsem Datastax API, czy muszę utworzyć rodzinę kolumn w inny sposób, jak wspomniano powyżej? Lub powyższa kolumna familiy będzie działać dobrze, gdy będę próbował wstawić dane do bazy danych Cassandra za pomocą Datastax API.

Jeśli powyższe rodzina kolumna nie będzie działać then-

Przede wszystkim stworzyliśmy KEYSPACE jak below-

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

teraz jestem mylić jak stworzyć tabelę? Nie jestem pewien, która jest właściwa droga do tego?

Czy mogę tworzyć w ten sposób?

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

czy należy utworzyć w ten sposób?

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

a także jak Dodaj-

crd as DateType 
lmd as DateType 

w powyższej tabeli lub rodziny kolumny podczas pracy z Datastax API?

Każda pomoc zostanie doceniona.

+0

co rozumiesz przez interfejs API datastax ??? OpsCenter lub datastax java-driver? – abhi

+0

@ abhi, Datastax java-driver. – ferhan

Odpowiedz

13

czy użyć słowa kluczowego TABELA lub COLUMNFAMILY, oba są takie same (synonimy). Domyślam się, że słowo kluczowe TABELA zostało wprowadzone z CQL3. Więc możesz użyć jednego z nich w swoich wyciągach.

Drugie pytanie, dodając DateType, należy użyć znacznika czasu.

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

Dzięki. Jaka jest różnica między varchar i tekstem? Potrzebuję mieć typy danych String dla większości moich kolumn. Więc w takim razie powinienem użyć varchar lub text? – ferhan

+1

oba są takie same (synonimy) w kontekście cql, ciąg znaków zakodowany w UTF8. – abhi

+0

Cool. Dzięki. Wszelkie przemyślenia na temat mojego [pytania] (http://stackoverflow.com/questions/16096207/upsert-read-ito--assass-database-using-datastax-api-using-new-binary-pr) – ferhan

1

W kassandra keyspace lub baza danych są takie same, podobnie jak mądra kolumna i tabela są takie same.

Cassandra jest bardziej jak MySQL w swojej składni i wspiera HQL (podobny do SQL)

Stół w Cassandry mogą być tworzone jak:

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

Więcej informacji tutaj: Cassandra Tutorials

0

@ neel4soft - Z rzeczami Cassandry po prostu ewoluuje.Dlatego, aby być łatwiejszym dla ludzi, stale trwa proces zmiany nazwy, aby przejście od SQL do CQL było łatwiejsze dla początkujących. Jednak CQL nie powinno być traktowane jak relacja z SQL, raczej jak trzeci kuzyn od strony matki, innymi słowy nie bliski krewny. Dlatego porównanie go z MySQL jest niewłaściwym obrazem jego możliwości.

Powiązane problemy