superset数据架构图
2024-08-22 10:23:13 14 举报
superset数据架构图
作者其他创作
大纲/内容
Superset 缓存原理流程图
Redis存储结果
Celery任务执行单元
发送任务请求
Superset服务
查询引擎
Redis 数据库
存储
Web 服务器: 基于 Flask 或其衍生框架,运行在 WSGI 服务器(如 Gunicorn 或 uWSGI)上。查询引擎: 通过 SQLAlchemy 进行数据源的查询,支持多种查询引擎(如 SQLAlchemy Core 或 ORM)。Celery: 处理异步任务,执行后台的长时间运行操作,例如复杂的查询任务和数据处理。认证与授权: 提供用户认证、权限管理等安全服务,确保数据的安全性和访问控制。数据缓存: 支持缓存策略,以减少对数据库的直接查询,配合Redis使用。
结束
Superset 接收到用户的查询请求后,将查询的 SQL 语句以及相关参数(如过滤条件、时间范围等)进行哈希处理,生成一个唯一的缓存 Key。这个 Key 用来标识该查询,并用于后续的缓存操作。
可视化展示
API数据源
执行任务存储结果
图表
数据缓存
看板
查询数据库
数据库数据集
获取数据源配置信息
监听任务队列
Celery异步任务
将结果与生成的缓存 Key 一起存储到Redis中。如果配置了缓存策略,如 TTL(生存时间)或其他缓存失效策略,这些策略会决定缓存的生命周期。
当用户请求数据时,系统首先检查 Redis 缓存,如果缓存命中则直接返回数据;如果缓存未命中,系统会查询相应的数据源(如 MySQL 或其他数据库),将查询结果存储到 Redis 缓存中,并返回数据给用户;如果启用了 Celery,未命中的查询任务会由 Celery 异步处理,Celery 从数据源获取数据并更新 Redis 缓存,然后通知用户获取结果。
Celery定时任务
从任务生产者创建需要异步执行的任务并将其发送到 Celery 中间件的任务队列开始,Celery Worker监听队列并执行任务逻辑,将结果存储在Redis中,最终任务消费者通过查询获取任务执行状态和结果,实现了完整的异步任务处理流程。
存储结果到Redis
API数据集
数据源
Web 服务器
数据探查器
Excel/CSV/JSON数据集
数据透视表
查询请求(查询SQL)
Celery 与 Redis 之间的工作流程图
Redis任务队列
SQL 查询
返回数据
SQL数据
确定数据库引擎
关联数据集
检查 Redis 缓存中是否存在该 Key
系统数据库
SQL 查询: Superset 提供了强大的 SQL 查询功能,用户可以编写和执行 SQL 查询来从数据源中提取数据。通过 SQL 查询,可以对数据进行筛选、聚合、排序等操作,实现数据转换的需求。数据探查器(Explore):在 Superset 的数据探查器中,用户可以通过图形化界面探索数据集,构建图表和可视化结果。数据探查器提供了多种图表类型和聚合函数,可以帮助用户快速分析数据并进行转换。图表构建器:Superset 的图表构建器功能允许用户创建各种类型的图表,如柱状图、折线图、散点图等。通过选择不同的字段、应用聚合函数和设置图表属性,可以对数据进行转换和可视化。数据切片和切块(Slicing and Dicing):Superset 支持数据切片和切块的功能,用户可以根据需要对数据进行切片和切块,以便更好地理解数据、发现模式和趋势。数据透视表(Pivot Table):Superset 提供了数据透视表功能,可以将数据按照不同的维度和度量进行透视,以便进行交叉分析和数据转换。
缓存命中
缓存未命中
生成查询key
Celery异步处理任务
返回缓存数据
数据转换
数据集
查询与处理
从 Redis 中获取缓存数据
...
Superset数据架构图
数据库
Superset 使用 SQLAlchemy 或其他数据库连接方式,向数据库发起查询请求
图表构建器
确定数据源
Celery
数据文件
数据切片和切块
SQL数据集
收藏
收藏
0 条评论
下一页