Création d'une famille de colonnes ou d'une table dans Cassandra tout en travaillant avec L'API Datastax(qui utilise un nouveau protocole binaire))

j'ai commencé à travailler avec Cassandra database. J'ai l'intention d'utiliser API Datastax pour accéder à la base de données cassandra. Je suis totalement nouveau à cette API Datastax (qui utilise un nouveau protocole binaire) et je ne suis pas en mesure de trouver beaucoup de documentations aussi bien qui ont quelques exemples appropriés.

quand je travaillais avec Cassandra CLI en utilisant le client Netflix (client Astyanax), alors j'ai créé la famille de colonnes comme ceci -

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

maintenant j'essayais de faire la même chose en utilisant L'API Datastax. Donc, pour commencer à travailler avec L'API Datastax, dois-je créer la famille de colonnes d'une manière différente comme mentionné ci-dessus? Ou la colonne familiy ci-dessus fonctionnera très bien chaque fois que j'essaierai d'insérer des données dans la base de données Cassandra en utilisant L'API Datastax.

Si la colonne ci-dessus de la famille ne fonctionnera pas alors-

tout d'abord j'ai créé L'espace de clé comme ci-dessous -

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

maintenant je suis confus comment créer la table? Je ne suis pas sûr de savoir quelle est la bonne façon de le faire?

dois-je créer comme ça?

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

ou dois-je créer comme ça?

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

Et aussi comment ajouter-

crd as DateType
lmd as DateType

dans la table ci-dessus ou la famille de colonnes tout en travaillant avec L'API Datastax?

Toute aide sera appréciée.

5
demandé sur arsenal 2013-04-19 05:57:27

3 réponses

si vous utilisez le mot-clé TABLE ou COLUMNFAMILY , les deux sont les mêmes (synonymes). Je suppose que le mot-clé TABLE a été introduit avec CQL3. Ainsi, vous pouvez utiliser l'une dans vos déclarations.

deuxième question, ajout de type de données, vous devez utiliser timestamp.

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
13
répondu abhi 2016-04-17 02:47:12

dans cassandra keyspace ou la base de données sont les mêmes,comme wise columnfamily et la table sont les mêmes.

Cassandra est plus comme Mysql dans sa syntaxe et prend en charge hql (similaire à sql)

une table en cassandra peut être créée comme:

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

Plus d'informations ici : Cassandra "Tutoriels 151990920"

1
répondu neel4soft 2015-08-11 16:11:35

@neel4soft - avec Cassandra les choses évoluent simplement. Par conséquent, afin d'être une sorte de plus facile pour les gens, un processus de renommage est régulièrement en cours pour rendre la transition de SQL à CQL plus facile pour les débutants. Cependant CQL ne devrait pas être considéré comme un parent de SQL, plutôt comme un cousin du côté de sa mère, en d'autres termes pas un parent proche. Par conséquent, le comparer à MySQL est une image incorrecte de ses capacités.

0
répondu pcdoc 2015-08-12 07:46:51