OpenTSDB数据写入 - 数据库其他综合

OpenTSDB-时序数据库(更新中) 前言: 文章参考了OpenTSDB文档,以及其他网友的优质博客,结合自己的一些理解,也算是边学边写博客了 1. 简介 OpenTSDB(Open time series data base),时间序列数据库。顾名思义,就是以时间为标签存储数据,它的特点是能够提供最高 毫秒级精度 的时间序列数据存储,能够长久保存原始数据并且不失精度。但是OpenTSDB这个db有误导性,他其实只是一层读写服务(基于HBase) HBase可以看我另一篇文章: HBase架构基础和结构模型. 1.1 什么是时序数据? &nb 阅读详情

首页 > 教程中心 > Mysql教程 > OpenTSDB数据写入 - 数据库其他综合

发表文章

OpenTSDB数据写入 - 数据库其他综合

作者:用户 来源:互联网 时间:2017-03-13 09:24:46

数据库 openTsDb OpenTSDB数据写入 导入数据方式

摘要: OpenTSDB支持几种写入方式。包括Telnet API、HTTP API、import方式、客户端采集器(tcollector/telegraf)。Telnet适合测试用,tcollector/telegraf是日志采集客户端可用于流式加载日志,import方式适合批量导入数据。当然,最后还有一种方式就是直接写入Hbase(官网不推荐),这样OpenTSDB也可以直接展示数据。一、创建met...

OpenTSDB支持几种写入方式。包括Telnet API、HTTP API、import方式、客户端采集器(tcollector/telegraf)。Telnet适合测试用,tcollector/telegraf是日志采集客户端可用于流式加载日志,import方式适合批量导入数据。当然,最后还有一种方式就是直接写入Hbase(官网不推荐),这样OpenTSDB也可以直接展示数据。

一、创建metric

两种方式,选择其一即可。不管何种导入方式都必须先设置metric。

1. 事先在opentsdb中创建metric。如生成两个名为mymetric.data_1和mymetric.data_2的metric。如下:

tsdb mkmetric mymetric.data_1 mymetric.data_2

2.设置自动生成metric。修改opentsdb.conf设置:

tsd.core.auto_create_metrics = true

二、导入数据方式:Telnet Put

尝试将数据点写入存储。Telnet API无法处理UTF-8字符,可改用/api/put方法或直接使用Java API。命令格式如下:

put <metric> <timestamp> <value> <tagk_1>=<tagv_1>[ <tagk_n>=<tagv_n>]

终端运行示例:

echo "put mymetric.test.data 1295643636 48 a=foo" | nc -w 15 tsdHost tsdPort

三、导入数据方式:HTTP Put

此端点允许在OpenTSDB中通过HTTP存储数据,可替代Telnet接口。放置请求只能通过与POST方法关联的内容来执行。

为了节省带宽,put API允许客户端在单个请求中存储多个数据点。数据点之间可以毫无关联。每个数据点被单独处理,并且一个数据的错误将不会影响良好数据的存储。这意味着如果你的请求有100个数据点,其中1个数据点有错误。那么该错误数据点会被拒绝写入,但其余的99个数据点仍将被写入。

虽然API每个请求都支持多个数据点,但API在处理完每个请求之前不会返回。这意味着必须验证度量和标记名称/值,解析值,并将数据排队等待存储。如果你的put请求具有大量的数据点,则API可能需要很长时间才能响应,尤其是如果OpenTSDB必须将UID分配给标记名称或值。因此,最好限制每个请求的最大数据点数; 50每个请求是一个好的起点。

另一个建议是在HTTP客户端上启用keep-alives,这样您可以在每次放置数据时重新使用与服务器的连接。

1 HTTP 请求解析  2 数据写入示例 单点数据写入

{
    "metric": "sys.cpu.nice",
    "timestamp": 1346846400,
    "value": 18,
    "tags": {
       "host": "web01",
       "dc": "lga"
    }
}

多点数据写入

多点数据写入必须被包装成数组形式

[
    {
        "metric": "sys.cpu.nice",
        "timestamp": 1346846400,
        "value": 18,
        "tags": {
           "host": "web01",
           "dc": "lga"
        }
    },
    {
        "metric": "sys.cpu.nice",
        "timestamp": 1346846400,
        "value": 9,
        "tags": {
           "host": "web02",
           "dc": "lga"
        }
    }
]

3 返回响应

默认情况下,如果所有数据点都已成功存储,put端点将使用HTTP 204状态码进行响应,而无内容。如果一个或多个数据点有错误,API将在内容中返回一个带有错误消息的400状态码。响应解析说明和响应示例如下图所示:

 四、导入数据方式:批量导入

Import命令允许将时间序列数据批量加载到OpenTSDB中。可提供一个或多个文件,OpenTSDB将解析和加载数据。数据必须和Telnet put的数据格式一致,文本文件中每一行作为一个数据点。此外,文件还可以可选地使用GZip压缩,并且以.gz扩展名结束。

1 输入格式

路径可以是相对路径,也可以是绝对路径。

import path [...paths]
import /home/hobbes/timeseries1.gz /home/hobbes/timeseries2.gz

2 参数说明

格式和Telnet 接口相同。

    []

metric Is the name of the metric. Note that the metric name may not include spaces.

timestamp Is the absolute timestamp of the data point in seconds or milliseconds

value Is the value to store

tagk=tagv Is a pair of one or more space sparate tag name and value pairs. Note that the tags may not have spaces in them.

Example:

sys.cpu.user 1356998400 42 host=web01 cpu=0

我的代码如下:

./tsdb import --config=/Applications/opentsdb/src/opentsdb.conf /Applications/opentsdb/
my_test_data/opentsdb.txt

文件的内容格式如下,其中时间戳必须升序:

mymetric.test.data 1479303678 0.841470984808 host=xyd_host
mymetric.test.data 1479303679 0.909297426826 host=xyd_host
mymetric.test.data 1479303680 0.14112000806 host=xyd_host
mymetric.test.data 1479303681 -0.756802495308 host=xyd_host
mymetric.test.data 1479303682 -0.958924274663 host=xyd_host
mymetric.test.data 1479303683 -0.279415498199 host=xyd_host
mymetric.test.data 1479303684 0.656986598719 host=xyd_host
mymetric.test.data 1479303685 0.989358246623 host=xyd_host
mymetric.test.data 1479303686 0.412118485242 host=xyd_host
mymetric.test.data 1479303687 -0.544021110889 host=xyd_host
mymetric.test.data 1479303688 -0.999990206551 host=xyd_host
mymetric.test.data 1479303689 -0.536572918 host=xyd_host

 五、导入数据方式:Tcollector/Telegraf

这里使用Tcollect收集,Telegraf不做演示。Tcollector是一个客户端程序,用来收集本机的指标数据,并将数据发送到OpenTSDB。

GitHub地址:https://github.com/OpenTSDB/tcollector/

官方地址:https://opentsdb.net/docs/build/html/user_guide/utilities/tcollector.html

关于Tcollector安装和介绍,在此就不详细说明了。这里展示的是按照官方要求,直接用python定义一个收集器,向opentsdb发送数据。

运行:

sudo ./tcollector start

用Python自定义一个mycollector.py,注意文件权限为755,也可直接设为777。

#!/usr/bin/env python 

import sys
import time
import math
from collectors.lib import utils

COLLECTION_INTERVAL = 5  # seconds

def getValue(num):
    return math.sin(num)

def main():
    utils.drop_privileges()
    i = 100
    while True:
        print("xyd.test.cos %d %s"% (int(time.time()), getValue(i)))
        i += 0.1
        sys.stdout.flush()
        time.sleep(COLLECTION_INTERVAL)

if __name__ == "__main__":
    sys.stdin.close()
    sys.exit(main())

执行效果如下,生成一个只有正值的cos函数,貌似opentsdb不显示负数的:

以上是互联网用户为您的的内容,在阿里云内部有更多的关于OpenTSDB数据写入 - 数据库其他综合的内容,欢迎继续使用右上角搜索按钮进行搜索数据库、openTsDb、OpenTSDB数据写入、导入数据方式、以便于您获取更多的相关信息。

TDengine与OpenTSDB对比测试 TDengine与OpenTSDB对比测试 为帮助用户了解TDengine的指标,特将TDengine与OpenTSDB做了读写性能对比测试。 测试环境 对比测试的测试程序和数据库服务在同一台4核8GB的Dell台式机上部署,台式机型号为OptiPlex-3050,详细配置如下 OS: Ubuntu 16.04 x64 CPU: Intel(R) Core(TM) i3-7100 CPU @ 3.... 阅读详情

相关推荐

OpenTSDB: The Ultimate Guide for Time Series Database Management

1.背景介绍 OpenTSDB,全称为 Open-Source Time Series Database,是一个开源的时间序列数据库管理系统,专为监控和日志收集而设计。它能够高效地存储和检索大量的时间序列数据,支持多种数据源,如 Hadoop、Graphite、Ganglia 等。OpenTSDB 的设计目标是提供一个可扩展、高性能、高可用性的时间序列

AI天才研究院 1165

OpenTSDB 写入介绍

OpenTSDB支持几种写入方式。包括Telnet API、HTTP API、import方式、客户端采集器(tcollector/telegraf)。Telnet适合测试用,tcollector/telegraf是日志采集客户端可用于流式加载日志,import方式适合批量导入数据。当然,最后还有一种方式就是直接写入Hbase(官网不推荐),这样OpenTSDB也可以直接展示数据。

xsdxs的博客 8848

OpenTSDB时序数据库原理分析

作者:禅与计算机程序设计艺术 1.简介 (1)什么是OpenTSDB? OpenTSDB(开放时间序列数据库)是一个基于HBase的时间序列数据库系统。它最初由LinkedIn开发,后来被Apache基金会收购。其主要功能包括对时序数据进行存储

AI天才研究院 578

opentsdb 写入和查询详细讲解

opentsdb 写入和查询详细讲解

u011250186的博客 835

基于postman的OpenTSDB HTTP 写入

基于postman的OpenTSDB HTTP 写入,自己编写,值得下载

opentsdb时序数据库写入数据

opentsdb 写入数据方法,由于不提供格式化或者存储错误导致的数据点无法写入,所以不建议使用Telnet,而是使用Http API

OpenTSDB写数据(一)

写在前面 写入的一些配置和设计会对OpenTSDB数据库性能产生影响,所以这不单单是简单的数据输入,第一部分主要是对数据的写入规范。 原地址http://opentsdb.net/docs/build/html/user_guide/writing/index.html 写数据(Writing Data) 您可能希望直接进入并开始将数据投入TSD,但要真正利用OpenTSDB的强大功能和灵...

jyj019的博客 3486

STM32F429+LAN8720实战:5分钟搞定LWIP裸机网络通讯(附完整代码)

本文详细介绍了如何在STM32F429微控制器上,结合LAN8720 PHY芯片,在裸机环境下快速部署和配置LWIP协议栈以实现网络通讯。内容涵盖硬件RMII接口连接、STM32CubeMX关键配置、代码移植与定制,以及常见问题排查方法,帮助工程师在资源受限的嵌入式系统中高效实现稳定的以太网功能。

2y3u4i5o6p的博客 967

OpenTSDB HTTP 写入示例

opentsdb http写入示例、基于Python request包实现。

xsdxs的博客 9093

scGPT-spatial 复现

文章摘要:Spatial scGPT项目复现流程 本文详细介绍了复现Spatial scGPT项目的完整流程,包含数据预处理、模型训练等关键步骤。首先需要使用scanpy加载H5AD文件并进行归一化、对数变换等预处理。然后构建基因词汇表(vocab),提取基因表达值和空间坐标信息。接着使用DataCollator进行数据分箱、掩码和填充处理。最后搭建TransformerModel进行训练。文章特别指出了需要自行补全的缺失部分,包括基因词汇表构建、空间坐标提取、数据集类定义和训练主循环脚本等。作者还提供了详

victory0431的博客 1684

如何适配自定义激光雷达数据到LIO-SAM:解决ring和time参数缺失问题

本文详细解析了如何将非标准激光雷达(如速腾、Livox)适配到LIO-SAM框架中,重点解决ring和time参数缺失问题。提供了从源码修改到通用适配中间件的多层级解决方案,并包含实机测试与性能调优指南,帮助开发者高效完成雷达数据适配。

weixin_42551227的博客 421

OpenTSDB简介

TSDB 基础概念 时序数据库:提供高效存取时序数据和统计分析功能的数据管理系统,广泛应用于物联网(IoT)设备监控系统、企业能源管理系统(EMS)、生产安全监控系统和电力检测系统等行业场景。 TSDB特点 高吞吐量写入 数据分级存储 高压缩率减少存储空间 多维度查询能力 高效聚合能力 OpenTSDB Opentime series database 是基于...

面朝大海,春暖花开 1万+

给大一新生的蓝桥杯EDA备赛规划:从电路分析到立创EDA,如何用一年时间高效备赛?

本文为大一新生提供了一份系统的蓝桥杯EDA备赛规划,从电路分析基础到立创EDA实战操作,分阶段指导如何高效备赛。内容涵盖理论学习、软件操作、PCB设计专项提升及冲刺优化策略,帮助学生在一年内全面提升电子设计能力,为竞赛做好充分准备。

weixin_31476015的博客 290

TSDB时序数据库-OpenTSDB

TSDB时序数据库,openTSDB

醉卧雕龙舫,的博客 1242

基于车辆运动学的规划算法 - Hybrid A*/ State Lattice Planning (前置知识:自行车模型、Dubins、Reeds Shepp、多项式曲线、螺旋曲线)

本文将按顺序讲解基于车辆运动学的规划算法,以及需要的前置知识:自行车模型、Dubins和Reeds Shepp曲线、多项式曲线和螺旋曲线

BigDavid123的博客 4860

perl 安装DBI和DBD

还可以从cpan.perl.org站点下载tar压缩文件形式的源代码发行版本,解压缩后,切换到相应的文件目录 cd DBI-1.54 perl Makefile.PL make make test make install 安装DBD时候 需要export ORACLE_HOME 验证安装: perldoc DBD::Oracle perldoc DBI 在线文档; perldoc -m

zhaoyangjian724的专栏 1754

时序数据库-03-opentsdb-分布式时序数据库

StumbleUpon编写了一个名为tcollector的Python框架,用于从Linux 2.6,Apache的HTTPd,MySQL,HBase,memcached,Varnish等中收集数千个指标。如果找不到满足需求的工具,则可能需要编写从系统中收集数据的脚本(例如,通过从Linux上的/ proc读取有趣的指标,通过SNMP从网络设备收集计数器,或者从您的应用程序,通过JMX,例如Java应用程序),并定期将数据点推送到其中一个TSD。

1765

YOLOv12改进策略【卷积层】| CVPR-2020 利用DynamicConv 动态卷积 结合A2C2f进行二次创新,提高精度

在大规模视觉预训练中,通常模型的性能受到数据、参数和FLOP三个关键因素的影响。一般来说,模型的参数数量越多,FLOP也越高,但在移动设备等对计算资源有限制的场景下,需要低FLOP的模型同时又希望模型能从大规模预训练中受益。传统的方法很难在增加参数的同时保持低FLOP,因此需要一种新的设计来解决这个问题,模块应运而生。

Limiiiing的博客 829

时序列数据库 OpenTSDB (学习整理)

下载官网:http://opentsdb.net/ 官网用户指南:http://opentsdb.net/docs/build/html/index.html 学习时遇到的问题: 1、opentsdb总是被打挂? 我所遇到的问题原因和解决办法:      打到opentsdb中的数据量很大,队列满了还在往里面打,就挂了。 优化:在opentsdb和数据之间加了一层qbus,用来作为缓冲...

哆啦A梦~~ 2739

Qt:一个强大而灵活的跨平台应用程序开发框架

代码示例中的源代码是简单的示例,用于演示Qt框架的一些基本特性。实际应用中,开发人员可以根据自己的需求和项目要求,使用Qt框架提供的丰富功能和组件进行开发。在Qt的官方文档和示例代码中,您可以找到更多详细的教程和示例,以帮助您更好地理解和使用Qt框架。它提供了丰富的工具和功能,支持跨多个平台进行开发,并具有高度的可定制性和灵活性。它提供了丰富的工具和功能,使得开发人员能够创建高性能、可扩展和易于维护的应用程序。下面将详细介绍Qt框架的优点,并提供一些相关的源代码示例。

CodeVorter的博客 867

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

OpenTSDB-时序数据库

一、简介 OpenTSDB(Open time series data base),时间序列数据库。顾名思义,就是以时间为标签存储数据,它的特点是能够提供最高 毫秒级精度 的时间序列数据存储,能够长久保存原始数据并且不失精度。但是OpenTSDB这个db有误导性,他其实只是一层读写服务(基于HBase) 什么是时序数据? 股票的变化趋势、温度的变化趋势、系统某个指标的变化趋势……其实都是时序数据,就是每个时间点上纪录一条数据。 关于数据的存储,我们最熟悉的就是mysql了,但是想想看,每5分钟存储一个

lixinkuan的博客 2078

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

TSDB写入与查询讲解,聚合(aggregator)与采样(downsample)讲解—以opentsdb为例

1.时序数据库与时序数据概论 时序数据库是非关系型数据库的一种,其全称为时间序列数据库(Time Series Database)。时序数据库主要用于存取具有时间特征的数据。 时序数据是随时间产生的数据,其有着产生频率快、依赖时间、数据量庞大的特点。由于时序数据的数据量非常庞大,传统的关系型数据库在底层数据结构(可参见笔者文章)上导致了其无法对该类数据进行有效的存储和管...

翻过一座座山 6813

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

时间序列数据的存储和计算 - 开源时序数据库解析(一) OpenTSDB

开源时序数据库   如图是17年6月在db-engines上时序数据库的排名,我会挑选开源的、分布式的时序数据库做详细的解析。前十的排名中,RRD是一个老牌的单机存储引擎,Graphite底层是Whisper,可以认为是一个优化的更强大的RRD数据库。kdb+、eXtremeDB和Axibase都未开源,不做解析。InfluxDB开源版和Prometheus的底层都是基于levelDB自研的...

tianyeshiye 1894

OpenTSDB时序数据库概述

OpenTSDB时序数据库概述

u011250186的博客 2538

opentsdb在Hbase的存储结构

1、opentsdb介绍 opentsdb是基于Hbase的分布式、可伸缩的时间序列数据库。 主要用途: 就是做监控系统 提供最高毫秒级精度的时间序列数据存储,能够长久保存原始数据并且不失精度 提供很强的写入能力,支持大并发的数据写入。 opentsdb 的简介就不过多的介绍。 2、OpenTSDB存储相关的概念 在opentsdb中存储的结构是以下面的结构写入的: { "metric": "单位的名字", "timestamp": db.TIME, "value":

hyy_blue的博客 1976
上一篇: joda dateTime简单用法
下一篇: Storm介绍
王树民
博客等级 码龄10年 912粉丝 560原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值