采集常见问题解答

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

RDI 使用哪种许可证?

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

RDI 有任何外部依赖吗?

RDI 与其所有依赖项一起打包,但使用 IBM Db2 作为源时需要的两个依赖项除外:

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 核心,每秒可处理约 10,000 条记录(假设每条记录的大小约为 1KB)。此吞吐量可能会根据列数、数据转换次数和网络速度略有变化。通常,一个处理单元足以让 RDI 处理来自关系数据库的流量。

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

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

RDI 可以自动跟踪源数据库模式的变化吗?

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

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

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

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

RDI 将继续尝试将更改写入目标,并在必要时尝试重新连接到目标。当目标断开连接时,RDI 将继续从源数据库捕获更改事件并将其添加到暂存数据库中的流中。这种情况会一直持续到暂存数据库的空间不足以存储新事件为止。当 RDI 检测到这种情况时,它会应用“背压”机制以较低频率从源捕获数据,从而降低空间耗尽的风险。源数据库用于记录更改的系统可以保留更改数据至少几个小时,并且一旦目标连接恢复或暂存数据库有更多可用空间,RDI 就可以赶上更改。

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

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

给此页面评分
返回顶部 ↑