Redis数据源

简介 #

SmartChart 支持将 Redis 作为数据源,通过 key 名称直接从 Redis 读取数据。这种方式特别适合展示由外部系统(如 Spark、爬虫)实时计算并写入 Redis 的指标数据,实现真正的实时可视化。数据格式支持 JSON 对象(字典)和 JSON 二维数组(表格)。


应用场景 #

你可能会有这样的一些需求, 展示数据是要通过外部的程序计算好,如一些实时的计算场景,用spark计算好的数据 或爬虫爬取的数据, 然后写入redis或nosql的数据库,最后由前端图形直接展示或数据下载,SmartChart支持这一块的应用

使用方法 #

你可以创建一个redis的连接池, 然后按照通用的方法建立数据集 不同的是, 数据集的SQL区不再是写sql代码, 而只需要写redis中的keyname

如redis中存储的数据是keyname 为 “指标A”, 数据 ‘{“长沙”:1,“上海”:2}’ 这样我们只需要在数据集中写上

指标A

即可, 最后你会得到{“长沙”:1,“上海”:2}的返回结果

如果你需要的是表格格式, 那么你只需要往redis中存入一个二维数组, 比如: [[“省份”,“数量”],[“长沙”,1],[“上海”,2]]

注意数据存入redis为字符串格式,你可使用python的json.dumps来生成字符串格式存入

当然我们也支持同一个数据中获取多个keyname #

比如还有一个"指标B", 数据是'12345' 我们可以同时写上两个指标,用分号隔开:

指标A;指标B

最后你会得到的结果是: { “指标A”:{“长沙”:1,“上海”:2}, “指标B”:12345 }

Redis 数据格式说明 #

存储格式 示例 图形端获取方式
JSON 字典 '{"长沙":1,"上海":2}' let dataset = __dataset__; 直接使用
JSON 二维数组(表格) '[["省份","数量"],["长沙",1]]' 标准 SmartChart 二维数组格式
多个 key(分号分隔) 指标A;指标B 返回字典 {指标A: ..., 指标B: ...}

注意:写入 Redis 时数据必须是字符串格式,Python 中用 json.dumps(data) 转换后再存入。