Systém správy datových toků
Systém správy datových toků (DSMS) je softwarový systém pro správu nepřetržitých datových toků . Je to srovnatelné se systémem správy databází (DBMS), který se používá pro databáze. Na rozdíl od DBMS, ve kterém se krátce provádí dotazy na statická data, musí být DSMS schopen provádět nepřetržité dotazy na datové toky. K formulaci dotazů lze použít speciální dotazovací jazyky , jako je jazyk CQL ( Continuous Query Language ).
Systémy pro správu datových toků jsou ve světě databází stále relativně nové. Některé počáteční vývoj pro obecné účely jsou:
- Stanford Stream Data Manager (STREAM) na Stanfordské univerzitě
- Aurora na Brandeis University , Brown University a MIT
- TelegraphCQ v Berkeley
- PipelineDB (jako TelegraphCQ odnož PostgreSQL )
Roste také počet menších projektů s různým zaměřením. Na rozdíl od netečecích dat, která jsou spravována téměř výlučně pomocí univerzálních systémů pro správu databází, se pro tok dat stále používají systémy speciálně vyvinuté nebo přizpůsobené pro danou aplikaci.
Rozdíly oproti DBMS
V konvenčních databázových systémech jsou krátkodobé dotazy kladeny na databázi, která zůstává stejná během vyhodnocení dat (viz transakční systém ). Dotazy se spustí a zůstanou v systému, dokud nebudou vypočítány a odeslány výsledky. Poté již nejsou požadavky v systému k dispozici. Rovněž se říká, že data jsou trvalá a požadavky jsou nestálé. V systému správy datových proudů se požadavky nainstalují jednou a zůstanou v systému, dokud nebudou znovu výslovně odebrány. Dotazy jsou vyhodnocovány na neustále se měnící data, konkrétně na datové toky. Výsledky dotazů jsou také průběžně aktualizovány, takže samy o sobě také vedou k datovému proudu. Rovněž se říká, že požadavky jsou trvalé a data jsou nestálá. Tyto dva doplňkové principy jsou známé také například při získávání informací jako ad hoc požadavky (nové požadavky na stejné dokumenty) a úkoly směrování (nové dokumenty pro konkrétní požadavky).
Následující tabulka porovnává různé vlastnosti systému pro správu databáze (DBMS) a systému pro správu datových proudů (DSMS):
| Systém správy databáze (DBMS) | Systém správy datových toků (DSMS) |
|---|---|
| Trvalá data (relace) | Těkavé datové toky |
| Náhodný přístup | Sekvenční přístup |
| Jednorázové žádosti | Průběžné dotazy |
| (Teoreticky) neomezené sekundární úložiště | Omezená hlavní paměť |
| Relevantní je pouze aktuální stav | Zohlednění příchozí objednávky |
| relativně nízká rychlost aktualizace | možná extrémně vysoká rychlost aktualizace |
| malé nebo žádné časové požadavky | Požadavky v reálném čase |
| Předpokládají se přesná data | Zastaralé / nepřesné údaje |
| Plánovatelné zpracování poptávky | Příchod a charakteristiky proměnných dat |
Základní pojmy
Jak již lze vidět v tabulce výše, DSMS má některé základní koncepty, které se liší od konvenčního DBMS. Nejdůležitějšími koncepty jsou nepřetržité dotazy a okna.
Průběžné dotazy
Průběžný požadavek je v systému nainstalován jednou a běží, dokud není znovu odebrán. Požadavek má jeden nebo více vstupních datových proudů a jeden nebo více výstupních datových proudů. Výsledkem takového požadavku proto není jednorázová sada dat, jako je tomu v případě požadavku v DBMS, ale samotný datový tok. Výsledky by měly být vytvářeny téměř v reálném čase, což znamená, že latence mezi příchodem nových dat a výstupem nového výsledku je vysoce relevantní.
V případě nepřetržitého požadavku je důležité určit, kdy bude vydáno nové vydání. Modelu časově řízené generuje nové výstupy na základě pokroku hodiny v průběhu času, například systémový čas. Nové číslo lze vygenerovat jednou za minutu. Dalším přístupem jsou modely založené na událostech (Engl. Event-driven model ), ve kterých se vytvářejí nové edice, když dojde k určitým událostem v datovém proudu. Tak mohl z. Například každý nový datový prvek v proudu vygeneruje nový výstup, protože tento prvek datového proudu může ovlivnit výsledek pro tento okamžik. Pak se mluví o modelu poháněném n-ticí .
okno
Datové toky jsou potenciálně nekonečné, takže generují potenciálně nekonečné množství dat. Během zpracování nepřetržitých požadavků, které se většinou dějí v hlavní paměti, je však k dispozici pouze omezené množství paměti. Windows jsou jedním ze způsobů, jak omezit množství dat, která je třeba uchovávat v paměti. Další motivací pro používání systému Windows je používání průběžných dotazů. Ty by měly poskytovat výsledky pro aktuální data, která proudí do DSMS s datovým proudem. Proto jsou často relevantní pouze aktuální data, zatímco starší data již nejsou pro aktuální výsledky požadována. Aby bylo možné vyjádřit omezení platnosti datových prvků, používají se okna.
Windows omezují zobrazení datového proudu na nejnovější prvky proudu. Časová a elementová (také: n-tice) okna jsou velmi rozšířená. V časově založených oknech jsou prvky v datovém proudu uchovávány v systému po určitou předem stanovenou dobu, například 30 minut. V okně založeném na prvcích obsahuje okno maximálně předem určený počet prvků, například nejnovějších 1000 prvků. Příklad dotazu s časově závislým oknem je: „Vypočítejte průměr atributu„ x “všech prvků datového proudu za posledních 30 minut.“
Elementová a časově založená okna lze definovat odlišně. Zde je především mezi posuvnými (angl. Posuvné ) a omílání nebo poskakování (angl. Tumbling ) odlišit okna. Rozdíl je velikost kroku okna, nazývaného také periodicita. Posuvné okno postupuje s průběhem datového proudu takovým způsobem, že velikost kroku je minimální. V okně založeném na prvcích by pro nový prvek, který je přidán do okna, byl odebrán přesně jeden prvek. Velikost kroku lze změnit, pokud jde o velikost okna, které se nazývá pak omílací okno (angl. Tumbling window ). Zde se vyplní okno do zadané velikosti. Když dorazí další prvek, který by překročil zadanou velikost okna, všechny předchozí prvky se stanou neplatnými ve stejnou dobu a nové okno se vytvoří krok za krokem, dokud znovu nedosáhne maximální velikosti. To se provádí analogicky v časově založených oknech. Například kolísavé okno by bylo 30minutové okno s 30minutovým přírůstkem.
Jednoprůchodové paradigma
Zdroje, pokud jde o výpočetní čas a úložný prostor pro výpočet výsledků v datových tocích, jsou omezené. Algoritmy, které zpracovávají datové toky, proto obvykle nejdříve neukládají data úplně a poté iterují celou datovou sadu, aby vygenerovaly výsledky, ale zpracovávají každý jednotlivý prvek v datovém proudu pouze jednou. Tomu se říká jednoprůchodové paradigma: datový prvek prochází algoritmem pouze jednou. Pokud nový prvek dosáhne algoritmu, je výsledek výpočtu upraven a není k němu nutný žádný nový přístup k pozdějšímu bodu. Algoritmus proto nemusí ukládat žádné staré prvky, pouze aktuální mezivýsledek.
Funguje to například pro jednoduché počítadlo. Počet objektů by měl být spočítán. Pokud nový prvek dorazí k algoritmu, čítač se zvýší o jeden, uloží se a prvek lze odstranit. Je třeba uložit pouze aktuální odečet měřiče.
Zpracování toků a vztahů
Zatímco data jsou spravována v tabulkách ( relacích ) v konvenčních (relačních) databázových systémech , datové toky jsou přidávány jako základní datové objekty v DSMS. Datové toky lze chápat jako spojitou sekvenci dvojic čas-hodnota. Vzhledem k tomu, že datové toky jsou v zásadě nekonečné, je třeba je mezitím ke zpracování převést na vztahy. Naopak vztahy lze převést zpět na datové toky (viz obrázek). Zpracování čistých vztahů může probíhat konvenčními metodami. Konverze proudů do jiných proudů probíhá prostřednictvím objížďky vztahů. Jazyk Continuous Query Language , který je založen na SQL , nabízí pro tento účel různé operátory.
Formulace, plánování a optimalizace dotazů
Stejně jako v konvenčních databázových systémech jsou dotazy formulovány v deklarativním jazyce a optimalizovány pro provádění pomocí plánu dotazů. Vzhledem k tomu, že by mělo být zpracováno co nejvíce dotazů současně, jsou uložené dotazy co nejchytřejší kombinovány tak, aby bylo možné použít částečné dotazy vícekrát.
Součásti plánu jsou operátoři, fronty a stavy. Operátory odpovídají operátorům známým z konvenčních databází, jako je filtrování, třídění, spojení, matematické operátory atd., Jakož i vstup a výstup datových toků. Jednotlivé operátory plánu jsou propojeny frontami, do kterých jsou datové objekty zapisovány postupně a čteny dalším operátorem ve stejném pořadí. Jako průběžné výsledky existují stavy, jako je obsah zadaného okna.
příklad
Zpravodajský portál by rád na své stránce zobrazoval nejnovější zprávy o aktuálně nejvíce diskutovaných tématech a také objem zpráv za jeden den. Zprávy přicházejí v jednom datovém proudu a aktuálně důležitá témata v jiném datovém proudu jako „ zeitgeist “. Každá zpráva je přiřazena k tématu. Konkrétně by se měly zobrazit názvy zpráv z poslední hodiny u posledních 10 témat a také počet všech souvisejících zpráv za posledních 24 hodin. Formulované v CQL, to jsou dva dotazy:
Q1: SELECT Titel FROM Nachrichten N [Range 1 HOUR], Zeitgeist Z [RANGE 10] WHERE N.Thema = Z.Thema
Q2: SELECT COUNT(*) FROM Nachrichten N [RANGE 1 DAY], Zeitgeist Z [RANGE 10]
WHERE N.Thema = Z.Thema
DSMS nyní používá tyto dotazy k vytvoření co nejefektivnějšího plánu, který by mohl vypadat například jako ten, který je znázorněn na obrázku níže. Názvy a témata zpráv jsou nejprve promítnuty a umístěny do fronty. Témata jsou nejprve umístěna do fronty a odtud do okna o délce 10. Zprávy a okna jsou propojeny operátorem JOIN a přicházejí do okna, které obsahuje všechny zprávy za den. Výsledek dotazu Q2 se z tohoto okna určí pomocí operátoru COUNT. U dotazu Q1 následuje větší okno menší okno s délkou jedné hodiny.
literatura
- Brian Babcock, Shivnath Babu, Mayur Data, Rajeev Motwani, Jennifer Widom. Modely a problémy v systémech datových toků . In: Proceedings of the 21.st ACM Symposium on Principles of Database Systems (PODS 2002)
- Don Carney, Ugur Centintemel, Mitch Cherniack a kol .: Monitorování proudů - nová třída aplikací pro správu dat (PDF; 685 kB) . (VLDB 2002)
- Sandra Geisler: Systémy pro správu datových toků . Následná opatření Dagstuhl. Vol. 5. Schloss Dagstuhl-Leibniz Center for Computer Science, 2013.
- Rajeev Motwani, Jennifer Widom, Arvind Arasu, Brian Babcock, Shivnath Babu, Mayur Datar, Gurmeet Manku, Chris Olston, Justin Rosenstein a Rohit Varma: Zpracování dotazů, správa zdrojů a aproximace v systému správy datových toků . Stanford, 2002 (CIDR 2003)
- Golab L., Ozsu MT Issues in data stream management , ACM SIGMOD Record Volume 32, Issue 2, pp. 5-14, June 2003.
- Michael Cammert, Christoph Heinz, Jürgen Krämer, Bernhard Seeger: Žádost o zpracování datových toků . Database Spectrum 11: 5-13, (2004).
- Jürgen Krämer: Kontinuální dotazy na datové toky - sémantika a implementace . Dizertační práce, Philipps University Marburg, (2007).
- Jürgen Krämer, Bernhard Seeger: Sémantika a implementace dotazů na průběžné posuvné okno přes datové toky . (ACM TODS 2009).
webové odkazy
- STREAM , Streamujte domovskou stránku týmu
- AURORA , StreamBase Systems, Inc.
- TelegraphCQ
- NigaraST ( Memento ze dne 13. října 2007 v internetovém archivu )
- QStream
- PIPES , RTM Analyzer
- StreamGlobe
- Odysseus
- PipelineDB
- Přehodnotit DB
Individuální důkazy
- ↑ Data - English Test Questions (Topics) Seznam souborů ( anglicky ) National Institute of Standards and Technology. Citováno 14. února 2019.
- ↑ a b c d e Sandra Geisler: Systémy pro správu datových toků . In: Phokion G. Kolaitis a Maurizio Lenzerini a Nicole Schweikardt (Eds.): Dagstuhl Follow-Ups . páska 5 . Schloss Dagstuhl - Leibniz Center for Computer Science, Dagstuhl, Německo 2013, ISBN 978-3-939897-61-3 , s. 275–304 , doi : 10,4230 / DFU.Vol5.10452.275 ( dagstuhl.de ).