You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python cassandra-driver查询Cassandra特定UUID数据

没问题,要针对特定entity_id查询其实超简单,只需要给你的CQL语句加个WHERE过滤条件就行。我给你调整好脚本,还有一些实用的细节说明:


针对单个entity_id的查询脚本

from cassandra.cluster import Cluster
from cassandra.util import UUID  # 用于将字符串转换为Cassandra识别的UUID类型

cluster = Cluster()
session = cluster.connect('thingsboard')

# 替换成你需要查询的目标entity_id
target_entity_id = UUID('5ee30bf0-2e8b-11e8-a810-c3c1a78797ed')

# 使用参数化查询过滤特定entity_id,这是driver推荐的安全写法
rows = session.execute(
    "SELECT * FROM ts_kv_latest_cf WHERE entity_id = %s",
    (target_entity_id,)
)

# 遍历输出结果
for row in rows:
    print(row)

一些实用的扩展说明

  • 参数化查询的好处:用%s作为占位符,再传入参数元组,既能避免SQL注入风险,又能让driver自动处理UUID这类特殊类型的转换,比直接拼接字符串靠谱多了。
  • 同时过滤entity_type:如果你的场景里需要限定设备类型(比如只查DEVICE),可以把查询条件优化成符合表主键结构的写法,性能会更好:
    rows = session.execute(
        "SELECT * FROM ts_kv_latest_cf WHERE entity_type = %s AND entity_id = %s",
        ('DEVICE', target_entity_id,)
    )
    
  • 查询多个entity_id:如果需要一次性查多个ID,可以用IN条件:
    target_ids = [
        UUID('5ee30bf0-2e8b-11e8-a810-c3c1a78797ed'),
        UUID('477b5630-2e8a-11e8-a810-c3c1a78797ed')
    ]
    rows = session.execute(
        "SELECT * FROM ts_kv_latest_cf WHERE entity_id IN %s",
        (target_ids,)
    )
    

内容的提问来源于stack exchange,提问作者arture

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:53:00