Lekérdezés gyorsítótárazása

A gyorsítótárazás alapvető technika az adattárházrendszerek teljesítményének javításához azáltal, hogy nem szükséges többször újrafordítani vagy beolvasni ugyanazokat az adatokat. A Databricks SQL-ben a gyorsítótárazás jelentősen felgyorsíthatja a lekérdezések végrehajtását, és minimalizálhatja a raktárhasználatot, ami alacsonyabb költségeket és hatékonyabb erőforrás-kihasználtságot eredményez. Minden gyorsítótárazási réteg javítja a lekérdezési teljesítményt, minimalizálja a fürthasználatot, és optimalizálja az erőforrás-kihasználtságot a zökkenőmentes adattárház-használat érdekében.

A gyorsítótárazás számos előnnyel jár az adattárházakban, többek között az alábbiakat:

  • Sebesség: A lekérdezési eredmények vagy a gyakran használt adatok memóriában vagy más gyors tárolási adathordozókon való tárolásával a gyorsítótárazás jelentősen csökkentheti a lekérdezések végrehajtási idejét. Ez a tároló különösen hasznos az ismétlődő lekérdezésekhez, mivel a rendszer gyorsan lekérheti a gyorsítótárazott eredményeket ahelyett, hogy újrafordítást használ.
  • Kevesebb fürthasználat: A gyorsítótárazás minimalizálja a további számítási erőforrások szükségességét a korábban kiszámított eredmények újrafelhasználásával. Ez csökkenti a raktár teljes üzemidejét és a további számítási fürtök iránti keresletet, ami költségmegtakarítást és jobb erőforrás-kiosztást eredményez.

Lekérdezési gyorsítótárak típusai a Databricks SQL-ben

A Databricks SQL többféle típusú lekérdezés-gyorsítótárazást hajt végre.

query caches

  • Databricks SQL UI-gyorsítótár: Az összes lekérdezés és irányítópult felhasználónkénti gyorsítótárazása a Databricks SQL felhasználói felületén található. Amikor a felhasználók először nyitnak meg egy irányítópultot vagy SQL-lekérdezést, a Databricks SQL felhasználói felületi gyorsítótára megjeleníti a legutóbbi lekérdezési eredményt, beleértve az ütemezett végrehajtások eredményeit is.

    A Databricks SQL felhasználói felületi gyorsítótára legfeljebb 7 napos életciklussal rendelkezik. A gyorsítótár az Azure Databricks fájlrendszerében található a fiókjában. A lekérdezési eredmények törléséhez futtassa újra a már nem tárolni kívánt lekérdezést. Az újrafuttatás után a rendszer eltávolítja a régi lekérdezési eredményeket a gyorsítótárból. Emellett a gyorsítótárat a rendszer a mögöttes táblák frissítése után érvényteleníti.

  • Eredmény-gyorsítótár: A lekérdezési eredmények fürtnkénti gyorsítótárazása az SQL-raktárakon keresztüli összes lekérdezéshez. Az eredmény gyorsítótárazása helyi és távoli találatgyorsítótárakat is tartalmaz, amelyek együttműködve javítják a lekérdezési teljesítményt a lekérdezési eredmények memóriában vagy távoli tárolóeszközökben való tárolásával.

    • Helyi gyorsítótár: A helyi gyorsítótár egy memóriabeli gyorsítótár, amely a fürt élettartamára vagy a gyorsítótár megteltéig tárolja a lekérdezési eredményeket, attól függően, hogy melyik lesz az első. Ez a gyorsítótár hasznos az ismétlődő lekérdezések felgyorsításához, így nincs szükség ugyanazon eredmények újrafordítására. A fürt leállítása vagy újraindítása után azonban a gyorsítótár törlődik, és az összes lekérdezési eredmény el lesz távolítva.
    • Távoli eredménygyorsítótár: A távoli eredménygyorsítótár egy kiszolgáló nélküli gyorsítótárrendszer, amely megőrzi a lekérdezési eredményeket a felhőbeli tárolóban való megőrzésével. Ennek eredményeképpen ezt a gyorsítótárat nem érvényteleníti egy SQL-raktár leállítása vagy újraindítása. A távoli eredménygyorsítótár a lekérdezések gyorsítótárazásának gyakori fájdalmát kezeli, amely csak addig marad elérhető, amíg a számítási erőforrások futnak. A távoli gyorsítótár egy állandó megosztott gyorsítótár a Databricks-munkaterület összes raktárában.

    A távoli eredménygyorsítótár eléréséhez futó raktárra van szükség. Lekérdezések feldolgozásakor a fürt először a helyi gyorsítótárban, majd szükség esetén a távoli eredmény-gyorsítótárban keres. A lekérdezés csak akkor lesz végrehajtva, ha a lekérdezés eredménye egyik gyorsítótárban sem gyorsítótárazva van. A helyi és a távoli gyorsítótárak életciklusa 24 óra, amely a gyorsítótár-bejegyzéskor kezdődik. A távoli eredménygyorsítótár egy SQL-raktár leállítása vagy újraindítása révén marad meg. A rendszer mindkét gyorsítótárat érvényteleníti a mögöttes táblák frissítésekor.

    Az ODBC/JDBC-ügyfeleket és az SQL Statement API-t használó lekérdezésekhez távoli eredmény-gyorsítótár érhető el.

    A lekérdezési eredmények gyorsítótárazásának letiltásához futtassa SET use_cached_result = false az SQL-szerkesztőben.

    Fontos

    Ezt a lehetőséget csak teszteléshez vagy teljesítményértékeléshez érdemes használni.

  • Lemezgyorsítótár: Helyi SSD-gyorsítótárazás az sql-tárolókon keresztüli lekérdezések adattárából beolvasott adatokhoz. A lemezgyorsítótár úgy lett kialakítva, hogy fokozza a lekérdezési teljesítményt azáltal, hogy adatokat tárol a lemezen, lehetővé téve a gyorsított adatolvasást. A rendszer automatikusan gyorsítótárazza az adatokat a fájlok lekérésekor, gyors köztes formátumot használva. Ha a számítási csomópontokhoz csatolt helyi tárolóban tárolja a fájlok másolatait, a lemezgyorsítótár biztosítja, hogy az adatok közelebb kerüljenek a feldolgozókhoz, ami jobb lekérdezési teljesítményt eredményez. Lásd: Teljesítmény optimalizálása gyorsítótárazással az Azure Databricksben.

Az elsődleges függvény mellett a lemezgyorsítótár automatikusan észleli a mögöttes adatfájlok módosításait. Ha változásokat észlel, a gyorsítótár érvénytelen lesz. A lemezgyorsítótár ugyanazokat az életciklus-jellemzőket használja, mint a helyi eredmény-gyorsítótár. Ez azt jelenti, hogy amikor a fürt leáll vagy újraindul, a gyorsítótár törlődik, és újra kell feltölteni.

A lekérdezés eredményeinek gyorsítótárazása és a lemez gyorsítótárazása hatással van a Databricks SQL felhasználói felületén , a BI-ban és más külső ügyfelekben lévő lekérdezésekre.