InfluxDB ialah pangkalan data jujukan sumber terbuka yang dibangunkan oleh InfluxData. Ia ditulis dalam Go dan memfokuskan pada pertanyaan berprestasi tinggi dan penyimpanan data siri masa. InfluxDB digunakan secara meluas dalam senario seperti memantau data sistem storan dan data masa nyata dalam industri IoT. Ciri teknikal termasuk:
Pengukuran: Rentetan mewakili maksud rekod . Contohnya, ia boleh memantau data cpu_load, atau data pengukuran average_temperature
kumpulan teg: Ia terdiri daripada set pasangan nilai kunci, yang mewakili satu siri maklumat atribut rekod. Data ukuran yang sama tidak semestinya mempunyai kumpulan teg yang sama dan ia adalah bebas Skema. Maklumat teg diindeks secara lalai.
Kumpulan medan: Ia juga terdiri daripada set pasangan nilai kunci, yang mewakili maklumat nilai khusus (dengan nama) rekod. Jenis nilai yang boleh ditentukan dalam kumpulan medan termasuk: integer 64-bit, titik terapung 64-bit, rentetan dan Boolean. Maklumat medan tidak boleh diindeks.
Cop masa: Ia ialah atribut masa rekod. Jika cap masa tidak dinyatakan secara eksplisit semasa memasukkan data, cap masa yang disimpan dalam pangkalan data secara lalai akan menjadi masa kemasukan rekod.
InfluxDB menyokong pemasukan dan pertanyaan data berasaskan HTTP. Ia juga menerima sambungan secara langsung berdasarkan protokol TCP atau UDP.
InfluxDB membolehkan pengguna menentukan dasar pengekalan data (Dasar Pengekalan) untuk memadam atau menurunkan sampel data yang disimpan untuk lebih daripada masa yang ditetapkan.
Masukkan baris arahan influxDB
influx -precision rfc3339
operasi pangkalan data InfluxDB
show databases
create database shhnwangjian
drop database shhnwangjian
use shhnwangjian
Dalam InfluxDB, tiada konsep jadual (jadual), sebaliknya ia adalah MEASUREMENTS Fungsi MEASUREMENTS adalah konsisten dengan jadual dalam pangkalan data tradisional, jadi kita juga boleh memanggil MEASUREMENTS jadual dalam InfluxDB.
• Tunjukkan semua jadual
SHOW MEASUREMENTS
• Cipta jadual baharu
Tiada pernyataan eksplisit untuk mencipta jadual baharu dalam InfluxDB Anda hanya boleh mencipta jadual baharu dengan memasukkan data.
insert disk_free,hostname=server01 value=442221834240i insert cpu_virtual_used_num,host=1 value=41556593150
di mana disk_free ialah nama jadual, nama hos ialah indeks (tag), value=xx ialah nilai rekod (medan), boleh terdapat berbilang nilai rekod dan sistem dilengkapi dengan cap masa tambahan
Atau apabila menambah data, tulis sendiri cap masa
insert disk_free,hostname=server01 value=442221834240i 1435362189575692182
• Padam jadual
drop measurement disk_free
influxDB tidak menyediakan pemadaman langsung kaedah rekod data, tetapi menyediakan strategi pengekalan data, yang digunakan terutamanya untuk menentukan masa penyimpanan data Jika melebihi masa yang ditentukan, bahagian data ini akan dipadamkan.
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
rp_name: nama dasar; 🎜>db_name: nama pangkalan data tertentu;
3w: disimpan selama 3 minggu, data sebelum 3 minggu akan dipadamkan mempunyai pelbagai parameter acara, seperti: h (jam), d (hari), w (. minggu); replikasi 1: bilangan salinan, biasanya 1 sudah memadai;
Ubah suai dasar dataalter 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
drop retention policy “rp_name” on “db_name" drop retention policy test on cdhnm
select * fromcpu_virtual_used_num
insert disk_free,hostname=server01 value=442221834240i insert cpu_virtual_used_num,host=470b14f0-e869-43ed-a8e6-fd634258271f,hostname=server01 value=0.3 1557023160
Medan pertanyaan: tunjukkan kunci medan daripada cluster_metric
Apabila menggunakan InfluxDB, saya mendapati bahawa kerana InfluxDB menggunakan masa UTC, masalah zon waktu sering ditemui semasa menanyakan
InfluxDB Selain daripada menyokong epoch_time, ia juga menyokong rfc3339_date_time_string dan rfc3339_like_date_time_string.
zaman_zaman
rfc3339_date_time_string
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
Atas ialah kandungan terperinci Mesti dibaca untuk pemantauan operasi dan penyelenggaraan: Panduan penggunaan InfluxDB yang mesti diketahui yang boleh digunakan pada saat genting. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!