Ubuntu使用InfluxDB极简例子

可以认为InfluxDB是一个主键为时间的数据库,官网有免费体验:

https://cloud2.influxdata.com/signup

不过手头刚好白瞎了一台Ubuntu,试试。

安装

curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
source /etc/lsb-release
echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

然后:

sudo apt-get update # 云服务器如果有限制,跳过
sudo apt-get install influxdb
sudo service influxdb start

看看状态:

image.png

查看配置,使用influxd config,可以看到一些端口:
image.png

默认是外网也能访问的,云服务器可以开一下8086端口的安全组。测试下连接,rfc3339为时间格式:

influx -precision rfc3339 # 直接influx也行

如果报错,可能需要安装一下:

sudo apt install influxdb-client

最后没问题:


image.png

使用

类似mysql

> create database food_data
> show databases
name: databases
name
----
_internal
food_data

> use food_data
Using database food_data

读写数据

使用POST即可插入数据,InfluxDBschema不需要提前定义,可直接插入,写个脚本定时插入:

import requests
import random
import time

count = 0
while True:
    place = random.choice(['home', 'cafe', 'hotel'])
    phone = random.randint(1, 60)
    website = random.randint(1, 100)
    s = f'orders,place={place} phone={phone},website={website}'
    res = requests.post('http://yourIP:8086/write?db=food_data',
                        data=s.encode())
    count += 1
    print(count, s)
    time.sleep(random.randint(1, 60))

其中ordersmeasurement,相当于表名。
placetag,可以有多个tag,形成tag settag不是必须的,但一般都加上,另外,上面的代码如果不加tag会报错,待研究。
phonewebsitefieldfieldtag都是key-value型的,field默认为floattag只能是stringtag可以索引,field无法索引,所以查询tag快一些,需要查询、聚合、元数据的字段最好设计为tag,但tag不宜过多,比如姓名就不适合。
可以在客户端查询看到结果:

image.png

可以通过脚本插入数据。

CQ和RP

试试设置连续查询CQ保留策略RP,自动定期执行,来实现数据采样和保留,类似滑动窗口。下面的语句给数据库food_data创建一个只保留2小时内的数据的默认保留策略,这将覆盖掉本来默认的永久保留的autogen策略。REPLICATION为副本,单点为1,多节点需要付费使用,可以先忽略。

> CREATE RETENTION POLICY "two_hours" ON "food_data" DURATION 2h REPLICATION 1 DEFAULT

在创建一个非默认的1年保留策略,数据库里的measurement必须指定才能使用这个策略,否则还是用上面的two_hours

CREATE RETENTION POLICY "a_year" ON "food_data" DURATION 52w REPLICATION 1

再创建一个连续查询,注意不分行:

> CREATE CONTINUOUS QUERY "cq_30m" ON "food_data" BEGIN
  SELECT mean("website") AS "mean_website",mean("phone") AS "mean_phone"
  INTO "a_year"."downsampled_orders"
  FROM "orders"
  GROUP BY time(30m)
END

这会将orders里的数据,每30分钟平均聚合一下,存入downsampled_orders表,且该表的保留策略为a_year。由于之前写了定时脚本产生数据到orders表,经过一段时间,downsampled_orders表会自动聚合采样数据,时间为每个半小时的起始时间戳,精确到纳秒。

image.png

相同的RQmeasurementtag set形成series;相同series且相同timestampfield set,形成point。在一个series里,pointtimestamp是唯一的,无法写入相同timestamppoint

总结

时序数据库的增删改查,只把技能点在了增和查。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,313评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,369评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,916评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,333评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,425评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,481评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,491评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,268评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,719评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,004评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,179评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,832评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,510评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,153评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,402评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,045评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,071评论 2 352

推荐阅读更多精彩内容

  • InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而I...
    Boris0621阅读 3,103评论 0 8
  • InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而I...
    __七把刀__阅读 164,585评论 19 91
  • 转载自:https://www.cnblogs.com/jackyroc/p/7677508.html influ...
    SkTj阅读 2,122评论 0 2
  • 如果项目的功能模块中用到对时间特性比较敏感的数据,例如性能监控,趋势走向等需求时,InfluxDB将会是一个不错的...
    神秘人l3阅读 8,905评论 0 1
  • 基础概念 与常见的数据库的对比 概念名称 Influxdb 关系型数据库数据库 database databa...
    forward_v_v_阅读 1,135评论 0 1