在 2020 年加利福尼亚州的野火期间,我和数百万人一样,一直在查看 PurpleAir 网站以监测空气质量。 除了寻找干净的空气来呼吸,我很好奇 PurpleAir 如何聚合来自其传感器的数据,并且很高兴发现它有一个 API 可以访问其数据。 这似乎是一个展示 Redis 作为使用 Kubernetes 部署的数据库的强大功能的绝佳机会。
过去,我的一些研究侧重于在 Web 上公开地理空间数据。 对于这个项目,我用两个新的指导原则重新诠释了这项工作:(1)使用 Redis 的地理空间特性来分割数据,以及(2)在 Kubernetes 上部署整个应用程序。 我想展示使用 Kubernetes 和 Redis Enterprise Kubernetes 运营商,管理数据收集、摄取和查询的 DevOps 挑战会变得更容易。
我选择使用我的 论文研究 中的一种方法,称为 PAN(分区、注释和命名),以生成按固有方面(例如,日期/时间、地理空间坐标等)组织的数据分区。 Redis 提供了完美的构建块,可以将这种方法应用于 PurpleAir 收集的空气质量传感器数据。 我使用的技术将感兴趣的地理空间区域(阴影多边形)映射到数据分区(框)。 然后,您可以通过其元数据检索和导航这些分区,并且可以选择您感兴趣的时间跨度内的分区。
我能够快速生成一个工作应用程序,该应用程序收集数据并提供颜色编码地图上 AQI(空气质量指数)测量的简单插值。 该图像是使用 2020 年 8 月 28 日的传感器数据生成的
进一步推进这项工作需要在可靠的方式下使所有部件都可操作,而这正是 Kubernetes 变得至关重要的地方。 Kubernetes 可以轻松地描述和部署数据收集、摄取、Redis 数据库和 Web 应用程序,作为可由集群管理的可独立扩展的组件
我受邀在 Data on Kubernetes 社区聚会上讨论此应用程序。 我介绍了我过去对 Web 上科学数据表示的研究,以及关键机制是如何对数据表示进行分区、注释和命名。 我展示了如何使用 Python、Redis 和 Kubernetes 部署来实现这一点,以收集、存储和使用空气质量数据。 您可以观看我的完整演示并在下面的视频和播客中了解更多信息(以及在此处查看我的演示幻灯片)。