时序数据,即时间序列数据(Time-Series Data),它们是一组按照时间发生先后顺序进行排列的序列数据。日常生活中,设备、传感器采集的数据就是时序数据,证券交易的记录也是时序数据。 因此时序数据的处理并不陌生,特别在是工业自动化以及证券金融行业,专业的时序数据处理软件早已存在,比如工业领域的 PI System 以及金融行业的 KDB。 从手环、共享出行、智能电表、环境监测设备到电梯、数控机床、挖掘机、工业生产线等都在源源不断的产生海量的实时数据,时序数据的体量正指数级的增长。 由于数据量指数级的增长,而且对分析和实时计算的需求越来越多,特别是在人工智能的时代,传统的时序数据处理工具难以满足需求,对每天高达 10TB 级别的海量时序大数据如何进行实时的存储、分析和计算,成为一个技术挑战 ,因此海量时序大数据的高效处理在过去的十年获得全球工业界的高度关注。
如果想要高效地处理时序数据,一个完整的时序数据处理平台一定要准备好以下几个核心模块。数据库(Database):数据库提供时序数据的高效存储和读取能力。 在工业、物联网场景,由设备所产生的时序数据量是十分惊人的。从存储数据的角度来说,数据库需要把这些数据持久化到硬盘上并最大程度地压缩,从而降低存储成本。 同时,由于数据的隐私以及安全,你只能允许应用订阅他有权限访问的数据。因此,一个时序数据处理平台一定需要具备数据订阅的能力,帮助应用实时获取最新数据。 处理时序数据需要一系列模块的协同作业,从数据采集到存储、计算、分析与可视化,再到专用的时序数据算法库,每个环节都有相应的工具支持。 这些工具的选择取决于具体的业务需求和数据特点,合理地选用和搭配才能做到高效地处理各种类型的时序数据,挖掘数据背后的价值。
相对于普通的互联网的应用数据,时序数据有着很多明显的特征。 涛思数据的创始人陶建辉先生早在 2017 年,就对此进行了充分地归纳分析,总结了时序数据本身以及时序数据应用的十大特征:数据是时序的,一定带有时间戳:联网的设备按照设定的周期,或受外部的事件触发,源源不断地产生数据 一个数据采集点就是一个数据流:一个设备采集的数据、以及一支股票的交易数据,与另外一个设备采集的数据或股票是完全独立的。一台设备的数据一定是这台设备产生的,不可能是人工或其他设备产生的。 但对于物联网、工业时序数据,每个数据点与数据点的变化并不大,大家关心的更多是一段时间,比如过去五分钟、一小时数据变化的趋势,不会只针对一个时间点进行。 上述的特征使时序数据的处理具有着独特的需求和挑战。但是反过来说,对于一个高效的时序数据处理平台,它也必然充分利用这十大特征来提升它的处理能力。
时序数据应用的细分场景有很多,这里简单列举一些电力能源领域:电力能源领域范围较大,不论是在发电、输电、配电、用电还是其他环节中,各种电力设备都会产生大量时序数据,以风力发电为例,风电机作为大型设备,拥有可能高达数百的数据采集点 ,因此每日所产生的时序数据量极其之大,对这些数据的监控分析是确保发电环节准确无误的必要工作。 IT 运维领域:IT 领域中,基础设施(如服务器、网络设备、存储设备)、应用程序运行的过程中会产生大量的时序数据。 通过对这些时序数据的监控,可以很快地发现基础设施/应用的运行状态和服务可用性,包括系统是否在线、服务是否正常响应等;也能看到具体到某一个具体的点位的性能指标:如 CPU 利用率、内存利用率、磁盘空间利用率 在金融领域中,量化交易平台是最能凸显时序数据处理重要性的革命性应用之一:通过对大量时序行情数据的读取分析来及时响应市场变化,帮助交易者把握投资机会,同时规避不必要的风险,实现资产的稳健增长。
毫无疑问,我们需要一个优秀的时序大数据平台来处理设备、交易产生的海量数据。那么,这个大数据平台需要具备哪些能力?与通用的大数据平台相比,它需要具备什么样的特征呢? 所以,对于时序数据工具的选型,一定要看它的架构模型能否撑得起你的业务基数。一个能够通过分布式的架构来处理“高基数”难题,才能让平台足以支撑业务的增长,才可以说是一个真正意义上的时序大数据平台。 如果专用的时序大数据处理平台不能在存储、读取、分析这些方面做到“高性能”,那么为什么不采用通用的大数据平台呢? 因此时序大数据系统需要一个灵活的机制增加某个维度的分析。需要支持即席分析和查询。 近年来,众多企业纷纷将时序数据从传统大数据平台或关系型数据库迁移到专用时序大数据平台,以保障海量时序数据得到快速和有效处理,支撑相关业务的持续增长。
在时序数据的十大特征一节中提到,对于一个优秀的时序大数据处理平台来说,必然需要具备处理时序数据十大特征的能力。在处理时序数据所需要的工具一节中介绍了时序大数据平台处理时序数据所需要的主要模块/组件。 因此很自然,在工业、物联网大数据兴起后,大家仍然想到的是使用这套通用的大数据处理平台来处理时序数据。 运行效率低:现有的这些开源软件主要用来处理互联网上的非结构化数据,比如文本、视频、图片数据等,但是通过物联网采集来的数据都是时序的、结构化的。 由于数据量巨大且应用方式特殊,对时序数据的处理具有相当大的技术挑战,因此要使用专业的大数据平台。 对实时时序数据的科学合理地高效处理能够帮助企业实时监控生产与经营过程,对历史时序数据的分析有助于对资源的使用和生产配置做出科学的决策。
1.基本概念 时序数据库(Time Series Database)是用于存储和管理时间序列数据的专业化数据库。时序数据库特别适用于物联网设备监控和互联网业务监控场景。 下面介绍下时序数据库的一些基本概念(不同的时序数据库称呼略有不同)。 1.1 度量(metric) 监测数据的指标,例如风力和温度。相当于关系型数据库中的table。 这样的聚合实际上就是简单的count以及max,问题是如何能高效的在那么大的数据量的基础上将满足条件的原始数据查询出来并聚合,要知道统计的原始值可能因为时间比较久远而不在内存中哈,因此这可能是一个非常耗时的操作 5.传统关系型数据库存储时序数据的问题 很多人可能认为在传统关系型数据库上加上时间戳一列就能作为时序数据库。数据量少的时候确实也没问题。 5.3 时序数据库需要解决以下几个问题: 时序数据的写入:如何支持每秒钟上千万上亿数据点的写入。 时序数据的读取:如何支持在秒级对上亿数据的分组聚合运算。 成本敏感:由海量数据存储带来的是成本问题。
⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。 在时序电路的设计中,建议采用非阻塞型赋值语句。 事件控制语句 用always语句描述硬件电路的逻辑功能时,在always语句中@符号之后紧跟着“事件控制表达式”。 在同步时序逻辑电路中,触发器状态的变化仅仅发生在时钟脉冲的上升沿或下降沿,Verilog HDL中用关键词posedge(上升沿)和 negedge(下降沿)进行说明,这就是边沿触发事件。
建立时间Tsu(setup):触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间。 保持时间Th(hold):触发器在时钟上升沿到来之后,其数据输入端的数据必须保持不变的最小时间。 clock output delay,时钟触发到数据输出的最大延迟时间 最小时钟周期:Tmin = Tco + Tdata + Tsu - Tskew。 时钟偏移(Clock Skew):是由于布线长度及负载不同引起的,导致同一个时钟信号到达相邻两个时序单元的时间不一致。 题目:谈谈对Retiming技术的理解 Retiming就是重新调整时序,例如电路中遇到复杂的组合逻辑,延迟过大,电路时序不满足,这个时候采用流水线技术,在组合逻辑中插入寄存器加流水线,进行操作,面积换速度思想
数据库的模型包含关系型、key-value 型、Document 型等很多种,那么为什么新型的时序数据库成为监控数据存储的新宠呢? 下面就会从 为什么需要时序数据库? 时序数据库的数据结构 两个方面来介绍一下时序数据库。 1. 为什么需要时序数据库 1.1 时序数据特点 时序数据有如下几个特点: 基本上是插入操作较多且无更新的需求 数据带有时间属性,且数据量随着时间递增 插入数据多,每秒钟插入需要可到达千万甚至是上亿的数据量 查询、聚合等操作主要针对近期插入的数据 时序数据能够还原数据的变化状态 可以通过分析过去时序数据的变化、检测现在的变化,以达到预测未来如何变化的目的 时序数据使用需求: 能够按照指标筛选数据 能够按照区间 1.3 场景选择 是否所有的数据都适合用时序数据库来存储? 答案:是否定的,时序数据库提供了针对大量数据的插入操作,但同时数据的读取延迟也相对增加。而且时序数据库不支持 SQL 的数据查询。
目录 1 .什么是InfluxDB 2.那么时序数据有什么特点呢? 3.对于时序数据,我们总结了以下特点: 4.业务方常见需求 5.时序数据库为了解决什么问题? 时序数据以时间作为主要的查询纬度,通常会将连续的多个时序数据绘制成线,制作基于时间的多纬度报表,用于揭示数据背后的趋势、规律、异常,进行实时在线预测和预警,时序数据普遍存在于IT基础设施、运维监控系统和物联网中 原因很明显,计算机虚拟世界,如数据库、网络、容器、系统、应用程序等,和物理世界,如家用设备、城市基础设施、工厂机器、电力设施等,正在创建海量的时序数据。 ,也有着非常多的时序数据,例如用户访问网站的行为轨迹,应用程序产生的日志数据等等 5.时序数据库为了解决什么问题? 传统数据库通常记录数据的当前值,时序型数据库则记录所有的历史数据,在处理当前时序数据时又要不断接收新的时序数据,同时时序数据的查询也总是以时间为基础查询条件,并专注于解决以下海量数据场景的问题: 专为时序存储和高性能读写而设计
前言 mysql可能大家都用的比较多且普遍,最近1年在使用PostgreSql,其大体DML语句与mysql类似,只是部分DDL语句有些区别,写一篇文章给正在应用该数据库或者准备选型该数据库的朋友 版本为基础的对象关系型数据库管理系统。 dnS 列出所有模式 S代表各个schema \d tablename 列出表详情 类似于mysql的show create table 3.时序分片 — 建表语句 CREATE TABLE NULL, CONSTRAINT info_ukey UNIQUE (type, info, ts) ) WITH (OIDS = FALSE) TABLESPACE default; — 时序 ,在时序处理上表现是比较出色的,如果有针对于时间维度的比较重的表需要做一些优化,可以考虑引入时序数据库的选型,而且大体DML语句与mysql类似,只是部分DDL语句有些区别,希望文章对您有所帮助 原创,
时序数据库 时序数据库全称为时间序列数据库。时间序列数据库指主要用于处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。 时序数据库的基本概念 Time series (时间序列,简称时序或者时序数据):根据wiki百科[2],其数学定义是这样:In mathematics, a time series is a series 时序数据库的项目 事实上,业界流行的ClickHouse、Apache IoTDB等也属于时序数据库范畴。 TimescaleDB: 基于优秀的PostgreSQL构建出的时序数据库。长远考虑,专业的TSDB必须是从底层存储面向时序数据的特征进行针对性设计和优化的。因此它不在本文中进一步分析。 IoTDB:国内清华大学开源的时序数据库,面向工业IoT场景;性能出众,社区活跃。
时序数据库的核心特点 时序数据库专门存储按时间顺序生成的数据(如监控指标、传感器数据),其核心特点是高写入吞吐和时间范围查询。数据通常带有时间戳,写入后极少更新,但需支持高效的时间区间聚合分析。 DATA节点:存储时序数据,需高吞吐和水平扩展(AP模型),允许最终一致性,通过多副本、Hinted-handoff等机制平衡性能与可靠性。 最终一致性保障 反熵(Anti-entropy):周期性地对比副本数据差异,以缺失数据为准修复不一致。时序数据的不可变性简化修复逻辑——仅需补全缺失记录。 时序数据库的写入密集型特性决定了DATA节点采用AP模型,而元数据管理需CP保证。 权衡的艺术:强一致性(如Raft)牺牲性能,最终一致性(如反熵)需容忍短暂不一致。 通过InfluxDB的案例可见,分布式系统的实现是理论与工程妥协的结果,需综合算法特性(如Raft)、业务场景(时序数据特点)和运维需求(如故障恢复速度)进行设计。
简介 本项目是基于InfluxDB发布的一个性能对比测试项目的基础上开发的。数据产生模块可以模拟Devops场景下多台服务器产生大量监控数据。 因为测试模拟数据先生成并写入硬盘文件,由数据加载程序从文件中读取一条条的数据写入语句,写入时序数据库。这种方式能够将数据产生过程中的性能差异排除。 root权限。 写入测试 本测试包提供了一个run.sh脚本,自动执行将docker容器按指定IP地址运行起来,然后产生数据,写入数据文件,并写入时序数据库。 功能对比 TDengine与OpenTSDB都是用与处理时序数据的存储引擎,其功能比较接近,各有特色。 功能对比 TDengine与Cassandra都是用与处理时序数据的存储引擎,其功能比较接近,各有特色。
这两幅图代表了大数据环境下趋势预测的典型场景,即事件预测和时序预测,本文重点关注第二幅图中的场景,即与时间维度相关的时间序列预测。 2. 为提取features,机器学习方法需要多个维度的数据,预测精度较高,建立的模型较为复杂,但是模型往往不够通用,针对不同应用场景需要重新提取features,建立模型。 现实预测中,机器学习方法往往结合传统时序预测法来运用。 4. 展望 大数据时代的时序预测得到越来越多的关注,能够准确预测趋势是时序预测的基础应用,其他场景如异常检测等也应用了时序预测方法,我们期待时序预测能够有更多的应用场景,比如通过精准预测,发现可能出现的突发事件以提高应对措施 这里初步探索的ARIMA模型是通用场景下的时序预测,在具体应用场景下,预测可以做的更精确。
Prometheus时序数据库 一、Prometheus 1、Prometheus安装 1)源码安装 prometheus安装包最新版本下载地址:https://prometheus.io/download external_labels: # 额外的属性,会添加到拉取得数据并存到数据库中 monitor: 'codelab_monitor' # Alertmanager配置 alerting 此处介绍两种Prometheus数据界面化显示的方式。 1)表达式浏览器 在浏览器中,输入部署prometheus数据库的机器ip地址以及端口号 http://localdns:9090/graph 界面展示如下,就可以通过浏览器查看Prometheus中的数据 7 点击“Add”按钮,保存这个新数据源。 之后,通过添加仪表盘(dashboards)进行数据的展示。
influxDB介绍 时间序列数据是以时间字段为每行数据的标示,比如股票市场的价格,环境中的温度,主机的CPU使用率等。但是又有什么数据是不包含timestamp的呢? 几乎所有的数据都可以打上一个timestamp字段。时间序列数据更重要的一个属性是如何去查询它。在查询的时候,对于时间序列我们总是会带上一个时间范围去过滤数据。 InfluxDB 是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。 它有三大特性: Time Series (时间序列):你可以使用与时间有关的相关函数(如最大,最小,求和等) Metrics(度量):你可以实时对大量数据进行计算 Eevents(事件):它支持任意的事件数据 1:副本个数,这里填1就可以了 DEFAULT设为默认的策略 目前,我们已经influxdb+grafana应用到数据库监控、Kafka数据流监控、服务页面数据统计监控等,炫酷的页面给你不一样的体验,
典型应用场景 互联网日志存储与监控分析 互联网服务可以将用户的网络延迟数据、业务服务指标数据、日志数据等写进CTSDB数据库。然后由时序数据库直接生成报表以供技术产品做分析,尽早的发现、解决问题。 image.png 活动地址 物联网海量数据存储与分析 工业生产环境下需要将工况数据存储起来,多个厂区的大量监测点,每年能产生几十亿个数据点,量级达到PB。 这些数据使用CTSDB实时写入,快速查询,做可视化的展示,帮助管理者分析决策;并且也能够做大数据分析,发现深层次的问题,增加效益。 通过倒排索引加速任意维度数据查询,能实现数据秒级可查。 低成本存储 采用列式存储以及高效的编码和压缩算法提高数据压缩比。 通过表 Rollup 功能,对历史数据做聚合,支持指定数据过期时间,数据按时间分区管理,过期后自动清理,降低存储成本。
当前有很多时序数据库采用了在底层KV存储(Cadssandra, HBase, LevelDB, RocksDB)基础上做时序封装,这样能够更快出原型,而且底层还很容易替换。 便于为统计数据做视图,反正查询条件都是按照时间查询的,物化视图方案是很容易的。 能够适用于单表简单查询,不适合做Join查询。 7. 当前时序数据库介绍 时序数据库又很多产品,这里只列举有限几个。 OpenTSDB OpenTSDB是基于HBase的分布式时序数据库。 数据存储一致性,毫秒级写入,数据持久化 底层基于HBase,每秒百万写入,支持线性扩容。 Beringei Beringei是Facebook开源的一款内存时序数据库,是Facebook发表的Gorilla论文的开源实现。 Beringei使用一种三级的内存数据结构,如下图所示,其中第一级为分片索引,第二级为时间序列索引,第三级为时序数据,通过该数据结构可以支持快速的数据读写;Beringei实现了一种高效的流式的压缩算法