PHP melaksanakan pangkalan data siri masa InfluxDB sumber terbuka

WBOY
Lepaskan: 2023-06-18 22:18:02
asal
1933 orang telah melayarinya

Dengan perkembangan berterusan teknologi Internet, pemprosesan dan pengurusan data menjadi semakin penting. Terutama dengan kebangkitan Internet Perkara (IoT) dan data besar, pemprosesan data siri masa telah menjadi semakin penting. Dalam konteks ini, pangkalan data siri masa InfluxDB telah menjadi pilihan lebih ramai orang.

InfluxDB ialah pangkalan data sumber terbuka teragih yang direka khas untuk menyimpan dan menanyakan data siri masa. Ia secara khusus menyelesaikan masalah menulis dan menanyakan data siri masa, dan juga mempunyai fungsi pengagregatan dan visualisasi yang kuat. Berbanding dengan pangkalan data hubungan, InfluxDB lebih ringan dan cekap, dan amat sesuai untuk senario pemprosesan data masa nyata berskala besar. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan pangkalan data siri masa InfluxDB.

1. Gambaran Keseluruhan InfluxDB

InfluxDB ialah pangkalan data siri masa teragih sumber terbuka yang cekap, berskala dan mudah digunakan. InfluxDB menyimpan data dalam struktur data tanpa skema, membenarkan pengguna mengindeks atau menanya data ad hoc atas permintaan. InfluxDB menyokong penulisan throughput tinggi dan pertanyaan kompleks yang pantas, menjadikannya pilihan pertama dalam bidang seperti IoT, analitik masa nyata dan pemantauan.

Struktur data InfluxDB terdiri daripada siri masa dan titik data. Siri masa ialah koleksi data yang disimpan dalam susunan kronologi Setiap titik data mengandungi tiga bahagian: cap waktu, teg dan medan. Cap masa ialah pengecam unik titik data, label ialah metadata titik data, digunakan untuk menerangkan ciri-ciri titik data, seperti ID penderia, lokasi, dll., dan medan ialah data sebenar bagi titik data.

InfluxDB menyediakan pelbagai API dan alatan untuk menulis, membuat pertanyaan dan menggambarkan data dengan mudah.

2. Gunakan PHP untuk mengakses InfluxDB

Menggunakan PHP untuk mengakses InfluxDB memerlukan pemasangan sambungan influxdb-php, yang boleh dipasang menggunakan Composer. Selepas pemasangan, anda boleh menggunakan kelas berkaitan InfluxDB dalam program PHP untuk berinteraksi dengan pangkalan data.

Berikut ialah contoh mudah yang menunjukkan cara menggunakan PHP untuk menulis data ke dalam 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]);
Salin selepas log masuk

Kod di atas mula-mula mencipta klien InfluxDB, menetapkan parameter sambungan dan nama pangkalan data. Kemudian objek titik data Titik dicipta, dan maklumat seperti nama jadual, label, medan dan cap masa ditetapkan. Akhir sekali gunakan objek klien untuk menulis titik data ke pangkalan data.

3. Gunakan InfluxQL untuk menanyakan data

InfluxQL ialah bahasa pertanyaan InfluxDB Ia serupa dengan SQL, tetapi lebih memberi perhatian kepada pemprosesan dan pengagregatan data siri masa. Berikut ialah contoh pertanyaan InfluxQL mudah untuk menanyakan data suhu penderia dalam masa 10 minit:

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

Anda boleh menggunakan kelas Pertanyaan dalam sambungan influxdb-php untuk menulis dan melaksanakan pertanyaan InfluxQL. Berikut ialah contoh mudah:

 '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);
Salin selepas log masuk

Kod di atas mula-mula mencipta objek klien InfluxDB, kemudian mencipta objek Pertanyaan dan menetapkan pernyataan pertanyaan dan nama pangkalan data. Akhir sekali, gunakan pertanyaan objek klien untuk melaksanakan pertanyaan dan mengeluarkan hasilnya.

4. Visualisasi data InfluxDB

Data dalam InfluxDB boleh dipaparkan secara visual menggunakan alat visualisasi data seperti Grafana. Grafana ialah platform visualisasi dan pemantauan data sumber terbuka yang menyokong berbilang pangkalan data seperti InfluxDB dan boleh membina papan pemuka data kaya dengan mudah melalui antara muka web.

Untuk menggunakan Grafana, anda perlu memasang dan mengkonfigurasi pelayan Grafana terlebih dahulu. Untuk langkah pemasangan khusus, sila rujuk dokumentasi rasmi Grafana.

Selepas pemasangan, tambah sumber data InfluxDB dalam Grafana, dan kemudian buat papan pemuka data untuk memaparkan data dalam InfluxDB. Grafana menyokong pelbagai jenis carta dan kaedah paparan data yang berbeza, yang boleh dipilih dan dikonfigurasikan mengikut keperluan.

5. Ringkasan

Artikel ini memperkenalkan konsep asas dan penggunaan pangkalan data siri masa InfluxDB, dan juga memperkenalkan kelas yang berkaitan untuk PHP untuk mengakses InfluxDB dan penggunaan bahasa pertanyaan InfluxQL. Ciri InfluxDB yang ringan, cekap dan mudah digunakan menjadikannya salah satu pilihan pertama untuk pemprosesan data siri masa. Saya harap artikel ini akan membantu anda dalam mempelajari dan menggunakan InfluxDB.

Atas ialah kandungan terperinci PHP melaksanakan pangkalan data siri masa InfluxDB sumber terbuka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan