1. 关于 Metrics, value, tag name, tag value
opentsdb的每个时间序列必须有一个metric和一个或多个tag对,每个时间序列每小时的数据保存一行。
opentsdb的metrics, tag name, tag value的编码长度都是3byte, 所以UID的数量上限为 2^24  个。编码长度可以扩展到 8byte,即2^64 个, 一般不建议修改。
tag name和tag value的UID分配是完全独立的,比如tag value的取值为整数2,那么这个值完全可以被多个tag name所使用, cpu=2, interface=2, hdd=2等。
Time Series Cardinality 
这里的Cardinality指:metric的数量。默认 2^24 = 16 million
在设计系统的时候,确保metric,tag name, tag value的Cardinality取值在较小的范围内,如果他们太多了,会影响到查询速度。
注意点:
Be consistent with your naming to reduce duplication. Always use the same case for metrics, tag names and values.
对每个metric使用相同数目和相同类型的 tag name & tag value. 不要这样使用my.metric host=foo and my.metric datacenter=lga.
根据常用的查询方式,设计优化的schema. 比如常用的tag,放在rowkey组合的前面(metric后)。
Think about how you may want to drill down when querying。下钻查询,细化查询。
metric的tag不要太多,尽量不要超过5个, 最多8个。
metric和tag的命名规则:大小写敏感,不允许空格,只允许一下字符: a to z, A to Z, 0 to 9, -, _, ., / or Unicode letters (as per the specification).   
 
2. 数据点 Data Point
一个Data Point必须包括:metric,至少一个tag, 时间戳, 一个数值(整数或浮点数)
时间戳:一定是整数,13位毫秒,10位秒。在一个序列中尽量使用同样的时间戳,混合不同单位的时间戳会引起查询变缓慢。如果没有必要,使用秒为单位,降低存储空间的消耗。
数值value:只能由数字和小数点组成,如果没有小数点,则认为是整数,否则是浮点数。整数使用可变长编码方式,最少一字节,最多8字节。浮点数为4字节单精度浮点数。由于浮点数是单精度类型,因此不支持需要精确值得浮点数,例如15.2会被保存为15.199999809265137
写入数据时,不必按照时间序列写入,时间戳在后的数据可以先写入,在写入时间戳在前的数据。
数据重复写入的问题:
在同一小时内多次写入相同的数据不会有问题。
如果设置compaction操作,那么如果前后两次写入的数据类型不同,则在查询时一定会抛出异常。如果两次写入的数据类型相同,那么在该行还没有进行compaction操作之前,前面的数据将被覆盖掉。
2.1版本,可以设置tsd.storage.fix_duplicates=true. 最近写入的数据会被返回

OpenTSDB 写入数据的更多相关文章

  1. spark读取hdfs上的文件和写入数据到hdfs上面

    def main(args: Array[String]): Unit = { val conf = new SparkConf() conf.set("spark.master" ...

  2. java向Excel文件写入数据

    /*使用之前要记得导入第三的jar包这个是我之前使用的时候那别人的东西自己修改了一下 还没来得及好好地封装一下还望见谅,注释我感觉写的挺清楚的就在不进行解释代码了*/package com.zzp.E ...

  3. NPOI操作excel之写入数据到excel表

    在上一篇<NPOI操作excel之读取excel数据>我们把excel数据写入了datatable中,本篇就讲如何把datatable数据写入excel中. using System; u ...

  4. Python中,添加写入数据到已经存在的Excel的xls文件,即打开excel文件,写入新数据

    背景 Python中,想要打开已经存在的excel的xls文件,然后在最后新的一行的数据. 折腾过程 1.找到了参考资料: writing to existing workbook using xlw ...

  5. java io流 创建文件、写入数据、设置输出位置

    java io流 创建文件 写入数据 改变system.out.print的输出位置 //创建文件 //写入数据 //改变system.out.print的输出位置 import java.io.*; ...

  6. 用多态来实现U盘,Mp3,移动硬盘和电脑的对接,读取写入数据。

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  7. PHP文件操作 之往一个文件写入数据

    //打开一个文件 $f = fopen($filename,'wb'); $filename:打开一个文件,不存在则自动创建,如果不能创建,说明指定的文件目录有错误 wb:写入的方式 ---- 覆盖原 ...

  8. 转载-python学习笔记之输入输出功能读取和写入数据

    读取.写入和 Python 在 “探索 Python” 系列以前的文章中,学习了基本的 Python 数据类型和一些容器数据类型,例如tuple.string 和 list.其他文章讨论了 Pytho ...

  9. 向post请求中写入数据,最终保存在了HttpWebRequest.Params中

    一.向post请求中写入数据,最终保存在了HttpWebRequest.Params中: 1)如果存入的是IDictionary类型的字符串变量,如:“username=administrator”, ...

随机推荐

  1. PostGreSql - 提取jsonb数据

    本文主要介绍如何在PostGreSql中提取出jsonb类型字段中的某个key的值 参考:https://www.cnblogs.com/mywebnumber/p/5551092.html 一.简单 ...

  2. Go递归函数

    package main import "fmt" func main() { /* 递归函数(recursion):一个函数自己调用自己,就叫做递归函数. 递归函数要有一个出口, ...

  3. Python变量理解

    变量进阶(理解) 01. 变量的引用 变量 和 数据 都是保存在 内存 中的 在 Python 中 函数 的 参数传递 以及 返回值 都是靠 引用 传递的 1.1 引用的概念 在 Python 中 变 ...

  4. Python 之路

    Python之路[第一篇]:Python简介和入门 Python之路[第二篇]:Python基础(一) Python之路[第三篇]:Python基础(二) Python之路[第四篇]:模块 Pytho ...

  5. TCL Strings

    append    Append values to variable binary      Insert and extract fields from binary strings regexp ...

  6. Java内存模型(JMM)那些事

    本文是库存文章,去年年底学习了慕课网的并发编程课程,今年年初看完了<深入理解Java虚拟机>这本书,但是很多内容忘得差不多了,打算写写博客回忆一下那些忘在脑后的知识点. 温故而知新 更多J ...

  7. JS高级---三种创建对象的方式

    JS高级---三种创建对象的方式 字面量的方式 (实例对象) 调用系统的构造函数 自定义构造函数方式 //创建对象---->实例化一个对象,的同时对属性进行初始化 var per=new Per ...

  8. Springmvc-crud-02错误(添加出现中文乱码)

    错误: 在进行添加页面时使用post请求,输入中文时会出现乱码 原因: post请求不支持gbk格式,使用字符编码过滤器,设置为UTF-8编码即可 注意配置请求的字符集和响应字符集 解决方案:需要放在 ...

  9. 6_8 树(UVa548)<从中序和后序恢复二叉树>

    你的任务是找出一棵二叉树中最小路径上终端节点(树叶,leaf node)的值.所谓路径乃指从根节点(root)旅行到任一终端节点.路径的值为所经过的节点的值的和(包含根节点及终端节点).而最小路径就是 ...

  10. IDEA中使用maven下载插件速度很慢解决方法

    1.打开IDEA的File--->settings--->搜索mavaen--->找到settings.xml 2.在settings.xml中添加 <!-- 阿里云仓库 -- ...