Nem jobb két szuperhős, mint egy?
A leghatásosabb eredmények némelyike az egymást kiegészítő szupererők kombinálásából származik, és a Cloudera Data Warehouse-ban szereplő Apache Hive LLAP és Apache Impala “dinamikus duója” újabb bizonyíték erre. Mind az Impala, mind a Hive példátlanul nagy és hatalmas léptékben, sok petabájtnyi adatmennyiséggel képes működni. Mindkettő 100%-ban nyílt forráskódú, így elkerülheti a vendor lock-in-t, miközben kedvenc BI eszközeit használja, és profitálhat a közösség által vezérelt innovációból.
Az Impala és a Hive LLAP mindkettő úgy hangzik, hogy nagyszerűen fog működni az én adattárházi felhasználási eseteimben, tehát miért kell valóban döntenem a kettő között? A válasz egyszerű, mindegyiknek megvannak a maga egyedi specialitásai, és attól függően, hogy milyen típusú elemzést szeretne végezni, lehet, hogy az egyik jobban megfelel a másiknál. Van azonban egy titok, amit a blog végére tartogatok, ami még könnyebbé teszi a döntést a felhasználó számára: olyannyira egyszerűvé, hogy nem is kell magadnak döntened.
Mielőtt belemennék az SQL-motorok közötti különbségekbe, fontos megjegyezni, hogy mind az Impala, mind a Hive LLAP ugyanazokat az adatokat és metaadatokat használja (a Hive Metastore-on keresztül), így nemcsak hogy át lehet váltani egyikről a másikra, ha meggondoljuk magunkat, de még különböző munkaterheléseket is futtathatunk különböző motorválasztásokkal ugyanazon adatokon, egyidejűleg. Egy igazi “mindkét világ legjobbja” helyzet.
Szóval, miért válasszon? Nos, általánosságban elmondható, hogy az Impala akkor működik a legjobban, ha egy adatmarttal lépünk kapcsolatba, ami jellemzően egy nagy adathalmaz, korlátozott sémával. Eközben a Hive LLAP jobb választás a vállalati adattárház szélesebb körű felhasználási eseteinek kezelésére. Ezek a felhasználási esetek gyakran több részleget és különböző downstream alkalmazásokat foglalnak magukban, amelyek mindkettő a lekérdezési minták szélesebb skáláját eredményezi. Azt is látjuk, hogy az Impala jó választás az interaktív, ad-hoc lekérdezésekhez, különösen akkor, ha több száz vagy ezer felhasználó dolgozik önállóan.
Az Impala egyes lekérdezésekhez és táblákhoz, a Hive LLAP pedig más lekérdezésekhez és más táblákhoz használható.
Az Impala a sebességre lett tervezve.
A nagyon CPU-hatékony C++ nyelven írt, nagyon gyors lekérdezéstervezővel és metaadat-tárolással rendelkező Impala alacsony késleltetésű lekérdezésekre van optimalizálva. Emiatt az Impala ideális motor adatmárkával való használatra, mivel az adatmárkákkal dolgozó emberek többnyire csak olvasási lekérdezéseket futtatnak, és nem nagy léptékű írásokat.
Az Impala egy nagyon hatékony futásidejű végrehajtási keretrendszerrel is rendelkezik, amely kódgenerálást, folyamatok közötti kommunikációt, masszív párhuzamosítást és metaadat-tárolást használ. Emiatt az Impala nagyszerű az ad-hoc lekérdezésekkel való munka során is, például az adatok iteratív feltárásakor. A lekérdezést újra és újra, egy pillanat alatt meg akarja változtatni, és nagyon gyors válaszidőre van szüksége, hogy ne kelljen örökké várnia minden egyes iterációra.
A Hive LLAP-ot kifinomultságra tervezték.
A Hive LLAP számos kifinomult képességgel rendelkezik, ami a fejlesztők számára kissé megnehezítheti az elindulást és a hatékony használatot. A Hive LLAP-ban néha egy lekérdezésnek hosszabb ideig tart a tervezés és a végrehajtásra való felfutás. A Hive-ot azonban úgy tervezték, hogy nagyon hibatűrő legyen. Ha egy hosszan futó lekérdezés egy töredéke meghibásodik, a Hive újra hozzárendeli azt, és újra megpróbálja. A Hive kifinomult algoritmusokkal gyorsítótárazza az adatfájlokat és a lekérdezés eredményeit is, ami azt jelenti, hogy a gyakrabban kért adatok a LLAP segítségével gyorsítótárazva maradnak. A Hive LLAP támogatja a lekérdezések föderációját, lehetővé téve, hogy a lekérdezések több komponensben és adatbázisban fussanak. Ezért a Hive LLAP kárpótol minden “lassú indulásért” az EDW felhasználási esetekben, mivel hosszú távon sokkal robusztusabb és nagyobb teljesítményű.
Ez a kifinomultság és rugalmasság miatt a Hive LLAP jobban megfelel a vállalati adattárház, vagy EDW felhasználási esetekben. Egy EDW-vel támogatja az üzleti intelligencia jelentéseket és műszerfalakat, a függő adatmárkákat, más vállalati alkalmazásokat, külső rendszereket és egyebeket. Ezek a munkaterhelések gyakran több dimenziót vesznek figyelembe, és ennek eredményeképpen az EDW-knek gyakran összetettebb SQL követelményeket kell feldolgozniuk, mint az adatmárkáknak, nagyobb szükség van összetett adattípusokra, több ütemezett lekérdezésre és lekérdezés-összeállításra az adatmárkák feltöltéséhez vagy rendszeres adatkivonatok létrehozásához.
A Hive azon képessége, hogy robusztusabban kezeli a hosszabb ideig futó, összetettebb lekérdezéseket, hatalmas méretű adathalmazokon, gyakran jobb választássá teszi az ilyen típusú alkalmazásokhoz. A gyors akciójú ad-hoc lekérdezéseknél a Hive LLAP indítási ideje lassíthatja az Impalához képest, azonban a hosszabb futású lekérdezéseknél ez az indítási költség viszonylag jelentéktelen része a teljes futási időnek. A Hive LLAP a hibatűrése (ki szeretné, ha egy lekérdezés meghiúsulna, ha sokáig kell várni az eredményre?) és az összetettebb lekérdezések jobb teljesítménye miatt is jobb választássá válik az EDW számára.
Az Impala és a Hive LLAP használata
Impala | Hive LLAP |
Data mart | Enterprise data warehouse |
|
|
|
|
|
|
A masszív adathalmazok kombinációjával és a felhasználási esetek növekedésével, a megfelelő adattárházi SQL-motor kiválasztása az időszerű eredmények eléréséhez mindent megváltoztat.
Jöjjön el hozzánk az eredményekért folytatott versenyre! Data Warehouse – Impala vs. Hive LLAP, egy élénk szakértői vita, 2020. október 20-án, amerikai csendes-óceáni idő szerint 10:00 órakor, amerikai keleti idő szerint 13:00 órakor, ügyfélhasználati példákkal kiegészítve, amelyet élő q&a követ.
Director Product Marketing