Odosielanie protokolu linky InfluxDB do QuestDB

Blog

Odosielanie protokolu linky InfluxDB do QuestDB

O QuestDB v čítačke QuestDB už nejaký čas máme verziu UDP čítačky čítačiek InfluxDB Line Protocol (ILP), ale zákazníkov sme požiadali o jej verziu TCP, a tak sme dodali!

Jeho použitie a konfigurácia sú relatívne jednoduché, takže nečakajte, že to bude dlhý príspevok, ale prevediem vás základmi toho, ako ho nastaviť a používať.

Pre ďalší bonus vám ukážem, ako migrovať z používania InfluxDB na používanie QuestDB s menej ako riadkom konfigurácie.

Konfigurácia poslucháča protokolu TCP InfluxDB Line

Toto je najlepšia časť, aspoň pre základnú implementáciu, ktorú vôbec nemusíte vyladiť: je už nastavená.

To je pravda, hneď ako spustíte QuestDB, poslucháči UDP aj TCP ILP sa automaticky spustia na porte 9009. Áno, TCP aj UDP používajú rovnaký port. Nie, to nie je problém, pretože jeden je UDP a jeden je TCP.

Existuje veľa možností konfigurácie, ktoré si môžete vyladiť | _+_ | v prípade záujmu píšte. Nebudem ich tu preberať, ale všetko si o nich môžete prečítať v našom docs . Dúfam, že sú relatívne zrozumiteľné.

Aktualizátor linkového protokolu InfluxDB (ILP)

Ak ste už ILP používali, malo by sa to všetko preskúmať. Ak ste novým ILP, povie vám, ako by ste mali zapísať svoje údaje do QuestDB.

Základná štruktúra

TOML

1

conf/server.conf

Docela základné. Poďme sa teda ponoriť do toho, čo každý prvok vlastne je, a ako štruktúrovať riadok ILP na písanie.

Prvým prvkom je | _+_ | časť, ktorá hovorí zapisovateľovi ILP, do ktorej databázy databázy má zapisovať hodnoty.

Ďalej nasleduje sada značiek, ktoré chcete použiť. Ide o štandardné | _+_ | párov a môžete ich pridať toľko, koľko chcete alebo potrebujete. Stačí ich oddeliť čiarkami.

Vo vašom protokole linky by mali byť iba 2 medzery. Nikdy viac. Prvá medzera oddeľuje vaše | _+_ | z | _+_ | s ktorými sa chcete spojiť | _+_ | s. Druhý priestor oddeľuje hodnoty od časovej pečiatky pre tieto značky a hodnoty.

Hodnoty sú tiež | _+_ | párov a opäť môžete v rade poslať koľko chcete.

Nakoniec príde váš | _+_ | hodnota, typicky v µSekundách.

Príklad ILP

Použime príklad zápisu niektorých environmentálnych údajov do QuestDB. Mám snímač, ktorý sníma teplotu, atmosférický tlak, vlhkosť a nadmorskú výšku.

Čítanie Hodnota Teplota 23.180000 Vlhkosť 51,982422 Tlak 1002,112061 Nadmorská výška93,1463770

A chcem použiť nasledujúce | _+_ | s:

Názov značkyValedev_idTHP002dev_locApexdev_nameBME280

A moje | _+_ | je | _+_ |

Teraz mám všetky základné prvky, ktoré potrebujem na zostavenie svojho ILP, ktoré bude vyzerať takto:

table_name,tagset valueset timestamp

A áno, zaokrúhlil som tieto hodnoty. Ale všimnete si, že som nepridal | _+_ | hodnotu. V tomto prípade je to preto, že odosielam hodnoty z malého vstavaného senzorového zariadenia, ktoré skutočne nemá veľký zmysel pre čas. Odoslaním ILP bez | _+_ | Hovorím samotnej databáze, aby ju pridala, pričom ako čas | _+_ | použijem čas príchodu.

Štruktúra databázy

Jednou zo skvelých funkcií používania čítačky ILP (vlastne QuestDB vo všeobecnosti) je schopnosť vytvoriť „schému pri zápise“.

Čo to znamená, že ak príde správa ILP, QuestDB automaticky vytvorí tabuľky a stĺpce, aby zodpovedali prichádzajúcemu ILP. Ak teda potrebujete pridať | _+_ | neskôr ho môžete pridať do sady značiek nového zariadenia a začať písať. Nová značka bude pridaná do schémy.

Ak ponecháte hodnotu značky vypnutú a existuje v databáze, bude vyplnená znakom | _+_ | hodnotu.

reagovať natívna animácia nakladača

Keď začnem písať vyššie uvedené ILP do QuestDB, dostanem tabuľku, ktorá vyzerá takto:

dev_iddev_nametemp_chumiditytimestampdev_localtitudepressureTHP002BME28026.5251.942020-07-21T14: 54: 59.156202ZApex76.271004.12THP002BME28026.5451.852020-07-21T14: 54: 59.157358ZApex75.971004.16THP002BME28026.5651.832020-07-21T14: 54: 59.157389ZApex75.841004.17THP002BME28026.5851.792020-07-21T14: 54: 59.287416ZApex75.931004.16

Takto vyzerá tabuľka vo webovej konzole QuestDB:

#tutorial #devops #iot #influxdb #observability

dzone.com

Odosielanie protokolu linky InfluxDB do QuestDB

V tomto článku sa pozrieme na to, ako odoslať linkový protokol InfluxDB do QuestDB. V QuestDB máme nejakú dobu UDP verziu čítačky InfluxDB Line Protocol (ILP) v QuestDB.