2013-04-19 12 views
5

Cassandra veritabanıyla çalışmaya başladım. Ben cassandra veritabanına/ups/okuma/okumak için Datastax API kullanmayı planlıyorum. Bu Datastax API'sine (yeni İkili protokolü kullanan) tamamen yeniyim ve bazı uygun örneklere sahip olan çok fazla belge bulamıyorum. Datastax API (yeni İkili iletişim kuralı kullanan) çalışırken Cassandra'da sütun ailesi veya tablo oluşturma

Cassandra CLI Netflix istemcisi (Astyanax istemcisi) kullanılarak ile çalışıyordu

, o zaman ben Şimdi Datastax API kullanarak aynı şeyi yapmaya çalışıyordu bu-

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

gibi sütun aile oluşturdu. Bu nedenle Datastax API ile çalışmaya başlamak için, sütun ailesini yukarıda bahsedildiği gibi farklı bir şekilde oluşturmam gerekir mi? Veya Datastax API kullanarak Cassandra veritabanına veri eklemeye çalışacağım zaman yukarıdaki sütun ailesi iyi çalışacaktır.

yukarıdaki sütun ailesi Ben Şimdi

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

aşağıda- Ben masayı nasıl oluşturulacağını karıştırmayın am gibi KEYSPACE oluşturduk tüm sonra-

İlk çalışmaz ise? Bunu yapmanın doğru yolu olduğundan emin değilim?

Böyle yaratmalı mıyım?

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

veya böyle oluşturması gerekir?

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

Ve Datastax API ile çalışırken aynı zamanda ne kadar yukarıdaki tabloda veya sütun ailesinde

crd as DateType 
lmd as DateType 

Add- için?

Herhangi bir yardım için teşekkür ederiz.

+0

datastax API tarafından ne demek istiyorsunuz ??? OpsCenter veya datastax java sürücüsü? – abhi

+0

@ abhi, Datastax java sürücüsü. – ferhan

cevap

13

anahtar kelime TABLO veya COLUMNFAMILY kullanımı olsun, her ikisi de aynı (eş) bulunmaktadır. Sanırım TABLO anahtar kelimesi CQL3 ile tanıtıldı. Yani ifadelerinizden birini kullanabilirsiniz.

İkinci soru, DateType ekleme, zaman damgası kullanmanız gerekir.

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

Teşekkürler. Varchar ve metin arasındaki fark nedir? Sütunların çoğu için Dize veri türlerine ihtiyacım var. O halde varchar mı yoksa metin mi kullanmalıyım? – ferhan

+1

her ikisi de cql bağlamında aynıdır (eş anlamlılar), UTF8 kodlanmış dize. – abhi

+0

Serin. Teşekkürler. Diğer [sorularım] hakkında herhangi bir düşünceniz var (http://stackoverflow.com/questions/16096207/upsert-read-into-from-cassandra-database-using-datastax-api-using-new-binary-pr) – ferhan

1

Cassandra anahtar alanında veya veritabanında aynı, bilge sütun ailesi ve tablo aynıdır.

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

fazla bilgi::

Cassandra

cassandra bir tablo gibi oluşturulabilir onun sözdiziminde daha MySQL gibi ve sql (benzer) HQL destekler Cassandra Tutorials

0

@ neel4soft - Cassandra ile şeyler sadece gelişir.Bu nedenle, insanlar için bir tür kolaylık sağlamak için, yeni bir geçiş için SQL'den CQL'e geçişi kolaylaştırmak için sürekli bir yeniden adlandırma süreci devam etmektedir. Bununla birlikte, CQL, SQL'in bir akrabası gibi düşünülmemelidir, aksine, annesinin yanından bir üçüncü kuzen gibi, başka bir deyişle yakın bir akraba değil. Bunu MySQL ile karşılaştırmak, yeteneklerinin uygunsuz bir imgesi.

İlgili konular