当前位置: 首页 > news >正文

IoTSharp + SonnetDB 多模型 Profile:关系、时序、缓存、对象桶与搜索怎么组合

IoTSharp 的数据底座不是一种数据。主数据通常走 EF Core 关系库,遥测走时序库,缓存走 Redis/LiteDB/InMemory,对象走 BlobStorage/S3,搜索又可能需要全文或向量。SonnetDB 最近的多模型路线,就是在这些能力之间提供一个可选的本地化 Profile。

这不是说所有场景都必须把 PostgreSQL、Redis、S3、搜索服务一次性替掉。更合理的方式是:边缘、小规模私有化、PoC、离线交付可以优先用 SonnetDB 收敛部署;大规模云端仍保留外部 PostgreSQL、Redis、S3 和专业搜索服务作为并列后端。

一个应用里的几类数据

using SonnetDB.Engine;
using SonnetDB.Sql;using var db = Tsdb.Open(new TsdbOptions
{RootDirectory = "data/iotsharp-profile"
});SqlExecutor.Execute(db, """CREATE TABLE devices (id STRING,tenant STRING,name STRING,PRIMARY KEY (id))""");SqlExecutor.Execute(db, """CREATE MEASUREMENT telemetry (device_id TAG,key TAG,value FIELD FLOAT)""");SqlExecutor.Execute(db, """CREATE DOCUMENT COLLECTION device_docs""");

关系表放设备维度,measurement 放遥测,document collection 放设备文档或资产扩展属性。它们可以分别增长,也可以在查询时关联。

对象桶放附件和固件

using System.Text;
using SonnetDB.Data.ObjectStorage;using var objects = new SndbObjectStorageClient("Data Source=data/iotsharp-profile");await objects.CreateBucketAsync("iotsharp-attachments", "device attachments");await using var content = new MemoryStream(Encoding.UTF8.GetBytes("inspection report"));
await objects.PutObjectAsync("iotsharp-attachments","devices/pump-1/report.txt",content,"text/plain");

嵌入式连接字符串使用本地目录,远程连接字符串可以换成:

Data Source=sonnetdb+http://127.0.0.1:5080/iotsharp;Token=...;Timeout=30

全文和向量增强

给设备文档创建全文索引:

SqlExecutor.Execute(db, """CREATE FULLTEXT INDEX ft_device_docsON device_docs ('$.name', '$.description')USING unicode""");

给事件向量创建 measurement:

SqlExecutor.Execute(db, """CREATE MEASUREMENT incident_vectors (device_id TAG,embedding FIELD VECTOR(3))""");

然后就可以做设备文档搜索、故障相似度、知识库推荐和租户过滤。

该怎么定位这个 Profile

对 IoTSharp 来说,SonnetDB Profile 的第一价值是“部署收敛”:

  • 本地演示不需要拉起一堆服务。
  • 私有化交付可以减少外部依赖。
  • 边缘现场能在断网时继续写入、查询和审计。
  • 对象、文档、搜索、遥测有统一备份和迁移路径。

但生产边界也要诚实:

  • 大规模多租户云平台仍可能继续使用 PostgreSQL/Redis/外部 S3。
  • 缓存语义、对象桶配额、迁移双写和长稳压测需要按版本逐步验收。
  • 向量和全文索引是可重建派生数据,主数据仍要保留在 measurement/document collection 里。

这种定位最适合工程团队:先把能收敛的收敛,把不能假装的边界写清楚,然后一点点把 Profile 做成可靠选项。


官网地址:https://sonnetdb.com

技术文章站:https://iotpaper.net

开源仓库:https://github.com/IoTSharp/SonnetDB

http://www.jsqmd.com/news/1014718/

相关文章:

  • 开发记录14_让故事可以重现_缓存固化与ObjectBox数据迁移
  • 猫抓Cat-Catch:浏览器资源嗅探的终极指南,轻松捕获任何在线媒体
  • 2026年继电器/I-O扩展单元优选榜单:高精度工业控制与稳定耐用之选 - 品牌发掘
  • 告别百度PaddleSpeech安装噩梦:用SpeechRecognition+vosk模型5分钟搞定中文语音识别
  • 佛山市黄金回收三家门店实地探店综合测评 - 靖昱黄金回收
  • 深入解析JTAG边界扫描测试:从IEEE 1149.1标准到MPC8260实战应用
  • 终极Citra 3DS模拟器指南:在电脑上重温掌机经典游戏
  • 开发记录15_从编译开关到运行时设置_端侧AI能力配置
  • Sunshine游戏串流完整指南:从零搭建个人云游戏平台终极教程
  • 2026年记录仪厂家推荐榜单:无纸记录仪/有纸记录仪/智能记录仪/工业记录仪/温度压力监测记录仪精选品牌 - 品牌发掘
  • Java毕设项目:基于 Web 架构的数学试卷自动生成系统的设计与实现 校园数学教学题库组卷 Web 系统 (源码+文档,讲解、调试运行,定制等)
  • 深圳市黄金回收三家门店实地探店综合测评 - 靖昱黄金回收
  • HS2-HF Patch:如何为Honey Select 2实现专业级汉化、去码与插件集成
  • AlienFX Tools:如何用500KB工具替代臃肿的Alienware控制中心
  • 5分钟搞定!IwaraDownloadTool终极教程:免费批量下载Iwara视频的完整指南
  • 2026荆州住宅精装公司名录:3家实力企业的硬核参数对比 - 互联网科技品牌测评
  • 深度剖析ok-ww鸣潮自动化框架:基于图像识别的slient游戏操作引擎
  • 什么是PowerShell?Windows自带的“超级命令行”全面介绍
  • 6%AFFF/AR抗溶性水成膜消防泡沫液前十榜单汇总,浙江金瑞恒在精细化工园区应用广泛 - 品牌速递
  • 什么是AI辅助编程?一文详解
  • 如何用3行命令搞定M3U8视频下载:终极完整教程
  • 独立开发者的 3D 资产生成:一套轻量级工作流实战
  • NSK NH20GM 直线导轨技术指南
  • 3%AFFF/AR抗溶性水成膜泡沫灭火剂前十榜单揭秘,浙江金瑞恒在石英砂行业广受好评 - 品牌速递
  • 从MATLAB代码到故障诊断:手把手教你分析风机CMS振动数据(附完整脚本)
  • 2026年管道泵十大口碑品牌推荐:辽阳立式管道泵/静音防爆/地暖热水增压循环泵技术解析 - 品牌发掘
  • 联想拯救者工具箱深度解析:10个提升游戏本性能的核心技巧
  • 终极指南:用KKManager轻松管理Illusion游戏模组,告别混乱安装
  • Onekey完整教程:如何一键解锁Steam游戏DLC内容
  • 构建高性能Windows Syslog服务器:架构设计与技术实现深度解析