Air IoT Analytics Platform

Avatar of 蔡智鈞.
Avatar of 蔡智鈞.

Air IoT Analytics Platform

Big data, AI, Blockchain
Taipei City, Taiwan

註解:

虛線代表高可用性(HA)架構/多節點端口。

長方形(無圓弧)物件代表自行開發專案,其餘為開源專案。

NGINX: 作為此專案的附載平衡器,採用round-robin作為IoT-Endpoint服務附載平衡策略,ip-hash作為Visualization服務策略(具備Websocket端口),接合開源的VTS模組,以利監控不同Domain的封包處理狀態。

IoT-Endpoint: 由Nodejs建構之API服務,負責接收IoT裝置上傳數據,並寫入Kafka服務。

Bot-Listener: 由Nodejs建構之Webhook服務,負責接收來自Line和Telegram通訊軟體服務商的訊息,並寫入Kafka服務。

Calibrator: 由Nodejs建構之Consumer服務,負責透過客製化回歸參數或結合Onnx格式和訓練完備之XGBoost模型校正感測器量測數據。

Sinker: 由Nodejs建構之Consumer服務,負責將感測器量測數據批次寫入PostgreSQL和clickhouse。

Automation-Worker: 由Python建構之Consumer服務,結合Pandas、Matplotlib、Selenium等開源套件以及Grafana,繪製商業需求之各類圖表與報告,並將結果存入MinIO保存。

Alerting: 由Nodejs建構之Consumer服務,負責將預警訊息或是商業報告圖表,透過Line和Telegram通訊軟體服務商發送至目標用戶。

Kafka: 採用3節點zookeeper/Kafka架構,內部節點間通訊採用PLAINTEXT協議,外部客戶端之間則採用SASL_PLAINTEXT協議,由於平台收集之數據無隱私問題,且考量加密通訊所帶來的延遲,故無採用SSL加密。Consumers的監控則採用由Linkedin開源之Burrow專案進行量測狀態數據採集,結合Apache Airflow來執行檢測與通報任務。

PostgreSQL: 採用primary/standby架構,使用streaming replication作為備份模式,結合timescale專案來提升數據查詢效能。

Clickhouse: 運用Distributed和ReplicatedMergeTree Engine來實作HA架構。此外,採用AggregatingMergeTree來完成感測器量測數據的實時聚合任務。

MinIO: 使檔案管理上可透過S3 API來執行,確保微服務間能保持stateless狀態,也能自動移除過期之商業報告。

Visualization: 使用leaflet作為GIS互動式視覺化框架,Bootstrap作為排版和元件美化框架,EChart作為主要圖表視覺化工具,Tabulator則是作為表格數據管理的主要工具。

1.帶領團隊透過Docker建構大數據分析平台,並且達到99%可用性與低於10秒的數據查詢時間。 2.規劃資料庫無縫遷移計畫(MariaDB>PostgreSQL+Timescale),解決資料量達到80M時遭遇的查詢效能瓶頸。 3.建構環境領域專用的GIS和圖表分析工具,協助客戶成為公共民生物聯網最大的空品計畫承包商,裝置維運數量擴大至3500台。 4.整合Clickhouse解決方案,緩解資料量達到3B時遭遇的查詢效能瓶頸。 5.重構微服務為Pub/Sub架構,降低60%的雲端計算費用並提供無縫整合開源專案的彈性。 6.運用AI模型開發環境異常預警,輔助台中市政府智慧稽查,更獲得"Smart 50 Awards"。
Avatar of the user.
Please login to comment.

Published: Jun 24th 2023
68
5
0

Tools

postgresql
PostgreSQL
nodejs
Node.js

MinIO
Airflow
Kafka

Share