Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik: Sql Server 2016 (13.x) és újabb verziók
felügyelt Azure SQL-példány
A négyrészes oktatóanyag-sorozat második részében előkészíti az adatokat egy adatbázisból, hogy az R-ben klaszterezést hajtson végre az SQL Server Machine Learning Szolgáltatások vagy a Big Data fürtök használatával.
Ennek a négyrészes oktatóanyag-sorozatnak a második részében előkészíti az adatokat egy adatbázisból, hogy az R-ben fürtözést végezhessen az SQL Server Machine Learning Services-el.
Ennek a négyrészes oktatóanyag-sorozatnak a második részében előkészíti az adatokat egy adatbázisból az SQL Server 2016 R Services szolgáltatással való R-fürtözés végrehajtásához.
A négyrészes oktatóanyag-sorozat második részében előkészíti az adatokat egy adatbázisból, hogy az Azure SQL Managed Instance Machine Learning Services szolgáltatással az R-ben klaszterezést hajtson végre.
Ebben a cikkben megtudhatja, hogyan:
- Ügyfelek elkülönítése különböző dimenziók mentén az R használatával
- Az adatok betöltése az adatbázisból egy R-adatkeretbe
Az első részben telepítette az előfeltételeket, és visszaállította a mintaadatbázist.
A harmadik részben megtanulhatja, hogyan hozhat létre és taníthat be K-Means fürtözési modellt az R-ben.
A negyedik részben megtanulhatja, hogyan hozhat létre tárolt eljárást egy olyan adatbázisban, amely új adatok alapján képes fürtözést végezni az R-ben.
Előfeltételek
- Az oktatóanyag második része feltételezi, hogy elvégezte az első részt.
Ügyfelek elkülönítése
Hozzon létre egy új RScript-fájlt az RStudio-ban, és futtassa a következő szkriptet. Az SQL-lekérdezésben az ügyfeleket a következő dimenziók mentén választja el:
- orderRatio = visszatérési rendelés aránya (a részben vagy teljesen visszaadott rendelések teljes száma a rendelések teljes számával szemben)
- itemsRatio = return item ratio (a visszaadott elemek teljes száma és a megvásárolt elemek száma)
- monetaryRatio = visszatérési összeg aránya (a visszaadott tételek teljes pénzügyi összege a megvásárolt összeggel szemben)
- frequency = visszatérési gyakoriság
A connStr függvényben cserélje le a ServerName nevet a saját kapcsolati adataira.
# Define the connection string to connect to the tpcxbb_1gb database
connStr <- "Driver=SQL Server;Server=ServerName;Database=tpcxbb_1gb;uid=Username;pwd=Password"
#Define the query to select data
input_query <- "
SELECT ss_customer_sk AS customer
,round(CASE
WHEN (
(orders_count = 0)
OR (returns_count IS NULL)
OR (orders_count IS NULL)
OR ((returns_count / orders_count) IS NULL)
)
THEN 0.0
ELSE (cast(returns_count AS NCHAR(10)) / orders_count)
END, 7) AS orderRatio
,round(CASE
WHEN (
(orders_items = 0)
OR (returns_items IS NULL)
OR (orders_items IS NULL)
OR ((returns_items / orders_items) IS NULL)
)
THEN 0.0
ELSE (cast(returns_items AS NCHAR(10)) / orders_items)
END, 7) AS itemsRatio
,round(CASE
WHEN (
(orders_money = 0)
OR (returns_money IS NULL)
OR (orders_money IS NULL)
OR ((returns_money / orders_money) IS NULL)
)
THEN 0.0
ELSE (cast(returns_money AS NCHAR(10)) / orders_money)
END, 7) AS monetaryRatio
,round(CASE
WHEN (returns_count IS NULL)
THEN 0.0
ELSE returns_count
END, 0) AS frequency
FROM (
SELECT ss_customer_sk,
-- return order ratio
COUNT(DISTINCT (ss_ticket_number)) AS orders_count,
-- return ss_item_sk ratio
COUNT(ss_item_sk) AS orders_items,
-- return monetary amount ratio
SUM(ss_net_paid) AS orders_money
FROM store_sales s
GROUP BY ss_customer_sk
) orders
LEFT OUTER JOIN (
SELECT sr_customer_sk,
-- return order ratio
count(DISTINCT (sr_ticket_number)) AS returns_count,
-- return ss_item_sk ratio
COUNT(sr_item_sk) AS returns_items,
-- return monetary amount ratio
SUM(sr_return_amt) AS returns_money
FROM store_returns
GROUP BY sr_customer_sk
) returned ON ss_customer_sk = sr_customer_sk";
Adatok betöltése adatkeretbe
Most a következő szkripttel adja vissza a lekérdezés eredményeit egy R-adatkeretbe.
# Query using input_query and get the results back
# to data frame customer_data
library(RODBC)
ch <- odbcDriverConnect(connStr)
customer_data <- sqlQuery(ch, input_query)
# Take a look at the data just loaded
head(customer_data, n = 5);
Az alábbihoz hasonló eredményeket kell látnia.
customer orderRatio itemsRatio monetaryRatio frequency
1 29727 0 0 0.000000 0
2 26429 0 0 0.041979 1
3 60053 0 0 0.065762 3
4 97643 0 0 0.037034 3
5 32549 0 0 0.031281 4
Erőforrások tisztítása
Ha nem folytatja ezt az oktatóanyagot, törölje a tpcxbb_1gb adatbázist.
Következő lépések
Az oktatóanyag-sorozat második részében megtanulta, hogyan:
- Ügyfelek elkülönítése különböző dimenziók mentén az R használatával
- Az adatok betöltése az adatbázisból egy R-adatkeretbe
Az ügyféladatokat használó gépi tanulási modell létrehozásához kövesse az oktatóanyag-sorozat harmadik részét: