hbase 查询慢这么慢现在还有市场吗

MySQL数据库的查询速度每秒大约可以達到多少? [问题点数:40分结帖人weixiaohua]

我的表有20个字段,索引建立正常.查询每秒只能达到1000条左右.这是不是太慢了点?

这个没有具体的一个值,因为环境与cpu都不一样。你的这个也是正常啊

速度跟机器有关,比如内存CPU。还跟你mysql的服务器配置有关查询速度还跟你表的数据量有关。

数據量小当然查询快了

和各方面的关系都有关系 

sName建立的索引.表中有20个字段.每行数据大约12K.有BOLB型的,搞不明白为什么这么慢.

这个和硬件速度快慢吔有关系。

sName是不走索引的


这样为什么不走索引呢?

我现在改了改MySQL的配置文件,每秒大约可以到1200条查询了.

匿名用户不能发表回复!

原标题:大数据开发培训需要学習的内容大数据开发培训课程大纲

大数据要学习什么内容呢?科多大数据带大家来看看大数据开发课程大纲

一、静态页面基础 1颗星

从技术层面来说,该阶段使用的技术代码很简单、易于学习、方便理解从后期课程层来说,因为我们重点是大数据但前期需要锻炼编程技术与思维。经过我们多年开发和授课的项目经理分析满足这两点,目前市场上最好理解和掌握的技术是J2EE但J2EE又离不开页面技术。所以苐一阶段我们的重点是页面技术采用市场上主流的HTMl+CSS。

称为Java基础由浅入深的技术点、真实商业项目模块分析、多种存储方式的设计与实現。该阶段是前四个阶段最最重要的阶段因为后面所有阶段的都要基于此阶段,也是学习大数据紧密度最高的阶段本阶段将第一次接觸团队开发、产出具有前后台(第一阶段技术+第二阶段的技术综合应用)的真实项目。

三、 前端框架 3颗星

前两个阶段的基础上化静为动鈳以实现让我们网页内容更加的丰富,当然如果从市场人员层面来说有专业的前端设计人员,我们设计本阶段的目标在于前端的技术可鉯更直观的锻炼人的思维和设计能力同时我们也将第二阶段的高级特性融入到本阶段。使学习者更上一层楼

四、企业及开发框架 4颗星

從J2EE开发工程师的任职要求来说,该阶段所用到的技术是必须掌握而我们所授的课程是高于市场(市场上主流三大框架,我们进行七大框架技术传授)、而且有真实的商业项目驱动需求文档、概要设计、详细设计、源码测试、部署、安装手册等都会进行讲解

五、初识大数據 3颗星

该阶段设计是为了让新人能够对大数据有一个相对的大概念怎么相对呢?在前置课程JAVA的学习过后能够理解程序在单机的电脑上是如哬运行的现在,大数据呢大数据是将程序运行在大规模机器的集群中处理。大数据当然是要处理数据所以同样,数据的存储从单机存储变为多机器大规模的集群存储(你问我什么是集群?好我有一大锅饭,我一个人可以吃完但是要很久,现在我叫大家一起吃┅个人的时候叫人,人多了呢

那么大数据可以初略的分为: 大数据存储和大数据处理

所以在这个阶段中呢,我们课程设计了大数据的标准:HADOOP

大数据的运行呢并不是在咋们经常使用的WINDOWS 7或者W10上面而是

现在使用最广泛的系统:LINUX。

六、大数据数据库 4颗星

该阶段设计是为了让大家茬理解大数据如何处理大规模的数据的同时简化咋们的编写程序时间,同时提高读取速度

怎么简化呢?在第一阶段中如果需要进行複杂的业务关联与数据挖掘,自行编写MR程序是非常繁杂的所以在这一阶段中我们引入了HIVE,大数据中的数据仓库这里有一个关键字,数據仓库我知道你要问我,所以我先说数据仓库呢用

来做数据挖掘分析的,通常是一个超大的数据中心存储这些数据的呢,一般ORACLE,DB2,等大型数据库这些数据库通常用作实时的在线业务。

总之要基于数据仓库分析数据呢速度是相对较慢的。但是方便在于只要熟悉SQL学习起來相对简单,而HIVE呢就是这样一种工具基于大数据的SQL查询工具

呐,这一阶段呢还包括hbase 查询慢它为大数据里面的数据库。

纳闷了不是学叻一种叫做HIVE的数据“仓库”了么?HIVE是基于MR的所以

查询起来相当慢hbase 查询慢呢基于大数据可以做到实时的数据查询。一个主分析

七、实时數据采集 4颗星

前面的阶段数据来源是基于已经存在的大规模数据集来做的,数据处理与分析过后

的结果是存在一定延时的通常处理的数據为前一天的数据。

举例场景:网站防盗链客户账户异常,实时征信遇到这些场景基于前一天的数

据分析出来过后呢?是否太晚了所以在本阶段中我们引入了实时的数据采集与分

析。主要包括了:FLUME实时数据采集采集的来源支持非常广泛,KAFKA数据

数据接收与发送STORM实时數据处理,数据处理秒级别

八、spark数据分析 5颗星

同样先说前面的阶段主要是第一阶段。HADOOP呢在分析速度上基于MR的大规模数据集相对来说还是挺慢的包括机器学习,人工智能等而且不适合做迭代计算。SPARK呢在分析上是作为MR的替代产品怎么替代呢? 先说他们的运行机制HADOOP基于磁盘存储分析,而SPARK基于内存分析我这么说你可能不懂,再形象一点就像你要坐火车从北京到上海,MR就是绿皮火车而SPARK是高铁或者磁悬浮。而SPARK呢是基于SCALA语言开发的当然对SCALA支持最好,所以课程中先学习SCALA开发语言什么?又要学另外一种开发语言不不不!!!我只说一句話:SCALA是基于JAVA做的。

总结:在课程的设计方面市面上的职位要求技术,基本全覆盖而且并不是单纯的为了覆盖职位要求,而是本身课程從前到后就是一个完整的大数据项目流程一环扣一环。

比如从历史数据的存储分析(HADOOP,HIVE,hbase 查询慢),到实时的数据存储(FLUME,KAFKA)分析(STORM,SPARK),這些在真实的项目中都是相互依赖存在的

以上内容为科多大数据的人才培养课程体系。

随着近年来物(IoT)的快速发展時间序列数据出现了爆炸式增长。根据过去两年DB-Engines数据库类型的增长趋势时间序列数据库的增长是巨大的。这些大型开源时间序列数据库嘚实现是不同的并且它们都不是完美的。但是这些数据库的优点可以结合起来实现完美的时间序列数据库。

阿里云是由阿里云开发的汾布式NoSQL数据库Table Store使用多模型设计,包括与BigTable相同的宽列模型和用于消息数据的时间序列模型在存储模型,数据大小以及写入和查询功能方媔它可以满足时间序列数据场景的需求。但是作为通用模型数据库,时间序列数据存储应充分利用底层数据库的功能在模式设计和計算对接中,必须有一个特殊的设计例如OpenTSDB的hbase 查询慢和UID编码的RowKey设计。

本文重点介绍时间序列数据的数据模型定义和核心处理流程以及基於构建时间序列数据存储的体系结构。我们将首先讨论时间序列数据然后讨论如何使用Table Store为我们的业务应用程序处理这些数据。

时间序列數据主要分为两种类型用于监控和状态。当前的开源时间序列数据库针对用于监视的时间序列数据并且针对该场景中的数据特征进行叻一些特定的优化。就时间序列数据的特征而言另一种类型是状态的时间序列数据。两种类型的时间序列数据对应于不同的场景监控類型对应监控场景,状态类型对应其他场景如跟踪和异常状态记录。最常见的包跟踪是状态的时间序列数据

两种类型的数据被分类为時间序列的原因是这些类型在数据模型定义,数据收集数据存储和计算中是完全一致的,并且可以抽象相同的数据库和相同的技术体系結构

在定义时间序列数据模型之前,我们首先对时间序列数据进行抽象表示

  1. 个人或团体(WHO):描述产生数据的主题,可以是人监测指标或对象。它通常描述个人具有多维属性并且可以使用某个唯一ID来定位个人,例如使用人ID来定位人,以及使用设备ID来定位设备还鈳以通过多维属性定位个人,例如使用群集,机器ID和进程名称来定位进程
  2. 时间(WHEN):时间是时间序列数据的最重要特征,是将其与其怹数据区分开来的关键属性
  3. 位置(地点):在气象学等科学计算领域,位置通常由纬度和经度的二维坐标以及纬度经度和海拔的三维唑标来定位。
  4. 状态(WHAT):用于描述特定时刻特定个人的状态用于监视的时间序列数据通常是数字描述状态,并且跟踪数据是事件表达状態其中针对不同场景存在不同的表达。

以上是时间序列数据的抽象表示每个开源时间序列数据库都有自己的时间序列数据模型定义,萣义了用于监视的时间序列数据以OpenTSDB的数据模型为例:

监控时间序列数据模型定义包括:

  1. 指标:用于描述监控指标。
  2. 标签:用于定位受监控对象由一个或多个标签描述。
  3. 时间戳:收集监控值的时间点
  4. 值:收集的监视值,通常为数字

监视时间序列数据是最典型的时间序列数据类型,具有特定的特征监视时间序列数据的特征确定这样的时间序列数据库具有特定的存储和计算方法。与状态时间序列数据相仳它在计算和存储方面具有特定的优化。例如聚合计算具有几个特定的??数字聚合函数,并且将在存储上具有特别优化的压缩算法在数据模型中,监控时间序列数据通常不需要表示位置而整体模型符合我们对时间序列的统一抽象表示。

基于监测时间序列数据模型我们可以根据上述时间序列数据抽象模型定义时间序列数据的完整模型:

  1. 名称:定义数据的类型。
  2. 标签:描述个人的元数据
  3. 时间戳:苼成数据时的时间戳。
  4. 值:与数据对应的值或状态可以提供多个值或状态,这些值或状态不一定是数字

这是一个更完整的时间序列数據模型,与OpenTSDB的监控时间序列数据的模型定义有两个主要差异:第一元数据中还有一个维度,位置; 第二它可以表达更多的价值观。

时间序列数据查询计算和分析

时间序列数据有自己的查询和计算方法,大致包括:

根据数据模型定义名称+标签+位置可用于定位具有时间序列的个体,时间序列上的点是时间戳和值对于时间序列数据的查询,首先需要定位时间序列该时间序列是基于元数据的一个或多个值嘚组合的检索过程。您还可以根据元数据的关联向下钻取

通过检索定位时间序列后,将查询时间序列对时间序列上的单个时间点的查詢非常少,并且查询通常在连续时间范围内的所有点上通常在这个连续时间范围内对缺失点进行插值。

查询可以是单个时间序列或多个時间序列对于多个时间序列的范围查询,通常会聚合结果该聚合用于不同时间序列上的相同时间点的值,通常称为“后聚合”

与“後聚合”相反的是“预聚合”,这是在时间序列数据存储之前将多个时间序列聚合成一个时间序列的过程预聚合计算数据然后存储它,洏后聚合查询存储的数据然后计算它

下采样的计算逻辑与聚合的计算逻辑类似。不同之处在于下采样是针对单个时间序列而不是多个时間序列其在单个时间序列中聚合时间范围内的数据点。下采样的目的之一是使数据点在很大的时间范围内呈现另一个目的是降低存储荿本。

分析是从时间序列数据中提取更多价值有一个特殊的研究领域叫做“时间序列分析”。

时间序列数据处理的核心流程如上图所示包括:

  1. 数据模型:对于时间序列数据的标准定义,收集的时间序列数据必须符合模型的定义包括时间序列数据的所有特征属性。
  2. 流计算:时间序列数据的预聚合下采样和后聚合。
  3. 数据存储:存储系统提供高吞吐量大规模和低成本的存储,支持冷/热数据分离和有效的范围查询
  4. 元数据检索:提供1000万到1亿的时间序列元数据的存储和检索,并支持不同的检索方法(多维过滤和位置查询)
  5. 数据分析:为时間序列数据提供时间序列分析和计算功能。

让我们看看这些核心流程中可用于产品选择的产品

时间序列数据是典型的非关系数据。它具囿高并发性高吞吐量,大数据量高写入和低读取的特点。查询模式通常是范围查询对于这些数据特性,非常适合使用NoSQL等数据库几個流行的开源时间序列数据库使用NoSQL数据库作为数据存储层,例如基于hbase 查询慢的OpenTSDB和基于Cassandra的KairosDB因此,对于“数据存储”的产品选择可以选择諸如hbase 查询慢或Cassandra的开源分布式NoSQL数据库,或者诸如阿里云的表存储之类的云服务

对于流计算,可以使用诸如JStromSpark Streaming和Flink等开源产品,或云上的阿里巴巴Blink和云产品

时间序列的元数据也将很大,因此首先考虑分布式数据库另外,由于查询模式需要支持检索数据库需要支持互连索引囷空间索引,并且可以使用开源Elasticsearch或Solr

数据分析需要强大的分布式计算引擎,开源Spark云产品或无服务器SQL引擎,如Presto或云产品Data Lake Analytic

基于DB-Engines的数据库开發趋势,我们看到时间序列数据库在过去两年中迅速发展并且出现了许多优秀的开源时间序列数据库。主要时间序列数据库的每个实现吔有其自身的优点以下是一些维度的综合比较:

  1. 数据存储:所有数据库都使用分布式NoSQL(LSM引擎)存储,包括hbase 查询慢和Cassandra等分布式数据库BigTable等雲产品,以及自行开发的存储引擎
  2. 聚合:预聚合只能依赖外部流计算引擎,例如Storm或Spark Streaming在后聚合级别,查询后聚合是一个交互式过程因此它通常不依赖于流计算引擎。不同的时间序列数据库提供单线程简单方法或并发计算方法自动下采样也是一种后聚合过程,但它只是┅个流过程而不是一个交互过程该计算适用于流计算引擎,但不以这种方式实现
  3. 元数据存储和检索:经典的OpenTSDB没有专用的元数据存储,吔不支持元数据的检索通过扫描数据表的行键来检索和查询元数据。KairosDB在Cassandra中使用表格进行元数据存储但检索效率非常低,因为需要扫描表格Heroic是基于KairosDB开发的。它使用Elasticsearch进行元数据存储和索引并支持更好的元数据检索。InfluxDB和Prometheus独立实现索引但索引并不容易,需要1000万到1亿的时间序列元数据InfluxDB在早期版本中实现了基于内存的元数据索引,该版本有许多限制例如,内存的大小将限制时间序列的大小
  4. 数据分析:除叻Elasticsearch之外,大多数TSDB自然不具有除了查询和分析功能以外的分析功能这对于它在时间序列字段中保持立足点是一个重要的优势。

表存储时间序列数据存储

作为由阿里云开发的分布式NoSQL数据库Table Store在数据模型方面使用与Bigtable相同的宽列模型。该产品非常适用于存储模型数据大小以及写叺和查询功能方面的时间序列数据方案。我们还支持监控时间序列产品如,状态时间序列产品如AliHealth的药物追踪,以及核心服务如邮政包裹追踪。还有一个完整的计算生态系统来支持时间序列数据的计算和分析在未来的规划中,我们针对时间序列场景对元数据检索时間序列数据存储,计算和分析以及成本降低进行了具体优化

以上是基于Table Store的时间序列数据存储,计算和分析的完整架构这是一种无服务器架构,通过组合云产品实现提供完整时间序列场景所需的所有功能每个模块都具有分布式架构,提供强大的存储和计算功能并且可鉯动态扩展资源。每个组件也可以替换为其他类似的云产品该架构非常灵活,与开源时间序列数据库相比具有很大的优势该架构的核惢优势如下:

存储计算的分离是一种领先的技术架构。其核心优势是提供更灵活的计算和存储资源配置更灵活的成本,更好的负载平衡囷数据管理在云环境中,为了让用户真正利用存储和计算分离带来的好处需要提供用于分离存储和计算的产品。

Table Store以技术架构和产品形式实现存储和计算的分离并且可以以相对低的成本自由地分配存储和计算资源。这在时间序列数据场景中尤其重要其中计算是相对恒萣的,并且存储线性增长优化成本的主要方法是分配恒定的计算资源和无限可扩展的存储,而无需额外的计算成本

时间序列数据的一個显着特征是存在独特的热和冷数据访问,并且最近更频繁地访问写入的数据基于此特性,热数据采用IOPS较高的存储介质大大提高了整體查询效率。Table Store提供两种类型的实例:高性能实例和经济高效的实例分别对应SSD和SATA存储介质。服务功能允许用户根据不同精度的数据和不同嘚查询和分析性能要求自由分配不同规格的表。例如对于高并发和低延迟查询,分配高性能实例; 对于冷数据存储和低频查询分配了具有成本效益的实例。对于需要高速的交互式数据分析可以分配高性能实例。对于时间序列数据分析和离线计算的场景可以分配具有荿本效益的实例。

对于每个表可以自由定义数据的生命周期,例如对于高精度表,可以配置相对较短的生命周期对于低精度表,可鉯配置更长的生命周期

大部分存储空间用于冷数据。对于这部分访问频率较低的数据我们将通过擦除编码和终极压缩算法进一步降低存储成本。

流计算是时间序列数据计算中的核心计算方案其对时间序列数据执行预聚合和后聚合。通用监控系统架构使用前端流计算解決方案数据的预聚合和下采样都在前端流计算中执行。也就是说数据在存储之前已经被处理,而存储的只是结果不再需要第二个下采样,并且可能仅需要后聚合的查询

Table Store与Blink深度集成,现在可作为Blink维护表和结果表使用源表已经开发并准备发布。Table Store可以用作Blink的源和后端整个数据流可以形成一个闭环,可以带来更灵活的计算配置进入闪烁后,原始数据将进行数据清理和预聚合然后写入热数据表。该数據可以自动流入Blink进行后聚合并支持一段时间的历史数据回溯。可以将后聚合的结果写入冷存储

除了与Blink集成之外,Table Store还可以与Function Compute集成以进行倳件编程并且可以在时间序列场景中启用实时异常状态监视。它还可以通过Stream API读取增量数据以进行自定义分析

Table Store与阿里云实现的分布式计算引擎深度集成,例如(以前的ODPS)MaxCompute可以直接读取表存储上的数据进行分析,从而消除了数据的ETL过程

整个分析过程中有一些优化,例如通过索引优化查询,并在底部提供更多运算符来计算下推

总之,Table Store的服务功能的特点是零成本集成开箱即用,全局部署多语言SDK和完铨托管服务。

元数据也是时间序列数据中非常重要的部分它在数量上比时间序列数据小得多,但它比查询复杂性中的时间序列数据复杂嘚多

根据我们上面提供的定义,元数据主要分为标签和位置标签主要用于多维检索,而位置主要用于位置检索因此对于底层存储,Tags必须实现反向排名索引以提供有效的检索并且Location需要实现位置索引。服务级别监控系统或跟踪系统的时间顺序为1000万到1亿或更高元数据还需要分布式检索系统来提供高并发性低延迟解决方案,业界最好的实现方法是使用Elasticsearch来存储和检索元数据

阿里云是一个支持多种数据模型嘚通用分布式NoSQL数据库。当前可用的数据模型包括宽列(BigTable)和时间序列(消息数据模型)

在行业中类似数据库产品(如hbase 查询慢和Cassandra)的应用Φ,时间序列数据是一个非常重要的领域Table Store不断探索时间序列数据存储。我们在流计算数据闭环数据分析优化和元数据检索过程中不断唍善,提供统一的时间序列数据存储平台

我要回帖

更多关于 hbase 查询慢 的文章

 

随机推荐