Kruhová databáze ( anglicky Round-robin Database, RRD ) - databáze , jejíž množství uložených dat se v čase nemění, [1] jelikož počet záznamů je konstantní, jsou v procesu ukládání dat využívány cyklicky [ 2] [3] [4] . Obvykle se používá k ukládání informací, které se v pravidelných intervalech přepisují.
Největší uplatnění našel v programu MRTG , který byl později nahrazen softwarovým balíkem RRDtool [5] .
DBMS a rozhraní pro kruhovou databázi jsou zahrnuty v repozitářích hlavních linuxových distribucí [6] [7] [8] [9] a v CPAN úložišti knihoven Perl [10] . DBMS RRDtool je také dostupný jako modul pro CMS Drupal [11] .
Jedna cyklická databáze může uchovávat jednu nebo více datových sad, které jsou sloučeny do archivů (RRA - round robin archive). Kruhové tabulky archivů mají podobnou strukturu jako pole , ve kterých je adresa posledního prvku stejná jako adresa prvního prvku. Pozice posledního aktualizovaného prvku je uložena jako ukazatel . Archivy jsou zpravidla propojeny jako hnízdící panenky, každý následující archiv uchovává konsolidované informace z předchozího. To se provádí pomocí konsolidačních funkcí zabudovaných do databáze. To vám umožní použít tyto funkce automaticky při aktualizaci informací v databázi. Jeden archiv ukládá data s malým intervalem mezi záznamy, druhý po daném počtu intervalů ukládá konsolidovaná data z předchozího, další to dělá ještě méně často atd. [12]
Pokud zaznamenáváte data v krátkých časových intervalech a poté tvoříte průměrné (maximální, minimální atd.) hodnoty za rok nebo jakýkoli jiný dostatečně velký časový interval, pak výpočty a proces vzorkování z databáze samotné mohou vyžadovat velké množství zdrojů. Aby se tomu zabránilo, používají kruhové databáze konsolidaci dat při zápisech spíše než při čtení. Konsolidačních období může být libovolný počet (týden, měsíc, čtvrtletí, rok atd.). K provádění výpočtů se používají speciální konsolidační funkce ( angl. konsolidační funkce , CF), jako například:
Základní datové typy: [13]
COUNTER je čítač, jehož hodnota se může pouze zvyšovat, při ukládání dat tohoto typu se předchozí hodnota odečítá od aktuální hodnoty.
GAUGE - libovolné hodnoty. Tento typ se používá pro data, která se mohou jak snižovat, tak zvyšovat (například teplota objektu).
Typ DERIVE je stejný čítač, ale se schopností ukládat nejen neustále rostoucí, ale také klesající hodnoty, to znamená, že rozdíl mezi sousedními hodnotami může být záporný. Je důležité si uvědomit, že tento typ není kontrolován na přetečení.
ABSOLUTE je také modifikace počítadla, rozdíl je v tom, že rozdíl mezi hodnotami se nepočítá, ale samotné hodnoty počítadla se ukládají a počítadlo se při čtení vynuluje. Tento typ je užitečný pro počítání počtu událostí, které nastaly od posledního čtení.
Typ COMPUTE slouží k záznamu vypočtených hodnot na základě dat z jiných zdrojů dat ( angl. Data Source, DS ) aktuální databáze RRD. V teorii databází se taková pole nazývají vypočítaná nebo virtuální. Tento zdroj dat není během operace aktualizace specifikován, ale jeho primární datové body (PDP ) se vypočítávají z primárních datových bodů (PDP) jiných zdrojů dat tak, že se na ně použijí vzorce reverzní polské notace ( anglická reverzní polská notace , RPN ). Na tento datový typ lze také použít konsolidační funkce .
Vzhledem k tomu, že cyklické databáze se často používají k reprezentaci dat distribuovaných v čase v pravidelných intervalech, mechanismus takové databáze poskytuje následující vlastnost: pokud z nějakého důvodu (například zpoždění ve výpočtu hodnoty) data ano nebyly zaznamenány včas (např. záznam proběhl o 3 sekundy později), data budou stále zaznamenána, jako by byla poskytnuta včas. Samotný cyklický databázový "mechanismus" změní data pro korekci (úměrně zpoždění nebo době zpoždění). Jinými slovy, samotná databáze má vestavěný systém detekce aberantního chování . Tento systém se skládá ze tří částí: [14]
Jak funguje interpolace aberovaných dat , je snadné pochopit, když se podíváte na konkrétní hodnoty:
data v databázi RRD | reálná data |
---|---|
čas+000: 0 delta="U" čas+300: 300 delta=300 čas+600: 600 delta=300 čas+900: 900 delta=300 | čas+000: 0 delta="U" čas+300: 300 delta=300 čas+603: 603 delta=303 čas+900: 900 delta=297 |
Ale databáze uchovává nejen interpolovaná data, ale také data, která byla přímo zadána. To je nezbytné pro přesnější interpolaci následných dat.
Interpolace dat může vést ke zkreslení dat, takže rozsah je omezen na oblasti, kde přesnost není kritická. V jiných oblastech se používá datový typ, na který se interpolační mechanismus nevztahuje.
Databáze | |
---|---|
Koncepty |
|
Objekty |
|
Klíče | |
SQL | |
Komponenty |