Apache IoTDB C# 原生接口保姆级教程:从环境搭建到全接口实战

张开发
2026/5/5 6:06:42 15 分钟阅读
Apache IoTDB C# 原生接口保姆级教程:从环境搭建到全接口实战
Apache IoTDB C# 原生接口保姆级教程从环境搭建到全接口实战大家好最近很多做物联网、时序数据的朋友问我C# 项目怎么对接 Apache IoTDB今天就把完整流程、代码示例、接口说明一次性讲透照着做就能跑通。一、先看环境要求用 C# 原生客户端之前先把环境配好.NET SDK ≥ 5.0 或 .NET Framework 4.xThrift ≥ 0.14.1NLog ≥ 4.7.9版本不匹配很容易报奇怪的异常建议直接按上面的标准来。二、NuGet 依赖安装超简单安装客户端用 NuGet 包管理器或 .NET CLI 都行我直接给你最常用的命令。1. 安装最新版如果你用的是 .NET 5.0 及以上一行命令搞定dotnetaddpackage Apache.IoTDB2. 安装指定旧版本比如要装 0.12.1.2 版本dotnetaddpackage Apache.IoTDB--version0.12.1.2这里有个关键提醒千万别用高版本客户端去连低版本服务端大概率连不上、报参数错误、数据异常一定要版本对应。三、快速入门完整可运行示例直接给你一套复制就能跑的代码包含连接、建时间序列、Record 写入、Tablet 写入、关闭连接。// 参数配置stringhostlocalhost;intport6667;intpool_size2;// 初始化连接池varsession_poolnewSessionPool(host,port,pool_size);// 打开会话awaitsession_pool.Open(false);// 创建时间序列awaitsession_pool.CreateTimeSeries(root.test_group.test_device.ts1,TSDataType.TEXT,TSEncoding.PLAIN,Compressor.UNCOMPRESSED);awaitsession_pool.CreateTimeSeries(root.test_group.test_device.ts2,TSDataType.BOOLEAN,TSEncoding.PLAIN,Compressor.UNCOMPRESSED);awaitsession_pool.CreateTimeSeries(root.test_group.test_device.ts3,TSDataType.INT32,TSEncoding.PLAIN,Compressor.UNCOMPRESSED);// --------------- Record 单行写入 ---------------varmeasuresnewListstring{ts1,ts2,ts3};varvaluesnewListobject{test_text,true,(int)123};vartimestamp1;varrowRecordnewRowRecord(timestamp,values,measures);awaitsession_pool.InsertRecordAsync(root.test_group.test_device,rowRecord);// --------------- Tablet 批量写入 ---------------vartimestamp_lstnewListlong{timestamp1};varvalue_lstnewListobject{iotdb,true,(int)12};vartabletnewTablet(root.test_group.test_device,measures,value_lst,timestamp_lst);awaitsession_pool.InsertTabletAsync(tablet);// 关闭会话awaitsession_pool.Close();把这段代码放进你的异步方法里直接运行就能看到效果。四、全量接口详细说明开发必备IoTDB C# 客户端核心就是SessionPool 连接池支持并发、线程安全pool_size1 时等价于单 Session项目里优先用 SessionPool 就对了。下面按功能分类把常用接口一次性列全。4.1 基础接口方法名参数作用示例Openbool打开会话session_pool.Open(false)Closenull关闭会话session_pool.Close()IsOpennull查看会话状态session_pool.IsOpen()OpenDebugModeLoggingConfiguration开启调试session_pool.OpenDebugMode()CloseDebugModenull关闭调试session_pool.CloseDebugMode()SetTimeZonestring设置时区session_pool.SetTimeZone(“08:00”)GetTimeZonenull获取时区session_pool.GetTimeZone()4.2 元数据接口主要用来管理存储组、时间序列方法名参数作用示例SetStorageGroupstring创建存储组session_pool.SetStorageGroup(“root.test_group”)CreateTimeSeries路径类型编码压缩创建单条时序CreateTimeSeries(…)CreateMultiTimeSeriesAsync多个列表批量创建时序CreateMultiTimeSeriesAsync(…)CheckTimeSeriesExistsAsync路径判断时序是否存在CheckTimeSeriesExistsAsync(path)4.3 写入接口重点C# 客户端支持Record和Tablet两种写入方式适用场景不一样4.3.1 RowRecord适合单行写入构造方式varrowRecordnewRowRecord(时间戳,值列表,测量点列表);常用方法InsertRecordAsync单条记录写入InsertRecordsAsync多条记录写入InsertRecordsOfOneDeviceAsync同一设备批量写入InsertRecordsOfOneDeviceSortedAsync有序批量写入TestInsertXXXAsync测试写入不真正落库4.3.2 Tablet适合批量块写入构造方式vartabletnewTablet(设备ID,测量点列表,值二维列表,时间戳列表);常用方法InsertTabletAsync单 Tablet 写入InsertTabletsAsync批量 Tablet 写入TestInsertTabletAsync测试单 TabletTestInsertTabletsAsync测试多 Tablet小经验单条用 Record大量连续数据优先用 Tablet性能差很多。4.4 查询接口方法名参数作用示例ExecuteQueryStatementAsyncSQL 语句查询语句session_pool.ExecuteQueryStatementAsync(select * from root.97209_TEST_CSHARP_CLIENT_GROUP.TEST_CSHARP_CLIENT_DEVICE where time15);ExecuteNonQueryStatementAsyncSQL 语句非查询建删改create timeseries …4.5 删除接口方法名参数作用DeleteStorageGroupAsyncstring删单个存储组DeleteStorageGroupsAsyncList删多个存储组DeleteTimeSeriesAsyncstring / List删时间序列DeleteDataAsync路径列表, 起始, 结束按时间删数据总结这篇文章把Apache IoTDB C# 原生接口从 0 到 1 讲完了核心要点帮你捋一遍环境认准.NET ≥5.0 / Framework 4.x Thrift ≥0.14.1 NLog ≥4.7.9安装用 NuGet 命令客户端与服务端版本必须匹配优先用SessionPool连接池线程安全、支持并发写入分两种RowRecord 适合单行Tablet 适合批量块写入全套接口覆盖基础连接、元数据、写入、查询、删除日常开发完全够用。照着教程配环境、跑示例、改接口C# 项目快速接入 IoTDB 时序数据库完全没压力。 附IoTDB的各大版本 Apache IoTDB 是一款工业物联网时序数据库管理系统采用端边云协同的轻量化架构支持一体化的物联网时序数据收集、存储、管理与分析 具有多协议兼容、超高压缩比、高通量读写、工业级稳定、极简运维等特点。版本IoTDB 二进制包IoTDB 源代码发布说明2.0.5- All-in-one- AINode- SHA512- ASC- 源代码- SHA512- ASCrelease notes1.3.5- All-in-one- AINode- SHA512- ASC- 源代码- SHA512- ASCrelease notes0.13.4- All-in-one- Grafana 连接器- Grafana 插件- SHA512- ASC- 源代码- SHA512- ASCrelease notes✨ 目前最新版本为2.0.7去获取https://archive.apache.org/dist/iotdb/联系博主xcLeigh 博主全栈领域优质创作者博客专家目前活跃在CSDN、微信公众号、小红书、知乎、掘金、快手、思否、微博、51CTO、B站、腾讯云开发者社区、阿里云开发者社区等平台全网拥有几十万的粉丝全网统一IP为xcLeigh。希望通过我的分享让大家能在喜悦的情况下收获到有用的知识。主要分享编程、开发工具、算法、技术学习心得等内容。很多读者评价他的文章简洁易懂尤其对于一些复杂的技术话题他能通过通俗的语言来解释帮助初学者更好地理解。博客通常也会涉及一些实践经验项目分享以及解决实际开发中遇到的问题。如果你是开发领域的初学者或者在学习一些新的编程语言或框架关注他的文章对你有很大帮助。亲爱的朋友无论前路如何漫长与崎岖都请怀揣梦想的火种因为在生活的广袤星空中总有一颗属于你的璀璨星辰在熠熠生辉静候你抵达。愿你在这纷繁世间能时常收获微小而确定的幸福如春日微风轻拂面庞所有的疲惫与烦恼都能被温柔以待内心永远充盈着安宁与慰藉。至此文章已至尾声而您的故事仍在续写不知您对文中所叙有何独特见解期待您在心中与我对话开启思想的新交流。 关注博主 带你实现畅游前后端 大屏可视化 带你体验酷炫大屏 神秘个人简介 带你体验不一样得介绍 从零到一学习Python 带你玩转Python技术流 前沿应用深度测评 前沿AI产品热门应用在线等你来发掘注本文撰写于CSDN平台,作者xcLeigh所有权归作者所有https://xcleigh.blog.csdn.net/如果相关下载没有跳转请查看这个地址相关链接没有跳转皆是抄袭本文转载请备注本文原地址。 亲码字不易动动小手欢迎点赞 ➕ 收藏如 问题请留言或者关注下方公众号看见后第一时间回复还有海量编程资料等你来领博主看见后一定及时给您答复

更多文章