![](/img/trans.png)
[英]Query data from another table referenced by a foreign key with Sequelize and Postgres
[英]Postgres copy data from one table to another periodically by applying crosstab
考慮我有一個網絡應用程序,其中我顯示來自傳感器數據傳感器的當前數據值。 假設我們有 2 個傳感器,傳感器 A 和傳感器 B,ids 值分別為 1,2 假設我們有 2 個標簽,每個標簽有溫度和濕度。
我已經配置了一個 Nodejs 應用程序,以每 500 毫秒從傳感器中提取數據,並將數據推送到 postgres 表“data_live”中,如下所示。
sensor_id |tag |value
----------+-------------+------------
1|temperature |0.006817675
1|humidity |0.002902401
2|temperature |33
2|humidity |28
筆記。 在這里,在“data_live”表中,我們只保留每台機器/標簽的當前值,所以每次推送更新時,我們都會對數據庫進行更新操作。
我想使用下表中名為“data_ts”的時間尺度擴展以時間序列方式記錄歷史。
time |machine_id|temperature|humidity
-----------------------------+----------+-----------+--------
2022-04-09 14:19:01.000 +0530| 1| 20.2| 55.3
2022-04-09 14:19:01.000 +0530| 2| 19.7| 50.1
2022-04-09 14:19:02.000 +0530| 1| 20.3| 55.4
2022-04-09 14:19:02.000 +0530| 2| 19.6| 50.0
我正在考慮使用基於 cron 的調度程序定期運行腳本以執行以下步驟:
這種方法的限制是我不能每 500 毫秒執行一次 cron 調度程序。 傳感器可以達到 100+,標簽可以達到 50+,所以我們還必須考慮規模。
誰能在這里給我建議解決方案? 如果您需要更多信息,請告訴我。 提前致謝。
如果你希望解決方案在 PG 中是自包含的,cron 選項是有效的。 但是,由於您稱之為規模問題,我建議您也開始考慮數據保留。 例如,您希望將數據保留多長時間,並有另一個定期清理舊條目的作業。
如果您想擴展技術視野,有許多替代解決方案,其中一些已由@webdev_jj 的評論確定
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.