1

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

どんなアイデアでも大歓迎です!ありがとう。

4

1 に答える 1