- 08/28/2020
- 5 perc olvasni
-
- d
- M
- a
- D
- c
-
+2
vonatkozik: SQL Server 2016 (13.X) és újabb
ez a cikk bemutatja, hogyan használható beágyazott R és Python szkript az SQL Server Machine Learning Services nyelvi és adattudományi képességeinek felhasználásával, két fontos SQL Server funkcióval: SQL Server Integration Services (SSIS) és SQL Server Reporting Services SSRS. Az SQL Server R és Python könyvtárai statisztikai és prediktív funkciókat biztosítanak. Az SSIS és az SSRS összehangolt ETL transzformációt és vizualizációt biztosít. Ez a cikk bemutatja, hogyan lehet ezeket a funkciókat összerakni ebben a munkafolyamat-mintában:
- hozzon létre egy tárolt eljárást, amely futtatható r vagy Python fájlt tartalmaz
- hajtsa végre a tárolt eljárást SSIS-ből vagy SSRS-ből
a cikkben szereplő példák többnyire az R-ről és az SSIS-ről szólnak, de a fogalmak és lépések ugyanúgy vonatkoznak a Pythonra. A második rész útmutatást és linkeket tartalmaz az SSRS vizualizációihoz.
SSIS használata automatizáláshoz
az adattudományi munkafolyamatok nagyon iteratívak, és az adatok sok átalakítását foglalják magukban, beleértve a méretezést, az összesítést, a valószínűségek kiszámítását, valamint az attribútumok átnevezését és egyesítését. Az adattudósok hozzászoktak ahhoz, hogy ezeket a feladatokat R, Python vagy más nyelven végezzék el; azonban az ilyen munkafolyamatok vállalati adatokon történő végrehajtása zökkenőmentes integrációt igényel az ETL eszközökkel és folyamatokkal.
mivel az R Services (in-Database) lehetővé teszi komplex műveletek futtatását R-ben a Transact-SQL és a tárolt eljárások segítségével, integrálhatja az adattudományi feladatokat a meglévő ETL folyamatokkal. A memóriaigényes feladatok láncolata helyett az adatok előkészítése optimalizálható a leghatékonyabb eszközökkel, beleértve az integrációs szolgáltatásokat és a Transact-SQL-t.
íme néhány ötlet, hogyan automatizálhatja adatfeldolgozási és modellezési folyamatait integrációs szolgáltatások segítségével:
- adatok kinyerése helyszíni vagy felhőforrásokból képzési adatok készítéséhez
- R vagy Python modellek készítése és futtatása adatintegrációs munkafolyamat részeként
- a modellek rendszeres (ütemezett) újratervezése
- az R vagy Python szkript eredményeinek betöltése más célállomásokra, például Excel, Power BI, Oracle és Teradata, hogy csak néhányat említsünk
- SSIS feladatok használata adatfunkciók létrehozásához az SQL adatbázisban
- feltételes elágazás használata az R és python feladatok számítási környezetének átkapcsolásához
SSIS példa
ez a példa bemutatja, hogyan kell automatizálja a feladatokat az SSIS segítségével. Tárolt eljárásokat hoz létre beágyazott R-vel az SQL Server Management Studio használatával,majd végrehajtja ezeket a tárolt eljárásokat a T-SQL feladatok végrehajtása SSIS csomagban.
a példa végigviteléhez ismernie kell a Management Studio, az SSIS, az SSIS Designer, a package design és a T-SQL nyelveket. Az SSIS csomag három Execute T-SQL feladatot használ, amelyek beszúrják a képzési adatokat egy táblázatba, modellezik az adatokat, és pontozzák az adatokat, hogy előrejelzési kimenetet kapjanak.
betanítási adatok betöltése
futtassa a következő parancsfájlt az SQL Server Management Studio alkalmazásban az adatok tárolására szolgáló táblázat létrehozásához. Ehhez a feladathoz létre kell hoznia és használnia kell egy tesztadatbázist.
hozzon létre egy tárolt eljárást, amely betölti a képzési adatokat az adatkeretbe. Ez a példa a beépített Iris adatkészletet használja.
az SSIS Designer alkalmazásban hozzon létre egy Execute SQL feladatot, amely végrehajtja az imént definiált tárolt eljárást. Az sqlstatement parancsfájlja eltávolítja a meglévő adatokat, meghatározza, hogy mely adatokat kell beszúrni, majd meghívja a tárolt eljárást az adatok megadására.
modell létrehozása
futtassa a következő parancsfájlt az SQL Server Management Studio alkalmazásban egy modellt tároló táblázat létrehozásához.
hozzon létre egy tárolt eljárást, amely lineáris modellt generál az rxLinMod használatával. A RevoScaleR és a revoscalepy könyvtárak automatikusan elérhetők az SQL Server R és Python munkameneteiben, így nincs szükség a könyvtár importálására.
az SSIS Designer alkalmazásban hozzon létre egy végrehajtási SQL feladatot a generate_iris_rx_model tárolt eljárás végrehajtásához. A modell serializálódik és az ssis_iris_models táblába kerül. Az sqlstatement szkriptje a következő:
ellenőrzőpontként, miután ez a feladat befejeződött, lekérdezheti a ssis_iris_models látni, hogy tartalmaz egy bináris modellt.
az eredmények előrejelzése (pontozása) a “betanított” modell használatával
most, hogy van kódja, amely betölti az edzési adatokat és létrehoz egy modellt, az egyetlen lépés a modell használata az előrejelzések előállításához.
ehhez tegye az R szkriptet az SQL lekérdezésbe, hogy elindítsa az rxpredict beépített R függvényét az ssis_iris_model-en. A predict_species_length nevű tárolt eljárás végrehajtja ezt a feladatot.
az SSIS Designer alkalmazásban hozzon létre egy Execute SQL feladatot, amely végrehajtja a predict_species_length tárolt eljárást az előre jelzett sziromhossz előállításához.
exec predict_species_length 'rxLinMod';
futtassa a megoldást
az SSIS Designer programban nyomja meg az F5 billentyűt a csomag végrehajtásához. A következő képernyőképhez hasonló eredményt kell látnia.
SSRS használata vizualizációkhoz
bár R képes diagramokat és érdekes vizualizációkat létrehozni, nincs jól integrálva a külső adatforrásokkal, ami azt jelenti, hogy minden diagramot vagy grafikont külön kell elkészíteni. A megosztás is nehéz lehet.
az R Services (in-Database) használatával összetett műveleteket futtathat R-ben a Transact-SQL tárolt eljárásokon keresztül, amelyeket könnyen felhasználhat számos vállalati jelentéskészítő eszköz, beleértve a jelentési szolgáltatásokat és a Power BI-t.
a cikkben szereplő SSIS és SSRS példák két olyan esetet mutatnak be, amikor beágyazott r vagy Python szkriptet tartalmazó tárolt eljárásokat hajtanak végre. A legfontosabb elvihető, hogy tudod, hogy R vagy Python script elérhető bármely alkalmazás vagy eszköz, amely küldhet végrehajtási kérelmet a tárolt eljárás. Az SSIS további előnye, hogy olyan csomagokat hozhat létre, amelyek automatizálják és ütemezik a műveletek széles körét, például az adatgyűjtést, a tisztítást, a manipulációt és így tovább, a műveletek láncolatában szereplő R vagy Python adattudományi funkciókkal. További információkért és ötletekért lásd: az R-kód operacionalizálása tárolt eljárások használatával az SQL Server Machine Learning Services szolgáltatásban.