Kyselyvälimuistin hallinta

Oracle Analytics Cloud ylläpitää kyselyvälimuistissa paikallista kyselytulosjoukkojen välimuistia.

Aiheet:

Tietoja kyselyvälimuistista

Kyselyvälimuistin avulla Oracle Analytics Cloud voi käsitellä useita peräkkäisiä kyselypyyntöjä käyttämättä taustalla olevia tietolähteitä, mikä parantaa kyselyjen suorituskykyä. Kyselyvälimuistissa olevat kirjaukset voivat kuitenkin vanhentua, kun taustalla olevia tietolähteitä päivitetään.

Välimuistin käytön edut

Nopein tapa käsitellä kysely on ohittaa suurin osa prosessoinnista ja käyttää etukäteen laskettua vastausta.

Kun kyselyvälimuisti on käytössä, Oracle Analytics Cloud tallentaa kyselyjen etukäteen lasketut tulokset paikalliseen välimuistiin. Jos toinen kysely voi hyödyntää näitä tuloksia, kyseisen kyselyn tietokantaprosessointi voidaan jättää tekemättä. Tämä voi johtaa huomattaviin parannuksiin kyselyjen keskimääräisessä vastausajassa.

Suorituskykyparannusten lisäksi kyselyyn vastaaminen paikallisesta välimuistista säästää verkon resursseja ja tietokantapalvelimen prosessointiaikaa. Verkon resursseja säästyy, koska välituloksia ei palauteta Oracle Analytics Cloud -palveluun. Kun kyselyä ei suoriteta tietokannassa, tietokantapalvelin on vapaa suorittamaan muita töitä. Jos tietokanta käyttää lisäveloitusjärjestelmää, vähäisempi kyselyjen määrä voi myös vähentää budjetoitavia kustannuksia.

Toinen etu, joka saadaan vastaamalla kyselyihin välimuistista, on käsittelyajan säästö Oracle Analytics Cloud -palvelussa, erityisesti, jos kyselyn tulokset noudetaan useista tietokannoista. Kyselystä riippuen palvelin voi joutua tekemään huomattavan määrän liitos- ja lajittelukäsittelyä. Jos kyselyn tulos on jo laskettu, tämä käsittely vältetään, jolloin palvelinresurssit voidaan käyttää muihin tehtäviin.

Yhteenveto: kyselyjen välimuistitallennus voi merkittävästi parantaa kyselyjen suorituskykyä ja vähentää verkon liikennettä, tietokantakäsittelyä ja ylätason käsittelyä.

Välimuistin käytön kustannukset

Kyselyjen välimuistiin tallennuksella on useita ilmeisiä etuja, mutta myös tiettyjä kustannuksia.

  • Välimuistin tulosten mahdollinen vanhentuminen

  • Välimuistin hallinnan ylläpitokustannukset

Välimuistin hallinnassa edut yleensä ylittävät kustannukset.

Välimuistiin tallennukseen liittyvät hallintatehtävät

Välimuistitallennukseen liittyy joitakin hallintatehtäviä. Välimuistin pysyvyysaika on asetettava sopivaksi kullekin fyysiselle taululle sen mukaan, kuinka usein taulun tietoja päivitetään.

Jos päivitysväli vaihtelee, seuraa, milloin muutoksia tapahtuu, ja tuhoa välimuisti manuaalisesti tarvittaessa.

Välimuistin pitäminen ajan tasalla

Jos välimuistikirjauksia ei tuhota, kun tietokantojen tiedot muuttuvat, kyselyt saattavat palauttaa vanhentuneita tuloksia.

Sinun on arvioitava, onko tämä hyväksyttävää. Saattaa olla hyväksyttävää, että välimuistissa on jonkin verran vanhentunutta tietoa. Sinun täytyy päättää, millainen vanhentuneen tiedon taso on hyväksyttävä ja konfiguroitava tasojen mukaan joukko sääntöjä (ja noudatettava niitä).

Oletetaan esimerkiksi, että sovellus analysoi suuren monialakonsernin tietoja ja olet tekemässä vuosittaisia yhteenvetoja yhtiön eri yksiköistä. Uudet tiedot eivät olennaisesti vaikuta näihin kyselyihin, koska uudet tiedot vaikuttavat vasta seuraavan vuoden yhteenvetoihin. Tässä tapauksessa välimuistin tuhoamisen kannattavuutta arvioitaessa voi olla järkevämpää jättää kirjaukset välimuistiin.

Oletetaan tämän sijaan, että tietokannat päivitetään kolme kertaa päivässä ja että teet kyselyjä tämän päivän tapahtumista. Tässä tapauksessa välimuisti on tuhottava paljon useammin, tai voi olla järkevintä olla käyttämättä välimuistia lainkaan.

Toinen mahdollinen tilanne on, että luot tietojoukon tyhjästä jaksoittain (esimerkiksi kerran viikossa). Tässä esimerkissä voit tuhota koko välimuistin osana tietojoukon luontiprosessia, jolloin voit olla varma, ettei välimuistissa ole vanhentuneita tietoja.

Mikä tilanteesi onkin, sinun täytyy arvioida, mikä on hyväksyttävä ei-ajantasaisen tiedon palauttamisen taso käyttäjille.

Välimuistin jakaminen käyttäjien kesken

Jos jaettu kirjautuminen on käytössä tietyssä yhteysvarannossa, välimuisti voidaan jakaa käyttäjien kesken, eikä siihen tarvitse syöttää tietoja jokaiselle käyttäjälle erikseen.

Jos jaettu kirjautuminen ei ole käytössä ja käytetään sen sijaan käyttäjäkohtaista tietokantakirjautumista, jokainen käyttäjä luo oman välimuistikirjauksen.

Kyselyvälimuistin käyttöönotto tai käytöstä poisto

Oracle Analytics Cloud -palvelussa kyselyvälimuisti on oletusarvoisesti käytössä. Voit ottaa kyselyvälimuistin käyttöön tai poistaa sen käytöstä Järjestelmäasetukset-sivulla.

  1. Valitse Konsoli.
  2. Valitse Järjestelmäasetukset.
  3. Valitse Suorituskyky ja yhteensopivuus.
  4. Aseta Välimuistin käyttöönotto käyttöön tai pois käytöstä.
    • Käytössä — tietojen kyselyvälimuisti on käytössä.
    • Pois käytöstä — Välimuistitallennus on pois käytöstä.
  5. Valitse Käytä.
    Odota muutama hetki, jotta muutokset päivittyvät koko järjestelmässä.

Välimuistin valvonta ja hallinta

Jotta voisit hallita muutoksia perustana olevissa tietokannoissa ja valvoa välimuistikirjauksia, sinun täytyy kehittää välimuistin hallintastrategia.

Tarvitset prosessin, jolla välimuistikirjauksia merkitään virheellisiksi, kun välimuistikirjauksen perustana olevien taulujen tiedot muuttuvat, sekä prosessin, joka valvoo kirjauksia ja tunnistaa ja poistaa kaikki ei-toivotut välimuistikirjaukset.

Tässä osassa käsitellään seuraavia aiheita:

Välimuistin hallintastrategian valinta

Välimuistin hallintastrategian valinta riippuu käytettävien tietokantojen tietojen volatiliteetista ja volatiliteettia aiheuttavien muutosten ennustettavuudesta.

Se riippuu myös välimuistiin tallentuneiden kyselyjen määrästä ja tyypeistä sekä näiden kyselyjen käytöstä. Tämä osa tarjoaa yleiskatsauksen erilaisiin välimuistin hallintatapoihin.

Välimuistin poistaminen käytöstä järjestelmässä

Voit poistaa välimuistin käytöstä koko järjestelmässä, jolloin uusia välimuistikirjauksia ei tehdä eivätkä uudet kyselyt voi käyttää olemassa olevaa välimuistia. Välimuistin käytöstä poistaminen mahdollistaa sen palauttamisen käyttöön myöhemmin ilman, että välimuistiin kirjattuja tietoja katoaa.

Välimuistitallennuksen väliaikainen keskeyttäminen on hyödyllinen strategia tilanteissa, joissa epäilet, että välimuistissa on vanhentuneita tietoja, mutta haluat tarkistaa, että ne todella ovat vanhentuneita ennen kuin tuhoat kirjaukset tai koko välimuistin. Jos toteat, että välimuistin tiedot ovat edelleen ajantasaisia, tai jos olet turvallisesti tuhonnut ongelmalliset kirjaukset, voit ottaa välimuistin uudelleen käyttöön turvallisesti. Tuhoa tarvittaessa koko välimuisti tai tiettyyn liiketoimintamalliin liittyvä välimuisti ennen kuin otat välimuistin taas käyttöön.

Välimuisti ja välimuistin pysyvyysajat määritetyille fyysisille tauluille

Voit asettaa jokaiselle fyysiselle taululle välimuistitallennusmääritteen, jolla voit määrätä, lisätäänkö taulua koskevat kyselyt välimuistiin tulevia kyselyjä varten.

Jos otat taulun välimuistitallennuksen käyttöön, kaikki kyseiseen tauluun liittyvät kyselyt lisätään välimuistiin. Kaikki taulut ovat oletusarvoisesti välimuistiin kirjattavia, mutta joitakin tauluja ei välttämättä kannata lisätä välimuistiin, ellei määritetä sopivia välimuistin pysyvyysasetuksia. Oletetaan esimerkiksi, että sinulla on taulu, johon tallennetaan pörssikurssien tietoja ja jota päivitetään minuutin välein. Voit määrittää, että haluat tyhjentää taulun kirjaukset 59 sekunnin välein.

Voit myös käyttää välimuistin pysyvyysasetuksia sen määrittämiseen kuinka pitkäksi aikaa tämän taulun kirjaukset tallennetaan kyselyvälimuistiin. Tämä on hyödyllinen tietolähteille, joita päivitetään usein.

  1. Kaksoisnapsauta Model Administration Tool -työkalun Fyysinen-kerroksessa fyysistä taulua.

    Jos käytät semanttista mallinnussovellusta, katso kohta Mitä ovat fyysisen taulukon yleiset ominaisuudet?.

  2. Valitse Fyysinen taulu -ominaisuusikkunan Yleiset-välilehdessä jokin seuraavista vaihtoehdoista:

    • Ota välimuistitallennus käyttöön valitsemalla Välimuistiin tallennettava.

    • Jos et halua, että taulu tallennetaan välimuistiin, poista valinta kohdasta Välimuistiin tallennettava.

  3. Aseta välimuistin vanhenemisaika määrittämällä Välimuistin pysyvyysaika ja mittayksikkö (päivää, tuntia, minuuttia tai sekuntia). Jos et halua välimuistikirjausten vanhentuvan automaattisesti, valitse Välimuisti ei vanhene koskaan.

  4. Valitse OK.

Miten semanttiseen malliin tehdyt muutokset vaikuttavat kyselyvälimuistiin

Kun muokkaat semanttisia malleja semanttisella mallinnussovelluksella tai Model Administration Tool -työkalulla, muutokset voivat vaikuttaa välimuistissa oleviin kirjauksiin. Jos esimerkiksi muutat fyysisen objektin määritystä tai dynaamista semanttisen mallin muuttujaa, kyseiseen objektiin tai muuttujaan viittaavat välimuistin kirjaukset eivät ehkä enää ole voimassa. Näiden muutosten takia välimuisti on ehkä tarpeen tyhjentää. On otettava huomioon kaksi skenaariota: olemassa olevan semanttisen mallin muokkaus ja uuden semanttisen mallin luonti (tai lataaminen).

Semanttisen mallin muokkaus

Kun teet muutoksia semanttiseen malliin tai lataat eri .rpd-tiedoston, kaikki tekemäsi muutokset, jotka vaikuttavat välimuistin kirjauksiin, johtavat automaattisesti kaikkien muuttuneisiin objekteihin viittaavien välimuistin kirjausten tyhjennykseen. Tyhjennys tehdään, kun lataat muutokset. Jos esimerkiksi poistat fyysisen taulun semanttisesta mallista, kaikki kyseiseen tauluun viittaavat välimuistin kirjaukset tyhjennetään sisäänkuittauksen yhteydessä. Semanttiseen malliin tehdyt muutokset loogisessa kerroksessa tyhjentää kaikki tämän semanttisen mallin merkinnät välimuistista.

Yleisen semanttisen mallin muuttujiin tehtävät muutokset

Yleisen semanttisen mallin muuttujien arvot päivitetään kyselyjen palauttamilla tiedoilla. Kun määrität yleisen semanttisen mallin muuttujan, luot alustuslohkon tai käytät valmista SQL-kyselyn sisältävää lohkoa. Konfiguroit myös aikataulun, jonka mukaan kysely ajetaan ja muuttujan arvo päivitetään säännöllisesti.

Jos yleisen semanttisen mallin muuttujan arvo muuttuu, kyseistä muuttujaa sarakkeessa käyttävät välimuistin kirjaukset vanhenevat ja uusi välimuistin kirjaus luodaan, kun kyseisen kirjauksen tietoja tarvitaan seuraavan kerran. Vanhaa välimuistin kirjausta ei poisteta heti, vaan se säilytetään, kunnes se poistetaan tavallisen välimuistikäytännön mukaisesti.

Strategioita välimuistin käyttöön

Yksi kyselyjen välimuistiin tallentamisen eduista on kyselyn suoritusnopeuden käyttäjälle näkyvä parannus.

Kyselyjä välimuistiin tallennettaessa voi olla hyödyllistä syöttää tietoja välimuistiin hiljaisina aikoina suorittamalla kyselyjä ja tallentamalla niiden tulokset välimuistiin. Hyvä täyttöstrategia edellyttää, että tiedetään, milloin välimuistin tietoja käytetään tuloksissa.

Jos haluat syöttää tietoja välimuistiin kaikkia käyttäjiä varten, voit käyttää esimerkiksi seuraavaa kyselyä:

SELECT User, SRs

Kun olet syöttänyt tietoja välimuistiin kyselyllä SELECT User, SRs, seuraavat kyselytulokset ovat välimuistiosumia:

SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (jossa käyttäjä oli USER1)
SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (jossa käyttäjä oli USER2)
SELECT User, SRs WHERE user = valueof(nq_SESSION.USER) (jossa käyttäjä oli USER3)

Tässä osassa käsitellään seuraavia aiheita:

Tietoja välimuistin osumista

Kun välimuistitallennus on käytössä, jokaisen kyselyn kohdalla arvioidaan, onko se välimuistiosuma.

Välimuistiosuma tarkoittaa, että Oracle Analytics Cloud pystyy käyttämään välimuistin tietoja kyselyyn vastaamiseen, eikä sen tarvitse käyttää tietokantaa lainkaan. Oracle Analytics Cloud voi käyttää kyselyvälimuistia saman tai korkeamman koontitason kyselyihin vastaamiseen.

Useat tekijät määrittävät, onko kyseessä välimuistiosuma. Seuraavassa taulukossa esitetään nämä tekijät.

Tekijä tai sääntö Kuvaus

Osan SELECT-listan sarakkeista on täsmättävä

Kaikkien uuden kyselyn SELECT-listan sarakkeiden täytyy olla olemassa välimuistiin tallennetussa kyselyssä, jotta kyseessä olisi välimuistiosuma, tai ne täytyy voida laskea kyselyn sarakkeista.

Tämä sääntö kuvaa välimuistiosuman vähimmäisvaatimuksen, mutta tämän säännön toteutuminen ei vielä takaa välimuistiosumaa. Myös muut tässä taulukossa luetellut säännöt pätevät.

SELECT-listan sarakkeet voivat muodostua välimuistiin tallennettujen kyselyjen sarakkeiden lausekkeista

Oracle Analytics Cloud voi laskea välimuistitulosten lausekkeiden tuloksen vastatakseen uuteen kyselyyn, mutta kaikkien sarakkeiden täytyy olla välimuistiin tallennetussa tuloksessa. Esimerkiksi tämä kysely:

SELECT product, month, averageprice FROM sales WHERE year = 2000

voi käyttää välimuistikyselyä:

SELECT product, month, dollars, unitsales FROM sales WHERE year = 2000

koska averageprice voidaan laskea dollars- ja unitsales-arvoista (averageprice = dollars/unitsales).

WHERE-lauseen täytyy olla semanttisesti sama tai looginen alijoukko

Jotta kysely olisi välimuistiosuma, WHERE-lauseen rajoitteiden täytyy olla joko välimuistituloksia vastaavat tai niiden alijoukko.

WHERE-lause, joka on välimuistin kyselyn looginen alijoukko, on välimuistiosuma, jos alijoukko täyttää yhden seuraavista kriteereistä:

  • Se on IN-listan arvojen alijoukko. Kyselyt, jotka pyytävät tallennetun kyselyn IN-listan elementtien alijoukkoa, ovat välimuistiosumia. Esimerkiksi seuraava kysely:

    SELECT employeename, region
    FROM employee, geography
    WHERE region in ('EAST', 'WEST')

    on osuma seuraavalle tallennetulle kyselylle:

    SELECT employeename, region
    FROM employee, geography
    WHERE region in ('NORTH', 'SOUTH', 'EAST', 'WEST')
  • Se sisältää vähemmän (mutta samoja) OR-rajoitteita kuin välimuistiin tallennettu tulos.

  • Se sisältää literaalivertailun loogisen alijoukon. Esimerkiksi seuraava predikaatti:

    WHERE revenue < 1000

    on välimuistiosuma vastaavalle kyselylle, jonka predikaatti on:

    WHERE revenue < 5000
  • WHERE-lausetta ei ole. Jos välimuistiin on tallennettu tulos, jossa ei ole WHERE-lausetta, kyselyt, jotka täyttävät kaikki muut välimuistiosumasäännöt, ovat välimuistiosumia riippumatta siitä, mikä niiden WHERE-lause on.

Lisäksi WHERE-lauseessa käytettävien sarakkeiden täytyy olla projektiolistalla. Esimerkiksi seuraava kysely:

SELECT employeename
FROM employee, geography
WHERE region in ('EAST', 'WEST')

Ei johda välimuistiosumaan edellisen luettelon välimuistin tietojensyöttökyselyn perusteella, koska REGION ei ole projektiolistalla.

Pelkkien dimensiokyselyjen täytyy olla tarkkoja osumia

Jos kyseessä on vain dimensioita koskeva kysely, mikä tarkoittaa, että kyselyyn ei sisälly perustietoja tai mittareita, tällöin vain välimuistiin tallennetun kyselyn projektiosarakkeiden tarkka vastaavuus on välimuistiosuma. Näin estetään vääriä osumia, kun dimensiotaululle on useita loogisia lähteitä.

Erityistoimintoja käyttävien kyselyjen täytyy olla tarkkoja osumia

Muiden kyselyjen, jotka sisältävät erityistoimintoja, kuten aikasarjafunktioita (AGO, TODATE ja PERIODROLLING), rajoitus- ja siirtymäfunktioita (OFFSET ja FETCH), suhdefunktioita (ISANCESTOR, ISLEAF, ISROOT ja ISSIBLING), ulkoisia koostefunktioita ja yleisesti suodatinmittareita, täytyy myös vastata tarkasti välimuistiin tallennetun kyselyn projektiosarakkeita. Näissä tapauksissa suodattimen täytyy myös olla tarkka osuma. Jos suodatinmittari voidaan kirjoittaa myös WHERE-lauseena, voidaan tällöin ehkä hyödyntää välimuistin alijoukkoa.

Loogisten taulujen joukon täytyy täsmätä

Ollakseen välimuistiosumia kaikkien saapuvien kyselyjen täytyy sisältää sama joukko loogisia tauluja, joka välimuistikirjauksessa on. Tämä sääntö estää virheelliset välimuistiosumat. Esimerkiksi SELECT * FROM product ei ole osuma kyselylle SELECT * FROM product, sales.

Istuntomuuttujien arvojen täytyy täsmätä, mukaan lukien suojausistunnon muuttujat

Jos looginen tai fyysinen SQL-lause viittaa johonkin istuntomuuttujaan, istuntomuuttujien arvojen täytyy täsmätä. Muuten kyseessä ei ole välimuistiosuma.

Lisäksi suojauskohtaisten istuntomuuttujien arvojen täytyy täsmätä semanttisessa mallissa määritettyihin suojausistunnon muuttujien arvoihin, vaikka looginen SQL-lause ei itsessään viittaa istuntomuuttujiin. Katso kohta Oikeiden välimuistitulosten varmistaminen, kun käytetään rivitason tietokantasuojausta.

Vastaavat liitosehdot

Uuden kyselypyynnön tuloksena saatavan loogisen taulun täytyy olla sama kuin välimuistiin tallennetut tulokset (tai niiden alijoukko), jotta kyseessä olisi välimuistiosuma.

DISTINCT-määritteen täytyy olla sama

Jos välimuistiin tallennettu kysely poistaa tietueiden kaksoiskappaleet DISTINCT-määritteellä (esimerkiksi SELECT DISTINCT...), välimuistiin tallennettujen sarakkeiden pyynnöissä täytyy myös olla DISTINCT-määrite; samaa saraketta koskeva pyyntö ilman DISTINCT-määritettä ei ole välimuistiosuma.

Kyselyjen koostetasojen täytyy olla yhteensopivat

Kyselyt, jotka pyytävät tietoja koostetasolla, voivat käyttää alemman koostetason välimuistiin tallennettuja tuloksia. Esimerkiksi seuraava kysely hakee myyntimäärää toimittajan, alueen ja kaupungin tasolla:

SELECT supplier, region, city, qtysold
FROM suppliercity

Seuraava kysely hakee myyntimäärää kaupungin tasolla:

SELECT city, qtysold
FROM suppliercity

Toinen kysely voi hyödyntää ensimmäisen kyselyn välimuistiin tallennettuja tuloksia.

Rajoitettu lisäkoostaminen

Jos välimuistiin tallennetaan esimerkiksi kysely, jossa on sarake qtysold, pyyntö RANK(qtysold) ei johda välimuistiosumaan. Lisäksi kysely, joka hakee qtysold-sarakkeen maan tasolla, voi saada välimuistiosuman kyselystä joka hakee qtysold-saraketta maan ja alueen tasolla.

ORDER BY -lauseen täytyy muodostua valintalistassa olevista sarakkeista

Valintalistaan sisältymättömien sarakkeiden perusteella lajittelevat kyselyt eivät johda välimuistiosumiin.

Välimuistiosumien diagnostiikka

Jotta voisit paremmin arvioida välimuistiosumien toimintaa, aseta ENABLE_CACHE_DIAGNOSTICS -istuntomuuttujan arvoksi 4, kuten seuraavassa esimerkissä:

ENABLE_CACHE_DIAGNOSTICS=4

Oikeiden välimuistitulosten varmistaminen, kun käytetään rivitason tietokantasuojausta

Kun käytetään rivitason tietokantasuojausstrategiaa, kuten Virtual Private Database (VPD) -tietosuojakäytäntöä, palautetut tietotulokset riippuvat käyttäjän valtuustiedoista.

Tästä syystä Oracle Analytics Cloud -palvelun täytyy tietää, käyttääkö tietolähde rivitason tietokantasuojausta ja mitkä muuttujat liittyvät suojaukseen.

Jotta välimuistiosumissa käytettäisi vain välimuistikirjauksia, jotka sisältävät kaikki suojauskohtaiset muuttujat ja vastaavat niitä, tietokantaobjekti ja istuntomuuttujien objektit on konfiguroitava oikein Model Administration Toolissa, kuten alla:

  • Tietokantaobjekti. Valitse fyysisellä tasolla Tietokanta-valintaikkunan Yleiset-välilehdessä Virtuaalinen yksityinen tietokanta määrittääksesi, että tietolähde käyttää rivitason tietokantasuojausta.

    Jos käytetään rivitason tietokantasuojausta ja jaettua välimuistia, tämä valinta täytyy valita, jotta ei jaettaisi välimuistikirjauksia, joiden suojauskohtaiset muuttujat eivät täsmää.

  • Istuntomuuttujaobjekti. Valitse suojauskohtaisten muuttujien kohdalla Istuntomuuttujat-valintaikkunassa Suojauskohtainen merkitäksesi ne tietosuojaan liittyviksi käytettäessä rivitason tietokantasuojausstrategiaa. Tämä valinta varmistaa, että välimuistikirjaukset merkitään suojauskohtaisilla muuttujilla, mikä mahdollistaa suojauskohtaisten muuttujien tarkistamisen kaikissa tulevissa kyselyissä.

Kyselyjoukon suorittaminen tietojen syöttämiseksi välimuistiin

Yksi strategia mahdollisten välimuistiosumien maksimoimiseksi on suorittaa joukko kyselyjä tietojen syöttämiseksi välimuistiin.

Seuraavassa on joitakin suosituksia käytettävien kyselytyyppien suhteen, kun luodaan kyselyjoukkoa tietojen syöttämiseksi välimuistiin.

  • Yleiset esimääritetyt kyselyt. Kyselyt, joita suoritetaan usein, ja erityisesti sellaiset, joiden suoritus on resursseja kuluttavaa, ovat erinomaisia välimuistitietojen syöttökyselyjä. Kyselyt, joiden tulokset sisältyvät koontinäyttöihin, ovat hyviä esimerkkejä yleisistä kyselyistä.

  • SELECT-valintalistat ilman lausekkeita. Lausekkeiden poistaminen SELECT-listan sarakkeilta laajentaa välimuistiosumien mahdollisuutta. Välimuistiin tallennettu sarake, jolla on lauseke, voi vastata vain sellaiseen uuteen kyselyyn, jolla on sama lauseke. Jos tallennetulla sarakkeella ei ole lauseketta, se voi vastata kyseistä saraketta koskeviin kyselyihin, oli niiden lauseke mikä tahansa. Esimerkiksi seuraavanlainen välimuistiin tallennettu kysely:

    SELECT QUANTITY, REVENUE...
    

    voi vastata esimerkiksi seuraavanlaiseen uuteen kyselyyn:

    SELECT QUANTITY/REVENUE... 
    

    mutta ei päinvastoin.

  • Ei WHERE-lausetta. Jos välimuistiin tallennetussa tuloksessa ei ole WHERE-lausetta, sitä voidaan käyttää vastattaessa kyselyihin, joiden valintalista täyttää välimuistiosuman säännöt ja joissa on mikä tahansa WHERE-lause, joka sisältää projektiolistassa olevia sarakkeita.

Yleisesti parhaita kyselyjä tietojen välimuistiin syöttämiseen ovat kyselyt, jotka käyttävät raskaasti tietokantojen käsittelyresursseja ja jotka todennäköisesti toistuvat. Varo syöttämästä välimuistiin yksinkertaisia kyselyjä, jotka palauttavat runsaasti rivejä. Nämä kyselyt (esimerkiksi SELECT * FROM PRODUCTS, jossa PRODUCTS liittyy suoraan yksittäiseen tietokantatauluun) vaativat vain hyvin vähän käsittelytehoa. Ne kuluttavat enemmänkin verkkoresursseja ja levytilan varausta, eikä välimuistitallennus lievitä näitä.

Kun Oracle Analytics Cloud päivittää semanttisen mallin muuttujia, se tutkii liiketoimintamalleja määrittääkseen, viittaavatko ne kyseisiin semanttisen mallin muuttujiin. Jos näin on, Oracle Analytics Cloud tuhoaa kaikki näiden liiketoimintamallien välimuistitiedot. Katso kohta Miten semanttiseen malliin tehdyt muutokset vaikuttavat kyselyvälimuistiin.

Agenttien käyttö tietojen syöttämiseen kyselyvälimuistiin

Voit konfiguroida agentteja syöttämään tietoja Oracle Analytics Cloud -kyselyvälimuistiin.

Tietojen syöttäminen välimuistiin voi nopeuttaa vastausaikoja käyttäjille, kun he suorittavat analyyseja tai katselevat koontinäyttöihinsä upotettuja analyyseja. Voit toteuttaa tämän ajoittamalla agentteja suorittamaan pyyntöjä, jotka päivittävät tietoja.

  1. Avaa Oracle Analytics Cloud -palvelussa perinteinen kotisivu ja valitse Agentti (Luo-osiossa).
  2. Valitse Yleiset-välilehdessä Vastaanottaja Suorita nimellä -valinnalle. Räätälöity välimuistin tietojen syöttö käyttää kunkin vastaanottajan tietojen näkyvyyttä agentin toimittaman sisällön räätälöintiin vastaanottajaa varten.
  3. Määritä Ajoitus-välilehdessä, milloin haluat välimuistin tietojen syötön tapahtuvan.
  4. Valinnainen: Valitse Ehto ja luo tai valitse ehdollinen pyyntö. Sinulla saattaa esimerkiksi olla liiketoimintamalli, joka määrittää, milloin ETL-prosessi on valmis. Voisit käyttää tähän liiketoimintamalliin perustuvaa raporttia välimuistin tietojen syötön aloituksen ehtona.
  5. Valitse Toimituksen sisältö -välilehdessä yksittäinen pyyntö tai kokonainen koontinäytön sivu, jota varten haluat syöttää tietoja välimuistiin. Koontinäytön sivun valitseminen saattaa säästää aikaa.
  6. Valitse Vastaanottajat-välilehdessä yksittäisiä käyttäjiä tai ryhmiä vastaanottajiksi.
  7. Tyhjennä Kohteet-välilehdessä kaikki käyttäjien kohteet ja valitse Oracle Analytics Serverin välimuisti.
  8. Tallenna agentti painamalla Tallenna-painiketta oikeassa yläkulmassa.

Ainoa ero välimuistiin tietoja syöttävien agenttien ja muiden agenttien välillä on se, että ne tyhjentävät aiemman välimuistin automaattisesti eivätkä näy koontinäytössä ilmoituksina.

Huomautus::

Välimuistitietojen syöttöagentit tuhoavat vain kyselyt, jotka ovat tarkkoja osumia, joten vanhentunutta tietoa voi silti olla edelleen jäljellä. Varmista, että välimuististrategiaan sisältyy aina välimuistin tuhoaminen, sillä agenttien kyselyt eivät löydä ad hoc -kyselyjä tai porautumiskyselyjä.

Model Administration Tool -työkalun käyttö tiettyjen taulujen välimuistin automaattiseen tyhjennykseen

Välimuistin tuhoaminen poistaa kirjaukset kyselyvälimuistista ja pitää sisällön tuoreena. Voit tuhota tiettyjen taulujen välimuistikirjaukset automaattisesti asettamalla Välimuistin pysyvyysaika -kentän kullekin taululle Model Administration Tool -työkalussa.

Huomautus::

Jos käytät semanttista mallinnussovellusta, katso kohta Mitä ovat fyysisen taulukon yleiset ominaisuudet?

Tämä on hyödyllinen tietolähteille, joita päivitetään usein. Esimerkiksi taulussa, johon tallennetaan minuutin välein päivittyviä pörssikurssitietoja, voidaan käyttää Välimuistin pysyvyysaika -asetusta kirjausten tuhoamiseen taulusta 59 sekunnin välein. Katso kohta Välimuisti ja välimuistin pysyvyysajat määritetyille fyysisille tauluille.

Välimuistin ohjelmallinen tyhjennys

Voit tyhjentää Oracle Analytics Cloud -ympäristön automaattisia toimintoja käyttäen.

Tässä osassa käsitellään seuraavia aiheita:

Tietoja välimuistin tyhjennyksen-apuohjelmasta (purgeoaccache)

Oracle Analytics tarjoaa purgeoaccache.sh-nimisen apuohjelman, jonka avulla voidaan tyhjentää välimuisti. Tätä apuohjelmaa käyttäen välimuisti voidaan tyhjentää monella eri tavalla. Voit tyhjentää koko välimuistin tai tiettyyn kyselyyn, tauluun tai tietokantaan liittyvän välimuistin.

  • Koko välimuistin tyhjennys (SAPurgeAllCache)

    Tyhjennä kaikki välimuistimerkinnät tiedostossa sapurgecache.txt kutsumalla funktio SAPurgeAllCache. Tämä on oletus

    Kutsulause näyttää tältä:
    Call SAPurgeAllCache();
  • Kyselyn välimuistin tyhjennys (SAPurgeCacheByQueryPurge)

    Tyhjennä tiedostossasapurgecache.txt välimuistimerkinnät, jotka vastaavat tarkalleen tiettyä kyselyä, kutsumalla funktio SAPurgeCacheByQueryPurge.

    Oletetaan esimerkiksi, että sinulla on seuraava kysely, jossa vähintään yksi kyselyn välimuistimerkintä vastaanottaa kaikkien yli 100°000 dollaria ansaitsevien työntekijöiden nimet:
    SELECT lastname, firstname FROM employee WHERE salary > 100000;
    Seuraava kutsulause tyhjentää tähän kyselyyn liittyvät välimuistimerkinnät:
    Call SAPurgeCacheByQuery('SELECT lastname, firstname FROM employee WHERE salary > 100000' );
  • Taulun välimuistin tyhjennys(SAPurgeCacheByTable)

    Tyhjennä tiedostossa sapurgecache.txt tiettyyn fyysiseen tietokantatauluun liittyvät välimuistimerkinnät kutsumalla funktio SAPurgeCacheByTable. Funktio sisältää korkeintaan neljä parametria, joista jokainen edustaa jotakin fyysisen taulun täydellisen nimen komponenttia (tietokanta, luettelo, rakenne, taulun nimi).

    Huomautus::

    Funktion parametreissa ei voi käyttää yleismerkkejä. Lisäksi sekä tietokannan nimi että taulun nimi ovat pakollisia parametreja eli ne eivät voi olla tyhjiä.
    Oletetaan esimerkiksi, että sinulla on taulu, jonka täydellinen nimi on DBName.CatName.SchName.TabName. Seuraava kutsulause tyhjentää tähän tauluun liittyvät välimuistimerkinnät semanttisen mallin fyysiseltä tasolta:
    Call SAPurgeCacheByTable( 'DBName', 'CatName', 'SchName', 'TabName' );
  • Tietokannan välimuistin tyhjennys (SAPurgeCacheByDatabase)

    Tyhjennä tiedostossa sapurgecache.txt tiettyyn fyysiseen tietokantaan liittyvät välimuistimerkinnät kutsumalla funktio SAPurgeCacheByDatabase. Funktio sisältää yhden parametrin, joka edustaa fyysisen tietokannan nimeä, eikä parametria voi jättää tyhjäksi.

    Kutsulause näyttää tältä:
    Call SAPurgeCacheByDatabase( 'DBName' );

Tyypillinen työnkulku välimuistin ohjelmalliseen tyhjennykseen

Seuraavaksi esitellään tehtävät, joilla tyhjennetään välimuisti Oracle Analytics Cloud -ympäristössä.

Tehtävä Kuvaus Lisätietoja

Päätä, miten haluat suojata JDBC-yhteytesi

Suojausvaatimuksien mukaisesti voit valita joko resurssin omistajan (suositeltu) tai JSON Web Tokenit (JWT) vahvistustyypiksi.

Katso Oracle Analytics Cloud -palvelun ja omien tietojen yhdistäminen -oppaan kohta JDBC-yhteyden vahvistustyypin valitseminen.

Rekisteröi BIJDBC-sovellus

Rekisteröi BIJDBC-sovellus todentamaan JDBC-yhteytesi.

Resurssin omistajan vahvistuksesta kerrotaan Oracle Analytics Cloud -palvelun ja omien tietojen yhdistäminen -oppaan kohdassa BIJDBC-sovelluksen rekisteröinti käyttämällä resurssin omistajan vahvistusta.

JWT-vahvistuksesta on lisätietoja Oracle Analytics Cloud -palvelun ja omien tietojen yhdistäminen -oppaassa:

Välimuistin tyhjennyksen apuohjelman nouto ja määritys

Nouda BI-JDBC.zip ja bi-jdbc-all.jar ja määritä apuohjelman asetukset.

Välimuistin tyhjennyksen apuohjelman nouto ja määritys

Anna OAuth-yhteyden tiedot

Hae OCI-konsolin avulla OAuth-yhteystiedot, joita tarvitaan muodostettaessa yhteys Oracle Analytics Cloudiin, ja syötä kyseiset tiedot bijbdc.properties-tiedostoon.

Yhteyden tietojen lisäys tiedostoon bijbdc.properties

Välimuistin tyhjennyksen apuohjelman ajaminen Tunnista tyhjennettävä välimuisti ja tyhjennä se ajamalla välimuistin tyhjennyksen apuohjelma. Välimuistin tyhjennyksen apuohjelman (purgeoaccache) ajaminen
Komentosarjan luonti välimuistin säännöllistä tyhjennystä varten (valinnainen) Luo Cron-työ (vai muu vastaava), jota käyttäen välimuisti voidaan tyhjentää organisaatiollesi sopivan aikataulun mukaisesti. Komentosarjan luonti välimuistin säännöllistä tyhjennystä varten

Välimuistin tyhjennyksen apuohjelman nouto ja määritys

Ennen välimuistin tyhjennyksen apuohjelman käyttöä on noudettava BI-JDBC.zip ja suoritettava joitakin määritystehtäviä. On esimerkiksi haettava bijdbc-all.jar ja määritettävä JAVA_HOME-muuttuja.

  1. Nouda BI-JDBC.zip-tiedosto.
  2. Pura BI-JDBC.zip-tiedosto.
  3. Tutustu seuraaviin kansioihin ja tiedostoihin:
    • \certs: kansio, johon kopioidaan JWT OAuth 2.0 -valtuutuksessa tarvittavat varmenteen ja yksityisen avaimen tiedostot.
    • \lib: kansio, johon kopioidaan bijdbc-all.jar. Tämä jar-tiedosto sisältää JDBC-ajurit, joiden avulla muodostetaan yhteys Oracle Analytics Cloudiin.
    • \props: tämä kansio sisältää välimuistin tyhjennyksen apuohjelman konfiguraatiotiedostot.
    • bijdbc.properties: välimuistin tyhjennyksen apuohjelma käyttää tämän tiedoston tietoja muodostaessaan yhteyden Oracle Analytics Cloudiin. Tästä tiedostosta on olemassa kaksi versiota. Kansiossa \rowner sijaitseva versio sisältää yhteysparametrit, jotka on konfiguroitava, jotta yhteys voidaan muodostaa resurssin omistajana. Kansiossa \jwt sijaitseva versio sisältää yhteysparametrit, jotka on konfiguroitava, jotta voidaan muodostaa yhteys JWT:hen (JSON Web Token).
    • sapurgecache.txt: välimuistin tyhjennyksen apuohjelma käyttää tätä tiedostoa määrittäessään, mitkä välimuistit tyhjennetään, eli tyhjennetäänkö kaikki vaiko jonkin tietyn kyselyn, taulun tai tietokannan välimuistimerkinnät.
    • \src: kansio, joka sisältääpurgecache.jar-tiedoston.
    • purgeoaccache.bat ja purgeoaccache.sh: apuohjelma, jota käyttäen välimuisti tyhjennetään.
  4. Tarkista, että JAVA_HOME is on määritetty oikein apuohjelmassa purgeoaccache (.sh tai .bat).
    1. Avaa BI-JDBC-kansiossapurgeoaccache-tiedosto, jota aiot käyttää (.sh Linuxille, .bat Windowsille).
    2. Tarkista, että JAVA_HOME-muuttuja on sopivassa JDK-kansiossa ympäristössäsi, ja päivitä tarvittaessa.
  5. Hanki JDBC-ajurit, joita tarvitaan yhteyden muodostuksessa Oracle Analytics Cloudiin (bijdbc-all.jar ).
    1. Jos et ole vielä noutanut JDBC-ajuria, tee se nyt. Katso Oracle Analytics Cloud -palvelun ja omien tietojen yhdistäminen -oppaan kohta Nouda JDBC-ohjain.
    2. Kopioi bijdbc-all.jar-tiedosto ja liitä se BI-JDBC/lib-kansioon.

Yhteyden tietojen lisäys tiedostoon bijbdc.properties

Hae bijdbc.properties-tiedoston tarvittavat yhteystiedot Oracle Cloud Infrastructure (OCI) -konsolista.

Tämän tehtävän suorittaminen edellyttää OCI-konsolin käyttöoikeutta.
  1. Kirjaudu sisään OCI-konsoliin ja siirry Oracle Analytics Cloud -instanssin Lisätiedot-sivulle.
    1. Valitse OCI-konsolissa Navigointivalikon kuvake vasemmassa yläkulmassa.
    2. Valitse Analytiikka ja tekoäly. Valitse Analytiikka-kohdassa Analytics Cloud.
    3. Valitse osasto, joka sisältää etsimäsi Oracle Analytics Cloud -instanssin.
    4. Napsauta instanssin nimeä.
    5. Valitse Lisätiedot.
  2. Hae bijdbc.properties-tiedoston tarvittavat yhteystiedot.
    1. Saat oacHostname- ja idcsEndpointUrl-tiedot kopioimalla Tietoja verkoista -kohdassa Isäntäkoneen nimi -kentän arvon ja Tunnistuspalvelu-kohdassa Nauha-kentän arvon.
    2. Saat idcsClientId-tiedot napsauttamalla Tunnistuspalvelu-kohdassa sovelluslinkkiä, josta pääset instanssin OAuth-konfiguraatioon. Siirry Yleiset tiedot -osaan ja merkitse asiakaskoneen tunnus muistiin.
    3. Saat idcsClientScope-tiedot vierittämällä alas Konfiguroi sovelluksen API-liittymät, joiden on oltava OAuth-suojattuja -osaan ja merkitse Laajuus-kentän arvo muistiin.
    4. Jos käytät resurssin omistajan vahvistusta suojaamaan JDBC:n ja Oracle Analytics Cloudin välistä yhteyttä, hae idcsClientSecret. Siirry Yleiset tiedot -osaan ja merkitse asiakaskoneen salainen avain muistiin.
    5. Jos käytät JWT-vahvistusta suojaamaan JDBC:n ja Oracle Analytics Cloudin välistä yhteyttä, haecertificateFile ja privateKeyFile eli .cert-tiedoston ja .pem-tiedoston nimi ja sijainti. Kyseessä ovat tiedostot, joita käyttäen loit OAuth-konfiguraation instanssillesi ja jotka kopioit /certs-kansioon.

      Huomautus::

      Jos et ole vielä kopioinut .cert-tiedostoa ja .pem-tiedostoa cert-kansioon, tee se nyt.
  3. Kopioi bijdbc.properties-tiedosto, jota haluat käyttää, ja liitä se BI-JDBC/props/-kansioon, jotta voit mukauttaa sitä.
    Resurssin omistaja -mallipohja on props/rowner-kansiossa. JWT-mallipohja on props/jwt-kansiossa.
  4. Lisää vaiheessa 2 muistiin merkitsemäsi yhteystiedot, järjestelmänvalvojan käyttäjätunnus ja salasanabijdbc.properties-tiedostoon.
    Esimerkki resurssin omistajasta:
    ########OAC Hostname Value############
    oacHostname=<Hostname value>
    
    ######Below Values Collected From IDCS Confidential App#########
    idcsEndpointUrl=<Stripe value>
    idcsClientId=<Client ID value>
    idcsClientScope=<concatenation of the Primary audience and Scope values>
    idcsClientSecret=<Client Secret value>
    
    ######Service Administrator UserId & Password#########
    user=<OAC admin username>
    password=<OAC admin password>
    JWT-esimerkki:
    ########OAC Hostname Value############
    oacHostname=<Hostname value>
    
    ######Below Values Collected From IDCS Confidential App#########
    idcsEndpointUrl=<Stripe value>
    idcsClientId=<Client ID value>
    idcsClientScope=<Scope value>
    
    ######Public Key and Private Key File Paths########
    certificateFile=./certs/bijdbcclient.cert
    privateKeyFile=./certs/bijdbcclient.pem <private key file bijdbcclient.pem location that exist inside BI-JDBC/certs>
    
    ######Service Administrator UserId#########
    user=<OAC admin username>
    
    ######Optional Properties########
    LOGFILEPATH=./temp
    LOGLEVEL=SEVERE
  5. Tallenna ja sulje tiedosto.

Välimuistin tyhjennyksen apuohjelman (purgeoaccache) ajaminen

Kun olet määrittänyt asetukset ja konfiguroinut bijdbc.properties-tiedoston, voit ajaa komentosarjan. Komentosarja tyhjentää oletusarvoisesti koko välimuistin. Jos haluat tyhjentää jonkin tietyn kyselyn, taulun tai tietokannan välimuistimerkinnät, määritä tarvittava funktio ja parametrit sapurgecache.txt-tiedostossa.

  1. Valinnainen: avaa BI-JDBC/props-kansiossa sapurgecache.txt-tiedosto ja päivitä kutsulause määrittämään, mitä välimuistimerkintöjä haluat komentosarjan tyhjentävän. Katso kohta Tietoja välimuistin tyhjennyksen-apuohjelmasta (purgeoaccache).
  2. Aja välimuistin tyhjennyksen apuohjelma (BI-JDBC\purgeoaccache). Aja Linuxissa purgeoaccache.sh. Aja Windowsissa purgeoaccache.bat.
Näkyviin tulee viesti, joka kertoo, että välimuistin tyhjennys onnistui.

Komentosarjan luonti välimuistin säännöllistä tyhjennystä varten

Voit luoda mukautetun komentosarjan, kuten Cron-työn (tai muun vastaavan), joka tyhjentää välimuistin organisaatiollesi sopivan aikataulun mukaisesti.

Voit esimerkiksi tyhjentää koko välimuistin ajamalla mukautetun komentosarjan päivittäin klo 23.00. Tässä tapauksessa Cron-merkintä voisi näyttää tällaiselta:
$crontab -e
0 23 * * * /bin/bash ~/BI-JDBC/purgeoaccache.sh >> ~/BI-JDBC/temp/purgeoaccache.log 2>&1