大量的应用程序、日益增长的用户规模、不断扩展的技术需求,以及对即时响应的持续追求。想想这些是否正是你在经历的。也许你尝试过自己构建工具来应对这些需求,但是大量的编码和集成工作使你焦头烂额。那你是否知道,有这样一个工具可以帮助你实现从缓存中执行所有查询?
一、推出Redis数据集成(RDI)的背景
企业面临着大量的应用程序、日益增长的用户规模、不断扩展的技术需求,以及对即时响应的持续追求。Redis Enterprise提供对数据的实时访问,并且可以水平扩展,但是如何使 Redis 缓存与数据库保持一致,以便所有查询都可以从缓存执行?
有些组织决定自己承担,只是发现构建缓存预取(或有时称为提前刷新)非常困难。 他们需要自己构建一个可靠的流传输管道。首先捕获源数据库中发生的所有数据更改,然后将数据转换为 Redis 数据类型以允许应用程序获取它。此过程通常涉及数据转换和去规范化。他们需要集成多个组件(变更数据捕获 (Change Data Capture, CDC)、流式传输和 Redis 连接器)、编码转换、错误处理和许多其他企业基本要求,而这些用于工具构建的时间可以去做更有成效的工作。
在用户面临着种种问题的情况下, Redis 数据集成 (RDI) 的公开预览版在万众期待下诞生了。RDI 允许开发人员将数据库转移到 Redis Enterprise、镜像应用程序数据并以内存中的速度运行,而且不需要投入编码或集成工作。
二、进入Redis数据集成
Redis 数据集成(RDI) 是在 Redis Enterprise 内部运行的工具。它可以帮助用户近乎实时地将数据从现有关系数据库同步到 Redis,以便应用程序读取查询完全从关系数据库转移到 Redis。
数据转换过程
使用 Debezium 服务器提取
三、无代码数据过滤和转换
从源数据库捕获更改并将数据从一个地方传输到另一个地方已经很困难了。然而,流动数据还存在另一个挑战:转换部分,这意味着过滤数据并将数据映射到 Redis 数据模型。
1)RDI 提供了一个选项来指定每个源表所需的所有过滤和转换步骤。用 RDI 术语来说,这称为作业;每个作业都是一个 YAML 文件。
数据转换管道
RDI 无需编码即可完成过滤,而不需要开发人员编写自定义代码。开发人员可以使用SQL 表达式或Jmespath 函数的声明式过滤器。RDI 附带了额外的自定义 Jmespath 函数,以方便作业创建者使用。
RDI 包含一个跟踪工具,可帮助开发人员无需编写自定义代码,就可以创建复杂的数据管道并对其进行故障排除。这加快了流程并减少了所需的工作量和技能。 故障排除后,通过简单的部署命令即可修改管道,无需停机。
四、公开预览版中的附加功能:
至少保证一次交付
Debezium 服务器和 RDI 的高可用性
死信队列 (Dead Letter Queue, DLQ) 中的硬拒绝条目处理
支持的源数据库:Oracle、Postgres、MySQL、MariaDB、Percona XtraDB、Microsoft SQL Server 和 Cassandra(包括 DataStax DSE)
数据提取模式:初始快照和CDC(流更改)
声明式转换:过滤条件、Redis 键模式、更改字段名称、添加字段、删除字段、嵌套
支持的 Redis 数据类型:Hash、JSON、Set、Stream
开发人员工具:RDI 命令行界面脚手架和跟踪命令
操作员工具:RDI 命令行界面、Grafana 仪表板(通过 Prometheus 导出器进行指标)
五、什么情况下可以使用RDI ?
六、Redis数据集成(RDI)的发展
RDI的目前版本是公开预览,以相反方向集成 Redis 的功能正在研究中:将对 Redis 数据的更改应用到下游数据库。
七、如何开始使用 RDI?
RDI 目前仅适用于自我管理的 Redis Enterprise 集群。