2016-11-10 39 views
0

私はherehereと記載された以前のソリューションを試しました。私はdatastaxでcassandra-driverを使用しています。私のバージョンのcassandraは2.2.8です。CT_KEYSPACECT_TABLEのキースペースを作成しました。私はcqlshプロンプトを通してCT_TABLEに値を挿入しました。任意のホストに対して操作を完了できませんcassandra

cqlsh> describe ct_keyspace 

CREATE KEYSPACE ct_keyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true; 

CREATE TABLE ct_keyspace.ct_table (
    attribute text PRIMARY KEY, 
    value int 
) WITH bloom_filter_fp_chance = 0.01 
    AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}' 
    AND comment = '' 
    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy'} 
    AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'} 
    AND dclocal_read_repair_chance = 0.1 
    AND default_time_to_live = 0 
    AND gc_grace_seconds = 864000 
    AND max_index_interval = 2048 
    AND memtable_flush_period_in_ms = 0 
    AND min_index_interval = 128 
    AND read_repair_chance = 0.0 
    AND speculative_retry = '99.0PERCENTILE'; 

後、私は取得していますエラーされています:

Traceback (most recent call last): 
    File "connection.py", line 4, in <module> 
    result = session.execute("select * from CT_TABLE") 
    File "/usr/local/lib/python2.7/dist-packages/cassandra/cluster.py", line 1998, in execute 
    return self.execute_async(query, parameters, trace, custom_payload, timeout, execution_profile, paging_state).result() 
    File "/usr/local/lib/python2.7/dist-packages/cassandra/cluster.py", line 3781, in result 
    raise self._final_exception 
cassandra.cluster.NoHostAvailable: ('Unable to complete the operation against any hosts', {}) 

すべてのヘルプは非常にある行

from cassandra.cluster import Cluster 
cluster = Cluster() 
session = cluster.connect('CT_KEYSPACE') 
result = session.execute("select * from CT_TABLE") 
print result.attribute, result.value 

次のことを取得するためのPythonコードは、DESCRIBE CT_KEYSPACEの出力がされ、次の感謝。

答えて

1

これは、接続で間違ったキースペース名を指定しているために発生しています。 "CT_KEYSPACE"ではなく "ct_keyspace"を使用してください。引用符で囲まれていない識別子は、CQL(大文字小文字の区別はありません)で大文字と小文字を区別しないことを思い出してください。しかし、パラメータ渡し(Cluster.connect(<keyspace>)のような)の文脈では、リテラルは大文字小文字を区別しません。

ロギングを有効にすると、ドライバは接続でそのキースペースを設定し続けることに失敗します。このシナリオでエラー処理を改善するチケットを作成しました。 https://datastax-oss.atlassian.net/browse/PYTHON-665

関連する問題