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 az adatleké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ázi élmény é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.
- Csökkentett 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 azáltal, hogy újrahasznosítja a korábban kiszámított eredményeket. 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.
Databricks SQL UI-gyorsítótár: Minden lekérdezés és irányítópult eredményének felhasználónkénti gyorsítótárazása a Databricks SQL felhasználói felületén. 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 lekérdezési eredményeket a fürt élettartamának végéig vagy amíg a gyorsítótár megtelik, attól függően tárolja, hogy melyik következik be előbb. 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 úgy, hogy munkaterületrendszer-adatokként őrzi meg őket. 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ési eredmények gyorsítótárazásának gyakori problémáját kezeli, amely csak addig 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és feldolgozásakor a fürt először a helyi gyorsítótárban keres, és szükség esetén a távoli eredmény-gyorsítótárban. 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ény gyorsítótár megmarad, még ha az SQL-raktár leáll vagy újraindul is. 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 a SQL-házakból történő lekérdezések során adatbeolvasáshoz. 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 Azure Databricks.
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 klaszter 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.