Datavetenskap med en virtuell Ubuntu-Datavetenskap-dator i Azure

Den här genomgången beskriver hur du utför flera vanliga datavetenskapsuppgifter med Ubuntu Datavetenskap Virtual Machine (DSVM). Ubuntu DSVM är en avbildning av en virtuell dator som är tillgänglig i Azure, med en förinstallerad verktygssamling som ofta används för dataanalys och maskininlärning. Resursen Etablera Ubuntu Datavetenskap Virtual Machine specificerar viktiga programvarukomponenter. DSVM-avbildningen gör det enkelt att komma igång med datavetenskap på bara några minuter, vilket undviker behovet av att installera och konfigurera vart och ett av verktygen individuellt. Du kan enkelt skala upp DSVM om det behövs, och du kan stoppa den när den inte används. DSVM-resursen är både elastisk och kostnadseffektiv.

I den här genomgången analyserar vi datauppsättningen spambase . Spambase är en uppsättning e-postmeddelanden som har markerats som skräppost eller skinka (inte skräppost). Spambase innehåller också viss statistik om e-postinnehållet. Vi diskuterar statistiken senare i genomgången.

Förutsättningar

Innan du kan använda en Linux DSVM måste du ta upp följande krav:

Ladda ned datauppsättningen spambase

Datamängden spambase är en ganska liten uppsättning data som innehåller 4 601 exempel. Den praktiska, hanterbara storleken på den här resursen gör det enkelt att visa några av de viktigaste funktionerna i DSVM på grund av de blygsamma resurskraven.

Kommentar

Den här genomgången skapades med en D2 v2-storlek Linux DSVM. Du kan använda en DSVM den här storleken för att slutföra procedurerna som visas i den här genomgången.

Om du vill ha mer lagringsutrymme kan du skapa fler diskar och koppla dem till din DSVM. Diskarna använder beständig Azure Storage, så deras data bevaras även om servern återskapas på grund av storleksändring eller avstängning. Om du vill lägga till en disk och ansluta den till din DSVM slutför du stegen i Lägg till en disk på en virtuell Linux-dator. Stegen för att lägga till en disk använder Azure CLI, som redan är installerat på DSVM. Du kan slutföra stegen helt från själva DSVM. Som ett annat alternativ för att öka lagringen kan du använda Azure Files.

Om du vill ladda ned data öppnar du ett terminalfönster och kör sedan följande kommando:

wget --no-check-certificate https://archive.ics.uci.edu/ml/machine-learning-databases/spambase/spambase.data

Den nedladdade filen har ingen rubrikrad. Nu ska vi skapa en annan fil som har ett huvud. Kör det här kommandot för att skapa en fil med lämpliga rubriker:

echo 'word_freq_make, word_freq_address, word_freq_all, word_freq_3d,word_freq_our, word_freq_over, word_freq_remove, word_freq_internet,word_freq_order, word_freq_mail, word_freq_receive, word_freq_will,word_freq_people, word_freq_report, word_freq_addresses, word_freq_free,word_freq_business, word_freq_email, word_freq_you, word_freq_credit,word_freq_your, word_freq_font, word_freq_000, word_freq_money,word_freq_hp, word_freq_hpl, word_freq_george, word_freq_650, word_freq_lab,word_freq_labs, word_freq_telnet, word_freq_857, word_freq_data,word_freq_415, word_freq_85, word_freq_technology, word_freq_1999,word_freq_parts, word_freq_pm, word_freq_direct, word_freq_cs, word_freq_meeting,word_freq_original, word_freq_project, word_freq_re, word_freq_edu,word_freq_table, word_freq_conference, char_freq_semicolon, char_freq_leftParen,char_freq_leftBracket, char_freq_exclamation, char_freq_dollar, char_freq_pound, capital_run_length_average,capital_run_length_longest, capital_run_length_total, spam' > headers

Sammanfoga sedan de två filerna:

cat spambase.data >> headers
mv headers spambaseHeaders.data

Datamängden har flera typer av statistik för varje e-post:

  • Kolumner som word_freq_WORD anger procentandelen ord i e-postmeddelandet som matchar WORD. Om word_freq_make till exempel är 1 så var 1 % av alla ord i e-postmeddelandet.
  • Kolumner som char_freq_CHAR anger procentandelen av alla tecken i e-postmeddelandet som är CHAR.
  • capital_run_length_longest är den längsta längden på en sekvens med versaler.
  • capital_run_length_average är den genomsnittliga längden på alla sekvenser med versaler.
  • capital_run_length_total är den totala längden på alla sekvenser med versaler.
  • spam anger om e-postmeddelandet ansågs vara skräppost eller inte (1 = skräppost, 0 = inte skräppost).

Utforska datamängden med hjälp av R Open

Nu ska vi undersöka data och använda R för att utföra grundläggande maskininlärning. DSVM levereras med CRAN R förinstallerat.

Om du vill hämta kopior av de kodexempel som används i den här genomgången använder du git för att klona lagringsplatsen Azure-Machine-Learning-Data-Science. Git är förinstallerat på DSVM. På git-kommandoraden kör du:

git clone https://github.com/Azure/Azure-MachineLearning-DataScience.git

Öppna ett terminalfönster och starta en ny R-session i den interaktiva R-konsolen. Om du vill importera data och konfigurera miljön kör du:

data <- read.csv("spambaseHeaders.data")
set.seed(123)

Det här kodexemplet visar sammanfattningsstatistik om varje kolumn:

summary(data)

För en annan vy av data:

str(data)

Den här vyn visar typen av varje variabel och de första värdena i datamängden.

Skräppostkolumnen lästes som ett heltal, men det är faktiskt en kategorisk variabel (eller faktor). Så här anger du dess typ:

data$spam <- as.factor(data$spam)

För en del undersökande analys använder du ggplot2-paketet , ett populärt grafbibliotek för R. ggplot2-paketet är förinstallerat på DSVM. Baserat på de sammanfattningsdata som visades tidigare har vi sammanfattningsstatistik över utropstecknets frekvens. Om du vill rita dessa frekvenser här kör du följande kommandon:

library(ggplot2)
ggplot(data) + geom_histogram(aes(x=char_freq_exclamation), binwidth=0.25)

Eftersom nollstrecket förvränger diagrammet ska vi eliminera det:

email_with_exclamation = data[data$char_freq_exclamation > 0, ]
ggplot(email_with_exclamation) + geom_histogram(aes(x=char_freq_exclamation), binwidth=0.25)

En icke-trivial densitet över 1 som ser intressant ut. Låt oss bara titta på dessa data:

ggplot(data[data$char_freq_exclamation > 1, ]) + geom_histogram(aes(x=char_freq_exclamation), binwidth=0.25)

Dela sedan upp den med skräppost kontra skinka:

ggplot(data[data$char_freq_exclamation > 1, ], aes(x=char_freq_exclamation)) +
geom_density(lty=3) +
geom_density(aes(fill=spam, colour=spam), alpha=0.55) +
xlab("spam") +
ggtitle("Distribution of spam \nby frequency of !") +
labs(fill="spam", y="Density")

De här exemplen bör hjälpa dig att skapa liknande diagram och utforska data i de andra kolumnerna.

Träna och testa en maskininlärningsmodell

Nu ska vi träna några maskininlärningsmodeller för att identifiera e-postmeddelandena i datauppsättningen som innehåller skräppost eller skinka. I det här avsnittet tränar vi en beslutsträdsmodell och en slumpmässig skogsmodell. Sedan testar vi precisionen i förutsägelserna.

Kommentar

Paketet rpart (rekursiv partitionering och regressionsträd) som används i följande kod är redan installerat på DSVM.

Först ska vi dela upp datamängden i träningsuppsättningar och testuppsättningar:

rnd <- runif(dim(data)[1])
trainSet = subset(data, rnd <= 0.7)
testSet = subset(data, rnd > 0.7)

Skapa sedan ett beslutsträd för att klassificera e-postmeddelandena:

require(rpart)
model.rpart <- rpart(spam ~ ., method = "class", data = trainSet)
plot(model.rpart)
text(model.rpart)

Här är resultatet:

Diagram som visar det skapade beslutsträdet.

Använd det här kodexemplet för att avgöra hur bra den presterar på träningsuppsättningen:

trainSetPred <- predict(model.rpart, newdata = trainSet, type = "class")
t <- table(`Actual Class` = trainSet$spam, `Predicted Class` = trainSetPred)
accuracy <- sum(diag(t))/sum(t)
accuracy

Kör den här koden för att avgöra hur bra den presterar på testuppsättningen:

testSetPred <- predict(model.rpart, newdata = testSet, type = "class")
t <- table(`Actual Class` = testSet$spam, `Predicted Class` = testSetPred)
accuracy <- sum(diag(t))/sum(t)
accuracy

Nu ska vi också prova en slumpmässig skogsmodell. En slumpmässig skog tränar flera beslutsträd. Den matar ut en klass som är lägesvärdet för klassificeringarna från alla enskilda beslutsträd. De ger en kraftfullare maskininlärningsmetod eftersom de korrigerar för tendensen hos en beslutsträdsmodell att överanpassa en träningsdatauppsättning.

require(randomForest)
trainVars <- setdiff(colnames(data), 'spam')
model.rf <- randomForest(x=trainSet[, trainVars], y=trainSet$spam)

trainSetPred <- predict(model.rf, newdata = trainSet[, trainVars], type = "class")
table(`Actual Class` = trainSet$spam, `Predicted Class` = trainSetPred)

testSetPred <- predict(model.rf, newdata = testSet[, trainVars], type = "class")
t <- table(`Actual Class` = testSet$spam, `Predicted Class` = testSetPred)
accuracy <- sum(diag(t))/sum(t)
accuracy

Självstudier och genomgångar för djupinlärning

Förutom de ramverksbaserade exemplen tillhandahålls också en uppsättning omfattande genomgångar. De här genomgångarna hjälper dig att få igång din utveckling av djupinlärningsprogram i bild- och textspråksförståringar osv. domäner.

  • Köra neurala nätverk i olika ramverk: En omfattande genomgång som visar hur du migrerar kod från ett ramverk till ett annat. Den visar också hur du jämför modell- och körningsprestanda mellan ramverk.

  • En guide för att skapa en lösning från slutpunkt till slutpunkt för att identifiera produkter i bilder: Bildidentifieringstekniken kan hitta och klassificera objekt i bilder. Tekniken kan ge enorma belöningar i många verkliga affärsdomäner. Återförsäljare kan till exempel använda den här tekniken för att avgöra vilken produkt en kund hämtade från hyllan. Den här informationen hjälper i sin tur butiker att hantera produktinventering.

  • Djupinlärning för ljud: Den här självstudien visar hur du tränar en djupinlärningsmodell för identifiering av ljudhändelser i datauppsättningen urbana ljud. Självstudien ger en översikt över hur du arbetar med ljuddata.

  • Klassificering av textdokument: Den här genomgången visar hur du skapar och tränar två olika neurala nätverksarkitekturer: Hierarchical Attention Network och LSTM (Long Short Term Memory). För att klassificera textdokument använder dessa neurala nätverk Keras-API:et för djupinlärning. Keras är en klientdel till tre av de mest populära ramverken för djupinlärning: Microsoft Cognitive Toolkit, TensorFlow och Theano.

Andra verktyg

De återstående avsnitten visar hur du använder några av de verktyg som är förinstallerade på Linux DSVM. Vi undersöker följande verktyg:

  • XGBoost
  • Python
  • JupyterHub
  • Rattle
  • PostgreSQL och SQuirreL SQL
  • Azure Synapse Analytics (tidigare SQL DW)

XGBoost

XGBoost ger en snabb och korrekt förbättrad trädimplementering.

require(xgboost)
data <- read.csv("spambaseHeaders.data")
set.seed(123)

rnd <- runif(dim(data)[1])
trainSet = subset(data, rnd <= 0.7)
testSet = subset(data, rnd > 0.7)

bst <- xgboost(data = data.matrix(trainSet[,0:57]), label = trainSet$spam, nthread = 2, nrounds = 2, objective = "binary:logistic")

pred <- predict(bst, data.matrix(testSet[, 0:57]))
accuracy <- 1.0 - mean(as.numeric(pred > 0.5) != testSet$spam)
print(paste("test accuracy = ", accuracy))

XGBoost kan också anropa från Python eller en kommandorad.

Python

För Python-utveckling är Anaconda Python-distributionerna 3.5 och 2.7 förinstallerade på DSVM.

Kommentar

Anaconda-fördelningen innehåller Conda. Du kan använda Conda för att skapa anpassade Python-miljöer som har olika versioner eller paket installerade i dem.

Nu ska vi läsa i en del av datauppsättningen spambase och klassificera e-postmeddelandena med stödvektordatorer i Scikit-learn:

import pandas
from sklearn import svm
data = pandas.read_csv("spambaseHeaders.data", sep = ',\s*')
X = data.ix[:, 0:57]
y = data.ix[:, 57]
clf = svm.SVC()
clf.fit(X, y)

Så här gör du förutsägelser:

clf.predict(X.ix[0:20, :])

För att visa hur du publicerar en Azure Machine Learning-slutpunkt ska vi skapa en mer grundläggande modell. Vi använder de tre variabler som vi använde när vi publicerade R-modellen tidigare:

X = data[["char_freq_dollar", "word_freq_remove", "word_freq_hp"]]
y = data.ix[:, 57]
clf = svm.SVC()
clf.fit(X, y)

JupyterHub

Anaconda-distributionen i DSVM levereras med en Jupyter Notebook. Den här resursen är en plattformsoberoende miljö för delning av Python-, R- eller Julia-kod och -analys. Jupyter Notebook nås via JupyterHub. Du loggar in med ditt lokala Linux-användarnamn och lösenord på https://< DSVM DNS-namn eller IP-adress>:8000/. Du hittar alla JupyterHub-konfigurationsfiler i /etc/jupyterhub.

Kommentar

Om du vill använda Python Package Manager (via pip kommandot) från en Jupyter Notebook som finns i den aktuella kerneln använder du det här kommandot i kodcellen:

 import sys
 ! {sys.executable} -m pip install numpy -y

Om du vill använda Conda-installationsprogrammet (via conda kommandot) från en Jupyter Notebook som finns i den aktuella kerneln använder du det här kommandot i en kodcell:

 import sys
 ! {sys.prefix}/bin/conda install --yes --prefix {sys.prefix} numpy

Flera exempelanteckningsböcker är redan installerade på DSVM:

Kommentar

Språket Julia är också tillgängligt från kommandoraden på Linux DSVM.

Rattle

Du kan använda verktyget Rattle (RAnalytical Tool To Learn Easily) grafisk R för datautvinning. Rattle har ett intuitivt gränssnitt som gör det enkelt att läsa in, utforska och transformera data samt att skapa och utvärdera modeller. Rattle: Ett GUI för datautvinning för R ger en genomgång som visar Rattles funktioner.

Kör dessa kommandon för att installera och starta Rattle:

if(!require("rattle")) install.packages("rattle")
require(rattle)
rattle()

Kommentar

Du behöver inte installera Rattle på DSVM. Du kan dock uppmanas att installera ytterligare paket när Rattle öppnas.

Rattle använder ett flikbaserat gränssnitt. De flesta flikarna motsvarar stegen i Team Datavetenskap Process, som att läsa in data eller utforska data. Dataforskningsprocessen flödar från vänster till höger via flikarna. Den sista fliken innehåller en logg över R-kommandona som Rattle körde.

Så här läser du in och konfigurerar datauppsättningen:

  1. Om du vill läsa in filen väljer du fliken Data
  2. Välj väljaren bredvid Filnamn och välj sedan spambaseHeaders.data
  3. Så här läser du in filen. välj Kör. Du bör se en sammanfattning av varje kolumn, inklusive dess identifierade datatyp, oavsett om det är indata, mål eller annan typ av variabel och antalet unika värden
  4. Rattle identifierade skräppostkolumnen korrekt som mål. Välj kolumnen skräppost och ange sedan måldatatypen till Kategori

Så här utforskar du data:

  1. Välj fliken Utforska
  2. Om du vill visa information om variabeltyperna och viss sammanfattningsstatistik väljer du Kör sammanfattning>.
  3. Om du vill visa andra typer av statistik om varje variabel väljer du andra alternativ, till exempel Beskriv eller Grundläggande.

Du kan också använda fliken Utforska för att generera insiktsfulla diagram. Så här ritar du ett histogram över data:

  1. Välj Distributioner
  2. För word_freq_remove och word_freq_you väljer du Histogram
  3. Välj Kör. Du bör se båda densitetsritningarna i ett enda diagramfönster, där ordet du tydligt visas mycket oftare i e-postmeddelanden, jämfört med att ta bort

Korrelationsdiagram är också intressanta. Så här skapar du ett diagram:

  1. För Typ väljer du Korrelation
  2. Välj Execute (Kör)
  3. Rattle varnar dig om att den rekommenderar högst 40 variabler. Välj Ja för att visa diagrammet

Det finns några intressanta korrelationer som kommer upp. Tekniken korrelerar till exempel starkt med HP och labb. Det korrelerar också starkt till 650 eftersom riktnumret för datamängdsdonatorerna är 650.

De numeriska värdena för korrelationerna mellan ord är tillgängliga i fönstret Utforska . Det är intressant att notera, till exempel, att tekniken är negativt korrelerad med dina och pengar.

Rattle kan transformera datamängden för att hantera några vanliga problem. Den kan till exempel skala om funktioner, imputera saknade värden, hantera extremvärden och ta bort variabler eller observationer som saknar data. Rattle kan också identifiera associationsregler mellan observationer och variabler. Den här introduktionsgenomgången omfattar inte de här flikarna.

Rattle kan också hantera klusteranalyser. Låt oss exkludera vissa funktioner för att göra utdata lättare att läsa. På fliken Data väljer du Ignorera bredvid var och en av variablerna, förutom följande 10 objekt:

  • word_freq_hp
  • word_freq_technology
  • word_freq_george
  • word_freq_remove
  • word_freq_your
  • word_freq_dollar
  • word_freq_money
  • capital_run_length_longest
  • word_freq_business
  • Spam

Gå tillbaka till fliken Kluster. Välj KMeans och ange sedan Antal kluster till 4. Välj Kör. Utdatafönstret visar resultatet. Ett kluster har höga frekvenser av george och hp, och är förmodligen en legitim affärs-e-post.

Så här skapar du en grundläggande maskininlärningsmodell för beslutsträd:

  1. Välj fliken Modell
  2. Som Typ väljer du Träd
  3. Välj Kör för att visa trädet i textformat i utdatafönstret
  4. Välj knappen Rita för att visa en grafisk version. Beslutsträdet ser ut ungefär som det träd som vi fick tidigare med rpart.

Rattle kan köra flera maskininlärningsmetoder och snabbt utvärdera dem. Det här är en användbar funktion. Så här gör du:

  1. För Typ väljer du Alla
  2. Välj Execute (Kör)
  3. När Rattle har körts klart kan du välja valfritt typvärde , till exempel SVM, och visa resultatet
  4. Du kan också jämföra modellernas prestanda på valideringsuppsättningen med fliken Utvärdera. Valet Felmatris visar till exempel förvirringsmatrisen, det övergripande felet och det genomsnittliga klassfelet för varje modell i valideringsuppsättningen. Du kan också rita ROC-kurvor, köra känslighetsanalys och göra andra typer av modellutvärderingar

När du är klar med att skapa dina modeller väljer du fliken Logg för att visa R-koden som Rattle körde under sessionen. Du kan välja knappen Exportera för att spara den.

Kommentar

Den aktuella versionen av Rattle innehåller en bugg. Om du vill ändra skriptet eller använda det för att upprepa stegen senare måste du infoga ett # tecken framför Exportera den här loggen ... i texten i loggen.

PostgreSQL och SQuirreL SQL

DSVM levereras med PostgreSQL installerat. PostgreSQL är en sofistikerad, öppen källkod relationsdatabas. Det här avsnittet visar hur du läser in datauppsättningen spambase till PostgreSQL och sedan frågar den.

Innan du kan läsa in data måste du tillåta lösenordsautentisering från localhost. Kör följande i en kommandotolk:

sudo gedit /var/lib/pgsql/data/pg_hba.conf

Längst ned i konfigurationsfilen finns flera rader som beskriver de tillåtna anslutningarna:

# "local" is only for Unix domain socket connections:
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            ident
# IPv6 local connections:
host    all             all             ::1/128                 ident

Ändra raden för lokala IPv4-anslutningar till att använda md5 i stället för ident, så att vi kan logga in med ett användarnamn och lösenord:

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5

Starta sedan om PostgreSQL-tjänsten:

sudo systemctl restart postgresql

Kör det här kommandot för att starta psql (en interaktiv terminal för PostgreSQL) som den inbyggda postgres-användaren:

sudo -u postgres psql

Skapa ett nytt användarkonto med användarnamnet för det Linux-konto som du använde för att logga in. Skapa ett lösenord:

CREATE USER <username> WITH CREATEDB;
CREATE DATABASE <username>;
ALTER USER <username> password '<password>';
\quit

Logga in på psql:

psql

Importera data till en ny databas:

CREATE DATABASE spam;
\c spam
CREATE TABLE data (word_freq_make real, word_freq_address real, word_freq_all real, word_freq_3d real,word_freq_our real, word_freq_over real, word_freq_remove real, word_freq_internet real,word_freq_order real, word_freq_mail real, word_freq_receive real, word_freq_will real,word_freq_people real, word_freq_report real, word_freq_addresses real, word_freq_free real,word_freq_business real, word_freq_email real, word_freq_you real, word_freq_credit real,word_freq_your real, word_freq_font real, word_freq_000 real, word_freq_money real,word_freq_hp real, word_freq_hpl real, word_freq_george real, word_freq_650 real, word_freq_lab real,word_freq_labs real, word_freq_telnet real, word_freq_857 real, word_freq_data real,word_freq_415 real, word_freq_85 real, word_freq_technology real, word_freq_1999 real,word_freq_parts real, word_freq_pm real, word_freq_direct real, word_freq_cs real, word_freq_meeting real,word_freq_original real, word_freq_project real, word_freq_re real, word_freq_edu real,word_freq_table real, word_freq_conference real, char_freq_semicolon real, char_freq_leftParen real,char_freq_leftBracket real, char_freq_exclamation real, char_freq_dollar real, char_freq_pound real, capital_run_length_average real, capital_run_length_longest real, capital_run_length_total real, spam integer);
\copy data FROM /home/<username>/spambase.data DELIMITER ',' CSV;
\quit

Nu ska vi utforska data och köra några frågor med SQuirreL SQL, ett grafiskt verktyg som kan interagera med databaser via en JDBC-drivrutin.

Öppna först SQuirreL SQL på programmenyn. Så här konfigurerar du drivrutinen:

  1. Välj Windows-vydrivrutiner>
  2. Högerklicka på PostgreSQL och välj Ändra drivrutin
  3. Välj Extra klasssökväg>lägg till
  4. För Filnamn anger du /usr/share/java/jdbcdrivers/postgresql-9.4.1208.jre6.jar
  5. Välj Öppna
  6. Välj Listdrivrutiner. Som Klassnamn väljer du org.postgresql.Driver och väljer sedan OK

Så här konfigurerar du anslutningen till den lokala servern:

  1. Välj Windows-vyalias>.
  2. + Välj knappen för att skapa ett nytt alias. För det nya aliasnamnet anger du Skräppostdatabas
  3. För Drivrutin väljer du PostgreSQL
  4. Ange URL:en till jdbc:postgresql://localhost/spam
  5. Ange ditt användarnamn och lösenord
  6. Välj OK.
  7. Om du vill öppna Anslut ion-fönstret dubbelklickar du på aliaset skräppostdatabas
  8. Välj Anslut

Så här kör du några frågor:

  1. Välj fliken SQL
  2. I frågerutan överst på fliken SQL anger du en grundläggande fråga: till exempel SELECT * from data;
  3. Kör frågan genom att trycka på Ctrl+Retur. Som standard returnerar SQuirreL SQL de första 100 raderna från din fråga

Du kan köra många fler frågor för att utforska dessa data. Hur skiljer sig till exempel frekvensen för ordet mellan skräppost och skinka?

SELECT avg(word_freq_make), spam from data group by spam;

Vilka är egenskaperna hos e-post som ofta innehåller 3d?

SELECT * from data order by word_freq_3d desc;

De flesta e-postmeddelanden som har en hög förekomst av 3d är uppenbar skräppost. Den här informationen kan vara användbar för att skapa en förutsägelsemodell för att klassificera e-postmeddelanden.

För maskininlärning med data som lagras i en PostgreSQL-databas fungerar MADlib bra.

Azure Synapse Analytics (tidigare SQL DW)

Azure Synapse Analytics är en molnbaserad, skalbar databas som kan bearbeta enorma mängder data, både relationsbaserade och icke-relationella. Mer information finns i Vad är Azure Synapse Analytics?

Om du vill ansluta till informationslagret och skapa tabellen kör du det här kommandot från en kommandotolk:

sqlcmd -S <server-name>.database.windows.net -d <database-name> -U <username> -P <password> -I

Kör det här kommandot i sqlcmd-prompten:

CREATE TABLE spam (word_freq_make real, word_freq_address real, word_freq_all real, word_freq_3d real,word_freq_our real, word_freq_over real, word_freq_remove real, word_freq_internet real,word_freq_order real, word_freq_mail real, word_freq_receive real, word_freq_will real,word_freq_people real, word_freq_report real, word_freq_addresses real, word_freq_free real,word_freq_business real, word_freq_email real, word_freq_you real, word_freq_credit real,word_freq_your real, word_freq_font real, word_freq_000 real, word_freq_money real,word_freq_hp real, word_freq_hpl real, word_freq_george real, word_freq_650 real, word_freq_lab real,word_freq_labs real, word_freq_telnet real, word_freq_857 real, word_freq_data real,word_freq_415 real, word_freq_85 real, word_freq_technology real, word_freq_1999 real,word_freq_parts real, word_freq_pm real, word_freq_direct real, word_freq_cs real, word_freq_meeting real,word_freq_original real, word_freq_project real, word_freq_re real, word_freq_edu real,word_freq_table real, word_freq_conference real, char_freq_semicolon real, char_freq_leftParen real,char_freq_leftBracket real, char_freq_exclamation real, char_freq_dollar real, char_freq_pound real, capital_run_length_average real, capital_run_length_longest real, capital_run_length_total real, spam integer) WITH (CLUSTERED COLUMNSTORE INDEX, DISTRIBUTION = ROUND_ROBIN);
GO

Kopiera data med bcp:

bcp spam in spambaseHeaders.data -q -c -t  ',' -S <server-name>.database.windows.net -d <database-name> -U <username> -P <password> -F 1 -r "\r\n"

Kommentar

Den nedladdade filen innehåller radslut i Windows-stil. Bcp-verktyget förväntar sig linjeslut i Unix-stil. Använd flaggan -r för att berätta för bcp om detta.

Fråga sedan med hjälp av sqlcmd:

select top 10 spam, char_freq_dollar from spam;
GO

Du kan också fråga med hjälp av SQuirreL SQL. Följ stegen som liknar PostgreSQL med hjälp av SQL Server JDBC-drivrutinen. JDBC-drivrutinen finns i mappen /usr/share/java/jdbcdrivers/sqljdbc42.jar.