首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >构造Cassandra表以实现高速查询

构造Cassandra表以实现高速查询
EN

Stack Overflow用户
提问于 2020-08-12 06:59:47
回答 1查看 28关注 0票数 0

我们正在考虑使用Cassandra来存储临床试验的数据。这些数据本质上是血氧饱和度和呼吸频率(以及其他一些东西)。我们还需要存储患者标识符、访问代码和设施代码。我们期望只需要通过唯一的患者/访问来检索数据。但是,每个患者都可以有500,000+记录。可能有1000个病人,可能有100个设施。我的问题与表的设计有关,以确保快速检索数据:

代码语言:javascript
运行
复制
Create table OxygenSats
    (
        facility int,
        visit text,
        pat_id text,
        probe_id text
        event timestamp,
        oxygen float,
        resp int,
        Primary key((facility, visit), pat_id)
    );

因此,我认为数据将在pat_id上集群,并在(设施,访问)上进行分区。这是正确的吗?阅读速度是非常重要的。我们将需要按患者(本质上是设施、访问、患者)进行选择,并按日期进行过滤。

对于我们正在处理的数据类型,这是一种最佳方法吗?如有任何指导/建议,欢迎光临。

我们需要的查询相当简单-我们只需要选择一个患者的所有数据(按日期过滤也很有用):

代码语言:javascript
运行
复制
select oxygen, resp from OxygenSats where facility = '1', and visit = '1' and pat_id = '22'
EN

回答 1

Stack Overflow用户

发布于 2020-08-12 17:00:21

您的想法是正确的,它被分区到(facility,visit)的组合键上,并聚集在pat_id上。在这里,访问的唯一性很重要,但没有指定,目前我们不能确定每次患者访问的访问是否全局唯一。关于select查询的更多细节也会很有用,它们是包括范围查询还是仅包括点查询?

一旦您可以使用NoSQLBench Github RepoDocs对其进行基准测试-这将使您在使用之前对性能有一个很好的了解。

建议的分区大小上限是100Mb,因此您可以围绕每个分区的数据大小和记录数进行一些计算,以确定您的键是否会导致分区大小问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63367481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档