Python 物联网之用于基于 TinyFlux的物联网和分析应用程序的微型时间序列数据库

虽然数据集的形状和大小几乎是无限的,但数据存储却不能这样说。当然——任何伟大的软件都应该能够处理从小到大的一系列用例,但是在简单的文本文件和笨重的独立数据库服务器之间,缺乏在用户中查询和存储数据的选项——友好的方式。
然而,Markus Siemens 的 TinyDB在 Python 生态系统中为类文档数据集出色地占据了这一利基市场。TinyDB 是一个轻量级的开源 Python 包,它提供了面向文档的数据存储的 API 和功能,以及平面、人类可读文件的简单性。如果您的数据集可以表示为键/值对,并且您不会以分布式方式处理千兆字节的数据,那么 TinyDB 是一个出色的包,您可以在几秒钟内将其作为真正的数据库集成到 Python 工作流程中。
TinyDB 的最大优势之一(也是最大的限制之一)是它在大多数用例中都由 JSON 文件格式支持。人类可读性、跨平台互操作性以及类似于 Python 的字典对象都是 JSON 的巨大优势,但部分是由于它的语法规则(需要括起来的括号、大括号……)、文件——以及通过代理,数据库——如果不将整个数据库重复读入内存,就无法追加,这使得写入操作的成本越来越高。
作为一名经常处理 IoT 传感器数据的软件工程师(以及一个只处理 IoT 传感器数据的业余爱好者 Arduino 程序员),我经常需要处理时间戳以及执行高频写入。这些是时间序列数据的核心特性,虽然 TinyDB 是通用的,但它不是为这种数据集设计的——其中键是时间戳,观察必须排序