Regisztráció és bejelentkezés

Big Data SQL végrehajtó automatikus választása machine learning alapokon

A nagyméretű adathalmazok feldolgozása mindig is fontos szerepköre volt az informatikai rendszereknek. Jelenleg amennyiben a felhasználó egy lekérdezést szeretne futtatni egy ilyen ún. big data adathalmazon, akkor több eszköz közül is választhat. Ezek közül kettő legelterjedtebb, nyílt forráskódú megoldás az Apache Hive és Apache Impala. A két megoldást nagyon gyakran párhuzamosan használják egy valós környezetben. Bizonyos esetekben a Hive, másokban az Impala tud gyorsabb végrehajtási időt elérni. Jelen pillanatban a felhasználó feladata eldönteni, hogy melyiken fogja futtatni az adott lekérdezését. Ez a feladat viszont meglehetősen nehéz, összetett. Rengeteg paramétertől függ a végrehajtási idő: lekérdezésben szereplő táblák mérete, azok partícionálása, az SQL lekérdezésben lévő illesztések, csoportosítások száma, az egymásba ágyazott allekérdezések száma. Ezeken kívül feltételezhető, hogy sok más, ismeretlen, manuálisan nehezen felderíthető tényezőtől. Projektem, kutatásom célja, hogy megkönnyítsük a felhasználók feladatát azzal, hogy automatikusan kiválasztjuk az optimális végrehajtó egységet az adott lekérdezéshez. Ezzel összességében a felhasználói élményt, és a rendszerünk áteresztőképességét javíthatjuk.

A projektem neve QuDi (Query Distributor), amely egy proxy rétegként működük a felhasználói réteg és az Apache Hive, Impala között. A bejövő lekérdezést elemzi, azokból különböző változókat gyűjt (pl.: partíciók, illesztések, csoportosítások száma, a lekérdezésben szereplő táblák mérete stb...), majd ezek alapján egy machine learning modellt felhasználva eldönti hogy melyik végrehajtó egységen érdemes az adott lekérdezést futtatni a lehető leggyorsabb válaszidő érdekében.

szerző

  • Maidics Barnabás
    Mérnök informatikus szak, mesterképzés
    mesterképzés (MA/MSc)

konzulens

  • Dr. Dudás Ákos
    docens, Automatizálási és Alkalmazott Informatikai Tanszék