InfluxDB和小学科学博览会
作者:Scott Anderson / 产品,用例,开发者
2022年5月16日
导航至
我是一个自豪的父亲,我有一个极其聪明、有才华、善良、整体上都很棒的9岁女儿。自从她开始说话以来,她就是一个“提问者”,对周围的世界以及一切如何相连充满好奇(你知道的,那个整个电影都在提问的孩子……是的,就是她)。随着年龄的增长,她对问题的热爱和寻求答案的需要使她倾向于数学和科学,她在这两方面都表现出色。
每年她的学校都会举办一次科学博览会,她一如既往地全情投入。经过一些头脑风暴和研究,她想知道,“玩电子游戏会影响血压吗?”她的假设是,由于玩游戏的兴奋和/或压力,血压在玩游戏时会升高。为了测试她的假设,她做了以下事情
- 收集测试对象(幸运的是,我们有一个家庭晚餐,提供了不同年龄段愿意参与的参与者)。
- 在玩游戏之前测量并记录每个测试对象的血压。
- 让每个测试对象玩7分钟的马里奥赛车8(大约两场比赛)。
- 在玩游戏之后测量并记录每个测试对象的血压。
- 记录每个测试对象的年龄和性别。
我应该插一句,我和我的妻子支持女儿做任何她想做的事情,但工作是她自己的责任。我们只是提供帮助。我的女儿提出了她的假设,设计了实验,列出了她需要的物资清单,然后进行了实验。她非常棒。
收集完数据后,她知道她想要回答哪些问题,但不确定最佳的方法来找到答案。这时,数据狂热者父亲(我)介入了
“我觉得我可以帮这个忙。”
我每天都要与InfluxDB合作,所以我知道这类数据是InfluxDB擅长处理的数据。所以我们做了以下事情
将结果转换为行协议
我们首先将女儿手写的实验结果转换为行协议。我们将数据存储在bloodpressure
测量中,包括name
和age
标签,并包括收缩压(sys
)和舒张压(dia
)字段。
每个测试都有两行行协议;一行用于初始血压读数,另一行用于最终血压读数。时间戳是任意的,但我们希望所有测试对齐,所以我们为所有测试使用相同的初始和最终时间戳。以下是一个单个测试结果在行协议中的样子
bloodpressure,name=Bob,age=32,sex=m sys=132,dia=80 1651003231
bloodpressure,name=Bob,age=32,sex=m sys=120,dia=70 1651003221
编写查询来回答问题
与任何数据分析一样,你首先需要回答的问题来了解如何适当地查询数据。以下是我女儿想要回答的问题
- 总体上,血压的平均变化是多少?
- 性别重要吗?
- 年龄重要吗?
因此,我开始构建一些查询,同时,我还构建了一个仪表板来可视化她的结果。
我构建了显示平均起始和结束血压之间变化的折线图单元格,以及显示平均收缩压和舒张压变化数值的单一统计单元格。我为性别组和年龄组做了同样的事情。构建仪表板的第一版大约花了20分钟。
这时,我女儿看了看仪表板,说:“数字的变化很难理解。我们能做成百分比变化吗?”
我,骄傲地膨胀:“当然可以。”
大约10分钟后,所有的单一统计单元格都更新为报告百分比变化,而不是仅仅数学差异。我们的最终仪表板看起来是这样的
她问我们能否只在她的项目板上使用仪表板,所以我们把仪表板设置为演示模式,切换浅色模式(以节省打印机墨水),打印仪表板为瓷砖,把它们全部粘在一起,然后粘到她的项目板上。这就是结果
她的发现
尽管实验的样本量不足以得出任何具体的结论,但我女儿观察到了一些有趣的结果
- 总体而言,血压平均下降了约2%。
- 血压下降在男性中比在女性中更高。女性收缩压几乎没有变化,但舒张压略有增加。
- 18岁以下的测试对象血压几乎没有变化,而19-30岁的测试对象血压变化最显著。
结果
这是一个有趣的实验,我的女儿尝到了使用InfluxDB更好地理解她收集的数据的方法。而且,她赢得了她的年龄组!
不管有没有蓝带,我非常为她感到骄傲。我女儿不断提问的需求和对学习的热爱将使她在生活中走得很远。我迫不及待地想看看她能走多远,很高兴能让她接触到我每天都要使用的强大工具集。