İçeriğe geç

InfluxDB Sorgu

InfluxDB sorgu, bir kez yazıp adıyla sakladığınız InfluxQL sorgusudur. Aynı sorgunun birkaç script ve raporda tekrarlanması yerine tek yerde durur; değiştiğinde hepsi birden güncel olur.

InfluxDB Sorgu ekranı — üstte liste, altta editör ve sonuç paneli

Ekran iki bölümdür. Üstte kayıtlı sorguların listesi vardır; sütunlarda proje, ad, açıklama ve kaydı kimin ne zaman oluşturup güncellediği görünür. Altta InfluxDB Editor ve yanında InfluxDB Result paneli durur.

AlanAçıklama
NameSorgunun adı; script’ten bu adla çağrılır
DescriptionAçıklama
QueryInfluxQL metni, en çok 32.767 karakter

Sorgu metni, saklanan diğer çalıştırılabilir içerik gibi bir bütünlük damgası taşır.

Listeden bir sorgu seçtiğinizde metni editöre gelir. Editörün solundaki açılır listeden sorgunun hangi veri kaynağında çalışacağı seçilir; sağdaki düğmeler arama, biçimlendirme, çalıştırma ve kaydetmedir. Sonuç sağdaki panelde görünür.

Buradaki çalıştırma bir deneme değildir: sorgu gerçekten seçili kaynakta koşar. Çalıştırmak için RUN_QUERY yetkisi gerekir.

Kayıtlı bir sorgunun metnini almak için:

var influxQL = ins.getCustomInfluxQLQuery('GunlukTuketim');
var res = ins.runInfluxQL(influxQL); // varsayılan veri kaynağı
var res2 = ins.runInfluxQL('SayacDB', influxQL); // belirli bir kaynak

Çağrı sorgunun metnini döndürür, sonucunu değil; hangi veri kaynağında çalışacağına siz karar verirsiniz. Aynı sorguyu birden çok kaynakta (örneğin test ve üretim) çalıştırmak bu sayede mümkündür.

InfluxQL sonucu, SQL sonucundan farklı bir biçimde döner. Sonuç bir ya da daha çok seri içerir; her serinin adı, etiketleri, sütun adları ve satırları vardır:

var res = ins.runInfluxQL('SELECT mean("value") FROM "power" GROUP BY "line"');
for (var i = 0; i < res.getSize(); i++) {
var series = res.getResult(i);
series.getName(); // ölçüm adı, örn. "power"
series.getTags(); // GROUP BY etiketleri, örn. { line: "L1" }
series.getColumns(); // sütun adları, örn. ["time", "mean"]
series.getValues(); // satırlar: dizi içinde dizi
}

getValues() satırları sütun sırasına göre dizi olarak verir; SQL tarafındaki gibi sütun adıyla anahtarlanmış bir nesne değildir. Sütun adını indise çevirmek için getColumns() kullanılır.

Metin script’e verilmeden önce damgasıyla karşılaştırılır. Kurulumun bütünlük kipi:

KipDavranış
OFFDenetim yapılmaz
WARNUyuşmazlık proje günlüğüne yazılır, metin yine de verilir
ENFORCEHata verilir, script metni hiç görmez

Denetim script’e verilirken yapılır, kayıt okunurken değil. Bu bilinçlidir: damgası tutmayan bir sorgu bu ekranda görünmeye devam eder, böylece ne olduğunu görüp düzeltebilirsiniz — ENFORCE kipinde bile kaydı onaracak ekran elinizden alınmaz.