Opprette SERVERSIDE – og SSRS-arbeidsflyter Med R PÅ SQL Server

  • 08/28/2020
  • 5 minutter å lese
    • d
    • M
    • a
    • D
    • c
    • +2

Gjelder for: SQL Server-2016 (13.x) og senere

denne artikkelen forklarer hvordan du bruker innebygd R-og Python-skript ved hjelp av språk – og datavitenskapsfunksjonene I SQL Server Machine Learning Services med to viktige SQL Server-funksjoner: SQL Server Integration Services (SSIS) og SQL Server Reporting Services SSRS. R-og Python-biblioteker i SQL Server gir statistiske og prediktive funksjoner. SSIS og SSRS gir henholdsvis koordinert ETL-transformasjon og visualiseringer. Denne artikkelen forklarer hvordan du setter sammen alle disse funksjonene i dette arbeidsflytmønsteret:

  • Opprett en lagret prosedyre som inneholder kjørbar R Eller Python
  • Kjør den lagrede prosedyren fra INKLUDERINGER FOR SERVERSIDE eller SSRS

eksemplene i denne artikkelen handler for det meste Om R og SSIS, men konseptene og trinnene gjelder også For Python. Den andre delen gir veiledning og koblinger FOR ssrs-visualiseringer.

Bruk INKLUDERINGER FOR SERVERSIDE for automatisering

arbeidsflyter For datavitenskap er svært iterative og involverer mye transformasjon av data, inkludert skalering, aggregeringer, beregning av sannsynligheter og omdøping og sammenslåing av attributter. Dataforskere er vant til å gjøre mange av disse oppgavene I R, Python eller et annet språk; men å utføre slike arbeidsflyter på bedriftsdata krever sømløs integrasjon med etl-verktøy og prosesser.

Fordi R Services (In-Database) lar deg kjøre komplekse operasjoner i R via Transact-SQL og lagrede prosedyrer, kan du integrere datavitenskapsoppgaver med eksisterende etl-prosesser. I stedet for å utføre en kjede av minneintensive oppgaver, kan dataforberedelse optimaliseres ved hjelp av de mest effektive verktøyene, inkludert Integrasjonstjenester og Transact-SQL.

her er noen ideer til hvordan du kan automatisere databehandling og modellering av rørledninger ved Hjelp Av Integrasjonstjenester:

  • Trekk ut data fra lokale eller skykilder for å bygge treningsdata
  • Bygg Og kjør r-eller Python-modeller som en del av en dataintegrasjonsarbeidsflyt
  • Last inn resultater Fra R-eller Python-skript til andre destinasjoner som Excel, Power BI, Oracle og Teradata, for å nevne noen
  • bruk inkluderinger for serverside-oppgaver til å opprette datafunksjoner i sql-databasen
  • bruk betinget forgrening til å bytte beregningskontekst for r-Og python-Jobber

inkluderinger for serverside-eksempler

dette eksemplet viser hvordan du automatiser oppgaver ved HJELP AV SSIS. Du oppretter lagrede prosedyrer med innebygd R VED HJELP AV SQL Server Management Studio, og deretter utføre de lagrede prosedyrene Fra Utføre T-SQL-oppgaver i EN INKLUDERINGER for SERVERSIDE-pakke.

for å gå gjennom dette eksemplet, bør du være kjent Med Management Studio, SSIS, SSIS Designer, package design og T-SQL. SSIS-pakken bruker tre Utføre T-SQL-oppgaver som setter inn treningsdata i en tabell, modell data, og scorer data for å få prediksjon utgang.

Last treningsdata

Kjør følgende skript i SQL Server Management Studio for å opprette en tabell for lagring av dataene. Du bør opprette og bruke en testdatabase for denne øvelsen.

Opprett en lagret prosedyre som laster treningsdata inn i datarammen. Dette eksemplet bruker det innebygde Iris – datasettet.

i INKLUDERINGER FOR SERVERSIDE Designer oppretter du En Utfør SQL-oppgave som utfører den lagrede prosedyren du nettopp har definert. Skriptet for SQLStatement fjerner eksisterende data, angir hvilke data som skal settes inn, og kaller deretter den lagrede prosedyren for å gi dataene.

Generer en modell

Kjør følgende skript i SQL Server Management Studio for å opprette en tabell som lagrer en modell.

Opprett en lagret prosedyre som genererer en lineær modell ved hjelp av rxLinMod. RevoScaleR og revoscalepy biblioteker er automatisk tilgjengelig I R og Python økter PÅ SQL Server så det er ikke nødvendig å importere biblioteket.

opprett En Utfør SQL-oppgave for å utføre den lagrede prosedyren generate_iris_rx_model i SSIS Designer. Modellen er serialisert og lagret i tabellen ssis_iris_models. Skriptet For SQLStatement er som følger:

som et kontrollpunkt, når denne oppgaven er fullført, kan du spørre ssis_iris_models å se at den inneholder en binær modell.

Predict (score) utfall ved hjelp av den» trente » modellen

Nå som du har kode som laster treningsdata og genererer en modell, er det eneste trinnet igjen å bruke modellen til å generere spådommer.

for å gjøre dette, sett r-skriptet i SQL-spørringen for å utløse rxpredict innebygd r-funksjon på ssis_iris_model. En lagret prosedyre kalt predict_species_length utfører denne oppgaven.

i INKLUDERINGER FOR SERVERSIDE Designer oppretter du En Utfør SQL-oppgave som utfører den lagrede predict_species_length-prosedyren for å generere forventet kronbladlengde.

exec predict_species_length 'rxLinMod';

Kjør løsningen

i INKLUDERINGER FOR SERVERSIDE Designer, trykk F5 for å kjøre pakken. Du bør se et utfall som ligner på følgende skjermbilde.

Bruk SSRS for visualiseringer

Selv Om R kan lage diagrammer og interessante visualiseringer, er Det ikke godt integrert med eksterne datakilder, noe som betyr at hvert diagram eller graf må produseres individuelt. Deling kan også være vanskelig.

Ved Å bruke R Services (In-Database) kan du kjøre komplekse operasjoner i R via Transact-SQL-lagrede prosedyrer, som enkelt kan brukes av en rekke virksomhetsrapporteringsverktøy, inkludert Reporting Services og Power BI.

SSIS-ene og ssrs-eksemplene i denne artikkelen illustrerer to tilfeller av å utføre lagrede prosedyrer som inneholder innebygd R-eller Python-skript. En viktig takeaway er at Du kan gjøre R eller Python-skript tilgjengelig for ethvert program eller verktøy som kan sende en utførelsesforespørsel på en lagret prosedyre. En ekstra takeaway for SSIS er at du kan lage pakker som automatiserer og planlegger bredt spekter av operasjoner, for eksempel datainnsamling, rensing, manipulering og så videre, Med R eller Python datavitenskapsfunksjonalitet inkludert i kjeden av operasjoner. Hvis du vil Ha Mer informasjon og ideer, kan du se Operasjonalisere r-kode ved hjelp av lagrede prosedyrer I SQL Server Machine Learning Services.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.