influxdb-orm 是一个用于 InfluxDB 时序数据库的 ORM,终结没有 InfluxDB ORM 的时代。
常用操作一把梭,支持 php-fpm、Swoole 环境,一键轻松切换。
可以用于所有传统框架、所有 Swoole 框架中!
本项目可以使用composer安装,遵循psr-4自动加载规则,在你的 composer.json
中加入下面的内容:
{ "require": { "yurunsoft/influxdb-orm": "^1.0.0" } }
然后执行 composer update
安装。
在 WorkerStart
事件中执行:
\Yurun\Util\YurunHttp::setDefaultHandler(\Yurun\Util\YurunHttp\Handler\Swoole::class);
具体可参考
example/test.php
<?php namespace Yurun\InfluxDB\ORM\Example\Model; use Yurun\InfluxDB\ORM\BaseModel; use Yurun\InfluxDB\ORM\Annotation\Tag; use Yurun\InfluxDB\ORM\Annotation\Field; use Yurun\InfluxDB\ORM\Annotation\Value; use Yurun\InfluxDB\ORM\Annotation\Timestamp; use Yurun\InfluxDB\ORM\Annotation\Measurement; /** * @Measurement(name="aaa") */ class A extends BaseModel { /** * @Tag(name="id", type="int") * * @var int */ private $id; /** * @Field(name="name", type="string") * * @var string */ private $name; /** * @Timestamp(precision="s") * * @var int|string */ private $time; /** * @Value * * @var int */ private $value; public static function create($id, $name, $time, $value) { return new static(compact('id', 'name', 'time', 'value')); } /** * Get the value of time * * @return int|string */ public function getTime() { return $this->time; } /** * Set the value of time * * @param int|string $time * * @return self */ public function setTime($time) { $this->time = $time; return $this; } /** * Get the value of id * * @return int */ public function getId() { return $this->id; } /** * Set the value of id * * @param int $id * * @return self */ public function setId(int $id) { $this->id = $id; return $this; } /** * Get the value of name * * @return string */ public function getName() { return $this->name; } /** * Set the value of name * * @param string $name * * @return self */ public function setName(string $name) { $this->name = $name; return $this; } /** * Get the value of value * * @return int */ public function getValue() { return $this->value; } /** * Set the value of value * * @param int $value * * @return self */ public function setValue(int $value) { $this->value = $value; return $this; } }
use Yurun\InfluxDB\ORM\InfluxDBManager; // 设置客户端名称为test,默认数据库为db_test InfluxDBManager::setClientConfig('test', '127.0.0.1', 8086, '', '', false, false, 0, 0, 'db_test'); // 设置默认数据库为test InfluxDBManager::setDefaultClientName('test'); // 写入数据,支持对象和数组 $r = A::write([ A::create(mt_rand(1, 999999), time(), time(), mt_rand(1, 100)), ['id'=>1, 'name'=>'aaa', 'time'=>time(), 'value'=>mt_rand(1, 100)], ]); var_dump($r);
// 获取查询器 $query = A::query(); // 常见用法,反正就那一套,不多说了 $query->field('id,name') ->from('table') ->where([ 'id' => 1 ])->where('id', '=', 1) ->orWhere('id', '=', 1) ->order('time', 'desc') ->group('id') ->limit(0, 10); // 查询结果,与 InfluxDB 官方客户端一样用法 $resultSet = $query->select(); // 查询结果转模型,适合用于查询记录而不是统计数据 $model = $resultSet->getModel(A::class); // 查询结果转模型列表,适合用于查询记录而不是统计数据 $list = $resultSet->getModelList(A::class);
适合用于查询记录而不是统计数据
use Yurun\InfluxDB\ORM\Query\QueryBuilder; // 查询结果转模型,适合用于查询记录而不是统计数据 $model = A::find(function(QueryBuilder $query){ $query->where('id', '=', 1)->limit(1); }); // 查询结果转模型列表,适合用于查询记录而不是统计数据 $list = A::select(function(QueryBuilder $query){ $query->where('id', '=', 1)->limit(2); });
$count = A::query()->field('count(value)')->select()->getScalar();
一、Linux下安装 1.yum install -y git 3. git clone https://github.com/influxdb/influxdb-python.git cd influxdb-python pip install -r requirements.txt python setup.py install 4.打开python 输入 from influxdb impo
前言 因当前的项目需要记录每秒钟服务器的状态信息,例如负载、cpu等等信息,这些数据都是和时间相关联的。 因为一秒钟就要存储挺多的数据。而且我还在前端做了echart的折线图,使用websocket实时查看数据的变化。 第一次的方案 第一次是很简单的,就是mysql建索引,在时间戳和其余两个条件查询比较多的字段建索引,然后最近一天的数据是存放到redis缓存当中的, 一开始感觉还是不错的,所以查询
一.通过SQLAlchemy(ORM)操作数据库的流程 1.安装扩展包, pip install flask_sqlalchemy 2.安装数据库驱动, pip install mysqldb / pymysql 3.导⼊SQLAlchemy类 4.配置数据库的链接信息等(可通过报错获取) 5.创建db = SQLAlchemy()对象,关联app 6.编写模型类,继承⾃db.Model 7.编写
导入依赖 <dependency> <groupId>org.influxdb</groupId> <artifactId>influxdb-java</artifactId> <version>2.15</version> </dependency> 配置文件 spring: influx: url: userName: password:
第一步:导入maven依赖 <!-- influxdb-java --> <dependency> <groupId>org.influxdb</groupId> <artifactId>influxdb-java</artifactId> <version>2.15</version> </dependency> 第二步:引入工具类 package com.coalmin
InfluxDB 是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。InfluxDB 包括用于存储和查询数据,在后台处理ETL或监视和警报目的,用户仪表板以及可视化和探索数据等的API。 以下是InfluxDB目前支持的一些功能,使其成为处理时间序列数据的绝佳选择: 专为时间序列数据编写的自定义高性能数据存储。 TSM引擎允许高摄取速
本文向大家介绍ASP.NET Core2读写InfluxDB时序数据库的方法教程,包括了ASP.NET Core2读写InfluxDB时序数据库的方法教程的使用技巧和注意事项,需要的朋友参考一下 前言 在我们很多应用中会遇到有一种基于一系列时间的数据需要处理,通过时间的顺序可以将这些数据点连成线,再通过数据统计后可以做成多纬度的报表,也可通过机器学习来实现数据的预测告警。而时序数据库就是用于存放管
监控对象 常用指标 概念 cpu usage_user 用户使用的 CPU 百分比。 disk used 使用的硬盘空间。 diskio write_bytes 总共写入的数据量。 read_bytes 总共读出的数据量。 mem used 使用的内存量。 net byte_recv 总共接收的数据量。 byte_send 总共发送的数据量。 参考资料 grafana+influxdb+teleg
InfluxDB 用Go语言编写的一个开源分布式时序、事件和指标数据库,和传统是数据库相比有不少不同的地方。 类似的数据库有 Elasticsearch、Graphite 等。 特点 提供了 Http 接口的API来操作数据 提供了类似sql的数据库语句 其它... 用途 一般用来储存实时数据,配合一套UI界面来展示信息。
上一小节主要讲解了 Telegraf(StatsD) + InfluxDB + Grafana 的搭建和基本用法,并创建了请求量和响应时间这两种图表。本节讲解几个高级用法: 如何将 Grafana(监控)跟 ELK(日志)结合起来。 Grafana 监控报警。 脚本一键生成图表。 7.2.1 Grafana + ELK 在观察 Grafana 监控时,我们发现某个 api 接口的响应时间突然有一个
本节将会讲解如何使用 Telegraf(StatsD) + InfluxDB + Grafana 搭建一套完整的监控系统。 7.1.1 Telegraf(StatsD) + InfluxDB + Grafana 简介 Telegraf 是一个使用 Go 语言开发的代理程序,可收集系统和服务或者其他来源(inputs)的数据,并将其写入 InfluxDB(outputs)数据库,支持多种 input