2016-10-03 5 views
1

からデータを読みながら、私はcqlsh(cqlsh 5.0.1 | Cassandra 2.1.12 | CQL spec 3.2.1 | Native protocol v3)を用いたカラムファミリーで次のクエリを実行するために奇妙な行動カサンドラColumnfamily

照会しようとしています:

select * from CassandraColumnFamily limit 10 

をしかし、それは次のエラーを与える

エラー:

ReadTimeout: code=1200 [Coordinator node timed out waiting for replica nodes' responses] message="Operation timed out - received only 0 responses." info={'received_responses': 0, 'required_responses': 1, 'consistency': 'ONE'} 

ここでは、次のpythonスクリプトを使用してデータを読み取ることができます。私はここで何が問題になるのか理解できません。

cluster = Cluster(
      contact_points = ['IP1','IP2','IP3'] 
      ) 
    session = cluster.connect('cw')  
    query = "select col1 , col2, col3, col4, col5 from CassandraColumnFamily" 
    statement = SimpleStatement(query, fetch_size=50000) 

答えて

1

フェッチしようとしている行のサイズとその数がわかりません。しかし、プライマリキーで条件を指定せずにCQLでselectを実行しているときは、コストのかかるレンジスキャンを実行しています。これはMySQLではないことを忘れないでください。 Cassandraは、特定の行キーの検索を行うときに最も効果的です。

何とか、この作業を行うためにcqlshのタイムアウトを増やすことができます。あなたのホームフォルダで

、次の内容のcqlshrcというファイルを作成: を[接続] client_timeout = 10

あなたはまた、タイムアウトを無効にするには、このようにそれを設定することができます。 client_timeout =なし

をcqlshrcに関する詳細 https://docs.datastax.com/en/cql/3.1/cql/cql_reference/cqlshrc.html