Share via


Datavetenskap med en Windows-Data Science Virtual Machine

Windows Data Science Virtual Machine (DSVM) är en kraftfull utvecklingsmiljö för datavetenskap där du kan utföra datautforskning och modelleringsuppgifter. Miljön är redan byggd och paketerad med flera populära dataanalysverktyg som gör det enkelt att komma igång med din analys för lokala distributioner, moln- eller hybriddistributioner.

DSVM har ett nära samarbete med Azure-tjänster. Den kan läsa och bearbeta data som redan lagras i Azure, i Azure Synapse (tidigare SQL DW), Azure Data Lake, Azure Storage eller Azure Cosmos DB. Den kan också dra nytta av andra analysverktyg, till exempel Azure Machine Learning.

I den här artikeln får du lära dig hur du använder din DSVM för att utföra datavetenskapsuppgifter och interagera med andra Azure-tjänster. Här är några av de saker du kan göra på DSVM:

  • Använd en Jupyter Notebook för att experimentera med dina data i en webbläsare med hjälp av Python 2, Python 3 och Microsoft R. (Microsoft R är en företagsklar version av R som är utformad för prestanda.)

  • Utforska data och utveckla modeller lokalt på DSVM med hjälp av Microsoft Machine Learning Server och Python.

  • Administrera dina Azure-resurser med hjälp av Azure Portal eller PowerShell.

  • Utöka ditt lagringsutrymme och dela storskaliga datamängder/kod i hela teamet genom att skapa en Azure Files resurs som en monteringsbar enhet på din DSVM.

  • Dela kod med ditt team med hjälp av GitHub. Få åtkomst till din lagringsplats med hjälp av de förinstallerade Git-klienterna: Git Bash och Git GUI.

  • Få åtkomst till Azure-data- och analystjänster som Azure Blob Storage, Azure Cosmos DB, Azure Synapse (tidigare SQL DW) och Azure SQL Database.

  • Skapa rapporter och en instrumentpanel med hjälp av Power BI Desktop-instansen som är förinstallerad på DSVM och distribuera dem i molnet.

  • Installera ytterligare verktyg på den virtuella datorn.

Anteckning

Ytterligare användningsavgifter gäller för många av de datalagrings- och analystjänster som anges i den här artikeln. Mer information finns på prissättningssidan för Azure .

Förutsättningar

Anteckning

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Använda Jupyter Notebooks

Jupyter Notebook tillhandahåller en webbläsarbaserad IDE för datautforskning och modellering. Du kan använda Python 2, Python 3 eller R i en Jupyter Notebook.

Starta Jupyter Notebook genom att välja ikonen Jupyter NotebookStart-menyn eller på skrivbordet. I DSVM-kommandotolken kan du också köra kommandot jupyter notebook från katalogen där du har befintliga anteckningsböcker eller där du vill skapa nya notebook-filer.

När du har startat Jupyter navigerar du till /notebooks katalogen till exempel notebook-filer som är förpaketerade i DSVM. Nu kan du:

  • Välj anteckningsboken för att se koden.
  • Kör varje cell genom att välja Skift+Retur.
  • Kör hela anteckningsboken genom att välja Cellkörning>.
  • Skapa en ny anteckningsbok genom att välja Jupyter-ikonen (övre vänstra hörnet), välja knappen Ny till höger och sedan välja notebook-språket (kallas även kernels).

Anteckning

Python 2.7, Python 3.6, R, Julia och PySpark-kernels i Jupyter stöds för närvarande. R-kerneln stöder programmering i både R med öppen källkod och Microsoft R.

När du är i notebook-filen kan du utforska dina data, skapa modellen och testa modellen med hjälp av ditt val av bibliotek.

Utforska data och utveckla modeller med Microsoft Machine Learning Server

Anteckning

Stödet för Machine Learning Server fristående upphör den 1 juli 2021. Vi tar bort den från DSVM-avbildningarna efter den 30 juni. Befintliga distributioner fortsätter att ha åtkomst till programvaran, men på grund av det nådde supportslutdatumet kommer det inte att finnas något stöd för det efter den 1 juli 2021.

Du kan använda språk som R och Python för att utföra dataanalys direkt på DSVM.

För R kan du använda R Tools för Visual Studio. Microsoft har tillhandahållit ytterligare bibliotek ovanpå CRAN R med öppen källkod för att möjliggöra skalbar analys och möjligheten att analysera data som är större än den minnesstorlek som tillåts i parallell segmentanalys.

För Python kan du använda en IDE som Visual Studio Community Edition, som har tillägget Python Tools for Visual Studio (PTVS) förinstallerat. Som standard konfigureras endast Python 3.6, conda-rotmiljön, på PTVS. Utför följande steg för att aktivera Anaconda Python 2.7:

  1. Skapa anpassade miljöer för varje version genom att gå till Verktyg>Python Tools>Python-miljöer och sedan välja + Anpassad i Visual Studio Community Edition.
  2. Ge en beskrivning och ange miljöprefixsökvägen som c:\anaconda\envs\python2 för Anaconda Python 2.7.
  3. Välj Automatisk identifiering>Använd för att spara miljön.

Mer information om hur du skapar Python-miljöer finns i PTVS-dokumentationen .

Nu har du konfigurerats för att skapa ett nytt Python-projekt. Gå till Fil>nytt>projekt>Python och välj den typ av Python-program som du skapar. Du kan ange Python-miljön för det aktuella projektet till önskad version (Python 2.7 eller 3.6) genom att högerklicka på Python-miljöer och sedan välja Lägg till/ta bort Python-miljöer. Mer information om hur du arbetar med PTVS finns i produktdokumentationen.

Hantera Azure-resurser

DSVM tillåter inte bara att du skapar din analyslösning lokalt på den virtuella datorn. Du kan också komma åt tjänster på Azure-molnplattformen. Azure tillhandahåller flera beräknings-, lagrings-, dataanalys- och andra tjänster som du kan administrera och komma åt från din DSVM.

För att administrera din Azure-prenumeration och dina molnresurser har du två alternativ:

Utöka lagringen med hjälp av delade filsystem

Dataexperter kan dela stora datamängder, kod eller andra resurser i teamet. DSVM har cirka 45 GB tillgängligt utrymme. Om du vill utöka lagringen kan du använda Azure Files och antingen montera den på en eller flera DSVM-instanser eller komma åt den via ett REST-API. Du kan också använda Azure Portal eller använda Azure PowerShell för att lägga till extra dedikerade datadiskar.

Anteckning

Det maximala utrymmet på den Azure Files resursen är 5 TB. Storleksgränsen för varje fil är 1 TB.

Du kan använda det här skriptet i Azure PowerShell för att skapa en Azure Files resurs:

# Authenticate to Azure.
Connect-AzAccount
# Select your subscription
Get-AzSubscription –SubscriptionName "<your subscription name>" | Select-AzSubscription
# Create a new resource group.
New-AzResourceGroup -Name <dsvmdatarg>
# Create a new storage account. You can reuse existing storage account if you want.
New-AzStorageAccount -Name <mydatadisk> -ResourceGroupName <dsvmdatarg> -Location "<Azure Data Center Name For eg. South Central US>" -Type "Standard_LRS"
# Set your current working storage account
Set-AzCurrentStorageAccount –ResourceGroupName "<dsvmdatarg>" –StorageAccountName <mydatadisk>

# Create an Azure Files share
$s = New-AzStorageShare <<teamsharename>>
# Create a directory under the file share. You can give it any name
New-AzStorageDirectory -Share $s -Path <directory name>
# List the share to confirm that everything worked
Get-AzStorageFile -Share $s

Nu när du har skapat en Azure Files resurs kan du montera den på valfri virtuell dator i Azure. Vi rekommenderar att du placerar den virtuella datorn i samma Azure-datacenter som lagringskontot för att undvika svarstider och dataöverföringsavgifter. Här är de Azure PowerShell kommandona för att montera enheten på DSVM:

# Get the storage key of the storage account that has the Azure Files share from the Azure portal. Store it securely on the VM to avoid being prompted in the next command.
cmdkey /add:<<mydatadisk>>.file.core.windows.net /user:<<mydatadisk>> /pass:<storage key>

# Mount the Azure Files share as drive Z on the VM. You can choose another drive letter if you want.
net use z:  \\<mydatadisk>.file.core.windows.net\<<teamsharename>>

Nu kan du komma åt den här enheten på samma sätt som vilken normal enhet som helst på den virtuella datorn.

Dela kod i GitHub

GitHub är en kodlagringsplats där du kan hitta kodexempel och källor för olika verktyg med hjälp av tekniker som delas av utvecklarcommunityn. Den använder Git som teknik för att spåra och lagra versioner av kodfilerna. GitHub är också en plattform där du kan skapa en egen lagringsplats för att lagra teamets delade kod och dokumentation, implementera versionskontroll och styra vem som har åtkomst till att visa och bidra med kod.

Besök GitHub-hjälpsidorna för mer information om hur du använder Git. Du kan använda GitHub som ett av sätten att samarbeta med ditt team, använda kod som utvecklats av communityn och bidra med kod tillbaka till communityn.

DSVM läses in med klientverktyg på kommandoraden och i GUI för att få åtkomst till GitHub-lagringsplatsen. Kommandoradsverktyget som fungerar med Git och GitHub kallas Git Bash. Visual Studio är installerat på DSVM och har Git-tilläggen. Du hittar ikoner för dessa verktyg på Start-menyn och på skrivbordet.

Om du vill ladda ned kod från en GitHub-lagringsplats använder git clone du kommandot . Om du till exempel vill ladda ned data science-lagringsplatsen som publicerats av Microsoft till den aktuella katalogen kan du köra följande kommando i Git Bash:

git clone https://github.com/Azure/DataScienceVM.git

I Visual Studio kan du utföra samma kloningsåtgärd. Följande skärmbild visar hur du kommer åt Git- och GitHub-verktyg i Visual Studio:

Skärmbild av Visual Studio där GitHub-anslutningen visas

Du hittar mer information om hur du använder Git för att arbeta med din GitHub-lagringsplats från resurser som är tillgängliga på github.com. Lathunden är en användbar referens.

Få åtkomst till Azures data- och analystjänster

Azure Blob Storage

Azure Blob Storage är en tillförlitlig, ekonomisk molnlagringstjänst för stora och små data. I det här avsnittet beskrivs hur du kan flytta data till Blob Storage och komma åt data som lagras i en Azure-blob.

Förutsättningar

  • Skapa ditt Azure Blob Storage-konto från Azure Portal.

    Skärmbild av processen för att skapa lagringskontot i Azure Portal

  • Bekräfta att kommandoradsverktyget AzCopy är förinstallerat: C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy\azcopy.exe. Katalogen som innehåller azcopy.exe finns redan i path-miljövariabeln, så du kan undvika att skriva den fullständiga kommandosökvägen när du kör verktyget. Mer information om AzCopy-verktyget finns i AzCopy-dokumentationen.

  • Starta verktyget Azure Storage Explorer. Du kan ladda ned den från Storage Explorer webbsida.

    Skärmbild av Azure Storage Explorer åtkomst till ett lagringskonto

Flytta data från en virtuell dator till en Azure-blob: AzCopy

Om du vill flytta data mellan dina lokala filer och Blob Storage kan du använda AzCopy på kommandoraden eller i PowerShell:

AzCopy /Source:C:\myfolder /Dest:https://<mystorageaccount>.blob.core.windows.net/<mycontainer> /DestKey:<storage account key> /Pattern:abc.txt

Ersätt C:\myfolder med sökvägen där filen lagras, mystorageaccount med namnet på bloblagringskontot, mycontainer med containernamnet och lagringskontonyckeln med din åtkomstnyckel för Blob Storage. Du hittar dina autentiseringsuppgifter för lagringskontot i Azure Portal.

Kör AzCopy-kommandot i PowerShell eller från en kommandotolk. Här är några exempel på användning av AzCopy-kommandot:

# Copy *.sql from a local machine to an Azure blob
"C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy\azcopy" /Source:"c:\Aaqs\Data Science Scripts" /Dest:https://[ENTER STORAGE ACCOUNT].blob.core.windows.net/[ENTER CONTAINER] /DestKey:[ENTER STORAGE KEY] /S /Pattern:*.sql

# Copy back all files from an Azure blob container to a local machine

"C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy\azcopy" /Dest:"c:\Aaqs\Data Science Scripts\temp" /Source:https://[ENTER STORAGE ACCOUNT].blob.core.windows.net/[ENTER CONTAINER] /SourceKey:[ENTER STORAGE KEY] /S

När du har kört AzCopy-kommandot för att kopiera till en Azure-blob visas filen i Azure Storage Explorer.

Skärmbild av lagringskontot som visar den uppladdade CSV-filen

Flytta data från en virtuell dator till en Azure-blob: Azure Storage Explorer

Du kan också ladda upp data från den lokala filen på den virtuella datorn med hjälp av Azure Storage Explorer:

  • Om du vill ladda upp data till en container väljer du målcontainern och sedan knappen Ladda upp. Skärmbild av uppladdningsknappen i Azure Storage Explorer
  • Välj ellipsen (...) till höger om rutan Filer , välj en eller flera filer att ladda upp från filsystemet och välj Ladda upp för att börja ladda upp filerna. Skärmbild av dialogrutan Ladda upp filer

Läsa data från en Azure-blob: Python ODBC

Du kan använda BlobService-biblioteket för att läsa data direkt från en blob i en Jupyter Notebook eller i ett Python-program.

Importera först de paket som krävs:

import pandas as pd
from pandas import Series, DataFrame
import numpy as np
import matplotlib.pyplot as plt
from time import time
import pyodbc
import os
from azure.storage.blob import BlobService
import tables
import time
import zipfile
import random

Anslut sedan dina autentiseringsuppgifter för Blob Storage-kontot och läs data från bloben:

CONTAINERNAME = 'xxx'
STORAGEACCOUNTNAME = 'xxxx'
STORAGEACCOUNTKEY = 'xxxxxxxxxxxxxxxx'
BLOBNAME = 'nyctaxidataset/nyctaxitrip/trip_data_1.csv'
localfilename = 'trip_data_1.csv'
LOCALDIRECTORY = os.getcwd()
LOCALFILE =  os.path.join(LOCALDIRECTORY, localfilename)

#download from blob
t1 = time.time()
blob_service = BlobService(account_name=STORAGEACCOUNTNAME,account_key=STORAGEACCOUNTKEY)
blob_service.get_blob_to_path(CONTAINERNAME,BLOBNAME,LOCALFILE)
t2 = time.time()
print(("It takes %s seconds to download "+BLOBNAME) % (t2 - t1))

#unzip downloaded files if needed
#with zipfile.ZipFile(ZIPPEDLOCALFILE, "r") as z:
#    z.extractall(LOCALDIRECTORY)

df1 = pd.read_csv(LOCALFILE, header=0)
df1.columns = ['medallion','hack_license','vendor_id','rate_code','store_and_fwd_flag','pickup_datetime','dropoff_datetime','passenger_count','trip_time_in_secs','trip_distance','pickup_longitude','pickup_latitude','dropoff_longitude','dropoff_latitude']
print 'the size of the data is: %d rows and  %d columns' % df1.shape

Data läse som en dataram:

Skärmbild av de första 10 raderna med data

Azure Synapse Analytics och databaser

Azure Synapse Analytics är ett elastiskt informationslager som en tjänst med en SQL Server upplevelse i företagsklass.

Du kan etablera Azure Synapse Analytics genom att följa anvisningarna i den här artikeln. När du har etablerat Azure Synapse Analytics kan du använda den här genomgången för att överföra, utforska och modellera data med hjälp av data i Azure Synapse Analytics.

Azure Cosmos DB

Azure Cosmos DB är en NoSQL-databas i molnet. Du kan använda den för att arbeta med dokument som JSON och för att lagra och köra frågor mot dokumenten.

Använd följande nödvändiga steg för att få åtkomst till Azure Cosmos DB från DSVM:

  1. Azure Cosmos DB Python SDK är redan installerat på DSVM. Om du vill uppdatera den kör pip install pydocumentdb --upgrade du från en kommandotolk.

  2. Skapa ett Azure Cosmos DB-konto och en databas från Azure Portal.

  3. Ladda ned datamigreringsverktyget för Azure Cosmos DB från Microsoft Download Center och extrahera till valfri katalog.

  4. Importera JSON-data (vulkandata) som lagras i en offentlig blob till Azure Cosmos DB med följande kommandoparametrar till migreringsverktyget. (Använd dtui.exe från katalogen där du installerade datamigreringsverktyget för Azure Cosmos DB.) Ange käll- och målplatsen med följande parametrar:

    /s:JsonFile /s.Files:https://data.humdata.org/dataset/a60ac839-920d-435a-bf7d-25855602699d/resource/7234d067-2d74-449a-9c61-22ae6d98d928/download/volcano.json /t:DocumentDBBulk /t.ConnectionString:AccountEndpoint=https://[DocDBAccountName].documents.azure.com:443/;AccountKey=[[KEY];Database=volcano /t.Collection:volcano1

När du har importerat data kan du gå till Jupyter och öppna anteckningsboken DocumentDBSample. Den innehåller Python-kod för att få åtkomst till Azure Cosmos DB och utföra vissa grundläggande frågor. Du kan lära dig mer om Azure Cosmos DB genom att gå till tjänstens dokumentationssida.

Använda Power BI-rapporter och instrumentpaneler

Du kan visualisera Volcano JSON-filen från föregående Azure Cosmos DB-exempel i Power BI Desktop för att få visuella insikter om data. Detaljerade anvisningar finns i Power BI-artikeln. Här är de övergripande stegen:

  1. Öppna Power BI Desktop och välj Hämta data. Ange URL:en som: https://cahandson.blob.core.windows.net/samples/volcano.json.
  2. Du bör se JSON-posterna som importerats som en lista. Konvertera listan till en tabell så att Power BI kan arbeta med den.
  3. Expandera kolumnerna genom att välja ikonen expandera (pil).
  4. Observera att platsen är ett postfält . Expandera posten och välj endast koordinaterna. Koordinaten är en listkolumn.
  5. Lägg till en ny kolumn för att konvertera listkoordinatkolumnen till en kommaavgränsad LatLong-kolumn . Sammanfoga de två elementen i koordinatlistfältet med hjälp av formeln Text.From([coordinates]{1})&","&Text.From([coordinates]{0}).
  6. Konvertera kolumnen Elevation till decimal och välj knapparna Stäng och Använd .

I stället för föregående steg kan du klistra in följande kod. Den skriver ut de steg som används i Avancerad redigerare i Power BI för att skriva datatransformationerna på ett frågespråk.

let
    Source = Json.Document(Web.Contents("https://cahandson.blob.core.windows.net/samples/volcano.json")),
    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"Volcano Name", "Country", "Region", "Location", "Elevation", "Type", "Status", "Last Known Eruption", "id"}, {"Volcano Name", "Country", "Region", "Location", "Elevation", "Type", "Status", "Last Known Eruption", "id"}),
    #"Expanded Location" = Table.ExpandRecordColumn(#"Expanded Column1", "Location", {"coordinates"}, {"coordinates"}),
    #"Added Custom" = Table.AddColumn(#"Expanded Location", "LatLong", each Text.From([coordinates]{1})&","&Text.From([coordinates]{0})),
    #"Changed Type" = Table.TransformColumnTypes(#"Added Custom",{{"Elevation", type number}})
in
    #"Changed Type"

Nu har du data i power BI-datamodellen. Din Power BI Desktop instans bör visas på följande sätt:

Power BI Desktop

Du kan börja skapa rapporter och visualiseringar med hjälp av datamodellen. Du kan följa stegen i den här Power BI-artikeln för att skapa en rapport.

Skala DSVM dynamiskt

Du kan skala upp och ned DSVM för att uppfylla projektets behov. Om du inte behöver använda den virtuella datorn på kvällen eller på helgerna kan du stänga av den virtuella datorn från Azure Portal.

Anteckning

Du debiteras beräkningsavgifter om du bara använder avstängningsknappen för operativsystemet på den virtuella datorn. I stället bör du frigöra din DSVM med hjälp av Azure Portal eller Cloud Shell.

Du kan behöva hantera vissa storskaliga analyser och behöver mer processor-, minnes- eller diskkapacitet. I så fall kan du hitta ett urval av VM-storlekar när det gäller CPU-kärnor, GPU-baserade instanser för djupinlärning, minneskapacitet och disktyper (inklusive solid state-enheter) som uppfyller dina beräknings- och budgetbehov. Den fullständiga listan över virtuella datorer, tillsammans med deras beräkningspriser per timme, finns på sidan med priser för Azure Virtual Machines.

Lägga till fler verktyg

Verktyg som är fördefinierade i DSVM kan hantera många vanliga dataanalysbehov. Detta sparar tid eftersom du inte behöver installera och konfigurera dina miljöer en i taget. Det sparar också pengar, eftersom du bara betalar för resurser som du använder.

Du kan använda andra Azure-data- och analystjänster som profileras i den här artikeln för att förbättra din analysmiljö. I vissa fall kan du behöva ytterligare verktyg, inklusive vissa egna partnerverktyg. Du har fullständig administrativ åtkomst på den virtuella datorn för att installera nya verktyg som du behöver. Du kan också installera ytterligare paket i Python och R som inte är förinstallerade. För Python kan du använda antingen conda eller pip. För R kan du använda install.packages() i R-konsolen eller använda IDE och välja Paket>Installera paket.

Deep learning

Förutom de ramverksbaserade exemplen kan du få en uppsättning omfattande genomgångar som har verifierats på DSVM. De här genomgångarna hjälper dig att komma igång med utvecklingen av djupinlärningsprogram i domäner som bild- och text-/språkförståring.

  • Köra neurala nätverk i olika ramverk: Den här genomgången visar hur du migrerar kod från ett ramverk till ett annat. Den visar också hur du jämför modeller 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: Bildidentifiering är en teknik som kan hitta och klassificera objekt i bilder. Denna teknik har potential att 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 har plockat upp 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 på datauppsättningen urbana ljud. Den ger också en översikt över hur du arbetar med ljuddata.

  • Klassificering av textdokument: Den här genomgången visar hur du skapar och tränar två neurala nätverksarkitekturer: Hierarkiskt uppmärksamhetsnätverk och LSTM-nätverk (Long Short Term Memory). Dessa neurala nätverk använder Keras API för djupinlärning för att klassificera textdokument.

Sammanfattning

I den här artikeln beskrivs några av de saker du kan göra i Microsoft Data Science Virtual Machine. Det finns många fler saker du kan göra för att göra DSVM till en effektiv analysmiljö.