het Maken van SSIS en SSRS workflows met R op de SQL-Server

  • 08/28/2020
  • 5 minuten te lezen
    • d
    • M
    • een
    • D
    • c
    • +2

van Toepassing op: SQL Server 2016 (13.x) en later

dit artikel legt uit hoe ingebed r-en Python-script gebruikt kan worden met behulp van de taal-en gegevenswetenschappelijke mogelijkheden van SQL Server Machine Learning Services met twee belangrijke SQL Server-functies: SQL Server Integration Services (SSIS) en SQL Server Reporting Services SSRS. R-en Python-bibliotheken in SQL Server bieden statistische en voorspellende functies. SSIS en SSRS bieden gecoördineerde ETL transformatie en visualisaties, respectievelijk. Dit artikel legt uit hoe je al deze functies samen te stellen in dit workflow patroon:

  • een opgeslagen procedure aanmaken die uitvoerbaar R of Python
  • bevat de opgeslagen procedure uitvoeren vanuit SSIS of SSRS

de voorbeelden in dit artikel gaan voornamelijk over R en SSIS, maar de concepten en stappen zijn evenzeer van toepassing op Python. De tweede sectie biedt begeleiding en links voor SSRS visualisaties.

gebruik SSIS voor automatisering

Data science workflows zijn zeer iteratief en omvatten veel transformatie van gegevens, waaronder schalen, aggregaties, berekening van waarschijnlijkheden, en hernoemen en samenvoegen van attributen. Data wetenschappers zijn gewend aan het doen van veel van deze taken in R, Python, of een andere taal; echter, het uitvoeren van dergelijke workflows op enterprise data vereist naadloze integratie met ETL tools en processen.

omdat R-Services (In-Database) u in staat stelt complexe bewerkingen in R uit te voeren via Transact-SQL en opgeslagen procedures, kunt u data science-taken integreren met bestaande ETL-processen. In plaats van een keten van geheugenintensieve taken uit te voeren, kan de gegevensvoorbereiding worden geoptimaliseerd met behulp van de meest efficiënte tools, waaronder integratieservices en Transact-SQL.

hier zijn enkele ideeën voor hoe u uw gegevensverwerking en modellering van pijpleidingen kunt automatiseren met behulp van integratiediensten:

  • het Extraheren van gegevens uit op het terrein of cloud bronnen op te bouwen trainingsgegevens
  • Bouwen en uitvoeren van R of Python modellen als onderdeel van een data-integratie workflow
  • Omscholen modellen op een regelmatige (geplande) basis
  • resultaten Laden van de R-of Python script naar andere bestemmingen, zoals Excel, Power BI, Oracle en Teradata, om een paar te noemen
  • Gebruik SSIS taken voor het maken van functies van gegevens in de SQL-database
  • Gebruik voorwaardelijke vertakking te schakelen berekenen context voor R en Python banen

SSIS voorbeeld

in Dit voorbeeld ziet u hoe automatiseer taken met behulp van SSIS. U maakt opgeslagen procedures met ingesloten R met SQL Server Management Studio en voert deze opgeslagen procedures uit vanuit T-SQL-taken uitvoeren in een SSIS-pakket.

om dit Voorbeeld door te nemen, moet u bekend zijn met Management Studio, SSIS, SSIS Designer, package design en T-SQL. Het SSIS-pakket maakt gebruik van drie uitvoeren T-SQL-taken die trainingsgegevens invoegen in een tabel, de gegevens modelleren en de gegevens scoren om voorspellingsoutput te krijgen.

laad trainingsgegevens

voer het volgende script uit in SQL Server Management Studio om een tabel te maken voor het opslaan van de gegevens. U moet een testdatabase maken en gebruiken voor deze oefening.

Maak een opgeslagen procedure die trainingsgegevens laadt in dataframe. Dit voorbeeld is het gebruik van de ingebouwde Iris data set.

maak In SSIS Designer een SQL-taak uitvoeren die de opgeslagen procedure uitvoert die u zojuist hebt gedefinieerd. Het script voor SQLStatement verwijdert bestaande gegevens, specificeert welke gegevens moeten worden ingevoegd en roept vervolgens de opgeslagen procedure op om de gegevens te verstrekken.

Genereer een model

voer het volgende script uit in SQL Server Management Studio om een tabel te maken waarin een model wordt opgeslagen.

Maak een opgeslagen procedure aan die een lineair model genereert met behulp van rxLinMod. RevoScaleR en revoscalepy bibliotheken zijn automatisch beschikbaar in R en Python sessies op SQL Server, dus er is geen noodzaak om de bibliotheek te importeren.

maak in SSIS Designer een SQL-taak uitvoeren om de opgeslagen procedure generate_iris_rx_model uit te voeren. Het model wordt geserialiseerd en opgeslagen in de ssis_iris_models tabel. Het script voor SQLStatement is als volgt:

als een controlepunt, nadat deze taak is voltooid, kunt u de ssis_iris_models opvragen om te zien dat het één binair model bevat.

voorspel (score) resultaten met behulp van het “getrainde” model

nu u code hebt die trainingsgegevens laadt en een model genereert, is de enige stap die overblijft het model te gebruiken om voorspellingen te genereren.

om dit te doen, plaatst u het R-script in de SQL-query om de rxpredict ingebouwde R-functie op ssis_iris_model te activeren. Een opgeslagen procedure genaamd predict_species_length vervult deze taak.

maak In SSIS Designer Een SQL-taak uitvoeren die de opgeslagen voorspelling_species_length-procedure uitvoert om voorspelde bloemblaadlengte te genereren.

exec predict_species_length 'rxLinMod';

Voer de oplossing

uit In SSIS Designer, druk op F5 om het pakket uit te voeren. U moet een resultaat vergelijkbaar met de volgende screenshot te zien.

gebruik SSRS voor visualisaties

hoewel R grafieken en interessante visualisaties kan maken, is het niet goed geïntegreerd met externe gegevensbronnen, wat betekent dat elke grafiek of grafiek individueel moet worden geproduceerd. Delen kan ook moeilijk zijn.

door R-Services (In-Database) te gebruiken, kunt u complexe bewerkingen uitvoeren in R via Transact-SQL opgeslagen procedures, die gemakkelijk kunnen worden gebruikt door een verscheidenheid aan zakelijke rapportagetools, waaronder rapportageservices en Power BI.

de SSIS-en SSRS-voorbeelden in dit artikel illustreren twee gevallen van het uitvoeren van opgeslagen procedures die ingesloten R-of Python-script bevatten. Een belangrijke afhaalmaaltijd is dat U R of Python script beschikbaar kunt maken voor elke toepassing of tool die een uitvoeringsverzoek kan sturen op een opgeslagen procedure. Een extra afhaalmaaltijd voor SSIS is dat u pakketten kunt maken die een breed scala aan bewerkingen automatiseren en plannen, zoals data-acquisitie, reiniging, manipulatie, enzovoort, met R of Python data science functionaliteit opgenomen in de keten van operaties. Zie R-code operationaliseren met behulp van opgeslagen procedures in SQL Server Machine Learning-Services voor meer informatie en ideeën.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.