常见问题

查找有关 RDI 的常见问题的答案

RDI 使用哪个许可证?

您必须购买 Redis Enterprise 的 RDI 商业许可证。这包括两个额外的 暂存数据库的 Redis Enterprise 分片(主分片和副本分片)。

RDI 如何跟踪源数据库中的数据更改?

RDI 使用特定于每个受支持的 源数据库:

  • Oracle:RDI 使用logminer解析 Oraclebinary logarchive logs.这 列出 RDI 可以查询的数据库视图中的任何更改。
  • MySQL/MariaDB:RDI 使用binary log replication以获取所有提交。
  • PostgreSQL:RDI 使用pgoutput插件。
  • SQL Server:RDI 使用 CDC 机制。

RDI 可以处理多少数据?

RDI 使用处理单元的概念。每个处理单元使用 1 个 CPU 内核,可以处理 每秒大约 10000 条记录,假设每条记录的大小约为 1KB。此吞吐量 可能会根据列数、数据转换数、 以及网络速度。通常,一个处理单元就足以让 RDI 处理 来自关系数据库的流量。

RDI 可以与任何 Redis 数据库一起使用吗?

不。RDI 经过设计和测试,仅适用于 Redis Enterprise。临时数据库可以 仅使用版本 6.4 或更高版本。目标 Redis 数据库可以是任何版本,也可以是 主动-主动复制设置或自动分层数据库的副本。

RDI 能否自动跟踪源数据库架构的更改?

如果您未将 RDI 配置为捕获架构中的一组特定表,则它将 在添加任何新表时检测这些表。同样,RDI 将捕获新的表列 和对列名的更改,除非您为一组特定的列配置它。 请记住,目标数据库中的 Redis 键将发生变化,以反映 新建或重命名的表和列。

当日志显示 RDI 内存不足时,我应该担心吗?

有时,Debezium 日志会包含一条消息,指出 RDI 已超出 记忆。这不是一个错误,而是一条信息性消息,表明 RDI 正在对 Debezium 施加背压。有关更多信息,请参阅架构指南中的背压机制

当 RDI 无法写入目标 Redis 数据库时,会发生什么情况?

RDI 将继续尝试将更改写入目标,并且还会尝试 以重新连接到它(如有必要)。当目标断开连接时,RDI 将继续从源数据库捕获更改事件并将其添加到其 流。这种情况一直持续到暂存数据库获得 存储空间不足,无法存储新事件。当 RDI 检测到这一点时,它会应用“背压” 机制来降低从源捕获数据的频率,从而降低运行 完全没有空间。源数据库用于记录更改的系统可以 将更改数据保留至少几个小时,RDI 可以赶上 更改,一旦目标连接恢复或暂存数据库具有 更多可用空间。

如果数据损坏或无效,RDI 会怎么做?

收集器以结构化 JSON 格式向 RDI 报告数据。如果 JSON 数据的结构无效,或者转换中存在致命错误 job 时,RDI 无法转换数据。发生这种情况时,RDI 将存储原始数据 在 “dead letter queue” 中,并附有一条消息来说明它被拒绝的原因。死信 queue 作为上限流存储在 RDI 暂存数据库中。你可以看到它的内容 使用 Redis Insight 或redis-di get-rejected命令。

为本页评分
返回顶部 ↑