Importera från Azure Blob Storage

Viktigt

Stödet för Machine Learning Studio (klassisk) upphör den 31 augusti 2024. Vi rekommenderar att du byter till Azure Machine Learning innan dess.

Från och med den 1 december 2021 kan du inte längre skapa nya Machine Learning Studio-resurser (klassisk). Du kan fortsätta att använda befintliga Machine Learning Studio-resurser (klassisk) till och med den 31 augusti 2024.

Dokumentationen om ML Studio (klassisk) håller på att dras tillbaka och kanske inte uppdateras i framtiden.

Det här avsnittet beskriver hur du använder modulen Importera data i Machine Learning Studio (klassisk) för att läsa data från Azure Blob Storage, så att du kan använda data i ett maskininlärningsexperiment.

Anteckning

Gäller endast för: Machine Learning Studio (klassisk)

Liknande dra och släpp-moduler är tillgängliga i Azure Machine Learning designer.

Azure Blob Service används för att lagra stora mängder data, inklusive binära data. Du kan komma åt Azure-blobar var du än är, antingen via HTTP eller HTTPS. Autentisering kan krävas beroende på typen av bloblagring.

  • Offentliga blobar kan nås av vem som helst eller av användare som har en SAS-URL.
  • Privata blobar kräver inloggning och autentiseringsuppgifter.

Import från Blob Storage kräver att data lagras i blobar som använder blockblobformatet . Filerna som lagras i bloben måste använda antingen kommaavgränsade (CSV) eller tabbavgränsade format (TSV). När du läser filen läses posterna och alla tillämpliga attributrubriker in som rader i minnet som en datauppsättning.

Anteckning

Importdata-modulen stöder inte anslutning Azure Blob Storage ett konto om alternativet "Säker överföring krävs" är aktiverat.

Andra begränsningar för vilka typer av bloblagring som stöds för användning med Machine Learning finns i avsnittet Tekniska anteckningar.

Tips

Behöver du importera data i ett format som inte stöds? Du kan använda Python eller R. Se det här exemplet i Azure AI Gallery: Läs in icke-textfil från Azure Blob Storage

Så här importerar du data från Azure-blobar

Vi rekommenderar starkt att du profilerar dina data innan du importerar för att säkerställa att schemat är som förväntat. Importen genomsöker ett visst antal huvudrader för att fastställa schemat, men senare rader kan innehålla extra kolumner eller data som orsakar fel.

Använd guiden Importera data

Modulen innehåller en ny guide som hjälper dig att välja ett lagringsalternativ, välja bland befintliga prenumerationer och konton och snabbt konfigurera alla alternativ.

  1. Lägg till modulen Importera data i experimentet. Du hittar modulen i Studio (klassisk) i kategorin Indata och utdata .

  2. Klicka på Starta guiden Importera data och följ anvisningarna.

  3. När konfigurationen är klar högerklickar du på modulen för att kopiera data till experimentet och väljer Kör valda.

Om du behöver redigera en befintlig dataanslutning läser guiden in all tidigare konfigurationsinformation så att du inte behöver börja om från början.

Ange egenskaper manuellt i modulen Importera data

Följande steg beskriver hur du konfigurerar importkällan manuellt.

  1. Lägg till modulen Importera data i experimentet. Du hittar den här modulen i Studio (klassisk) i kategorin Indata och utdata .

  2. För Datakälla väljer du Azure Blob Storage.

  3. För Autentiseringstyp väljer du Offentlig (SAS-URL) om du vet att informationen har angetts som en offentlig datakälla. En SAS-URL är en tidsbunden URL för offentlig åtkomst som du kan generera med hjälp av ett Azure Storage-verktyg.

    Annars väljer du Konto.

  4. Om dina data finns i en offentlig blob som kan nås med hjälp av en SAS-URL behöver du inte ytterligare autentiseringsuppgifter eftersom URL-strängen innehåller all information som behövs för nedladdning och autentisering.

    I fältet URI skriver eller klistrar du in den fullständiga URI som definierar kontot och den offentliga bloben.

    Anteckning

    På en sida som är tillgänglig via SAS-URL kan data lagras med endast följande format: CSV, TSV och ARFF.

  5. Om dina data finns i ett privat konto måste du ange autentiseringsuppgifter, inklusive kontonamnet och nyckeln.

    • I Kontonamn skriver eller klistrar du in namnet på det konto som innehåller den blob som du vill komma åt.

      Om den fullständiga URL:en för lagringskontot till exempel är https://myshared.blob.core.windows.netskriver du myshared.

    • För Kontonyckel klistrar du in lagringsåtkomstnyckeln som är associerad med kontot.

      Om du inte känner till åtkomstnyckeln kan du läsa avsnittet "Hantera dina Azure-lagringskonton" i den här artikeln: Om Azure Storage-konton.

  6. I Sökväg till container, katalog eller blob anger du namnet på den specifika blob som du vill hämta.

    Om du till exempel har laddat upp en fildata01.csv till containern trainingdata i ett konto med namnet mymldata blir den fullständiga URL:en för filen: https://mymldata.blob.core.windows.net/trainingdata/data01.txt.

    I fältet Sökväg till container, katalog eller blob skulle du därför skriva: trainingdata/data01.csv

    Om du vill importera flera filer kan du använda jokertecken * (asterisk) eller ? (frågetecken).

    Om containern trainingdata till exempel innehåller flera filer med ett kompatibelt format kan datadu använda följande specifikation för att läsa alla filer som börjar med och sammanfoga dem i en enda datauppsättning:

    trainingdata/data*.csv

    Du kan inte använda jokertecken i containernamn. Om du behöver importera filer från flera containrar använder du en separat instans av modulen Importera data för varje container och sammanfogar sedan datauppsättningarna med hjälp av modulen Lägg till rader.

    Anteckning

    Om du har valt alternativet Använd cachelagrade resultat utlöser inte ändringar som du gör i filerna i containern en uppdatering av data i experimentet.

  7. För Blob-filformat väljer du ett alternativ som anger formatet för de data som lagras i bloben, så att Machine Learning kan bearbeta data på rätt sätt. Följande format stöds:

    • CSV: Kommaavgränsade värden (CSV) är standardlagringsformatet för export och import av filer i Machine Learning. Om data redan innehåller en rubrikrad måste du välja alternativet Fil har rubrikrad, annars behandlas rubriken som en datarad.

      Mer information om DET CSV-format som används i Machine Learning finns i [Konvertera till CSV](konvertera till csv.md

    • TSV: Tabbavgränsade värden (TSV) är ett format som används av många maskininlärningsverktyg. Om data redan innehåller en rubrikrad måste du välja alternativet Fil har rubrikrad, annars behandlas rubriken som en datarad.

      Mer information om TSV-formatet som används i Machine Learning finns i Konvertera till TSV.

    • ARFF: Det här formatet stöder import av filer i det format som används av Weka-verktygsuppsättningen. Mer information finns i Konvertera till ARFF.

    • CSV med en angiven kodning: Använd det här alternativet för CSV-filer som kan ha förberetts med en annan fältavgränsare, eller om källan kan ha använt en annan teckenkodning än UTF-8. Det här formatet stöds inte för filer som lagras i en SAS-URL.

    • Excel: Använd det här alternativet om du vill läsa data Excel arbetsböcker som lagras i Azure Blob Storage. Formatet Excel stöds inte för filer som lagras i en SAS-URL.

  8. För CSV-filer med särskilda kodningar anger du följande ytterligare alternativ för att styra korrekt import av tecknen:

    • Kommaavgränsarformat: Välj från en lista med vanliga tecken som används som fältavgränsare, , inklusive kommatecken och semikolon ;.

    • Kodningsformat: Välj den teckenkodning som används av den fil som du vill läsa. I avsnittet Teknisk information finns en lista över kodningar som stöds.

    • Filen har rubrikrad: Välj det här alternativet om data redan innehåller en rubrikrad. Annars importeras rubriken som en datarad.

  9. När Excel har specificerat kontot och containern där Excel-filen lagras måste du ange Excel-format och intervall eller tabellnamn med hjälp av följande alternativ:

    • Excel dataformat: Ange om data finns i Excel kalkylbladsintervall eller i en Excel tabell.

    • Excel eller inbäddad tabell: Om du väljer alternativet Excel-blad anger du namnet på kalkylbladet (fliknamnet) eller en tabell som är inbäddad i arbetsboken. Alla data från bladet läses. du kan inte ange ett cellområde. Om du väljer Excel tabellalternativet måste du hämta tabellnamnet och inte arknamnet, även om det bara finns en tabell på ett blad. Om du vill visa tabellnamnet klickar du i tabellen och visar sedan egenskapen Tabellnamnfliken Tabellverktyg .

  10. Kör experimentet.

Exempel

Information om hur du använder data från Azure Blob Storage i maskininlärningsexperiment finns i Azure-galleriet:

Teknisk information

Det här avsnittet innehåller implementeringsinformation, tips och svar på vanliga frågor.

Vanliga frågor

Finns det något sätt att automatisera dataimporten?

Det finns en mängd olika sätt att hämta nya data och använda dem för att regelbundet uppdatera ett experiment. Mycket beror på var källdata kommer från och vilka verktyg du föredrar för dataförflyttning. i de här artiklarna finns några idéer.

För att automatisera körningen av experimentet krävs vanligtvis att du skapar en webbtjänst, som sedan kan utlösas av en schemaläggare, PowerShell eller annan anpassad kod.

Varför fick jag ett felmeddelande när jag försökte läsa indata från en befintlig blob?

Det finns flera möjliga problem:

  • Bloben använder ett format som inte stöds
  • Själva kontot skapades med ett alternativ som ännu inte stöds av Machine Learning.

Format som inte stöds: Vid läsning från Azure Blob Storage kräver Machine Learning för närvarande att bloben använder blockblobformatet, vilket gör att du kan ladda upp stora blobar effektivt. Om du till exempel laddar upp en CSV-fil till bloblagring lagras filen som en blockblob. Men när du skapar en blobfil programmatiskt kanske du genererar en annan typ av blob, till exempel typen AppendBlob, som inte stöds.

Som en tillfällig lösning rekommenderar vi att du använder blockblobtypen .

Viktigt

När bloben har skapats kan typen inte ändras.

Mer information finns i Förstå blockblobar, tilläggsblobbar och sidblobar.

Kontotyp som inte stöds: Import- och exportmodulerna kan endast läsa och skriva data från Azure Storage-konton som har skapats med den klassiska distributionsmodellen. Med andra ord stöds inte den Azure Blob Storage lagringskontotyp som erbjuder en åtkomstnivå för både snabb och kall lagring ännu. I allmänhet bör inte azure-lagringskonton som du har skapat innan det här tjänstalternativet blev tillgängligt påverkas.

Om du behöver skapa ett nytt konto för användning med Machine Learning väljer du Klassisk som Distributionsmodell eller ResourceManager. För Typ av konto väljer du Generell användning i stället för Blob Storage.

Hur undviker jag att läsa in samma data i onödan igen?

Om dina källdata ändras kan du uppdatera datauppsättningen och lägga till nya data genom att köra Importera data igen. Men om du inte vill läsa från källan varje gång du kör experimentet väljer du alternativet Använd cachelagrade resultat till TRUE. När det här alternativet är inställt på TRUE kontrollerar modulen om experimentet har körts tidigare med samma källa och samma indataalternativ, och om en tidigare körning hittas används data i cacheminnet i stället för att läsa in data från källan igen.

Kan jag filtrera data när de läses från källan?

Modulen Importera data stöder inte filtrering eftersom data läses.

När du har läst in data i Machine Learning Studio (klassisk) kan du ändra data med följande verktyg:

  • Använd ett anpassat R-skript för att filtrera eller transformera data.

  • Använd modulen Dela data med ett relativt uttryck eller ett reguljärt uttryck för att isolera de data du vill ha och spara dem sedan som en datauppsättning.

Om du upptäcker att du har läst in mer data än du behöver kan du skriva över datauppsättningen genom att läsa in en ny datauppsättning och ange att den ska sparas med samma namn som äldre, större data.

Varför lägger importen till en extra rad i slutet av min datauppsättning när den hittar en avslutande ny rad?

Om modulen Importera data påträffar en rad med data som följs av en tom rad eller ett avslutande nytt radtecken, läggs en extra rad som innehåller saknade värden till i slutet av tabellen.

Anledningen till att tolka en avslutande ny rad som en ny rad är att Importera data inte kan fastställa skillnaden mellan en faktisk tom rad och en tom rad som skapas av användaren genom att trycka på RETUR i slutet av en fil.

Eftersom vissa maskininlärningsalgoritmer stöder saknade data och därför behandlar den här raden som ett fall (som i sin tur kan påverka resultaten), bör du använda Rensa saknade data för att söka efter saknade värden och ta bort dem efter behov.

Innan du söker efter tomma rader kanske du också vill separera den sista tomma raden från andra rader med partiella saknade värden, som kan representera faktiska saknade värden i källdata. Om du vill göra detta kan du dela datauppsättningen med hjälp av Dela data. Välj alternativet Välj huvud-N rader för att läsa alla rader utom den sista raden.

Vad händer om du importerar data som lästs in från olika geografiska regioner?

Om blob- eller tabellagringskontot finns i en annan region än beräkningsnoden som används för machine learning-experimentet kan dataåtkomsten vara långsammare. Dessutom debiteras du för in- och utgående data i prenumerationen.

Varför visas inte vissa tecken i källfilen korrekt i rubriken?

Machine Learning stöder vanligtvis UTF-8-kodning. Om källfilen använder en annan typ av kodning kanske inte tecknen importeras korrekt.

Om du har problem med att läsa in data korrekt kan du prova att använda alternativet CSV med kodning och ange parametrar för anpassade avgränsare, teckensidan och så vidare.

Finns det några förbjudna tecken eller tecken som ändras under importen?

Om attributdata innehåller citattecken eller sekvenser med övertryckstecken hanteras de med hjälp av reglerna för sådana tecken i Microsoft Excel. Alla andra tecken hanteras med hjälp av följande specifikationer som riktlinje: RFC 4180.

Storleksgränsen för att ladda upp lokala datauppsättningar direkt till Machine Learning är 1,98 GB. Med mycket stora filer kan det ta lång tid att lägga till datauppsättningen i experimentkontot.

  • Beräkna 10 minuter eller mer per GB data.
  • Optimera prestandan genom att använda ett lagringskonto i samma region som Azure ML-tjänsten använder.

Om du vill ladda upp större filer, upp till 10 GB, finns det flera metoder:

  • Använd en komprimerad fil. Du kan ladda upp datauppsättningar till Azure ML Studio (klassisk) i zippat format och sedan använda modulen Packa upp komprimerade datauppsättningar för att packa upp och spara datauppsättningen. Komprimerade datauppsättningar kan också packas upp med hjälp av modulen Kör R-skript , men prestandan kan vara begränsad.

  • Använd ett snabbt Azure-verktyg som AzCopy. Mellanlagring av data för Microsoft Azure Blob Storage ett verktyg som AzCopy. Använd sedan modulen Importera data för att importera data från Blob Storage till Studio (klassisk).

    Följande kod visar till exempel AzCopy-syntaxen för skrivning till bloblagring.

    cd "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy"
    .\AzCopy.exe /Source:C:\LocalFolder /Dest:https://mystorage.blob.core.windows.net/mycontainer /DestKey:MyStorageAccountKey /Pattern:myfile.csv
    

Jag importerade en CSV-fil med en angiven kodning, men texten visas inte korrekt när jag använder alternativet för att visualisera. Varför?

För uppladdade datauppsättningar stöder Machine Learning endast UTF-8. Modulen Importera data stöder dock ytterligare kodningsformat. När du har importerat en fil med något av dessa format kanske du därför upptäcker att tecknen inte visas korrekt. Lösningen är att konvertera kodningen till UTF-8 med någon av följande metoder:

  • Spara importerade data som en datauppsättning. (Användning av en sparad datauppsättning i stället för CSV-data kan också förbättra prestanda.)

  • Om du använder datauppsättningen i modulen Execute R Script (Kör R-skript ) kan du framtvinga rätt kodning med hjälp av skript som detta:

    dataset <- maml.mapInputPort(1)
    Encoding(dataset$city) <- "UTF-8"
    maml.mapOutputPort("dataset")
    

    Du kan sedan använda Visualize (Visualisera) i utdata från modulen Execute R Script (Kör R-skript) och kontrollera att tecknen visas korrekt.

Vilka alternativ har jag för att importera textfiler? CSV-filen är inte lämplig för mina data.

Det är alltid en utmaning att bearbeta och rensa ostrukturerad text så att den får plats i kolumner. Men om du behöver importera kolumner med textdata innebär TSV-formatet ofta färre problem, även om du fortfarande måste söka efter överflödiga tabbtecken i förväg.

Vi rekommenderar att du granskar mallen Textklassificering i Azure AI Gallery för att se ett exempel på textinmatning och bearbetning i Machine Learning Studio (klassisk).

Anpassad kodning för CSV-filer

Tidiga versioner av modulen Importera data hade inte stöd för vissa typer av giltiga CSV-filer. Till exempel innehåller data som exporteras Excel ibland tecken som hindrade filen från att parsa korrekt.

För att ge stöd för ett bredare möjligt antal avgränsare och teckenformat har Import Data nu stöd för att välja avgränsare och kodningsformat. Om du använder alternativet CSV med kodning blir resultatet en mer robust och effektiv parsning av CSV-filen.

Du kan använda följande teckenkodning:

Typ Kodning
Unicode Unicode (UTF-8)

Unicode

Unicode (UTF-32)

Unicode (UTF-7)
CJYK Traditionell kinesiska (Big5)

Förenklad kinesiska (GB2312)

Förenklad kinesiska (Mac)

Förenklad kinesiska (GB2312-80)

Förenklad kinesiska (ISO-2022)

Förenklad kinesiska (GB18030)

Japanska (JIS)

Koreanska (ISO)

Koreanska (Mac)
Övrigt Västeuropeisk (Windows)

Väst europeiska (ISO)

Hebreiska (ISO-Visual)

US ASCII

Tips

När CSV-importen är klar rekommenderar vi att du sparar importerade filer som en datauppsättning för att säkerställa att importerade data använder UTF-8-kodningen i experimentet.

Datatypsreferens i CSV- och TSV-format

När modulen Importera data läser in data från en CSV- eller TSV-fil i Azure Blob Storage letar en typ gissare efter kategoriska eller numeriska data i källfilen och representerar den identifierade typen i metadata för den nya datauppsättningen.

Du kan dock åsidosätta resultatet av typ gissaren genom att redigera kolumnattributen i modulen Redigera metadata när data har lästs in.

Modulparametrar

Allmänna alternativ

Name Intervall Typ Standardvärde Description
Datakälla Lista Datakälla eller mottagare Azure Blob Storage Datakällan kan vara HTTP, FTP, anonym HTTPS eller FTPS, en fil i Azure BLOB Storage, en Azure-tabell, en Azure SQL Database, en lokal SQL Server-databas, en Hive-tabell eller en OData-slutpunkt.
Autentiseringstyp PublicOrSas/Konto Sträng Konto Ange om data är i en offentlig container som kan nås via SAS-URL eller finns i ett privat lagringskonto som kräver autentisering för åtkomst.
Använda cachelagrade resultat TRUE/FALSE Boolesk FALSE Välj för att undvika att läsa in data mellan körningar

Offentlig lagring eller SAS – Alternativ för offentlig lagring

Name Intervall Typ Standardvärde Description
URI valfri Sträng inget HDFS-restslutpunkt
Filformat ARFF, CSV eller TSV Sträng CSV Välj ett av de format som stöds
URI har rubrikrad Boolesk TRUE/FALSE TRUE Sant om filen innehåller en rubrikrad. Om det är False används den första raden med data som kolumnrubriker

Konto – Alternativ för privat lagring

Name Intervall Typ Standardvärde Description
Kontonamn valfri Sträng inget Ange namnet på lagringskontot
Kontonyckel valfri SecureString inget Klistra in kontonyckeln
Sökväg till container, katalog eller blob valfri Sträng Ej tillämpligt Ange containern eller katalognamnet
Blobfilformat ARFF, CSV eller TSV Sträng CSV Välj ett av de format som stöds
Filen har rubrikrad valfri Sträng Sant Azure Storage-kontonamn

Utdata

Namn Typ Description
Resultatdatauppsättning Datatabell Datauppsättning med importerade data

Undantag

Undantag Description
Fel 0027 Ett undantag inträffar när två objekt måste ha samma storlek, men de inte är det.
Fel 0003 Ett undantag inträffar om en eller flera indata är null eller tomma.
Fel 0029 Ett undantag inträffar när en ogiltig URI skickas.
Fel 0030 ett undantag inträffar i när det inte går att ladda ned en fil.
Fel 0002 Ett undantag inträffar om en eller flera parametrar inte kunde parsas eller konverteras från den angivna typen till den typ som krävs av målmetoden.
Fel 0009 Ett undantag inträffar om namnet på Azure-lagringskontot eller containernamnet har angetts felaktigt.
Fel 0048 Ett undantag inträffar när det inte går att öppna en fil.
Fel 0046 Ett undantag inträffar när det inte går att skapa en katalog på den angivna sökvägen.
Fel 0049 Ett undantag inträffar när det inte går att parsa en fil.

En lista över fel som är specifika för Studio-moduler (klassisk) finns i Machine Learning felkoder.

En lista över API-undantag finns i Machine Learning REST API felkoder.

Se även

Importera data
Exportera data
Importera från webb-URL via HTTP
Importera från Hive-fråga
Importera från Azure SQL Database
Importera från Azure Table
Importera från dataflödesproviders
Importera från lokal SQL Server databas