インターネット技術の継続的な発展に伴い、データの処理と管理の重要性がますます高まっています。特にIoT(モノのインターネット)やビッグデータの台頭により、時系列データ処理の重要性が増しています。この文脈において、InfluxDB 時系列データベースはますます多くの人々に選ばれるようになりました。
InfluxDB は、時系列データの保存とクエリのために特別に設計された分散型オープン ソース データベースです。特に時系列データの書き込みとクエリの問題を解決し、強力な集計機能と視覚化機能も備えています。リレーショナル データベースと比較して、InfluxDB は軽量かつ効率的であり、大規模なリアルタイム データ処理シナリオに特に適しています。この記事では、PHP を使用して InfluxDB 時系列データベースを実装する方法を紹介します。
1. InfluxDB の概要
InfluxDB は、効率的でスケーラブルで使いやすいオープンソースの分散時系列データベースです。 InfluxDB はスキーマのないデータ構造にデータを保存するため、ユーザーはオンデマンドでアドホックにデータのインデックス作成やクエリを行うことができます。 InfluxDB は、高スループットの書き込みと高速で複雑なクエリをサポートしており、IoT、リアルタイム分析、モニタリングなどの分野での最初の選択肢となっています。
InfluxDB のデータ構造は、時系列とデータ ポイントで構成されます。時系列は、時系列に保存されたデータの集合であり、各データ ポイントには、タイムスタンプ、タグ、フィールドの 3 つの部分が含まれています。タイムスタンプはデータ ポイントの一意の識別子であり、ラベルはデータ ポイントのメタデータであり、センサー ID、位置などのデータ ポイントの特性を記述するために使用され、フィールドは実際のデータです。データポイント。
InfluxDB は、データの書き込み、クエリ、視覚化を簡単に行うためのさまざまな API とツールを提供します。
2. PHP を使用して InfluxDB にアクセスする
PHP を使用して InfluxDB にアクセスするには、Composer を使用してインストールできる influxdb-php 拡張機能をインストールする必要があります。インストール後、PHP プログラムで InfluxDB 関連クラスを使用してデータベースと対話できるようになります。
以下は、PHP を使用して InfluxDB にデータを書き込む方法を示す簡単な例です。
<?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]);
上記のコードは、まず InfluxDB クライアントを作成し、接続パラメーターとデータベース名を設定します。次にデータポイントオブジェクトPointを作成し、テーブル名、ラベル、フィールド、タイムスタンプなどの情報を設定します。最後に、クライアント オブジェクトを使用して、データ ポイントをデータベースに書き込みます。
3. InfluxQL を使用してデータをクエリする
InfluxQL は InfluxDB のクエリ言語であり、SQL に似ていますが、時系列データの処理と集計により重点を置いています。以下は、10 分以内に特定のセンサーの温度データをクエリする簡単な InfluxQL クエリの例です。
SELECT mean("temperature") FROM "sensors" WHERE "sensor_id" = '123' AND time > now() - 10m GROUP BY time(1m)
influxdb-php 拡張機能の Query クラスを使用して、InfluxQL クエリを作成および実行できます。以下は簡単な例です:
'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);
上記のコードは、まず InfluxDB クライアント オブジェクトを作成し、次に Query オブジェクトを作成して、クエリ ステートメントとデータベース名を設定します。最後に、クライアント オブジェクト クエリを使用してクエリを実行し、結果を出力します。
4. InfluxDB データの視覚化
InfluxDB のデータは、Grafana などのデータ視覚化ツールを使用して視覚的に表示できます。 Grafana は、InfluxDB などの複数のデータベースをサポートし、Web インターフェイスを通じて豊富なデータ ダッシュボードを簡単に構築できるオープン ソースのデータ視覚化および監視プラットフォームです。
Grafana を使用するには、まず Grafana サーバーをインストールして構成する必要があります。具体的なインストール手順については、Grafana の公式ドキュメントを参照してください。
インストール後、Grafana に InfluxDB データ ソースを追加し、InfluxDB のデータを表示するデータ ダッシュボードを作成します。 Grafana は、必要に応じて選択して構成できる、さまざまなチャート タイプとデータ表示方法をサポートしています。
5. 概要
この記事では、InfluxDB 時系列データベースの基本概念と使用法を紹介し、また、InfluxDB にアクセスするための PHP の関連クラスと InfluxQL クエリ言語の使用法も紹介します。 InfluxDB は軽量で効率的で使いやすい機能を備えているため、時系列データ処理の最初の選択肢の 1 つとなっています。この記事が InfluxDB の学習と使用に役立つことを願っています。
以上がPHP はオープンソース InfluxDB 時系列データベースを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。