CnosDB入门

摘要

什么是时序数据?

时序数据是指时间序列数据。是按时间顺序记录的数据列,在同一数据列中的各个数据必须是同口径的,要求具有可比性。

场景

天气

CnosDB简介

时序数据库 - 用于处理带时间标签(按照时间的顺序变化,即时间序列化)的数据

时序数据管理系统 - 主要通过对时序数据的采集、处理和分析帮助企业实时监控企业的生产与经营过程。

  • 数据是时序的,一定带有时间戳
  • 数据极少有更新操作
  • 数据的写入多,读取少
  • 用户关注的是一段时间的趋势
  • 数据是有保留期限的
  • 除了存储查询外,还需要实时的计算操作
  • 数据量巨大,每天很容易就会过百亿

快速开始

使用Docker启动

docker pull cnosdb/cnosdb:latest
docker run -itd -p 8086:8086 cnosdb/cnosdb:latest

导入示例数据

如何提示bash: wget: command not found

请下载wget工具: apt-get update && apt-get install wget


docker ps # 查看运行中的容器

docker exec -it container_id bash # 进入容器

wget https://gist.githubusercontent.com/cnos-db/9839ac8e78e45b0ee50d2803de4acfd8/raw/818b19d0dd3c80befe636b60ee569451ac2ca4b1/oceanic_station

cnosdb-cli import --path oceanic_station # 导入数据到cnosdb

cnosdb-cli

SHOW DATABASES

USE oceanic_station

CnosQL vs SQL

  • 时间序列数据在聚合场景中最有用

  • CnosDB 中的measurement类似于一个 SQL 中的table

  • CnosDB 中的tag就像 SQL 中的一个带索引的列

  • CnosDB 中的field就像 SQL 中的没有索引的列

  • CnosDBpoints类似于 SQL 中的行

  • CnosDB 中不需要预定义schema

查询入门

查看所有 measurements

show measurements

计算airtemperature的数量

SELECT COUNT("temperature") FROM air

查看air中的前五个值

SELECT * FROM air LIMIT 5

指定字段的标识符号

SELECT "temperature"::field,"station"::tag,"visibility"::field FROM "air" limit 10

查看measurement的tag key

SHOW TAG KEYS FROM air

查看tag value

SHOW TAG VALUES FROM air WITH KEY = "station"

查看field key

SHOW FIELD KEYS FROM air

查看series

SHOW SERIES

函数使用

更多

SELECT MEAN("temperature") FROM "air"

课堂问题

  1. 时序数据和时序数据库的关系是什么?
  2. 写出一条符合CnosDB格式的数据
  3. 查询出2022-01-14T00:00:00Z到2022-02-15T00:00:00Z期间在XiaoMaiDao水位最高的一条数据
  4. 查询出2022-01-14T00:00:00Z到2022-02-15T00:00:00Z期间LianYunGang每天的平均水温是多少