问题标签 [rocksdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
764 浏览

database - RocksDB中SQL数据库表类比的最佳实践是什么

在 SQL 数据库中,我们通常将相关信息存储在数据库的不同表中。从我从 RocksDB 文档中读到的内容来看,确实没有明确或“正确”的方式来表示这种结构。所以我想知道对信息进行分类的做法是什么?

假设我有三种类型的信息,客户、产品和员工。我想在 RocksDB 中实现这些。我应该使用键的前缀、不同的列族还是不同的数据库?

感谢您的任何建议。

0 投票
1 回答
549 浏览

apache-kafka-streams - Kafka Streams 构建 StateStoreSupplier:API 说明

我正在使用 0.11.0.2 版的 Kafka Streams。

为了利用API,我使用builder 方法transform创建了自己的 API 。问题是我对某些字段/方法的 javadoc 不够清楚。StateStoreSupplierStores.create

提到的变更日志将如何表示?

这 4 个值如何相互影响?每个窗口都有最大数量的元素 - windowSize?一旦到达新窗口就开始了?每个窗口都可以划分numSegments为 RocksDB 磁盘上的文件吗?重复意味着键和值都相同,并且仅在同一窗口中检测到?

这里暗示了什么样的缓存?

0 投票
0 回答
107 浏览

database - 将 arangodb 数据库回滚到特定时间点

我(故意)在 ArangoDB 中截断了一个集合,因为我必须将一个新数据集导入其中。不幸的是,我截断的数据很有用。

有没有办法使用日志文件或类似的东西将数据库恢复到特定的时间点?我正在使用rocksdb引擎。我可以在journals数据库的文件夹中看到.db最后修改日期是1~2天前的文件。文件夹中还有一堆日志文件rocksdb

谢谢你的热心帮助。

0 投票
2 回答
555 浏览

rocksdb - RocksDb 不会为较小的表创建 SST 文件

RocksDB 新手在这里。我正在尝试将数据加载到新创建的 RocksDB 数据库中。我在本地 Windows RocksDB 库周围使用 RocksDB Sharp .NET 包装器。

一切似乎都在工作,但是当我查看它创建的目录时,我只看到日志文件(总是000003.log)。我在里面看到了我的数据,但我认为它应该创建日志以外的东西。当我尝试使用 FastNoSQL 打开它时,它可以工作,但由于某种原因,我看到正在创建 SST 文件。(这可能是正常格式。)

我正在使用WriteBatchWithIndex并尝试设置普通表/块表选项。没有什么变化。

我尝试调整PrepareForBulkLoadSetAllowMmapWrites等等。压缩已关闭。

这正常吗?

编辑:我看到更大的表(超过 10 Mb)确实获得了 SST 文件。有没有办法强制较小的“提交”日志?

0 投票
1 回答
710 浏览

rocksdb - 我们可以将 sst 文件从一个 RocksDB 摄取到另一个 RocksDB 吗?

ingestExternalFile()我在 RocksDB API 中找到了一个。但是当我尝试将 sst 文件从一个 RocksDB 摄取到另一个 RocksDB 时,它给了我一个打击异常:

有谁能够帮我?

0 投票
1 回答
1940 浏览

apache-kafka - 滑动窗口中的Kafka KStream相关消息事件

我们有一种情况,我认为 Kafka Streams 可以提供帮助,但我找不到任何说明如何的文档或示例。

我发现了一个类似的问题,但它没有任何实现建议:Kafka Streams wait function withdependent objects

我想做的事:

我想将来自 Kafka 主题的相关记录关联到一个对象中,并将该新对象发布到一个单独的输出主题。例如,可能有五个消息记录通过唯一键相互关联 - 我想从这些相关对象构建一个新对象,并将其生成到一个新主题。

我希望聚合一小时的滑动窗口内的所有相关事件。换句话说,一旦 ID 为“123”的消息 A 到达消费者,应用程序必须等待至少一个小时,以便 ID 为“123”的剩余记录到达。在所有记录到达或一小时过去后,这些记录将过期。

最后,一小时内收集的所有相关消息都用于创建一个新对象,然后将其发送到另一个 Kafka 主题。

我遇到的问题。

Kafka 中的滑动窗口似乎只在将两个流连接在一起时才起作用。我们将只有一个流连接到该主题 - 我不知道为什么需要两个流或我们将如何实现这一点。我在网上找不到任何这样的例子。我在 Kafka 中看到的所有流函数在收集相同键的事件时都只是简单地聚合/减少到一个简单的值。例如,一个键出现的次数或加起来一些值

这是一些伪代码来描述我在说什么。如果功能存在,则功能名称/语义将有所不同。

问题(感谢您的帮助):

  1. 我怎么能在单个流中使用滑动窗口?
  2. 如何自定义 KStream/KTable 函数以收集时间窗口内的所有相关事件并将新对象生成到另一个主题?
  3. 确认/偏移管理如何与滑动窗口流一起使用?
  4. 这能保证 Exactly Once 交货吗?供参考:https ://www.confluent.io/blog/enabling-exactly-kafka-streams/
0 投票
2 回答
7187 浏览

apache-kafka - Kafka Streams中的内存与持久状态存储?

我已经阅读了有状态流处理概述,如果我理解正确,RocksDB 被用作键值存储的默认实现的主要原因之一是一个事实,即与内存中的集合不同,它可以处理数据大于可用内存,因为它可以刷新到磁盘。这两种类型的存储都可以在应用程序重新启动后继续存在,因为数据是作为 Kafka 主题备份的。

但是还有其他区别吗?例如,我注意到我的持久状态存储为每个主题分区创建了一些 .log 文件,但它们都是空的。

简而言之,我想知道用内存中的存储替换持久存储的性能优势和可能的风险是什么。

0 投票
1 回答
203 浏览

apache-kafka - 如果节点崩溃并且由于保留而丢弃旧主题消息,Kafka Stream 会丢失状态吗?

默认情况下,kafka 流使用 RocksDB(一种快速的本地 KV 存储)作为其状态存储。我的问题是,如果节点崩溃并且由于卡夫卡保留发生而丢弃那些重播状态的主题消息(所以它不能从一开始就重播消息),卡夫卡流会失去状态吗?这是否意味着在这种情况下失去了那些旧状态?谢谢!

0 投票
0 回答
548 浏览

apache-flink - flink流任务中如何正确访问rocksdb?

我尝试使用rocksdb来缓存ProcessFunction所需的信息,以下似乎是让它工作的唯一方法:

(1)从数据存储(例如mysql)加载数据并将数据放入rocksdb,然后在open()中关闭rocksdb句柄。

(2) 每当调用 processElement() 时打开和关闭 RocksDB 句柄。

像这样:

这是非常低效的,因为在 processElement() 中发生了很多 IO。这个 ProcessFunction 能够在 10 分钟内处理完所有数据,添加 RocksDB 相关行后处理部分数据需要 40 多分钟。所以我尝试通过以下实现重用在 open() 中创建的rocksdb。

这个实现的问题是它不起作用,这是我得到的错误消息:

可以在此链接中找到来自“/Users/abc/MyFiles/workspace/flink-java-project/hs_err_pid64626.log”的详细跟踪(http://memyselfandtaco.blogspot.tw/2018/04/how-to-correctly-访问-rocksdb-in.html )

0 投票
0 回答
377 浏览

rocksdb - Rocksdb如何在OpenForReadOnly时禁用日志?

我使用打开数据库OpenForReadOnly,我希望它真的只是只读。但它实际上创建了很多日志文件。如何禁用它。

这就是我试图禁用日志的原因。它不工作