我有一个内置在Django的系统可以接收数据。我将数据存储如下:
id | sensor | message_id | value
----+--------+------------+-------
1 | A | 1 | xxx
2 | A | 2 | xxx
3 | A | 3 | xxx
4 | B | 1 | xxx
5 | B | 2 | xxx
6 | B | 4 | xxx
7 | B | 7 | xxx
我们期望每个传感器的message_id
在每个后续消息中增加一个。如您所见,传感器B的message_id为:1、2、4、7。这意味着传感器B丢失了编号为3、5和6的消息。在这种情况下,我们需要调查丢失的消息,特别是如果丢失了很多消息。所以我现在想要一种方法,当它发生的时候,知道这些丢失的消息。
所以我想检查一下在过去的五分钟内是否缺少一条消息。我希望输出如下所示:
传感器B在过去5分钟内缺少3条消息。缺少以下ID:3、5、6
我想到的最简单的方法是查询一个传感器的message_id,然后循环访问它们,检查是否跳过了任何数字。我想到了这样的事情:
five_minutes_ago = datetime.now() - timedelta(minutes=5)
queryset = MessageData.objects.filter(created__gt=five_minutes_ago).filter(sensor='B').order_by('message_id')
last_message_id = None
for md in queryset:
if last_message_id is None:
last_message_id = md.message_id
else:
if md.message_id != last_message_id + 1:
missing_messages = md.message_id - last_message_id - 1
print(f"{missing_messages} messages missing for sensor {md.sensor}")
但由于我有数百个传感器,这似乎不是最好的方法。甚至可以在SQL本身中实现,但我不知道有什么方法可以这样做。
有谁能给我一个如何有效地做到这一点的建议吗?
您可以尝试类似这样的东西,我已经为逻辑添加了上面的注释,如果有任何查询,请随意评论。
five_minutes_ago = datetime.now() - timedelta(minutes=5)
queryset = MessageData.objects.filter(created__gt=five_minutes_ago).filter(sensor='B').order_by('message_id')
# rows that should ideally be there if no message_id was missing, i.e. equal to last message_id
ideal_num_of_rows = queryset.last().message_id
# total number of message_id present
total_num_of_row_present = queryset.count()
# number of missing message_ids
num_of_missing_message_ids = ideal_num_of_rows - total_num_of_rows_present - 1
我试图创建一个简单的程序,从用户的名字,手机号码和电子邮件地址,然后把数据在Firebase实时数据库。 有3个输入框和一个按钮,按一下就可以完成上面的操作。代码如下: 我这样设置了消防基地:
问题内容: 有没有办法列出所有SQL Server CE数据库表索引,或者至少列出单个表? 问题答案: -检索有关数据库中包含的索引的信息。选择*从INFORMATION_SCHEMA.INDEXES -检索数据库中的所有表,包括系统表。选择*从INFORMATION_SCHEMA.TABLES Arjuna Chiththananda-检索SQL CE数据库的架构信息
所以我根据YouTube上的教程创建了一个房间数据库。我有两个栏day and likes,每个栏都有int.目前,我已经用三行数据手动填充了数据库。 下面是手动填充数据库的代码: 在我的Dao类中,我当前有Insert、Update、deleteAll和getall...方法。这里是道: } 现在,我要从Room数据库中检索基于当天的数据。所以我想要第6天的likes数,它是1。我想检索数据并将
我正在两个标记之间画一条路线,我想保存那条路线。为此,我将包含lat和lng的ArrayList保存在Firebase数据库中。但我在取回航路点时遇到了问题。我是这样插入的: 在检索数据时,我尝试执行以下操作:
我有一个Spring批处理程序,它从数据库中读取数据并处理它,并将(使用ItemWriter)插入到数据库中的其他表中。在这里,我使用了一系列针对ItemReader、Item处理机和ItemWriter的SQL查询。 我的要求是将所有这些查询存储在一个具有参数和值格式的表中,并通过一个数据库调用来检索它,然后将其传递给ItemReader或Item处理机或ItemrWriter。因此,如果将来查
firebase数据库最近的更新似乎有一些变化。我的项目在firebase\u数据库:^7.0.0版本下运行良好,但在firebase数据库的更新版本中,我无法更新项目代码。 以下是v7的工作版本 firebase\u数据库^9.0.12上的同一代码出现错误。我收到的错误在`(DataSnapShot snap)async{…}上错误是 无法将参数类型“Future Function(DataSn