Azure Data Lake Storage lekérdezésgyorsítás

A lekérdezésgyorsítás lehetővé teszi, hogy az alkalmazások és az elemzési keretrendszerek drámai módon optimalizálják az adatfeldolgozást úgy, hogy csak azokat az adatokat kérik le, amelyekre egy adott művelet végrehajtásához szükségük van. Ez csökkenti a tárolt adatok kritikus elemzéséhez szükséges időt és feldolgozási teljesítményt.

Áttekintés

A lekérdezésgyorsítás elfogadja a szűrési predikátumokat és az oszlopvetületeket, amelyek lehetővé teszik az alkalmazások számára a sorok és oszlopok szűrését a lemezről való olvasáskor. Csak a predikátum feltételeinek megfelelő adatok kerülnek át a hálózaton keresztül az alkalmazásba. Ez csökkenti a hálózati késést és a számítási költségeket.

Az SQL használatával megadhatja a sorszűrő predikátumait és oszlopvetületeit egy lekérdezésgyorsítási kérelemben. A kérések csak egy fájlt dolgoznak fel. Ezért az SQL speciális relációs funkciói, például az illesztések és az összesítések szerinti csoportosítás nem támogatottak. A lekérdezésgyorsítás támogatja a CSV- és JSON-formátumú adatokat az egyes kérések bemeneteként.

A lekérdezésgyorsítási funkció nem korlátozódik Data Lake Storage (olyan tárfiókokra, amelyeken engedélyezve van a hierarchikus névtér). A lekérdezésgyorsítás kompatibilis a tárfiókokban lévő blobokkal, amelyeken nincs engedélyezve hierarchikus névtér. Ez azt jelenti, hogy a tárfiókokban már blobként tárolt adatok feldolgozásakor a hálózati késés és a számítási költségek ugyanolyan mértékű csökkenését érheti el.

Példa a lekérdezésgyorsítás ügyfélalkalmazásban való használatára: Adatok szűrése Azure Data Lake Storage lekérdezésgyorsítás használatával.

Adatfolyam

Az alábbi ábra bemutatja, hogy egy tipikus alkalmazás hogyan használja a lekérdezésgyorsítást az adatok feldolgozásához.

Lekérdezésgyorsítás áttekintése

  1. Az ügyfélalkalmazás predikátumok és oszlopvetületek megadásával kéri le a fájladatokat.

  2. A lekérdezésgyorsítás elemzi a megadott SQL-lekérdezést, és osztja el a munkát az adatok elemzéséhez és szűréséhez.

  3. A processzorok beolvasják az adatokat a lemezről, a megfelelő formátummal elemzik az adatokat, majd a megadott predikátumok és oszlopvetületek alkalmazásával szűrik az adatokat.

  4. A lekérdezésgyorsítás egyesíti a válasz szegmenseit, hogy visszaküldje az ügyfélalkalmazásba.

  5. Az ügyfélalkalmazás fogadja és elemzi a streamelt választ. Az alkalmazásnak nem kell más adatokat szűrnie, és közvetlenül alkalmazhatja a kívánt számítást vagy átalakítást.

Jobb teljesítmény alacsonyabb költséggel

A lekérdezésgyorsítás úgy optimalizálja a teljesítményt, hogy csökkenti az alkalmazás által átvitt és feldolgozott adatok mennyiségét.

Az összesített értékek kiszámításához az alkalmazások általában lekérik az összes adatot egy fájlból, majd helyileg dolgozzák fel és szűrik az adatokat. Az elemzési számítási feladatok bemeneti/kimeneti mintáinak elemzése azt mutatja, hogy az alkalmazásoknak általában csak az adatok 20%-a szükséges az adott számítások elvégzéséhez. Ez a statisztika akkor is igaz, ha olyan technikákat alkalmaz, mint a partíció metszése. Ez azt jelenti, hogy az adatok 80%-át szükségtelenül továbbítják a hálózaton, elemzik és szűrik az alkalmazások. Ez a felesleges adatok eltávolítására tervezett minta jelentős számítási költséggel jár.

Annak ellenére, hogy az Azure iparágvezető hálózatot tartalmaz, mind az átviteli sebesség, mind a késés szempontjából, az adatok szükségtelen átvitele ezen a hálózaton továbbra is költséges az alkalmazásteljesítmény szempontjából. Ha kiszűri a nem kívánt adatokat a tárolási kérelem során, a lekérdezések gyorsítása kiküszöböli ezt a költséget.

Emellett a felesleges adatok elemzéséhez és szűréséhez szükséges processzorterheléshez az alkalmazásnak nagyobb számú és nagyobb virtuális gépet kell kiépítenie a munka elvégzéséhez. Ha ezt a számítási terhelést a lekérdezésgyorsításra irányítja át, az alkalmazások jelentős költségmegtakarítást érhetnek el.

A lekérdezésgyorsítás előnyeit élvező alkalmazások

A lekérdezésgyorsítás elosztott elemzési keretrendszerekhez és adatfeldolgozási alkalmazásokhoz készült.

Az olyan elosztott elemzési keretrendszerek, mint az Apache Spark és az Apache Hive, egy tárolási absztrakciós réteget tartalmaznak a keretrendszeren belül. Ezek a motorok olyan lekérdezésoptimereket is tartalmaznak, amelyek beépíthetik a mögöttes I/O-szolgáltatás képességeinek ismeretét a felhasználói lekérdezések optimális lekérdezési tervének meghatározásakor. Ezek a keretrendszerek elkezdik integrálni a lekérdezésgyorsítást. Ennek eredményeképpen a keretrendszerek felhasználói jobb lekérdezési késést és alacsonyabb teljes bekerülési költséget tapasztalnak anélkül, hogy módosításokat kellene végezniük a lekérdezéseken.

A lekérdezések gyorsítását az adatfeldolgozási alkalmazásokhoz is tervezték. Az ilyen típusú alkalmazások általában nagy léptékű adatátalakításokat hajtanak végre, amelyek nem feltétlenül vezetnek közvetlenül elemzési elemzésekhez, így nem mindig használnak létrehozott elosztott elemzési keretrendszereket. Ezek az alkalmazások gyakran közvetlenebb kapcsolatban állnak a mögöttes tárolási szolgáltatással, így közvetlenül élvezhetik az olyan funkciók előnyeit, mint a lekérdezésgyorsítás.

Példa arra, hogy egy alkalmazás hogyan integrálhatja a lekérdezésgyorsítást: Adatok szűrése Azure Data Lake Storage lekérdezésgyorsítás használatával.

Díjszabás

A Azure Data Lake Storage szolgáltatás megnövekedett számítási terhelése miatt a lekérdezésgyorsítás díjszabási modellje eltér a normál Azure Data Lake Storage tranzakciós modelltől. A lekérdezésgyorsítás a beolvasott adatok mennyiségét, valamint a hívónak visszaadott adatok mennyiségének költségét számítja fel. További információ: Azure Data Lake Storage Gen2 díjszabása.

A számlázási modell módosítása ellenére a lekérdezésgyorsítás díjszabási modellje úgy lett kialakítva, hogy csökkentse a számítási feladatok teljes bekerülési költségét, tekintettel a sokkal drágább virtuális gépek költségeinek csökkentésére.

Következő lépések