Heim >Backend-Entwicklung >PHP-Tutorial >PHP implementiert die Open-Source-Zeitreihendatenbank InfluxDB

PHP implementiert die Open-Source-Zeitreihendatenbank InfluxDB

WBOY
WBOYOriginal
2023-06-18 22:16:381951Durchsuche

Mit der kontinuierlichen Weiterentwicklung der Internettechnologie werden Datenverarbeitung und -verwaltung immer wichtiger. Insbesondere mit dem Aufkommen des Internets der Dinge (IoT) und Big Data hat die Verarbeitung von Zeitreihendaten immer mehr an Bedeutung gewonnen. In diesem Zusammenhang ist die Zeitreihendatenbank InfluxDB für immer mehr Menschen zur Wahl geworden.

InfluxDB ist eine verteilte Open-Source-Datenbank, die speziell zum Speichern und Abfragen von Zeitreihendaten entwickelt wurde. Es löst speziell das Problem des Schreibens und Abfragens von Zeitreihendaten und verfügt außerdem über leistungsstarke Aggregations- und Visualisierungsfunktionen. Im Vergleich zu relationalen Datenbanken ist InfluxDB leichter und effizienter und eignet sich besonders für große Echtzeit-Datenverarbeitungsszenarien. In diesem Artikel wird erläutert, wie Sie mit PHP die InfluxDB-Zeitreihendatenbank implementieren.

1. Überblick über InfluxDB

InfluxDB ist eine verteilte Open-Source-Zeitreihendatenbank, die effizient, skalierbar und einfach zu verwenden ist. InfluxDB speichert Daten in einer schemalosen Datenstruktur, sodass Benutzer Daten bei Bedarf ad hoc indizieren oder abfragen können. InfluxDB unterstützt Schreibvorgänge mit hohem Durchsatz und schnelle komplexe Abfragen und ist damit die erste Wahl in Bereichen wie IoT, Echtzeitanalysen und Überwachung.

Die Datenstruktur von InfluxDB besteht aus Zeitreihen und Datenpunkten. Eine Zeitreihe ist eine Sammlung von Daten, die in chronologischer Reihenfolge gespeichert sind. Jeder Datenpunkt besteht aus drei Teilen: Zeitstempel, Tag und Feld. Der Zeitstempel ist die eindeutige Kennung des Datenpunkts, die Bezeichnung sind die Metadaten des Datenpunkts, die zur Beschreibung der Eigenschaften des Datenpunkts verwendet werden, wie z. B. Sensor-ID, Standort usw., und das Feld sind die tatsächlichen Daten des Datenpunkts Datenpunkt.

InfluxDB bietet eine Vielzahl von APIs und Tools zum einfachen Schreiben, Abfragen und Visualisieren von Daten.

2. Verwenden Sie PHP, um auf InfluxDB zuzugreifen.

Die Verwendung von PHP für den Zugriff auf InfluxDB erfordert die Installation der Erweiterung influxdb-php, die mit Composer installiert werden kann. Nach der Installation können Sie InfluxDB-bezogene Klassen in PHP-Programmen verwenden, um mit der Datenbank zu interagieren.

Das Folgende ist ein einfaches Beispiel, das zeigt, wie man PHP zum Schreiben von Daten in InfluxDB verwendet:

<?php

require_once __DIR__ . '/vendor/autoload.php';

use InfluxDBClient;
use InfluxDBPoint;

$client = new Client([
    'host' => 'localhost',
    'port' => 8086,
    'username' => 'username',
    'password' => 'password',
    'database' => 'database'
]);

$point = new Point(
    'weather_temperature', // 表名
    30.0, // 温度
    ['location' => 'beijing'], // 标签
    ['unit' => 'celsius'], // 字段
    time() // 时间戳
);

$client->write([$point]);

Der obige Code erstellt zunächst einen InfluxDB-Client, legt die Verbindungsparameter und den Datenbanknamen fest. Anschließend wird ein Datenpunktobjekt Point erstellt und Informationen wie Tabellenname, Beschriftung, Feld und Zeitstempel festgelegt. Verwenden Sie schließlich das Client-Objekt, um die Datenpunkte in die Datenbank zu schreiben.

3. Verwenden Sie InfluxQL zum Abfragen von Daten.

InfluxQL ist die Abfragesprache von InfluxDB. Sie ähnelt SQL, legt jedoch mehr Wert auf die Verarbeitung und Aggregation von Zeitreihendaten. Das Folgende ist ein einfaches InfluxQL-Abfragebeispiel, um die Temperaturdaten eines bestimmten Sensors innerhalb von 10 Minuten abzufragen:

SELECT mean("temperature") FROM "sensors" WHERE "sensor_id" = '123' AND time > now() - 10m GROUP BY time(1m)

Sie können die Query-Klasse in der influxdb-php-Erweiterung verwenden, um InfluxQL-Abfragen zu schreiben und auszuführen. Das Folgende ist ein einfaches Beispiel:

 'localhost',
    'port' => 8086,
    'username' => 'username',
    'password' => 'password',
    'database' => 'database'
]);

$query = new Query('SELECT mean("temperature") FROM "sensors" WHERE "sensor_id" = '123' AND time > now() - 10m GROUP BY time(1m)', 'database');
$results = $client->query($query);

print_r($results);

Der obige Code erstellt zuerst ein InfluxDB-Clientobjekt, erstellt dann ein Abfrageobjekt und legt die Abfrageanweisung und den Datenbanknamen fest. Verwenden Sie abschließend die Clientobjektabfrage, um die Abfrage auszuführen und die Ergebnisse auszugeben.

4. Datenvisualisierung von InfluxDB

Daten in InfluxDB können mithilfe von Datenvisualisierungstools wie Grafana visuell angezeigt werden. Grafana ist eine Open-Source-Datenvisualisierungs- und Überwachungsplattform, die mehrere Datenbanken wie InfluxDB unterstützt und über eine Weboberfläche problemlos umfangreiche Daten-Dashboards erstellen kann.

Um Grafana nutzen zu können, müssen Sie zunächst den Grafana-Server installieren und konfigurieren. Spezifische Installationsschritte finden Sie in der offiziellen Dokumentation von Grafana.

Fügen Sie nach der Installation die InfluxDB-Datenquelle in Grafana hinzu und erstellen Sie dann ein Daten-Dashboard, um die Daten in InfluxDB anzuzeigen. Grafana unterstützt eine Vielzahl verschiedener Diagrammtypen und Datendarstellungsmethoden, die je nach Bedarf ausgewählt und konfiguriert werden können.

5. Zusammenfassung

Dieser Artikel stellt die grundlegenden Konzepte und die Verwendung der InfluxDB-Zeitreihendatenbank vor und stellt außerdem die zugehörigen Klassen für PHP für den Zugriff auf InfluxDB und die Verwendung der InfluxQL-Abfragesprache vor. Die leichten, effizienten und benutzerfreundlichen Funktionen von InfluxDB machen es zu einer der ersten Wahlen für die Verarbeitung von Zeitreihendaten. Ich hoffe, dass dieser Artikel Ihnen beim Erlernen und Verwenden von InfluxDB hilfreich sein wird.

Das obige ist der detaillierte Inhalt vonPHP implementiert die Open-Source-Zeitreihendatenbank InfluxDB. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn