首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >存储具有优化读取的键-值对的方法,与流处理引擎一起使用

存储具有优化读取的键-值对的方法,与流处理引擎一起使用
EN

Stack Overflow用户
提问于 2019-03-20 01:53:42
回答 1查看 371关注 0票数 0

我们有包含(大约)20M行和50,000列的数据(静态)。这是一个稀疏数据,我们需要快速读取单个单元格值或给定列(该列的所有行)。输入是一个流数据,我们希望根据来自数据库的值(上面提到的值)聚合输入(最后一个x分钟)。

我们需要一些关于如何实现最低延迟的建议:1. We store the values in the Apache Spark in-memory (on-heap or off-heap) and also process the data using the same. 2. We store the values in Redis/RocksDB and process the data in Apache Spark.

Apache Flink被排除在考虑之外,因为在向堆栈中添加新框架时遇到了阻力,我们正在寻找更稳定的框架(因为这个问题只是项目的一部分)。

EN

回答 1

Stack Overflow用户

发布于 2019-03-20 22:23:21

使用Flink,假设您使用行id作为键,那么您可以通过Map<column id, cell value>将此数据存储为状态。在幕后,如果你已经将Flink配置为使用RocksDB作为状态后端,那么查找单个单元会更快,因为进入RocksDB的关键是<row id> + <column id>

您还可以单独按列键入,然后遍历所有行,尽管这显然会更慢-不确定对于给定列的1M行的“快速读取”的定义是什么。

使用这种方法,您可以使用Flink对queryable state的支持来使查找非常容易实现。

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

https://stackoverflow.com/questions/55247197

复制
相关文章

相似问题

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