Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2016 (13.x) och senare versioner
Azure SQL Managed Instance
I den här övningen skapar du en databas för att lagra data från Iris-blommans datauppsättning och modeller baserat på samma data. Iris-data ingår i både R- och Python-distributionerna och används i maskininlärningsutbildningar för SQL.
För att slutföra den här övningen bör du ha SQL Server Management Studio eller ett annat verktyg som kan köra T-SQL-frågor.
Självstudier och snabbstarter med hjälp av den här datauppsättningen omfattar följande:
Skapa databasen
Starta SQL Server Management Studio och öppna ett nytt frågefönster .
Skapa en ny databas för det här projektet och ändra kontexten för frågefönstret så att den nya databasen används.
CREATE DATABASE irissql GO USE irissql GOLägg till några tomma tabeller: en för att lagra data och en för att lagra de tränade modellerna. Tabellen iris_models används för att lagra serialiserade modeller som genereras i andra övningar.
Följande kod skapar tabellen för träningsdata.
DROP TABLE IF EXISTS iris_data; GO CREATE TABLE iris_data ( id INT NOT NULL IDENTITY PRIMARY KEY , "Sepal.Length" FLOAT NOT NULL, "Sepal.Width" FLOAT NOT NULL , "Petal.Length" FLOAT NOT NULL, "Petal.Width" FLOAT NOT NULL , "Species" VARCHAR(100) NOT NULL, "SpeciesId" INT NOT NULL );Kör följande kod för att skapa tabellen som används för att lagra den tränade modellen. Om du vill spara Python-modeller (eller R) i SQL Server måste de serialiseras och lagras i en kolumn av typen varbinary(max).
DROP TABLE IF EXISTS iris_models; GO CREATE TABLE iris_models ( model_name VARCHAR(50) NOT NULL DEFAULT('default model') PRIMARY KEY, model VARBINARY(MAX) NOT NULL ); GOFörutom modellinnehållet skulle du vanligtvis också lägga till kolumner för andra användbara metadata, till exempel modellens namn, det datum då den tränades, källalgoritmen och parametrarna, källdata och så vidare. För tillfället ska vi hålla det enkelt och bara använda modellnamnet.
Fyll i tabellen
Du kan hämta inbyggda Iris-data från R eller Python. Du kan använda Python eller R för att läsa in data i en dataram och sedan infoga dem i en tabell i databasen. Att flytta träningsdata från en extern session till en tabell är en process med flera steg:
- Utforma en lagrad procedur som hämtar de data du vill ha.
- Kör den lagrade proceduren för att faktiskt hämta data.
- Skapa en INSERT-instruktion för att ange var hämtade data ska sparas.
På system med Python-integrering skapar du följande lagrade procedur som använder Python-kod för att läsa in data.
CREATE PROCEDURE get_iris_dataset AS BEGIN EXEC sp_execute_external_script @language = N'Python', @script = N' from sklearn import datasets iris = datasets.load_iris() iris_data = pandas.DataFrame(iris.data) iris_data["Species"] = pandas.Categorical.from_codes(iris.target, iris.target_names) iris_data["SpeciesId"] = iris.target ', @input_data_1 = N'', @output_data_1_name = N'iris_data' WITH RESULT SETS (("Sepal.Length" float not null, "Sepal.Width" float not null, "Petal.Length" float not null, "Petal.Width" float not null, "Species" varchar(100) not null, "SpeciesId" int not null)); END; GONär du kör den här koden bör du få meddelandet "Kommandon har slutförts". Allt detta innebär att den lagrade proceduren har skapats enligt dina specifikationer.
Alternativt kan du på system med R-integrering skapa en procedur som använder R.
CREATE PROCEDURE get_iris_dataset AS BEGIN EXEC sp_execute_external_script @language = N'R', @script = N' library(RevoScaleR) data(iris) iris$SpeciesID <- c(unclass(iris$Species)) iris_data <- iris ', @input_data_1 = N'', @output_data_1_name = N'iris_data' WITH RESULT SETS (("Sepal.Length" float not null, "Sepal.Width" float not null, "Petal.Length" float not null, "Petal.Width" float not null, "Species" varchar(100) not null, "SpeciesId" int not null)); END; GOOm du vill fylla i tabellen kör du den lagrade proceduren och anger den tabell där data ska skrivas. När den lagrade proceduren körs körs Python- eller R-koden, som läser in den inbyggda Iris-datauppsättningen och sedan infogar data i tabellen iris_data .
INSERT INTO iris_data ("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species", "SpeciesId") EXEC dbo.get_iris_dataset;Om du är nybörjare på T-SQL bör du vara medveten om att INSERT-instruktionen bara lägger till nya data. Den söker inte efter befintliga data eller tar bort och återskapar tabellen. Om du vill undvika att få flera kopior av samma data i en tabell kan du köra den här instruktionen först:
TRUNCATE TABLE iris_data. T-SQL TRUNCATE TABLE-instruktionen tar bort befintliga data men håller tabellens struktur intakt.
Fråga efter data
Som ett valideringssteg kör du en fråga för att bekräfta att data har laddats upp.
Högerklicka på irissql-databasen under Databaser i Object Explorer och starta en ny fråga.
Kör några enkla frågor:
SELECT TOP(10) * FROM iris_data; SELECT COUNT(*) FROM iris_data;
Nästa steg
I följande snabbstart skapar du en maskininlärningsmodell och sparar den i en tabell och använder sedan modellen för att generera förutsagda resultat.