Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: SQL Server 2016 (13.x) a novější verze
Azure SQL Managed Instance
V tomto cvičení vytvořte databázi pro ukládání dat ze sady dat Iris flower a modelů založených na stejných datech. Data Iris jsou součástí distribuce R i Pythonu a používají se v kurzech strojového učení pro strojové učení SQL.
K dokončení tohoto cvičení byste měli mít SQL Server Management Studio (SSMS) nebo jiný nástroj, který může spouštět dotazy T-SQL.
Návody a rychlé starty využívající tuto datovou sadu zahrnují následující:
Vytvoření databáze
Spusťte aplikaci SQL Server Management Studio a otevřete nové okno dotazu .
Vytvořte novou databázi pro tento projekt a změňte kontext okna dotazu tak, aby používal novou databázi.
CREATE DATABASE irissql GO USE irissql GOPřidejte několik prázdných tabulek: jednu pro uložení dat a druhou pro uložení natrénovaných modelů. Tabulka iris_models slouží k ukládání serializovaných modelů generovaných v jiných cvičeních.
Následující kód vytvoří tabulku pro trénovací data.
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 );Spuštěním následujícího kódu vytvořte tabulku použitou k uložení natrénovaného modelu. Pokud chcete uložit modely Pythonu (nebo R) na SQL Serveru, musí být serializovány a uloženy ve sloupci typu 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 ); GOKromě obsahu modelu byste obvykle také přidali sloupce pro další užitečná metadata, jako je název modelu, datum, kdy byl natrénován, zdrojový algoritmus a parametry, zdrojová data atd. Prozatím to budeme mít jednoduché a použijeme jenom název modelu.
Naplnění tabulky
Integrovaná data Iris můžete získat z R nebo Pythonu. Data můžete načíst do datového rámce pomocí Pythonu nebo R a pak je vložit do tabulky v databázi. Přesun tréninkových dat z externí relace do tabulky je vícekrokový proces:
- Navrhněte uloženou proceduru, která získává požadovaná data.
- Spusťte uloženou proceduru, abyste skutečně získali data.
- Vytvořte příkaz INSERT, který určuje, kam mají být načtená data uložena.
V systémech s integrací Pythonu vytvořte následující uloženou proceduru, která k načtení dat používá kód Pythonu.
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; GOPo spuštění tohoto kódu by se měla zobrazit zpráva "Příkazy byly úspěšně dokončeny". To znamená, že uložená procedura byla vytvořena podle vašich specifikací.
Případně v systémech s integrací jazyka R vytvořte proceduru, která místo toho používá 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; GOPokud chcete tabulku skutečně naplnit, spusťte uloženou proceduru a zadejte tabulku, do které se mají data zapisovat. Při spuštění spustí uložená procedura kód Pythonu nebo R, který načte integrovanou datovou sadu Iris a potom vloží data do tabulky iris_data .
INSERT INTO iris_data ("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species", "SpeciesId") EXEC dbo.get_iris_dataset;Pokud s T-SQL teprve začínáte, mějte na paměti, že příkaz INSERT přidává pouze nová data; Nezkontroluje existující data ani neodstraní a znovu sestaví tabulku. Chcete-li zabránit získání více kopií stejných dat v tabulce, můžete nejprve spustit tento příkaz:
TRUNCATE TABLE iris_data. Příkaz T-SQL TRUNCATE TABLE odstraní existující data, ale zachová strukturu tabulky beze změny.
Vytváření dotazů na data
Jako ověřovací krok spusťte dotaz, abyste potvrdili, že se data nahrála.
V Průzkumníku objektů klikněte v části Databáze pravým tlačítkem myši na databázi irissql a spusťte nový dotaz.
Spusťte několik jednoduchých dotazů:
SELECT TOP(10) * FROM iris_data; SELECT COUNT(*) FROM iris_data;
Další kroky
V následujícím rychlém startu vytvoříte model strojového učení a uložíte ho do tabulky a pak ho použijete k vygenerování predikovaných výsledků.