大数据数据库 —— 初见loTDB

全网首发一IoTDB数据库整合MyBatis实现SpringBoot项目CRUD 最近用到IoTDB数据库,经过对一些相关文档的搜集,大概了解到了该数据库的主要应用场景和使用方法,本篇就讲一下如何利用IoTDB并结合SpringBoott和Mybatis进行项目整合。经过一番查找全网都没有一篇完整的关于该数据库采用Mybatis做持久化框架的文章,那么就由我来开辟一下先河。 阅读详情

Apache IoTDB(又名 lotDB)是一款专门为‌物联网(IoT)场景‌优化的‌时序数据库‌。它的设计和核心功能都围绕着高效处理物联网设备产生的海量时间序列数据(如传感器读数、设备状态等)。

与其他类型数据库的比较,需要从设计目标、数据模型、适用场景等维度来看:

核心比较维度

  1. ‌数据模型:‌

    • ‌IoTDB:‌ 时序数据模型。核心概念是设备 -> 时间序列(每个传感器是一个时间序列)。数据点由设备ID + 时间戳 + 多个测点/传感器值组成。它使用树状结构组织元数据。
    • ‌关系型数据库:‌ 表格模型(行和列)。数据通常高度结构化,强调实体间的关系(外键约束)。代表:MySQL, PostgreSQL, Oracle。
    • ‌文档数据库:‌ JSON/BSON 文档模型。适合存储半结构化和嵌套数据。代表:MongoDB, Couchbase。
    • ‌宽列数据库:‌ 类似于巨大的、分布式的、多维的映射表。适合稀疏数据。代表:Apache Cassandra, HBase。
    • ‌键值数据库:‌ 最简单的模型,通过键快速访问值。代表:Redis, DynamoDB。
    • ‌其他时序数据库:‌ 与 IoTDB 类似,专注于时序数据模型。代表:InfluxDB, TimescaleDB, Prometheus, OpenTSDB。
  2. ‌设计目标:‌

    • ‌IoTDB:‌ 超高吞吐写入、高效存储压缩(列式存储)、低查询延迟(尤其针对时间窗口聚合、降采样)、原生边缘计算支持、设备元数据管理、与大数据生态(Hadoop/Spark/Flink)深度集成。
    • ‌关系型数据库:‌ 强一致性、事务支持(ACID)、复杂的关联查询、数据完整性约束。
    • ‌文档数据库:‌ 灵活的模式、快速开发迭代、处理复杂嵌套数据。
    • ‌宽列数据库:‌ 极高的写吞吐和可扩展性、水平扩展容易、适合存储大规模、稀疏的分布式数据。
    • ‌键值数据库:‌ 极低的读写延迟(通常在内存中)、简单操作、缓存场景。
    • ‌其他时序数据库:‌ 核心目标与 IoTDB 高度重叠,但在具体实现、优化点、生态和侧重点上有所不同(见下文详细对比)。
  3. ‌适用场景:‌

    • ‌IoTDB:‌ 工业物联网、车联网、能源监控、智慧城市等产生大量设备时序数据的场景。需要海量时序数据存储、高速写入、高效压缩、时间窗口分析、边缘-云协同。
    • ‌关系型数据库:‌ 需要强事务保证、复杂关系查询的业务系统(如 ERP, CRM, 电商订单系统)。
    • ‌文档数据库:‌ 内容管理系统、用户配置、产品目录等模式灵活或数据结构嵌套的场景。
    • ‌宽列数据库:‌ 需要极高写入吞吐、大规模可扩展性、低延迟随机读写的场景(如消息系统、用户活动记录)。
    • ‌键值数据库:‌ 缓存、会话存储、排行榜、配置存储等需要极快访问速度的场景。
    • ‌其他时序数据库:‌ 监控指标(Prometheus)、应用性能指标、服务器/网络监控、传感器数据(IoT场景也同样适用)。

IoTDB 与其他时序数据库的详细对比

以下是与几个主流时序数据库的关键区别:

| 特性 | Apache IoTDB | InfluxDB (OSS/TDBM) | TimescaleDB | Prometheus | OpenTSDB |
| :------------------- | :--------------------------------------- | :------------------------------------ | :------------------------------------ | :----------------------------------- | :--------------------------------- |
| ‌核心架构‌ | 原生分布式 (Master/Data/Config Node) | 单节点 (OSS), 闭源集群 (TDBM) | PostgreSQL 扩展 (单机/分布式) | 单节点 / 联邦 | 基于 HBase (依赖 Hadoop/ZK) |
| ‌数据模型‌ | 树状结构组织设备 & 时间序列, 多值模型 | 测量/标签/字段, 单值模型 (行协议) | PostgreSQL 关系表 + 超表抽象 | 指标 + Labels, 单值模型 | 指标 + 标签, 单值模型 |
| ‌存储引擎‌ | 自定义 TsFile (列式, LSM) | TSM (Time-Structured Merge Tree) | PostgreSQL 堆表 + 自定义压缩/优化 | 自定义本地存储 (Prometheus TSDB) | 存储在 HBase |
| ‌写入性能‌ | ‌极高‌ (优化设备级写入,多值模型优势) | 高 | 高 (依赖 PG 和硬件) | 中等 (单节点限制) | 高 (依赖 HBase 性能) |
| ‌查询语言‌ | 类 SQL (支持时间序列语义扩展) | Flux (功能强大但学习曲线陡峭), InfluxQL | ‌标准 SQL‌ (兼容 PG 生态) | ‌PromQL‌ (专注监控) | 基于 HBase Scan / 特定 API |
| ‌聚合 & 降采样‌ | ‌非常高效‌ (内置算子, 存储层支持) | 高效 | 高效 (利用 PG 和扩展) | 高效 (PromQL 核心) | 需要应用层处理 / 预聚合 |
| ‌压缩效率‌ | ‌极高‌ (多列联合编码, Gorilla 等) | 高 (Gorilla-like) | 高 (利用 PG 类型压缩 + 列式扩展) | 中等 | 依赖 HBase 压缩 |
| ‌原生边缘计算‌ | ‌强支持‌ (边缘版, TsFile 本地存储) | 有限 (Telegraf 代理) | 无 (需搭配其他组件) | 无 (需搭配 Agent) | 无 |
| ‌大数据生态集成‌ | ‌深度集成‌ (TsFile 原生支持 HDFS/Spark/Flink) | 需通过插件或外部工具 | 通过 PG FDW 或外部工具 | 需通过 Remote Read/Write 或适配器 | ‌原生基于 Hadoop (HBase)‌ |
| ‌索引‌ | 时间 + 设备ID + 路径前缀索引 | 倒排索引 (按标签) | PostgreSQL B-Tree 索引 + 时间索引 | 标签索引 | HBase RowKey (基于时间+标签哈希) |
| ‌开源协议‌ | Apache License 2.0 | MIT (OSS) / 商业闭源 (集群) | Apache License 2.0 | Apache License 2.0 | LGPL / GPL |
| ‌优势亮点‌ | 原生分布式架构、设备管理、多值写入、存储压缩效率极佳、边缘-云协同、Hadoop生态原生兼容 | 成熟生态、可视化工具丰富、功能全面 | 标准SQL、利用成熟PG生态、支持关系模型混合查询 | 监控领域事实标准、强大的 PromQL、丰富的 exporter | 基于 Hadoop 栈、成熟稳定、适合大规模部署 |
| ‌主要考量‌ | 相对较新,生态工具链正在完善 | 集群功能闭源付费、Flux学习曲线 | 分布式版本相对较新、时序优化深度依赖自身扩展 | 单节点扩展性限制、数据持久化需额外方案 | 部署复杂、依赖 Hadoop 栈、查询灵活性受限 |

对比小结

  • ‌vs InfluxDB:‌
    • ‌优势:‌ IoTDB 原生分布式架构(开源)、树状设备模型更贴近物联网设备层级、原生支持多值写入(一个时间点写入多个传感器值)、‌极高的压缩比‌、更深的 Hadoop/Spark/Flink 原生集成、强大的内置边缘计算支持。
    • ‌劣势:‌ InfluxDB 生态更成熟(尤其可视化工具如Chronograf/Grafana插件丰富)、社区更大、文档丰富。InfluxDB OSS 单机版部署更简单,但其集群版闭源。
  • ‌vs TimescaleDB:‌
    • ‌优势:‌ IoTDB 是‌专为时序设计‌的数据库,在底层存储(TsFile)、写入路径、压缩算法上时序优化更彻底,写入吞吐和压缩率通常更高。‌原生分布式‌架构。时间序列元数据管理和查询语法更时序原生。
    • ‌劣势:‌ TimescaleDB 的最大优势是‌标准 SQL‌和作为 ‌PostgreSQL 的扩展‌。如果你的团队熟悉 PG,或者应用需要同时处理时序数据和关系型数据(JOIN普通表),或者严重依赖 PG 的周边工具和生态,TimescaleDB 非常有吸引力。TimescaleDB 的压缩和时序查询性能也非常好,但底层还是基于 PG 的存储引擎。
  • ‌vs Prometheus:‌
    • ‌优势:‌ IoTDB 是‌通用的时序数据库‌,应用范围远超监控。支持‌海量历史数据存储‌和高性能复杂分析(降采样、聚合、窗口计算)。原生分布式和水平扩展。‌存储压缩效率极高‌。支持更灵活的元数据组织(树状结构)。
    • ‌劣势:‌ Prometheus 是‌监控领域的王者‌,其数据模型(Metrics + Labels)、拉取模型、强大的 PromQL 语言、丰富的 Exporter 生态和 Alertmanager 是监控系统的‌事实标准‌。它更专注于近实时监控和告警。Prometheus 本身不擅长长期存储海量历史数据和复杂分析。
  • ‌vs OpenTSDB:‌
    • ‌优势:‌ IoTDB ‌无需依赖 Hadoop/HBase 生态‌,部署运维更简单轻量(尤其是在云环境)。内置存储引擎 TsFile 针对时序优化更深入,压缩和查询效率通常更高。具有更现代的设计(SQL接口、树状模型、边缘计算支持)。
    • ‌劣势:‌ OpenTSDB 基于 HBase,在‌大规模部署‌和‌稳定性‌方面有长期验证(尤其在已有 Hadoop 栈的公司)。其基于 HBase Scan 的查询在某些特定模式上可能有效。如果你的公司已有成熟的 Hadoop 大数据平台,集成 OpenTSDB 可能更顺畅。

总结

  • ‌IoTDB 的核心竞争力在于物联网时序数据场景:‌ 特别是其‌设备树模型、多值写入、超高压缩比、原生分布式架构、强大的边缘计算支持以及与 Hadoop/Spark/Flink 的无缝集成‌。
  • ‌选择合适的数据库取决于具体需求:‌
    • 如果你需要处理物联网设备产生的高频、海量时间序列数据,强调写入速度、存储成本、时间窗口聚合分析、设备管理以及与大数据平台协同,‌IoTDB 是一个非常强大且针对性的选择‌。
    • 如果你需要严格的事务支持和复杂的关系查询,选择‌关系型数据库‌。
    • 如果你需要处理灵活或嵌套的文档数据,选择‌文档数据库‌。
    • 如果你需要极高的写入吞吐和水平扩展性存储海量稀疏数据,选择‌宽列数据库‌。
    • 如果你需要极低延迟的缓存或简单键值存取,选择‌键值数据库‌。
    • 在其他时序场景下(如应用监控、指标),‌InfluxDB, TimescaleDB, Prometheus‌ 也是优秀的选择,各有侧重。Prometheus 在监控领域具有不可替代的地位。

‌简单来说:IoTDB 不是通用的关系型、文档型或键值型数据库的替代品。它是专门为征服物联网和大数据场景下海量时序数据存储、处理和分析的挑战而设计的利器。‌ 如果你的场景匹配,IoTDB 能提供卓越的性能和效率。在比较其他时序数据库时,需要仔细权衡其架构、数据模型、生态和你的特定需求(如是否必须用 SQL、是否依赖 Hadoop/PG、是否需要原生边缘支持等)。

yolov5运行detect.py之后卡住了?没后续,没结果,没报错,怎么办?如何解决? 🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。 阅读详情

相关推荐

SQL 通过sum() over(order by ,rownum)实现财务现金日记账实例

SELECT 类型,to_char(发生日期,'yyyy-MM-dd') 发生日期,期初余额,借方金额,贷方金额, (CASE WHEN 借方金额>0 THEN '借' WHEN 贷方金额>0 THEN '贷' ELSE '平' END) 方向, sum(收支金额) over(order by 发生日期, rownum) 余额 FROM( SELECT LX 类型,账户,账号,摘要,发生日期,单据ID, ...

qq_41451794的博客 1021

loTDB数据库学习笔记之初识 —— 筑梦之路

IoTDB 是针对时间序列数据收集、存储与分析一体化的数据管理引擎。具有体量轻、性能高、易使用的特点,适用于工业物联网应用中海量时间序列数据高速写入和复杂分析查询的需求,同时包含数据订阅、数据同步、负载均衡和运维监控功能。由清华大学软件学院设计开发。

筑梦之路 2797

半导体功率器件IGBT工艺全流程

本文概述了功率器件IGBT(绝缘栅双极型晶体管)的关键制造流程。主要工艺包括:基板制备、离子注入(B+/P+/P+FS层)、绝缘膜形成与加工(CVD沉积及刻蚀)、沟槽刻蚀、电极形成(Emitter和Collector)等步骤。通过离子注入、化学气相沉积和物理气相沉积等半导体工艺,依次完成器件各功能层的构建,最终形成具备高功率特性的IGBT器件。该流程体现了功率半导体制造中典型的掺杂、薄膜沉积和图形化工艺技术。

750

IOTDB介绍

IoTDB介绍 全球最大的开源软件基金会 Apache 软件基金会于北京时间 2020 年 9 月 23 日宣布 Apache IoTDB 毕业成为 Apache 顶级项目! 简介 IoTDB (Internet of Things Database) 是由清华大学主导的 Apache 孵化项目,是一款聚焦工业物联网、高性能轻量级的时序数据管理系统,也是一款开源时序数据库,为用户提供数据收集、存储和分析等服务。作为一款时序数据库,IoTDB的相关竞品有 KairosDB,InfluxDB,Timesca

大圣你在哪 1万+

《Halcon 100项目-9》Halcon彩色线序检查

Halcon彩色线序检查

doubleintfloat的博客 1042

Matplotlib字体警告终结者:为什么总提示DejaVu Sans?5种场景解决方案大全

本文深入解析Matplotlib中常见的DejaVu Sans字体警告问题,并提供5种典型场景的完整解决方案。从理解字体系统的三层架构和缓存机制,到解决中文显示、远程服务器部署、TeX渲染、缓存优化及生产环境配置等实际问题,帮助开发者彻底摆脱字体警告困扰,实现稳定可靠的数据可视化。

view3的博客 500

IoTDB 入门教程 企业篇①——IoTDB企业版(TimechoDB)快速上手

IoTDB 入门教程 企业篇①——IoTDB企业版(TimechoDB)快速上手

7333

自动驾驶入门到进阶完整指南:感知、预测、规划、端到端、仿真测评与场景挖掘全解析

对小白来说,不建议一开始直接冲端到端大模型。先学数据和坐标系:否则所有结果都看不懂。再学 LiDAR 3D 检测:最容易建立空间感。再学 BEV/多相机感知:这是当前主流。再学轨迹预测:理解交互和多模态。再学规划控制:理解车为什么这样开。再学仿真和闭环评测:理解 open-loop 和 closed-loop 差异。最后学端到端/VLM/VLA:这时候你才知道它到底替代了哪些模块。贯穿始终学习场景挖掘和安全测评:这是工业界最核心的能力之一。

u013250861的博客 390

时序数据库-1-[IoTDB]的发展历程

IoTDB的发展历史简介

qq_20466211的博客 3216

机器学习ROC曲线中的阈值thresholds

在ROC曲线上的不同点对应于不同的阈值。根据任务的具体要求,可以选择合适的阈值,以达到平衡召回率和误报率,或者根据具体应用场景调整模型的工作点。,表示样本属于正例的概率。这个概率值可以被截断为二元分类的决策,通过选择一个阈值来决定样本是被分类为正例还是负例。通过改变阈值,可以得到不同的真正例率(TPR)和假正例率(FPR),从而绘制出ROC曲线。总体来说,ROC曲线提供了模型在不同阈值下的性能综合情况,帮助分析模型的分类能力。通常来说,随着阈值的增加,TPR会减小,而FPR会增加。ROC曲线的绘制涉及。

行子的博客 3654

小黄鸭机器人技术全解-第 07 章 关节自由度与行程参数

—鸭子歪着头转头时,转的平面是斜的,这正是它"灵动"感的来源。仿真里这是自动的(轴定义在父刚体系),复刻时不需要做任何事——

yolo模型训练找我,AI游戏合作找我 65

Apache loTDB技术与架构-1

本文主要描述Apache loTDB时序数据库的技术与架构

wys的专栏 1742

实用指南:制作通用的INCA和CANape兼容A2L文件

A2L(ASAM MCD-2 Measurement and Calibration Data)文件是描述ECU(电子控制单元)测量和校准数据的标准文件格式。在标定工作中,A2L文件扮演着极为重要的角色,它定义了测量通道、校准参数等关键信息,为工程师提供了统一的描述方式。INCA和CANape是两种常见的汽车电子系统标定工具,分别由ETAS和Vector公司开发。它们在汽车电子系统的开发和调试过程中发挥着重要作用,提供了丰富的标定功能和用户友好的界面。

一直在水些技术小文 2922

Springboot整合lotdb ,详细源码

最近接到一个项目,是要使用springboot 整合lotdb 来处理大量的数据 相关使用记录: 这里使用了lotdb 数据库中的session ,具体jdbc 可以参照lotdb 的开发文档。 在使用之前要启动lotdb 服务 相关操作如下: 进入解压文件的sbin 目录 进入shell 操作 找到自己的对应的指令 3.1 在window 系统下cmd 进入,并输入 ./start-server.bat 3.2在linux 系统进入终端,输入 ./start-server.sh 新建Springb

HadwinLing 1473

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Apache IoTDB 技术特性与大数据时序数据库选型实践

时序数据库(TSDB)成为处理物联网、工业互联网等领域海量时序数据的关键技术。传统数据库难以满足高频写入、高效存储和实时分析需求,Apache IoTDB凭借树形层级模型、超高写入性能(单节点300万点/秒)、卓越压缩比(平稳数据30:1)及端边云协同能力脱颖而出。其开源生态与国产化优势(如国家电网应用后成本降低85%)显著优于InfluxDB等国外产品。IoTDB支持从设备端轻量化部署到云端分布式扩展,提供完整SQL接口与大数据生态集成,是工业场景时序数据管理的标杆解决方案。

byte轻骑兵的技术小窝 1万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【数据库】时序数据库选型指南:从大数据视角看IoTDB的核心优势

摘要 时序数据库是工业物联网和智能制造领域的关键技术,面对海量时序数据的高频采集、多维度管理和高效存储需求,传统数据库面临性能瓶颈。Apache IoTDB及其商业版TimechoDB通过创新的数据模型、高效的存储压缩(15-20倍压缩比)和卓越的读写性能(单机150万点/秒写入),成为理想解决方案。其端-边-云协同架构支持全场景部署,并与工业协议和大数据生态无缝集成,显著降低存储与运维成本。在实际应用中,IoTDB已在能源电力和智能制造等领域验证其价值,相比InfluxDB和TimescaleDB等方案更

杰西笔记 6万+

【数据库】时序数据库选型指南:在大数据与工业4.0时代,为何 Apache IoTDB 成为智慧之选?

本文介绍了时序数据库选型的关键因素,包括数据压缩能力、分布式架构、工业场景适配性和性能表现等核心指标。通过与国外产品的对比,重点推荐国产时序数据库IoTDB,其采用自研TsFile格式实现90%以上的存储压缩,支持秒级扩容的分布式架构,深度适配工业场景数百种协议,提供单节点每秒千万级写入和毫秒级查询响应能力。IoTDB凭借高性价比、本地化服务和技术创新,在钢铁、电力、交通等领域广泛应用,配套可视化工具和时序大模型等生态支持,为大数据时代时序数据管理提供了优质解决方案。

杰西笔记 2万+

巨头垂涎却不能染指,loT数据库风口已至

随着移动端发展走向饱和,现在整个IT行业都期待着“万物互联”的物联网时代所带来的流量红利,前期笔者也曾经撰文介绍国产物联网操作系统的情况(https://blog.youkuaiyun.com/BEYONDMA/article/details/101147942),我们可以看到BAT等巨头们的逻辑是要让其它公司免费使用其OS上车控制住入口,引导使用物联网行业新秀接入其loT云平台,创业成者直...

Python爱好者的专栏 9474

IoTDB 航空航天解决方案:从制造到试飞,助力国之重器翱翔长空

本文约3000字,建议阅读5分钟IoTDB 作为领先的国产时序数据库,助力祖国航空航天事业数智化转型升级。图片来源:贺治超2024 年 11 月 12 日 - 17 日,第十五届中国国际航空航天博览会盛大举行。多类国之重器首次震撼亮相,位居世界先进水平,逐梦长空的中国力量引起强烈反响。IoTDB 作为领先的国产时序数据库,有幸为祖国航空航天事业助力。2024 年 11 月 12 日,第十五届中国国...

数据派THU 410

Apache IoTDB 树表双模型直播回顾(上)

2 月 26 日面向Apache IoTDB 树表双模型的功能特性、适用场景、建模选择和未来规划,田原同学通过直播进行了全面解答。以下为直播讲稿(上),干货满满,建议收藏⬇️⬇️⚡️注意:1. 功能演示部分请直接查看视频(1:21:17开始)观看2. 需要获取直播 PPT请联系小助手欧欧(微信号 apache_iotdb)目录时序数据模型介绍(本期文字)表模型功能介绍创建表模型连接数据库&a...

qin_DB的博客 1469

loTDB单机版部署(Windows安装)

部署时推荐优先使用hostname进行IP配置,可避免后期修改主机ip导致数据库无法启动的问题。设置hostname需要在目标服务器上配置/etc/hosts,如本机ip是192.168.1.3,hostname是iotdb-1,则可以使用以下命令设置服务器的 hostname,并使用hostna...注意Windows和Linux的命令行是不一样的,Linux安装的话参考下面这个官方链接。然后在上面的路径输入cmd并回车,来打开在给目录下的命令行。下载后的文件如下,可以直接解压。最后还有一个验证部署。

m0_69887278的博客 832

loTDB数据库

客户端(Client/Session):编写 Java 代码,把传感器的数据打包发给服务器(也就是写第一步和第二步的打数据逻辑)。引擎内核(Engine/TsFile):研究怎么优化 Flush 机制,或者怎么让底层 TsFile 压缩得更小。查询引擎(Query/Plan):研究北京总部分析师敲入的那句 SQL,是怎么被解析并去成百上千个 TsFile 里捞数据的。 去 IoTDB 源码里看这几个地方:追踪 RPC:这段 Java 代码在客户端调用 后,数据去了哪里?你可以去源码的 模块中搜索 (

weixin_53951086的博客 388

时序数据库及 IoTDB 介绍 | 小白教程文档(一)

1数据库、数据库管理系统以及数据库系统数据如同空气一样普遍,我们在手机的每一次点击都会产生数据,都可能被记录,被使用。数据存放在数据库中,数据库其实就是“数据的集合”。一个个数据库,就像一个个容器,怎么对这些容器进行管理,例如安全存放数据,增删查改数据,这就是数据库管理系统要做的事。听起来这已经是满足用户需求的最终产品形态了,但其实这并不是给终端用户使用的,而是给软件开发者使用的,软件开发者需要用...

qin_DB的博客 4799

iotdb部署指南

Deployment Guidelines(部署指南) · Issue #3078 · apache/iotdb · GitHub

左岸之魂的博客 253

IoTDB 可实现的基本操作 —— 数据写入、删除、导出、元数据管理、时区设置 | 小白教程文档(四)...

前言上篇教程介绍了 Apache IoTDB 处理时序数据时,能够实现的部分具体功能和具体的操作命令,包括数据导入、基本查询、和聚合查询。本篇将继续介绍 Apache IoTDB 可实现的其他功能和相关 SQL 语句命令,包括数据的写入、删除、导出、元数据操作和时区设置的注意事项。1数据写入、删除与导出1.1插入数据物联网场景下,元件产生数据将自动写入,但有时候,如果过去的一些数据需要修改,可以使...

qin_DB的博客 4810

IoTDB 入门教程 基础篇②——IoTDB 企业版比开源版本值在哪?

IoTDB 入门教程 基础篇②——IoTDB 企业版比开源版本值在哪?

4768

apache-lotdb集群部署

【代码】apache-lotdb集群部署。

tingting0119的博客 1635
上一篇: 大数据云原生是什么
下一篇: hadoop技术栈(九)Hbase替代方案
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值