Python パッケージ cassandra-driver を使用して、cassandra データベースから特定の値を抽出しようとしています。私はデータ構造に影響を与えません。
私のPythonスクリプト
from cassandra.cluster import Cluster
cluster =Cluster()
session =cluster.connect('thingsboard')
rows =session.execute("SELECT * FROM ts_kv_latest_cf")
for id_row in rows:
print (id_row)
次の出力が得られます。
Row(entity_type='DEVICE', entity_id=UUID('5ee30bf0-2e8b-11e8-a810-c3c1a78797ed'), key='count-cola', bool_v=None, dbl_v=None, long_v=0, str_v=None, ts=1521808687455)
Row(entity_type='DEVICE', entity_id=UUID('5ee30bf0-2e8b-11e8-a810-c3c1a78797ed'), key='count-fanta', bool_v=None, dbl_v=None, long_v=0, str_v=None, ts=1521808687455)
Row(entity_type='DEVICE', entity_id=UUID('5ee30bf0-2e8b-11e8-a810-c3c1a78797ed'), key='count-sprite', bool_v=None, dbl_v=None, long_v=0, str_v=None, ts=1521808687455)
Row(entity_type='DEVICE', entity_id=UUID('477b5630-2e8a-11e8-a810-c3c1a78797ed'), key='count-cola', bool_v=None, dbl_v=None, long_v=0, str_v=None, ts=1521803445966)
Row(entity_type='DEVICE', entity_id=UUID('477b5630-2e8a-11e8-a810-c3c1a78797ed'), key='count-fanta', bool_v=None, dbl_v=None, long_v=0, str_v=None, ts=1521803445966)
Row(entity_type='DEVICE', entity_id=UUID('477b5630-2e8a-11e8-a810-c3c1a78797ed'), key='count-sprite', bool_v=None, dbl_v=None, long_v=0, str_v=None, ts=1521803445966)
私が今やりたいのは、この種のクエリです:
rows =session.execute("SELECT * FROM ts_kv_latest_cf WHERE entity_id=UUID('5ee30bf0-2e8b-11e8-a810-c3c1a78797ed')")
これにより、次のエラーが表示されます。
cassandra.InvalidRequest: サーバーからのエラー: code=2200 [Invalid query] message="関数 system.uuid の呼び出しで引数の数が無効です: 0 が必要ですが、1 が指定されました"
クエリがシステム関数を呼び出しているようuuid
です。entity_id
が のタイプであることはわかっていuuid
ますが、 を使用してクエリにこれを含める方法がわかりませんsession.execute
。
私が使用した:
カサンドラ バージョン 3.11.2
Python バージョン 3.6.3
どんなアイデアでも大歓迎です!ありがとう。