使用Apache NiFi物化MySQL热数据到Ignite实现即时查询

2020-11-23 10:49:23 浏览数 (1)

0 前言

此次使用 Apache NiFi 将 MySQL 热数据物化到 Ignite ,实现即时查询.

Apache NiFi 是高效,可拓展的数据流管理工具.

Ignite 是一个以内存为中心的数据平台,具有数据强一致、高可用、支持标准SQL的特性。

1 应用场景

背景:随着数据库内数据量越来越大,关联查询对业务库 MySQL 造成巨大压力,也影响了用户体验,例如单表1亿数据的sql关联查询耗时将在40分钟以上.

当前方案亮点:重新改变数据查询逻辑,引入内存数据库作为缓冲层,完成秒级SQL查询。

2 技术选型

2.1 内存数据库

Ignite 是一个以内存为中心的数据平台,具有数据强一致、高可用、支持标准SQL的特性。

2.2 物化实现和调度

Apache NiFi 是高效,可拓展的数据流管理工具.

当前场景内,NiFi用于实现如下功能

  1. 调度,定期执行物化
  2. 物化前的业务逻辑,如 清空内存数据库内的指定表
  3. 从 MySQL 查询数据,并写入 Ignite

3 详细实现

https://hostenwang.github.io/images/from-mysql-materialized-data-to-ignite/arch.jpg

4 当前方案优势

  1. 内存计算,性能很高
  2. 自动化.设定定时后自动完成物化.

5 当前版本存在的不足及解决方法

  1. ignite 国内活跃度不高,资料少
  2. nifi 用好需要学习

6 未来规划

  1. 提高物化速度.可以使用 ignite 原生方法加载数据
  2. ignite 查询还有优化空间

0 人点赞