首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cassandra数据库-获取大量数据

cassandra数据库-获取大量数据
EN

Stack Overflow用户
提问于 2020-08-08 14:17:15
回答 1查看 373关注 0票数 2

数据在缓存中使用。问题是检索过程太慢,而且使用DataStax3.x驱动程序会超时。有没有办法在不升级数据库软件或改变现有数据库结构的情况下获取数据?

EN

回答 1

Stack Overflow用户

发布于 2020-08-09 16:50:35

Cassandra针对通过主键-完整、部分或至少分区键-访问数据进行了大量优化。其他访问模式需要额外的工作。从理论上讲,您可以在相应的列上使用辅助索引,但只有当您在搜索数据时,除了至少具有分区键之外,才建议使用辅助索引-如果您仅使用该列,它仍然会到达所有节点并获取所有数据,因此速度会慢得多。您还需要牢记其他限制,例如列的基数等(您可以阅读有关该here的信息)。

从编程上讲,你也可以对数据进行完全扫描,但它不应该是简单的select * from table,因为它会使协调节点超载,导致超时等。相反,它应该是更复杂的解决方案-通过从单个令牌范围读取数据来执行扫描,将查询发送到保持相应范围的节点,并且可以并行执行-这就是Spark Cassandra ConnectorDSBulk的工作方式(我认为你可以尝试采用DSBulk代码片段来完成此任务-可以将其用作库)。我还有使用Java驱动程序的an example of how to perform full table scan -您可以采用此代码,并将简单的计数替换为您的过滤条件。

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

https://stackoverflow.com/questions/63312420

复制
相关文章

相似问题

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