时序数据的特点

时序数据的特点1 时序数据的特点以及大数据背景下的可优化空间 大数据时代已经到来了很多年 大数据解决方案基本成熟 Hadoop 集群处理方案基本成为了一个处理大数据的最佳实践 他所处理的数据包含结构化 半结构化 非结构化的数据 通过 Sqoop Flume kafka 收集数据 通过 hbase hdfs 存储数据 通过 mapreduce sparkstreami 等计算数据 最后通过 hive 作为数据仓库为应用层提供需要的数据 这是一套通用的 综合的大数据解决方案 那如果把数据类型细分一下

1.时序数据的特点以及大数据背景下的可优化空间?

 ​  大数据时代已经到来了很多年,大数据解决方案基本成熟, Hadoop集群处理方案基本成为了一个处理大数据的最佳实践。他所处理的数据包含结构化,半结构化,非结构化的数据,通过Sqoop、Flume、kafka收集数据,通过hbase、hdfs存储数据、通过mapreduce、sparkstreaming等计算数据,最后通过hive作为数据仓库为应用层提供需要的数据

 ​  这是一套通用的,综合的大数据解决方案。

 ​  那如果把数据类型细分一下,针对于大量的时序数据,我们应该怎么优化存储?

​ ​  首先,什么是时序数据?

 ​  简单来说,时序数据就是按照时间维度索引的数据,比如车辆轨迹数据,传感器温度数据。随着物联网时代的到来,时序数据的数据量呈井喷式爆发,针对于这一数据细分的优化存储显得越来越重要。

 ​  那么时序数据有什么特点呢?针对于这些特点我们怎么去优化存储呢?

 ​  同样在浅谈数据存储文章中,我们简单并且不成熟的总结了一下时序数据库的特点以及解决方案,如下:

 ​  一般的时序数据都会有这几个属性:

 ​  度量的数据集,类似于关系型数据库中的 table;

 ​  一个数据点,类似于关系型数据库中的 row;

 ​  时间戳,表征采集到数据的时间点;

 ​  维度列,代表数据的归属、属性,表明是哪个设备/模块产生的,一般不随着时间变化,供查询使用;

 ​  指标列,代表数据的测量值,随时间平滑波动。

 ​  如下图所示的数据:

img

 ​  对于时序数据,我们总结了以下特点:

 ​  1.数据特点:数据量大,数据随着时间增长,相同维度重复取值,指标平滑变化(某辆车的某个设备上传上来平滑变化的轨迹坐标)。

 ​  2.写入特点:高并发写入,且不会更新(轨迹不会更新)。

 ​  3.查询特点:按不同维度对指标进行统计分析,存在明显的冷热数据,一般只会查询近期数据(一般我们只会关心近期的轨迹数据)。

 ​  针对特点可以有如下改进:

 ​  第一个特点,数据量大,相同维度重复取值,我们可以将这些相同的维度压缩存储(因为是重复的),减少存储成本,比如将重复的host和port只存储一份就好了。

 ​  第二个特点,高并发写入,和hbase一样,我们可以采用LSM代替B树

 ​  第三个特点,聚合以及冷热数据,我们可以对于冷数据降低精度存储,也就是对历史数据做聚合,节省存储空间。

 ​  乍一看是没有问题的,但是在我细细研究了时序数据库的原理之后,对此又有了新的理解。

 ​  首先对于第一个改进,我们完全可以将这些相同维度放到mysql等传统数据库中,然后每个维度生成一个唯一id,再将变化的指标数据和唯一id存储在hbase中,这样就不会存在相同维度重复存储的问题了,顶多是查询的时候多查一次mysql而已,在维度不多的情况下,完全是可以接受的①。

 ​  对于第二个改进就更不用说了,hbase完全满足。

 ​  第三个改进只是一个优化点,不能成为决定性因素。

 ​  那么时序数据库和传统的大数据存储解决方案到底有哪些本质区别呢?

 ​  我觉得最重要的区别就是结构化数据。

 ​  1.存储的是结构化数据。我们都知道传统的大数据方案要存储的数据包含结构化,半结构化,非结构化的数据,这样就决定了我们不能决定有哪些字段以及定义各个字段的数据类型,像hbase就是通过byte类型统一存储的,也就是说放到hbase中的数据都是byte数组,从普通类型转换成byte数组需要我们自己来做,我们并不知道怎样转换成byte它的存储效率会更高。但是时序数据产生的数据都是结构化的数据,我们可以事先定义好数据的字段以及类型,让数据库系统根据不同的字段类型选择最优的压缩方式,大大提高存储的利用率。

 ​  2.分析聚合的是结构化数据。既然分析聚合是结构化数据,那么我们就不需要使用mapreduce那种复杂的计算工具、一般也不需要hive那种数据仓库,而只需要在数据库存储层面内聚类似于sum、avg在这种计算工具就可以了,甚至还可以做一些简单的流式计算,为‘超融合’提供了基础(超融合就是说将类似于之前对于大数据处理方案的多个组件融合成一个组件,主要还是因为结构化数据太简单了,收集计算等都比较简单,这也是后续时序数据库的发展趋势,减少系统复杂度)。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/219847.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午9:45
下一篇 2026年3月17日 下午9:45


相关推荐

  • 线性回归 均方误差_线性回归模型中随机误差项的意义

    线性回归 均方误差_线性回归模型中随机误差项的意义刚开始学习机器学习的时候就接触了均方误差(MSE,MeanSquaredError),当时就有疑惑,这个式子是怎么推导的,但是因为懒没有深究。今天看到了唐宇迪老师的机器学习课程,终于理解他是怎么推导的了。问题描述我们有工资和年龄两个特征,要预测银行会带宽给我们多少钱。1.拟合函数假设:年龄:x1x_1x1​工资:x2x_2x2​年龄的参数:θ1θ_1θ1​工资的参数:θ2θ_2θ2​那么有拟合函数:(1)将它转化为矩阵表达形式为:(2)其中x0全为1。2.误差真实值和预

    2022年9月29日
    6
  • Centos7下安装Docker(详细安装教程)[通俗易懂]

    一,Docker简介百科说:Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。看起来有点雾,用过虚拟机的应该对虚拟化技术有点印象,不知道也没关系,就把它当成轻量级的虚拟机吧(虽然一个是完全虚拟化,一个是操作系统层虚拟化),这个解释到位:ht…

    2022年4月10日
    44
  • Prolog 语言入门(一)

    Prolog 语言入门(一)Prolog 是一种与众不同的语言 不用来开发软件 专门解决逻辑问题 比如 苏格拉底是人 人都会死 所以苏格拉底会死 这一类的问题 Prolog 就是 逻辑编程 programmingo 的意思 只要给出事实和规则 它会自动分析其中的逻辑关系 然后允许用户通过查询 完成复杂的逻辑运算 本文简单介绍如何使用 Prolog 语言 主要参考了 xmonader 的教程 一 SWI Prolog 学习之前 请安装 Prolog 的运行环境 SWI Prolog 才能运行后面的代

    2026年3月18日
    1
  • java OA开源办公系统源码下载

    java OA开源办公系统源码下载javaOA 开源办公系统源码下载源代码下载地址 http www zuidaima com share 155046368126 htm

    2026年3月18日
    1
  • java拦截器_Java拦截器[通俗易懂]

    java拦截器_Java拦截器[通俗易懂]拦截器,主要用于拦截前端请求,常用于登录检查。下面是演示使用拦截器拦截未登录的用户访问需要登录的模块情景,使用配置方式实现和注解方式实现代码:配置方式:1、web.xml中配置监听器,对于所有的/admin开头的请求,都走com.blog.interceptor.LoginInterceptor这个拦截器。2、再看com.blog.interceptor.LoginInterceptor的实现代码…

    2022年4月29日
    189
  • Xsrf 验证

    Xsrf 验证#!/usr/bin/envpython#-*-coding:utf-8-*-importtornado.ioloopimporttornado.webcontainer={}classSession:def__init__(self,handler):self.handler=handler…

    2022年5月19日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号