Služba Oracle Analytics Cloud udržiava lokálnu cache s množinami výsledkov dopytov v cache dopytov.
Témy:
Cache dopytov umožňuje službe Oracle Analytics Cloud uspokojiť množstvo po sebe idúcich požiadaviek na dopyty bez prístupu k backendovým dátovým zdrojom, čím sa zvýši výkon dopytov. Položky cache dopytov však môžu zastarať, pretože k aktualizáciám dochádza na backendových dátových zdrojoch.
Najrýchlejší spôsob, ako spracovať dopyt, je vynechať náročné spracovanie a použiť vopred vypočítanú odpoveď.
Pomocou ukladania dopytov do cache služba Oracle Analytics Cloud ukladá vopred vypočítané výsledky dopytov do lokálnej cache. Ak iný dopyt môže použiť tieto výsledky, všetko spracovanie v databáze pre tento dopyt sa eliminuje. To môže mať za následok dramatické skrátenie priemerného času odozvy na dopyt.
Okrem zlepšenia výkonu má schopnosť odpovedať na dopyt z lokálnej cache tú výhodu, že šetrí sieťové prostriedky a znižuje čas spracovania na databázovom serveri. Sieťové prostriedky sa šetria, pretože priebežné výsledky sa nevracajú do služby Oracle Analytics Cloud. Tým, že sa dopyt nespustí v databáze, sa uvoľní databázový server na iné úlohy. Ak databáza používa systém doúčtovania, spúšťanie menšieho množstva dopytov môže zároveň znížiť rozpočtové náklady.
Ďalšou výhodou používania cache na odpovedanie na dopyt je zníženie času spracovania v službe Oracle Analytics Cloud, a to najmä vtedy, keď sa výsledky dopytu vyvolávajú z viacerých databáz. V závislosti od dopytu môže server vykonávať značné množstvo spracovania formou spájania a triedenia. Ak už je dopyt vypočítaný, k tomuto spracovaniu nedôjde, čím sa uvoľnia prostriedky servera na iné úlohy.
Aby sme to zhrnuli, ukladanie dopytov do cache môže dramaticky zlepšiť výkon dopytov a znížiť sieťové prenosy, spracovanie v databáze a režijné náklady na spracovanie.
Ukladanie dopytov do cache má množstvo zjavných výhod, ale aj určité náklady.
Riziko zastarania výsledkov uložených v cache
Administratívne náklady správy cache
V prípade správy cache prínosy väčšinou výrazne prevyšujú náklady.
S ukladaním do cache sú spojené niektoré úlohy administrácie. Je potrebné správne nastaviť čas perzistencie v cache pre každú fyzickú tabuľku, pričom treba vedieť, ako často sa dáta v danej tabuľke aktualizujú.
Keď sa frekvencia aktualizácie mení, je potrebné sledovať, kedy dochádza k zmenám, a podľa potreby úplne vymazať cache manuálne.
Ak položky cache nie sú úplne vymazané, keď sa zmenia dáta v základných databázach, dopyty môžu potenciálne vracať neaktuálne výsledky.
Vyhodnoťte si, či je to prijateľné. Môže byť prijateľné povoliť, aby cache obsahovala určité zastarané dáta. Musíte sa rozhodnúť, aká úroveň zastaraných dát je prijateľná a kedy je potrebné nakonfigurovať (a dodržiavať) množinu pravidiel zodpovedajúcu týmto úrovniam.
Predpokladajme napríklad, že aplikácia analyzuje podnikové dáta z veľkého konglomerátu a vy vykonávate ročné súhrny z rôznych divízií spoločnosti. Nové dáta zásadne neovplyvnia dopyty, pretože nové dáta majú vplyv iba na súhrny pre budúci rok. V tomto prípade kompromis pri rozhodovaní o výmaze cache môže viesť k ponechaniu položiek v cache.
Predpokladajme však, že databázy sa aktualizujú trikrát denne a vy vykonávate dopyty pre činnosti z aktuálneho dňa. V tomto prípade musíte úplne vymazávať cache častejšie, prípadne môžete zvážiť možnosť cache vôbec nepoužívať.
Ďalším scenárom je prípad, keď opakovane odznova vytvárate množinu dát v pravidelných intervaloch (napríklad raz za týždeň). V tomto príklade môžete úplne vymazať celú cache v rámci procesu opakovaného vytvárania množiny dát, aby ste v cache nikdy nemali zastarané dáta.
V každej situácii však musíte vyhodnotiť, do akej miery je prijateľné vracať používateľom neaktuálne informácie.
Ak je pre konkrétnu spoločnú oblasť pripojení aktivované zdieľané prihlásenie, cache možno zdieľať medzi používateľmi a nie je potrebné naplniť ju pre každého používateľa.
Ak zdieľané prihlásenie nie je aktivované a používa sa prihlásenie do databázy špecifické pre používateľa, každý používateľ generuje vlastné položky v cache.
V službe Oracle Analytics Cloud je ukladanie dopytov do cache predvolene aktivované. Ukladanie dopytov do cache môžete aktivovať alebo deaktivovať na stránke Rozšírené systémové nastavenia.
Aby ste mohli spravovať zmeny v základných databázach a monitorovať položky cache, je potrebné vytvoriť si stratégiu správy cache.
Potrebujete proces zrušenia platnosti položiek cache, keď sa zmenia dáta v základných tabuľkách, z ktorých sa skladá položka cache, a proces na monitorovanie, identifikovanie a odstraňovanie neželaných položiek cache.
Táto časť obsahuje nasledujúce témy:
Výber stratégie správy cache závisí od nestability dát v základných databázach a od predpovedateľnosti zmien, ktoré túto nestabilitu spôsobujú.
Závisí aj od počtu a typov dopytov, ktoré tvoria cache, a použitia, ktoré tieto dopyty dostanú. Táto sekcia obsahuje prehľad rôznych prístupov k správe cache.
Môžete deaktivovať ukladanie do cache pre celý systém, čím sa zastaví ukladanie všetkých nových položiek do cache a nové dopyty už nebudú používať existujúcu cache. Po deaktivácii ukladania do cache ho môžete neskôr znova aktivovať bez toho, aby ste stratili akékoľvek položky uložené v cache.
Dočasná deaktivácia ukladania do cache je užitočná stratégia v situáciách, keď máte podozrenie, že niektoré položky v cache sú zastarané, ale pred ich úplným výmazom alebo úplným výmazom celej cache to chcete overiť. Ak zistíte, že dáta uložené v cache sú stále relevantné, alebo keď ste bezpečne úplne vymazali problémové položky, môžete cache bezpečne znova aktivovať. Podľa potreby pred opätovným aktivovaním cache úplne vymažte celú cache alebo cache, ktorá je spojená s konkrétnym biznis modelom.
Môžete nastaviť atribút uložiteľný do cache pre každú fyzickú tabuľku, aby ste mohli zadať, či sa dopyty pre túto tabuľku pridajú do cache s cieľom odpovedať na budúce dopyty.
Ak aktivujete ukladanie do cache pre tabuľku, akýkoľvek dopyt týkajúci sa tabuľky sa pridá do cache. Všetky tabuľky je predvolene možné ukladať do cache, ale niektoré tabuľky nemusia byť dobrými kandidátmi na uloženie do cache, pokiaľ nevykonáte vhodné nastavenia perzistencie v cache. Predpokladajme napríklad, že máte tabuľku, kde sa ukladajú dáta o akciách na burze, ktoré sa aktualizujú každú minútu. Môžete zadať, že každých 59 sekúnd sa vykoná úplný výmaz záznamov v tejto tabuľke.
Takisto môžete použiť nastavenia perzistencie v cache, ktoré určia, ako dlho budú položky v tejto tabuľke uložené v cache dopytov. Táto funkcia je užitočná pre dátové zdroje, ktoré sa často aktualizujú.
V nástroji Model Administration Tool na fyzickej vrstve dvakrát kliknite na fyzickú tabuľku.
Ak používate nástroj Sémantický modelár, pozrite si časť Čo sú to všeobecné vlastnosti fyzickej tabuľky?
V dialógovom okne vlastností Fyzická tabuľka na karte Všeobecné vykonajte jeden z nasledujúcich výberov:
Na aktiváciu ukladania do cache vyberte voľbu Možno uložiť do cache.
Ak nechcete, aby sa tabuľka ukladala do cache, zrušte výber voľby Možno uložiť do cache.
Ak chcete nastaviť čas uplynutia platnosti cache, zadajte Čas perzistencie v cache a zadajte mernú jednotku (dni, hodiny, minúty alebo sekundy). Ak nechcete, aby automaticky uplynula platnosť položiek cache, vyberte položku Platnosť cache nikdy neuplynie.
Kliknite na tlačidlo OK.
Keď modifikujete sémantické modely pomocou nástroja Sémantický modelár alebo Model Administration Tool, zmeny môžu mať vplyv na položky uložené v cache. Ak napríklad zmeníte definíciu fyzického objektu alebo dynamickej premennej sémantického modelu, položky cache odkazujúce na daný objekt alebo premennú už nemusia byť platné. Tieto zmeny môžu mať za následok nutnosť úplne vymazať cache. Existujú dva scenáre, o ktorých treba vedieť: keď modifikujete existujúci sémantický model a keď vytvoríte (alebo nahráte) nový sémantický model.
Zmeny v sémantickom modeli
Keď modifikujete sémantický model alebo nahráte odlišný súbor .rpd, všetky vykonané zmeny, ktoré majú vplyv na položky cache, automaticky spôsobia úplný výmaz všetkých položiek cache odkazujúcich na zmenené objekty. Úplný výmaz nastane, keď nahráte zmeny. Ak napríklad odstránite fyzickú tabuľku zo sémantického modelu, všetky položky cache odkazujúce na túto tabuľku sa po registrácii úplne vymažú. Akékoľvek zmeny vykonané v sémantickom modeli v logickej vrstve úplne vymažú všetky položky cache pre daný sémantický model.
Zmeny globálnych premenných sémantického modelu
Hodnoty globálnych premenných sémantického modelu sa obnovujú na základe dát vrátených z dopytov. Pri definovaní globálnej premennej sémantického modelu vytvárate inicializačný blok alebo používate už existujúci inicializačný blok, ktorý obsahuje dopyt SQL. Nakonfigurujete aj plán, podľa ktorého sa spúšťa dopyt a pravidelne sa obnovuje hodnota premennej.
Ak sa hodnota globálnej premennej sémantického modelu zmení, každá položka cache, ktorá používa túto premennú v stĺpci, sa stane zastaranou, a keď sú dáta v tejto položke znova potrebné, vygeneruje sa nová položka cache. Stará položka cache sa neodstráni ihneď, ale zachová sa, až kým sa nevymaže zvyčajným mechanizmom ukladania do cache.
Jednou z hlavných výhod ukladania dopytov do cache je zlepšenie výkonu dopytov.
Ukladanie dopytov do cache možno využiť na naplnenie cache mimo špičky prostredníctvom spustenia dopytov a uloženia ich výsledkov do cache. Dobrá stratégia napĺňania vyžaduje, aby ste vedeli, kedy dochádza k úspešným hľadaniam v cache.
Ak chcete naplniť cache pre všetkých používateľov, môžete ho naplniť nasledujúcim dopytom:
SELECT User, SRs
Po naplnení cache pomocou dopytu SELECT User, SRs
budú v cache úspešne vyhľadané tieto dopyty:
SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (and the user was USER1) SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (and the user was USER2) SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (and the user was USER3)
Táto časť obsahuje nasledujúce témy:
Keď je aktivované ukladanie do cache, každý dopyt sa vyhodnotí s cieľom stanoviť, či sa kvalifikuje ako úspešné hľadanie v cache.
Úspešné hľadanie v cache znamená, že služba Oracle Analytics Cloud dokázala použiť cache na zodpovedanie dopytov a vôbec nepoužila databázu. Oracle Analytics Cloud môže použiť cache dopytov na zodpovedanie dopytov na rovnakej alebo vyššej úrovni agregácie.
Úspešnosť hľadania v cache určuje mnoho faktorov. Nižšie uvedená tabuľka popisuje tieto faktory.
Faktor alebo pravidlo | Popis |
---|---|
Podmnožina stĺpcov v zozname |
Všetky stĺpce v zozname Toto pravidlo popisuje minimálnu požiadavku na úspešné hľadanie v cache, ale dodržanie tohto pravidla nezaručuje úspešné hľadanie v cache. Platia aj ostatné pravidlá uvedené v tejto tabuľke. |
Stĺpce v zozname |
Služba Oracle Analytics Cloud dokáže vypočítať výrazy pre výsledky uložené v cache s cieľom odpovedať na nový dopyt, ale všetky stĺpce musia byť vo výsledku uloženom v cache. Napríklad dopyt: SELECT product, month, averageprice FROM sales WHERE year = 2000 je úspešne vyhľadaný v cache pri dopyte: SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000 pretože |
Klauzula |
Aby sa dopyt kvalifikoval ako úspešné hľadanie v cache, obmedzenia klauzuly Klauzula
Navyše stĺpce, ktoré sa používajú v klauzule SELECT employeename FROM employee, geography WHERE region in ('EAST', 'WEST') Nemá za následok úspešné hľadanie v cache pre zdrojový dopyt v predchádzajúcom zozname, pretože REGION nie je v zozname projekcií. |
Dopyty len s dimenziou musia byť presnou zhodou |
Ak je dopyt iba s dimenziou, čo znamená, že nezahŕňa žiadny fakt ani mieru, potom iba presná zhoda stĺpcov projekcie dopytu uloženého v cache bude úspešne vyhľadaná v cache. Toto správanie zabraňuje falošne pozitívnym výsledkom, keď existuje viacero logických zdrojov pre tabuľku dimenzií. |
Dopyty so špeciálnymi funkciami sa musia presne zhodovať |
Ďalšie dopyty, ktoré obsahujú špeciálne funkcie, napríklad funkcie časovej série ( |
Množina logických tabuliek sa musí zhodovať |
Aby sa kvalifikovali ako úspešné hľadanie v cache, všetky prichádzajúce dopyty musia mať rovnakú množinu logických tabuliek ako položka v cache. Toto pravidlo zabraňuje falošným úspešným hľadaniam v cache. Napríklad výraz |
Hodnoty premenných relácie sa musia zhodovať, a to vrátane premenných relácie týkajúcich sa zabezpečenia |
Ako logický alebo fyzický príkaz SQL odkazuje na akúkoľvek premennú relácie, hodnoty premenných relácie sa musia zhodovať. Inak nebude hľadanie v cache úspešné. Okrem toho hodnota premenných relácie, ktoré sú citlivé na zabezpečenie, sa musí zhodovať s hodnotami premenných relácie týkajúcimi sa zabezpečenia, ktoré sú definované v sémantickom modeli, hoci samotný logický príkaz SQL neodkazuje na premenné relácie. Pozrite si časť Zaistenie správnych výsledkov cache pri použití zabezpečenia databázy na úrovni riadka. |
Ekvivalentné podmienky spojenia |
Výsledná spojená logická tabuľka novej požiadavky na dopyt musí by rovnaká ako výsledky uložené v cache (alebo ich podmnožina), aby sa kvalifikovala ako úspešné hľadanie v cache. |
Atribút |
Ak dopyt uložený v cache eliminuje duplicitné záznamy so spracovaním |
Dopyty musia obsahovať kompatibilné úrovne agregácie |
Dopyty, ktoré požadujú agregovanú úroveň informácií, môžu použiť výsledky uložené v cache na nižšej úrovni agregácie. Nasledujúci dopyt napríklad požaduje predané množstvo na úrovni dodávateľa, oblasti a mesta: SELECT supplier, region, city, qtysold FROM suppliercity Nasledujúci dopyt požaduje predané množstvo na úrovni mesta: SELECT city, qtysold FROM suppliercity Druhý dopyt má za následok úspešné hľadanie v cache pre prvý dopyt. |
Obmedzená ďalšia agregácia |
Ak je napríklad v cache uložený dopyt so stĺpcom |
Klauzula |
Dopyty zoradené podľa stĺpcov, ktoré sa nenachádzajú vo výberovom zozname, majú za následok neúspešné hľadania v cache. |
Diagnostika správania úspešného hľadania v cache |
Aby bolo možné lepšie posúdiť správanie úspešného hľadania v cache, nastavte premennú relácie ENABLE_CACHE_DIAGNOSTICS na hodnotu 4 ako v nasledujúcom príklade: ENABLE_CACHE_DIAGNOSTICS=4 |
Pri používaní stratégie zabezpečenia databázy na úrovni riadka, napríklad virtuálnej súkromnej databázy (VPD), sú vrátené výsledky dát podmienené autorizačnými dokladmi používateľa.
Z tohto dôvodu musí služba Oracle Analytics Cloud vedieť, či dátový zdroj používa zabezpečenie databázy na úrovni riadka a ktoré premenné sú relevantné pre zabezpečenie.
Na zaistenie, aby k úspešnému hľadaniu v cache došlo iba pre položky cache, ktoré zahŕňajú všetky premenné citlivé na zabezpečenie a zhodujú sa s nimi, je potrebné správne nakonfigurovať databázový objekt a objekty premenných relácie v nástroji Model Administration Tool:
Databázový objekt. Vo fyzickej vrstve na karte Všeobecné dialógového okna Databáza vyberte položku Virtuálna súkromná databáza na určenie, že dátový zdroj používa zabezpečenie databázy na úrovni riadka.
Ak používate zabezpečenie databázy na úrovni riadka so zdieľaným ukladaním do cache, musíte vybrať túto voľbu, aby sa nezdieľali položky cache, ktorých premenné citlivé na zabezpečenie sa nezhodujú.
Objekt premennej relácie. V prípade premenných súvisiacich so zabezpečením v dialógovom okne Premenná relácie vyberte položku Citlivé na zabezpečenie na identifikáciu daných premenných ako citlivých na zabezpečenie pri použití stratégie zabezpečenia databázy na úrovni riadka. Táto voľba zabezpečí, aby boli položky v cache označené pomocou premenných citlivých na zabezpečenie, čo umožní párovanie premenných citlivých na zabezpečenie pre všetky prichádzajúce dopyty.
Jednou stratégiou na maximalizáciu potenciálnych úspešných hľadaní v cache je spustenie série dopytov na naplnenie cache.
Ďalej je uvedených niekoľko odporúčaní pre typy dopytov, ktoré možno použiť pri vytváraní série dopytov na naplnenie cache.
Bežné predgenerované dopyty. Výbornými dopytmi na naplnenie cache sú často spúšťané dopyty, najmä tie, ktoré sú drahé na spracovanie. Dobrými príkladmi takýchto bežných dopytov sú dopyty, ktorých výsledky so vložené v paneloch.
Zoznamy SELECT bez výrazov. Eliminovaním výrazov zo stĺpcov zoznamu SELECT
sa zvýši možnosť úspešného hľadania v cache. Stĺpec uložený v cache s výrazom môže odpovedať iba na nový dopyt s rovnakým výrazom. Stĺpec uložený v cache bez výrazov môže odpovedať na požiadavku pre daný stĺpec s akýmkoľvek výrazom. Požiadavka uložená v cache, napríklad:
SELECT QUANTITY, REVENUE...
môže odpovedať na nový dopyt, ako napríklad:
SELECT QUANTITY/REVENUE...
ale nie naopak.
Žiadna klauzula WHERE. Ak vo výsledku uloženom v cache nie je žiadna klauzula WHERE
, možno ho použiť na odpovedanie na dopyty, ktoré vyhovujú pravidlám úspešného hľadania v cache pre vybraný zoznam s akoukoľvek klauzulou WHERE
, ktorá zahŕňa stĺpce v zozname projekcií.
Vo všeobecnosti platí, že najlepšie dopyty na naplnenie cache sú tie, ktoré spotrebúvajú veľa prostriedkov spracovania databázy a ktoré budú pravdepodobne znova vydané. Dbajte na to, aby ste nenaplnili cache jednoduchými dopytmi, ktoré vracajú veľa riadkov. Tieto dopyty (napríklad SELECT * FROM PRODUCTS
, kde sa výraz PRODUCTS
mapuje priamo k jednej databázovej tabuľke) vyžadujú veľmi málo spracovania v databáze. Ich výdavky sú režijnými nákladmi siete a disku, čo sú faktory, ktoré ukladanie do cache neznižuje.
Keď služba Oracle Analytics Cloud obnovuje premenné sémantického modelu, skúma biznis modely s cieľom zistiť, či odkazujú na tieto premenné sémantického modelu. Ak áno, služba Oracle Analytics Cloud úplne vymaže celú cache pre tieto biznis modely. Pozrite si časť Vplyv zmien sémantického modelu na cache dopytov.
Môžete nakonfigurovať agentov na naplnenie cache dopytov služby Oracle Analytics Cloud.
Naplnením cache sa môžu zlepšiť časy odozvy pre používateľov, keď spúšťajú alebo zobrazujú analýzy, ktoré sú vložené v ich paneloch. Dosiahnete to tak, že naplánujete agentov na spúšťanie požiadaviek, ktoré tieto dáta obnovujú.
Jediným rozdielom medzi agentmi napĺňania cache a inými agentmi je, že automaticky vymažú predchádzajúcu cache a nezobrazujú sa na paneli ako výstrahy.
Poznámka:
Agenti napĺňajúci cache úplne vymažú iba presne sa zhodujúce dopyty, takže stále môžu existovať zastarané dáta. Dbajte na to, aby stratégia ukladania do cache vždy zahŕňala úplný výmaz cache, pretože dopyty agentov sa nezaoberajú ad hoc dopytmi ani prechodmi.Úplným výmazom cache sa odstránia položky z cache dopytov, aby bol obsah aktuálny. Môžete automaticky úplne vymazať položky cache pre špecifické tabuľky nastavením poľa Čas perzistencie v cache pre každú tabuľku v nástroji Model Administration Tool.
Poznámka:
Ak používate nástroj Sémantický modelár, pozrite si časť Čo sú to všeobecné vlastnosti fyzickej tabuľky?
Táto funkcia je užitočná pre dátové zdroje, ktoré sa často aktualizujú. Ak napríklad máte tabuľku, v ktoré sú uložené dáta o akciách na burze, ktoré sa aktualizujú každú minútu, môžete použiť nastavenie Čas perzistencie v cache na úplný výmaz položiek v tejto tabuľke každých 59 sekúnd. Informácie nájdete v časti Cache a čas perzistencie v cache pre zadané fyzické tabuľky.