Nahrání dat do paměti pomocí rxImport (tutoriál pro SQL Server a RevoScaleR)

platí pro: SQL Server 2016 (13.x) a novější verze

Toto je desátý tutoriál ze série RevoScaleR o tom, jak používat funkce RevoScaleR se SQL Server.

V tomto tutoriálu se naučíte, jak získat data ze SQL Server a poté pomocí funkce rxImport uložit data do lokálního souboru. Tímto způsobem ji můžete opakovaně analyzovat v lokálním výpočetním kontextu, aniž byste museli znovu dotazovat databázi.

Funkce rxImport může být použita k přesunu dat ze zdroje do datového rámce v paměťové relaci nebo do souboru XDF na disku. Pokud nespecifikujete soubor jako cíl, data se uloží do paměti jako datový rámec.

Extrahujte podmnožinu dat ze SQL Server do lokální paměti

Rozhodli jste se, že chcete podrobněji zkoumat pouze osoby s vysokým rizikem. Zdrojová tabulka v SQL Server je velká, takže chcete získat informace pouze o klientech s vysokým rizikem. Poté tato data načtete do datového rámce v paměti lokální pracovní stanice.

  1. Resetujte výpočetní kontext na svou lokální pracovní stanici.

    rxSetComputeContext("local")
    
  2. Vytvořte nový zdrojový objekt SQL Server, který poskytne platný SQL příkaz v parametru sqlQuery. Tento příklad vrací podmnožinu pozorování s nejvyšším skóre rizika. Tím pádem se do lokální paměti uloží jen ta data, která opravdu potřebujete.

    sqlServerProbDS \<- RxSqlServerData(
        sqlQuery = paste("SELECT * FROM ccScoreOutput2",
        "WHERE (ccFraudProb > .99)"),
        connectionString = sqlConnString)
    
  3. Zavolejte funkci rxImport pro načtení dat do datového rámce v lokální relaci R.

    highRisk <- rxImport(sqlServerProbDS)
    

    Pokud byla operace úspěšná, měli byste vidět stavovou zprávu jako tato: "Řádky přečteny: 35, Celkový počet zpracovaných řádků: 35, Celkový čas bloku: 0,036 sekundy"

  4. Nyní, když jsou vysoce riziková pozorování v datovém rámci v paměti, můžete použít různé R funkce k manipulaci s datovým rámcem. Například můžete seřadit zákazníky podle jejich rizikového skóre a vytisknout seznam těch, kteří představují nejvyšší riziko.

    orderedHighRisk <- highRisk[order(-highRisk$ccFraudProb),]
    row.names(orderedHighRisk) <- NULL
    head(orderedHighRisk)
    

Results

ccFraudLogitScore   state gender cardholder balance numTrans numIntlTrans creditLine ccFraudProb1
9.786345    SD   Male  Principal   23456       25            5 75   0.99994382
9.433040    FL Female  Principal   20629       24           28 75   0.99992003
8.556785    NY Female  Principal   19064       82           53 43   0.99980784
8.188668    AZ Female  Principal   19948       29            0 75   0.99972235
7.551699    NY Female  Principal   11051       95            0 75   0.99947516
7.335080    NV   Male  Principal   21566        4            6  75   0.9993482

Více o rxImport

RxImport můžete použít nejen k přesunu dat, ale i k jejich transformaci při jejich čtení. Například můžete zadat počet znaků pro sloupce s pevnou šířkou, poskytnout popis proměnných, nastavit úrovně pro sloupce faktorů a dokonce vytvořit nové úrovně pro použití po importu.

Funkce rxImport přiřazuje sloupcům názvy proměnných během importu, ale nové názvy proměnných můžete označit pomocí parametru colInfo nebo měnit datové typy pomocí parametru colClasses .

Specifikací dalších operací v parametru transformace můžete provádět elementární zpracování na každém načteném datovém bloku.

Další krok