InfluxDB ist eine von InfluxData entwickelte Open-Source-Sequenzdatenbank. Es ist in Go geschrieben und konzentriert sich auf die leistungsstarke Abfrage und Speicherung von Zeitreihendaten. InfluxDB wird häufig in Szenarien wie der Überwachung von Daten von Speichersystemen und Echtzeitdaten in der IoT-Branche eingesetzt. Zu den technischen Merkmalen gehören:
Messung: Eine Zeichenfolge repräsentiert die entsprechende Bedeutung des Datensatzes. Beispielsweise kann es sich um Überwachungsdaten „cpu_load“ oder Messdaten „average_temperature“ handeln. Tag-Gruppe: Sie besteht aus einer Reihe von Schlüssel-Wert-Paaren, die eine Reihe von Attributinformationen des Datensatzes darstellen. Dieselben Messdaten müssen nicht unbedingt dieselbe Tag-Gruppe haben und sind schemafrei. Tag-Informationen werden standardmäßig indiziert.
Feldgruppe: Sie besteht ebenfalls aus einer Reihe von Schlüssel-Wert-Paaren, die die spezifischen Wertinformationen (mit einem Namen) des Datensatzes darstellen. Zu den definierbaren Werttypen in der Feldgruppe gehören: 64-Bit-Ganzzahl, 64-Bit-Gleitkomma, Zeichenfolge und Boolescher Wert. Feldinformationen können nicht indiziert werden.
Zeitstempel: Dies ist das Zeitattribut des Datensatzes. Wenn der Zeitstempel beim Einfügen von Daten nicht explizit angegeben wird, ist der in der Datenbank standardmäßig gespeicherte Zeitstempel der Eintragszeitpunkt des Datensatzes.
InfluxDB unterstützt HTTP-basiertes Einfügen und Abfragen von Daten. Es akzeptiert auch Verbindungen direkt, die auf den Protokollen TCP oder UDP basieren.
InfluxDB ermöglicht es Benutzern, Datenaufbewahrungsrichtlinien (Aufbewahrungsrichtlinien) zu definieren, um Daten zu löschen oder herunterzurechnen, die länger als eine bestimmte Zeit gespeichert sind.
Vorgänge hinzufügen, löschen, ändern und prüfen
influx -precision rfc3339
InfluxDB-Datenbankoperation
Datenbank anzeigenshow databases
create database shhnwangjian
drop database shhnwangjian
use shhnwangjian
• Alle Tabellen anzeigen
SHOW MEASUREMENTS
• Eine neue Tabelle erstellen
Es gibt keine explizite Anweisung zum Erstellen einer neuen Tabelle in InfluxDB. Sie können eine neue Tabelle nur durch Einfügen von Daten erstellen.
insert disk_free,hostname=server01 value=442221834240i insert cpu_virtual_used_num,host=1 value=41556593150
wobei disk_free der Tabellenname ist, hostname der Index (Tag), value=xx der Datensatzwert (Feld), es können mehrere Datensatzwerte vorhanden sein, das System verfügt über zusätzliche Zeitstempel
oder Sie können schreiben Geben Sie beim Hinzufügen von Daten selbst einen Zeitstempel ein Wenn die Datenaufbewahrungszeit die angegebene Zeit überschreitet, löschen Sie einfach diesen Teil der Daten.
Sehen Sie sich die aktuellen Datenbank-Aufbewahrungsrichtlinien an.insert disk_free,hostname=server01 value=442221834240i 1435362189575692182
Aufbewahrungsrichtlinien ändern
drop measurement disk_free
show retention policies on "db_name" show retention policies on cdhnm
create retention policy "rp_name" on "db_name" duration 3w replication 1 default create retention policy test on cdhnm duration 1h replication 1 default
alter retention policy “rp_name” on “db_name” duration 30d default alter retention policy autogen on cdhnm duration 1h default
alter retention policy autogen on cdhnm duration 0h replication 1 default
influxDB wird nicht bereitgestellt. Diese Methode löscht Datensätze direkt, stellt jedoch eine Datenaufbewahrungsstrategie bereit, die hauptsächlich zur Angabe der Datenaufbewahrungszeit verwendet wird. Wenn die angegebene Zeit überschritten wird, wird dieser Teil der Daten gelöscht. Erstellen Sie eine neue Datenbank-Ablaufrichtlinie für mindestens eine Stunde festgestellt, dass aufgrund der Verwendung von InfluxDB die Zeit UTC ist und beim Abfragen von
rfc3339时间格式是ietf协会定义的一种时间格式,这个名字是因为它被定义在rfc3339中。感兴趣的同学可以自己查看上面的连接。InfluxDB中rfc3339的时间格式是这样的:
‘YYYY-MM-DDTHH:MM:SS.nnnnnnnnnZ’
其中nnnnnnnnn是可选的,如果不写则会被设置为000000000。注意,如果使用这种时间格式,需要使用单括号(’)将时间括起来。
rfc3339_like_date_time_string
因为rfc3339_date_time_string的格式确实比较反人类,所以InfluxDB也支持这种人类阅读更友好的格式:
‘YYYY-MM-DD HH:MM:SS.nnnnnnnnn’
其中HH:MM:SS.nnnnnnnnn是可选的,如果不填写会被设置为00:00:00.000000000。所以查询时可以设置到天、小时、分钟、秒等不同精度。这种时间格式同样要求被单括号括起来。
InfluxDB默认东时间是纳秒(ns),即19位时间戳。但是一般情况下时间精度不会这么高。所以如果使用秒级精度查询:
select * from cpu_virtual_used_num where time >= 1435333209s and time <= 1542964713s
如果使用毫秒级精度查询:
select * from cpu_virtual_used_num where time >= 1435333209000ms and time <= 1542964714000ms
如果需要使用北京时间(东八区),可以在SQL中使用tc关键字:
select * from cpu_virtual_used_num where time >= '2018-11-23 14:30:39' and time <= '2019-11-23 14:32:32' tz('Asia/Shanghai')
Timestamp时间列
既然是时间序列数据库,influxdb 的数据都有一列名为 time 的列,里面存储 UTC 时间戳。
Influxdb 时间转成北京时间:UTC time + 8 hours = Beijing time
influx -precision rfc3339 show retention policies on cdhnm alter retention policy autogen on cdhnm duration 1h default create retention policy test on cdhnm duration 1h replication 1 default drop retention policy test on cdhnm insert cpu_virtual_used_num,host=470b14f0-e869-43ed-a8e6-fd634258271f,hostname=server01 value=0.9 1557045292000000000 select * from cpu_virtual_used_num where time >= '2018-11-23 14:30:39' and time <= '2019-11-23 14:32:32' tz('Asia/Shanghai') delete from cpu_virtual_used_num
切换到root用户 命令:su 输入密码:123456
启动:
sudo service influxdb start
重启:
service influxdb restart
切换到普通用户:
命令:exit
Das obige ist der detaillierte Inhalt vonEine Pflichtlektüre für die Betriebs- und Wartungsüberwachung: Ein unverzichtbarer InfluxDB-Nutzungsleitfaden, der in kritischen Momenten verwendet werden kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!