ITPub博客

首页 > 数据库 > NoSQL > 虹科干货 | 什么是Redis数据集成(RDI)?

虹科干货 | 什么是Redis数据集成(RDI)?

原创 NoSQL 作者:虹科云科技 时间:2023-09-04 18:08:37 0 删除 编辑

大量的应用程序、日益增长的用户规模、不断扩展的技术需求,以及对即时响应的持续追求。 想想这些是否正是你在经历的。也许你尝试过自己构建工具来应对这些需求,但是大量的编码和集成工作使你焦头烂额。那你是否知道,有这样一个工具可以帮助你实现 从缓存 中 执行所有查询?


一、 推出 Redis 数据集成( RDI )的背景

企业面临着 大量的应用程序、 日益增长的用户规模、不断扩展的技术需求,以及对即时响应的持续追求。 Redis Enterprise 提供对数据的实时访问,并且可以水平扩展,但是如何使 Redis 缓存与数据库保持一致,以便所有查询都可以从缓存执行?

有些 组织决定自己承担 , 只是发现构建缓存预取(或有时称为提前刷新) 非常 困难 。 他们 需要 自己 构建一个可靠的流传输管道。首先捕获源数据库中发生的所有数据更改,然后将数据转换为 Redis 数据类型以允许应用程序获取它。此过程通常涉及数据转换和 去 规范化。 他们 需要集成多个组件(变更数据捕获 (Change Data Capture , CDC)、流式传输和 Redis 连接器)、编码转换、错误处理和许多其他企业基本要求 , 而这些用于 工具构建 的 时间可以 去做 更有成效的工作。 

在用户面临着种种问题的情况下,  Redis 数据集成 (RDI) 的 公开 预览版 在万众期待下诞生了 。RDI 允许开发人员将数据库 转移 到 Redis Enterprise、镜像应用程序数据并以内存中的速度运行 , 而且不需要 投入 编码或集成工作。


二、 进入Redis 数据集成

Redis 数据集成(RDI)   是在 Redis Enterprise 内部运行的工具。它可以帮助 用户 近乎实时地将数据从现有关系数据库同步到 Redis,以便应用程序读取查询完全从关系数据库 转移 到 Redis。  

 

数据转换过程

l  RDI 管道有两个阶段:

·  捕获数据库更改并将其流式传输到 RDI 转换 任务 中

·  使用声明性指令对数据进行转换和 去 规范化,然后将其写入目标Redis 缓存

l  数据转换过程 :

·  Debezium是一个 开源  CDC 平台,捕获源数据库中数据的更改并将其流式传输到 RDI。在 Redis   内,数据可以被进一步过滤、转换并映射到一个或多个 Redis 键。RDI 支持多种Redis 数据类型(Hash、JSON、Set 和 Stream)。RDI 将数据写入目标 Redis 数据库。它承担了繁重的工作,因此开发人员可以专注于应用程序代码,而不是集成琐事和数据转换代码。

·  RDI可以与其他CDC工具和数据 流 连接 , 借助 这样的 集成解决方案,开发人员可以使用 RDI 作为 核心 ,以简单的方式将各种数据库的更改流式传输到 Redis Enterprise 和其他数据平台。

使用 Debezium 服务器 提取

三、 无代码数据过滤和转换

从源数据库捕获更改并将数据从一个地方 传输 到另一个地方已经 很 困难了。然而, 流动 数据还存在另一个挑战:转换部分,这意味着过滤数据并将数据映射到 Redis 数据模型。

1 ) RDI 提供了一个选项来指定每个源表所需的所有过滤和转换步骤。用 RDI 术语来说 , 这称为 作业 ;每个作业都是一个 YAML 文件。          

数据转换管道

l  过滤 :

RDI 无需编码即可完成 过滤,而不需要开发人员编写自定义代码 。 开发人员可以 使用SQL 表达式或Jmespath 函数的声明式过滤器。RDI 附带了额外的自定义 Jmespath 函数,以方便 作业 创建者 使用 。

l  RDI 有几个级别的数据转换:

·  基本转换 :这是由 RDI 引擎自动完成的 。

·  结构化 :RDI 引擎有一种默认的结构方式,可以通过无代码转换的功能将其构造为哈希 或JSON 。您可以选择转 换键和字段,甚至重新计算这些字段中的值 。

·  去 规范化 :RDI 将源 数据 转换为 JSON 文档,其中文档中的父级详细信息被转换为 JSON 对象的映射 。

l  故障排除:

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之间的数据映射需要一些数据操作 。


六、 Redis 数据集成( RDI )的发展

RDI 的目前版本是 公开预览 , 以相反方向集成 Redis 的功能 正在研究中 :将对 Redis 数据的更改应用到下游数据库。

·  Write-behind :CDC 源是 用户 的 Redis 数据库, 用户 的目标是下游关系数据库或 NoSQL 数据库。此流程将让 用户 享受 Redis Enterprise 的实时写入和读取速度,同时保留应用程序生态系统和下游服务。

·  Write-through :对 Redis 的每次写入也会应用于 关系 数据库。 

·  通读 :如果发生缓存未命中,RDI 会自动从下游数据库获取丢失的数据,并将其作为键写回 Redis,以便将其返回给请求的应用程序。


七、 如何开始 使用 RDI ?

RDI 目前仅适用于自我管理的 Redis Enterprise 集群。

l  如果您是 Redis Enterprise 的现有客户,请下载 RDI CLI 软件包并按照快速入门指南中的步骤操作。安装指南将引导您完成 Debezium 服务器的安装和配置。运行一些 RDI CLI 命令后,您的管道 会 将数据从源数据库 转移 到 Redis。 

l  如果您不是 Redis  Enterprise 的现有客户,则需要首先安装适用于 Kubernetes   的 Redis Enterprise Software。然后下载 RDI CLI 软件包并按照快速入门指南中的步骤操作。

 

 

 

 

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70026953/viewspace-2980780/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
公众号(ID:艾体宝IT):分享数据存储、网络安全等相关的产品信息、解决方案、应用案例及行业信息,如Redis、ArangoDB、ONEKEY、Lepide等!艾体宝IT官网:https://www.itbigtec.com/ 联系我们:18483658974(同微信)

注册时间:2023-02-21

  • 博文量
    208
  • 访问量
    214682