写点什么

初识 inBuilder 内存计算模块 -- 业务数据同步

  • 2023-11-02
    山东
  • 本文字数:1522 字

    阅读完需:约 5 分钟

引言

各位同学大家好。

针对大数据量的存储、计算困难,一种热门解决方法是使用内存数据库。利用内存数据库自主研发内存高性能计算平台 v1.0,集成进 inBuilder 低代码平台。面向战略大客户可以提供 PB 级数据存储和计算能力。相较传统计算对于一般业务场景,inBuilder 内存计算平台可获得 10 倍以上性能提升。部分场景也可作为 Redis 上位替代品当公共缓存用。

按照数据用途划分,浪潮海岳内存计算框架分为“数据同步(包括数据初始同步+数据增量同步)”、“数据分布式计算”和“计算结果”写回三个步骤,本文章介绍的数据同步主要指前两种。按照同步效率划分,数据同步可以分为“基础数据 RRI 同步服务”和“业务数据高速抽取服务”,本文主要介绍后一种。

什么是内存计算

内存计算是一种以高速内存 ram 为重要介质,以强大内存性能为中心架构,提供高性能缓存并为各种类型应用加速的计算方式。相较于传统计算,内存计算具有高速、并行化、易于扩展、易于和各种技术集成等优势。

inBuilder 内存计算平台内置纯内存数据库,允许开发者通过简单配置,自由的切换存储介质,自行配置计算并行度,自行选择数据是否持久化。计算后的数据也可以根据场景按需写回到业务库中。由于核心计算过程完全在 RAM 中可以充分利用 cpu 所有核心,所以计算速度有硬件优势。此外,平台还完全兼容传统数据库语法。用户可以写标准 sql 语句做 CRUD,用户感知接近透明。

怎样同步业务数据

内存计算平台通过多个节点来完成并行计算,为使内存计算平台发挥高性能,建议将业务数据全部装载到内存库中。 inBuilder 使用了计算任务+二进制流拉取基础数据和业务数据,通过并行计算任务使拉取过程对用户完全透明,用户只需要定义目标表,数据分布方式等信息,数据会自动并行分布式的从业务库拉取到内存计算库中。

计算数据分区

每条数据都有一列定义为数据分布标识列,叫做‘并置列’或‘关键列’。内存计算平台会根据数据的并置值,哈希计算每条数据在内存数据库的正确位置,相当于把数据和内存节点做映射,每一个节点获得本节点应存存数据分区信息。

发布计算任务

根据节点个数生成对应数量的计算任务,每一个计算任务工作是根据以获得数据分区信息、访问业务数据库获得对应数据,然后根据每列数据类型生成具体的二进制列元数据。

数据转换层

内存计算平台同步数据使用流处理方式,并适当降低预写日志级别和开启直接 IO 功能使效率最大化。为了兼容内存数据库和传统数据库之间语法差异,内存计算对读取预存储列元数据信息,将业务库数据库类型映射到数据库实际类型,比如:

varchar/varchar2/nvarchar→varchardecimal/number/float→decimal
复制代码

经此数据转换可屏蔽数据库差异,用户无需关心源数据库类型。当数据库字段发生变化时,需要同步刷新刷新内存集群的元数据信息。

并行同步

经数据转化层后所有的源数据都被转化成内存库对应类型、用二进制对象构造器(BinaryObjectBuilder)封装的数据流(DataStream)。此时直接以 KV 方式插入,二进制器会代理插入封装的数据,并使用管道(pipe)保持连接和数据实时。根据网络连通情况和每个节点分配的数据量,为确保数据不造成接收端缓存溢出,对于一般项目单次插入粒度大小设置为 5000~10000 条/节点。性能更好机器可适当调高此值。不合适的插入粒度大小可能造成网络阻塞和各节点数据状态不一致。

总结

浪潮海岳 inBuilder 内存计算平台--数据同步框架不依赖用户客户机,整个同步过程在服务器端完成,具有:同步快、防丢失、可重传、业务不停机等优点,通过和消息队列结合可完全保证数据可靠性、一致性,用户透明体验。

本文为入门初识,主要介绍底层数据同步基本原理,后续章节,会介绍数据重传机制、数据一致性检查等功能,大家可持续关注。

最后安利inBuilder低代码平台开源社区版,免费下载试用,欢迎体验。

用户头像

还未添加个人签名 2023-03-07 加入

塑造企业一体化研发新范式

评论

发布
暂无评论
初识inBuilder内存计算模块--业务数据同步_数据库_inBuilder低代码平台_InfoQ写作社区