Gyorsítótárazás a Fabric-adattárházakban
A következőkre vonatkozik:✅ SQL Analytics-végpont és Warehouse a Microsoft Fabricben
Az adatok lekérése a data lake-ből kulcsfontosságú bemeneti/kimeneti (IO) művelet, amely jelentős hatással van a lekérdezési teljesítményre. A Fabric Data Warehouse kifinomult hozzáférési mintákat alkalmaz a tárolóból származó adatolvasások javítása és a lekérdezések végrehajtási sebességének növelése érdekében. Emellett intelligensen minimalizálja a távoli tárolók olvasásának szükségességét a helyi gyorsítótárak használatával.
A gyorsítótárazás olyan technika, amely az IO-műveletek csökkentésével javítja az adatfeldolgozási alkalmazások teljesítményét. A gyorsítótárazás a gyakran használt adatokat és metaadatokat egy gyorsabb tárolási rétegben tárolja, például a helyi memóriát vagy a helyi SSD-lemezt, hogy a későbbi kérések gyorsabban, közvetlenül a gyorsítótárból legyenek kiszolgálva. Ha egy lekérdezés korábban egy adott adatkészlethez fért hozzá, a későbbi lekérdezések közvetlenül a memóriabeli gyorsítótárból fogják lekérni az adatokat. Ez a megközelítés jelentősen csökkenti az IO-késést, mivel a helyi memóriaműveletek különösen gyorsabbak a távoli tárolóból történő adatok lekéréséhez képest.
A gyorsítótárazás teljes mértékben átlátható a felhasználó számára. Függetlenül a forrástól, legyen szó egy raktártábláról, egy OneLake-parancsikonról vagy akár a nem Azure-szolgáltatásokra hivatkozó OneLake-parancsikonról, a lekérdezés gyorsítótárazza az összes elérhető adatot.
A gyorsítótáraknak két típusa van, amelyeket a cikk későbbi részében ismertetünk:
- Memóriabeli gyorsítótár
- Lemezgyorsítótár
Amikor a lekérdezés hozzáfér és lekéri az adatokat a tárolóból, egy átalakítási folyamatot hajt végre, amely az adatokat az eredeti fájlalapú formátumból a memóriában lévő gyorsítótárban lévő, magas optimalizált struktúrákra alakítja át.
A gyorsítótárban lévő adatok elemzési lekérdezésekhez optimalizált tömörített oszlopos formátumban lesznek rendszerezve. A rendszer minden adatoszlopot együtt, a többitől elkülönítve tárol, ami jobb tömörítést tesz lehetővé, mivel a hasonló adatértékek együtt vannak tárolva, ami csökkenti a memóriaigényt. Ha a lekérdezéseknek műveleteket kell végrehajtaniuk egy adott oszlopon, például az aggregátumokon vagy a szűrésen, a motor hatékonyabban működhet, mivel nem kell más oszlopokból származó szükségtelen adatokat feldolgoznia.
Emellett ez az oszlopos tárolás a párhuzamos feldolgozást is elősegíti, ami jelentősen felgyorsíthatja a lekérdezések végrehajtását a nagy adathalmazok esetében. A motor egyszerre több oszlopon is képes műveleteket végezni, kihasználva a modern többmagos processzorok előnyeit.
Ez a megközelítés különösen hasznos az elemzési számítási feladatok esetében, ha a lekérdezések nagy mennyiségű adatot vizsgálnak az összesítések, szűrések és egyéb adatmanipulációk elvégzéséhez.
Bizonyos adathalmazok túl nagyok ahhoz, hogy a memórián belüli gyorsítótárban legyenek elhelyezve. Az adathalmazok gyors lekérdezési teljesítményének fenntartása érdekében a Warehouse a lemezterületet a memóriabeli gyorsítótár kiegészítő bővítményeként használja fel. A memóriában lévő gyorsítótárba betöltött információk szintén szerializálva lesznek az SSD-gyorsítótárban.
Mivel a memóriabeli gyorsítótár kapacitása az SSD-gyorsítótárhoz képest kisebb, a memóriában lévő gyorsítótárból eltávolított adatok hosszabb ideig az SSD-gyorsítótárban maradnak. Amikor az ezt követő lekérdezés kéri ezeket az adatokat, a rendszer az SSD-gyorsítótárból a memóriában lévő gyorsítótárba kéri le azokat lényegesen gyorsabban, mint ha távoli tárolóból kéri le őket, ezáltal konzisztensebb lekérdezési teljesítményt biztosít.
A gyorsítótárazás folyamatosan aktív marad, és zökkenőmentesen működik a háttérben, és nem igényel beavatkozást az Ön részéről. A gyorsítótárazás letiltása nem szükséges, mivel ez elkerülhetetlenül a lekérdezési teljesítmény észrevehető romlásához vezetne.
A gyorsítótárazási mechanizmust maga a Microsoft Fabric vezényli és támogatja, és nem teszi lehetővé a felhasználóknak a gyorsítótár manuális törlését.
A teljes gyorsítótár tranzakciós konzisztenciája biztosítja, hogy a tárolóban lévő adatok bármilyen módosítása, például az adatmanipulációs nyelv (DML) műveletein keresztül, a memóriabeli gyorsítótárba való első betöltése után, konzisztens adatokat eredményez.
Amikor a gyorsítótár eléri a kapacitásküszöbét, és a friss adatok első olvasása történik, a leghosszabb ideig nem használt objektumok törlődnek a gyorsítótárból. Ez a folyamat az új adatok beáramlásának helyének létrehozására és az optimális gyorsítótár-kihasználtsági stratégia fenntartására kerül.