GILT FÜR:
Azure CLI ML-Erweiterung v2 (aktuell)
Python-SDK azure-ai-ml v2 (aktuell)
In diesem Artikel erfahren Sie, wie Sie Daten aus externen Quellen in die Azure Machine Learning-Plattform importieren. Ein erfolgreicher Datenimport erstellt und registriert automatisch eine Azure Machine Learning-Datenressource mit dem Namen, den Sie während dieses Imports angeben. Azure Machine Learning-Datenobjekte ähneln Lesezeichen (Favoriten) in Webbrowsern. Sie müssen sich keine langen Speicherpfade (URIs) merken, die auf Ihre am häufigsten verwendeten Daten verweisen. Stattdessen können Sie ein Datenobjekt erstellen und dann mithilfe eines benutzerfreundlichen Namens auf dieses Objekt zugreifen.
Ein Datenimport erstellt einen Cache der Quelldaten sowie Metadaten für einen schnelleren und zuverlässigeren Datenzugriff in Azure Machine Learning-Schulungsaufträgen. Der Datencache vermeidet Netzwerk- und Verbindungseinschränkungen. Die zwischengespeicherten Daten verfügen über eine Versionsverwaltung, um die Reproduzierbarkeit zu unterstützen. Dieses Feature bietet Versionsverwaltungsfunktionen für Daten, die aus SQL Server-Quellen importiert wurden. Darüber hinaus geben die zwischengespeicherten Daten die Datenherkunft für Überprüfungsaufgaben an. Ein Datenimport verwendet Azure Data Factory (ADF)-Pipelines hinter den Kulissen, was bedeutet, dass Sie komplexe Interaktionen mit ADF vermeiden können. Azure Machine Learning behandelt auch die Verwaltung der Größe des ADF-Computeressourcenpools, die Computeressourcenbereitstellung und den Abriss. Diese Verwaltung optimiert die Datenübertragung durch die Bestimmung der richtigen Parallelisierung.
Die übertragenen Daten werden partitioniert und sicher als Parquet-Dateien in Azure Storage gespeichert. Dieser Speicher ermöglicht eine schnellere Verarbeitung während der Schulung. ADF-Computekosten entstehen nur für die Zeit, die für Datenübertragungen verwendet wird. Speicherkosten entstehen nur für die Zeit, die zum Zwischenspeichern der Daten erforderlich ist, da zwischengespeicherte Daten eine Kopie der Daten sind, die aus einer externen Quelle importiert werden. Azure Storage hostet diese externe Quelle.
Das Cachefeature umfasst Vorabkosten für Compute und Speicher. Es macht sich jedoch bezahlt und kann Geld sparen, da es die wiederkehrenden Kosten für Computeressourcen für Trainings im Vergleich zu direkten Verbindungen zu externen Quelldaten während eines Trainings reduziert. Daten werden als Parquet-Dateien zwischengespeichert, wodurch das Auftragstraining schneller und zuverlässiger gegenüber Verbindungstimeouts für größere Datasets wird. Diese Zwischenspeicherung führt zu weniger Wiederholungen und weniger Schulungsfehlern.
Sie können Daten aus Amazon S3, Azure SQL und Snowflake importieren.
Wichtig
Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar.
Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
Voraussetzungen
Sie benötigen Folgendes, um Datenressourcen zu erstellen und zu nutzen:
Hinweis
Überprüfen Sie bei einem erfolgreichen Datenimport, ob Sie das neueste Azure-ai-ml-Paket (Version 1.31.0 oder höher) für SDK und die ml-Erweiterung (Version 2.37.0 oder höher) installiert haben. Python 3.9 oder höher ist erforderlich.
Wenn Sie über ein älteres SDK-Paket oder eine ältere CLI-Erweiterung verfügen, entfernen Sie das alte Paket und installieren Sie das neue, indem Sie den im entsprechenden Reiter gezeigten Code verwenden. Befolgen Sie die hier gezeigten Anweisungen für SDK und CLI:
Codeversionen
az extension remove -n ml
az extension add -n ml --yes
az extension show -n ml #(the version value needs to be 2.37.0 or later)
pip install azure-ai-ml
pip show azure-ai-ml #(the version value needs to be 1.31.0 or later)
Importieren aus einer externen Datenbank als mltable-Datenressource
Hinweis
Externe Datenbanken umfassen Snowflake und Azure SQL.
Die folgenden Codebeispiele können Daten aus externen Datenbanken importieren. Die connection, die die Importaktion verarbeitet, bestimmt die Metadaten der externen Datenbankdatenquelle. In diesem Beispiel importiert der Code Daten aus einer Snowflake-Ressource. Die Verbindung verweist auf eine Snowflake-Quelle. Mit einer kleinen Änderung kann die Verbindung auf eine Azure SQL-Datenbankquelle oder eine andere unterstützte Datenbankquelle verweisen. Das aus einer externen Datenbankquelle importierte Medienobjekt „type“ ist mltable.
Erstellen Sie die YAML-Datei <file-name>.yml:
$schema: http://azureml/sdk-2-0/DataImport.json
# Supported connections include:
# Connection: azureml:<workspace_connection_name>
# Supported paths include:
# Datastore: azureml://datastores/<data_store_name>/paths/<my_path>/${{name}}
type: mltable
name: <name>
source:
type: database
query: <query>
connection: <connection>
path: <path>
Führen Sie als nächstes in der CLI den folgenden Befehl aus:
> az ml data import -f <file-name>.yml
from azure.ai.ml.entities import DataImport
from azure.ai.ml.data_transfer import Database
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
# Supported connections include:
# Connection: azureml:<workspace_connection_name>
# Supported paths include:
# path: azureml://datastores/<data_store_name>/paths/<my_path>/${{name}}
ml_client = MLClient.from_config(credential=DefaultAzureCredential())
data_import = DataImport(
name="<name>",
source=Database(connection="<connection>", query="<query>"),
path="<path>"
)
ml_client.data.import_data(data_import=data_import)
Hinweis
Das hier gezeigte Beispiel beschreibt den Prozess für eine Snowflake-Datenbank. Dieser Prozess deckt jedoch andere externe Datenbankformate ab, z. B. Azure SQL usw.
Wechseln Sie zum Azure Machine Learning-Studio.
Wählen Sie unter Ressourcen im linken Navigationsbereich die Option Daten aus. Wählen Sie als Nächstes die Registerkarte Datenimport aus. Wählen Sie dann „Erstellen“ aus, wie in diesem Screenshot gezeigt:
Wählen Sie auf dem Bildschirm „Datenquelle“ die Option „Snowflake“ und dann „Weiter“ aus, wie in diesem Screenshot gezeigt:
Geben Sie auf dem Bildschirm „Datentyp“ die Werte ein. Der Wert Typ ist standardmäßig Tabelle (mltable) festgelegt. Wählen Sie dann „Weiter“ aus, wie in diesem Screenshot gezeigt:
Geben Sie auf dem Bildschirm " Datenimport erstellen " die Werte ein, und wählen Sie "Weiter" aus, wie im folgenden Screenshot gezeigt:
Füllen Sie die Werte im Ausgabebildschirm "Einen Datenspeicher auswählen " aus, und wählen Sie "Weiter" aus, wie im folgenden Screenshot gezeigt.
Vom Arbeitsbereich verwalteter Datenspeicher ist standardmäßig ausgewählt. Der Pfad wird automatisch vom System zugewiesen, wenn Sie verwalteten Datenspeicher auswählen. Wenn Sie Vom Arbeitsbereich verwalteter Datenspeicher auswählen, wird die Dropdownliste Einstellung für automatisches Löschen angezeigt. Das standardmäßige Datenlöschzeitfenster beträgt 30 Tag. Wie Sie diesen Wert ändern können, wird in Verwalten importierter Datenbestände erläutert.
Hinweis
Um Ihren eigenen Datenspeicher auszuwählen, wählen Sie Andere Datenspeicher aus. In diesem Fall müssen Sie den Pfad für den Speicherort des Datencaches auswählen.
Sie können einen Zeitplan hinzufügen. Wählen Sie "Zeitplan hinzufügen" aus, wie im folgenden Screenshot gezeigt:
Ein neuer Bereich wird geöffnet, in dem Sie einen Serienzeitplan oder einen Cronzeitplan definieren können. Dieser Screenshot zeigt den Bereich für einen Serien-Zeitplan:
-
Name: Der eindeutige Bezeichner des Zeitplans im Arbeitsbereich
-
Beschreibung: die Beschreibung des Zeitplans.
-
Auslöser: das Wiederholungsmuster des Zeitplans mit den folgenden Eigenschaften.
-
Zeitzone: Die Berechnung der Auslösezeit basiert auf dieser Zeitzone; standardmäßig koordinierte Weltzeit (Coordinated Universal Time, UTC).
-
Wiederholung oder Cron-Ausdruck: Wählen Sie „Wiederholung“ aus, um das Wiederholungsmuster anzugeben. Unter Serie können Sie die Wiederholungshäufigkeit in Minuten, Stunden, Tagen, Wochen oder Monaten angeben.
-
Start: Der Zeitplan wird an diesem Datum erstmals aktiv. Standardmäßig das Erstellungsdatum dieses Zeitplans.
-
Ende: Der Zeitplan wird nach diesem Datum inaktiv. Standardmäßig ist es NONE, was bedeutet, dass der Zeitplan immer aktiv ist, bis Sie ihn manuell deaktivieren.
-
Tags: die ausgewählten Zeitplantags.
Hinweis
Start gibt das Startdatum und die Startzeit mit der Zeitzone des Zeitplans an. Wenn Sie "Start" weglassen, entspricht die Startzeit der Zeitplanerstellungszeit. Wenn die Startzeit in der Vergangenheit liegt, wird der erste Job zur nächsten berechneten Laufzeit ausgeführt.
Der folgende Screenshot zeigt den letzten Bildschirm dieses Prozesses. Überprüfen Sie Ihre Auswahl, und wählen Sie "Erstellen" aus. Wählen Sie auf diesem Bildschirm und den anderen Bildschirmen in diesem Prozess "Zurück " aus, um zu früheren Bildschirmen zu wechseln, um Die Auswahl von Werten zu ändern.
Der folgende Screenshot zeigt den Bereich für einen Cron-Zeitplan :
Name: Der eindeutige Bezeichner des Zeitplans im Arbeitsbereich
Beschreibung: die Beschreibung des Zeitplans.
Auslöser: das Wiederholungsmuster des Zeitplans mit den folgenden Eigenschaften.
Zeitzone: Die Berechnung der Auslösezeit basiert auf dieser Zeitzone; standardmäßig koordinierte Weltzeit (Coordinated Universal Time, UTC).
Wiederholung oder Cron-Ausdruck: Wählen Sie „Cron-Ausdruck“ aus, um die Crondetails anzugeben.
(Erforderlich)expression verwendet einen standardmäßigen Crontab-Ausdruck, um einen wiederkehrenden Zeitplan auszudrücken. Ein einzelner Ausdruck besteht aus fünf durch Leerzeichen getrennten Feldern:
MINUTES HOURS DAYS MONTHS DAYS-OF-WEEK
Ein einzelner Platzhalter (*), der alle Werte für das Feld abdeckt. Ein * für „Tage“ bedeutet also alle Tage eines Monats (was je nach Monat und Jahr variiert).
Der expression: "15 16 * * 1" im obigen Beispiel bedeutet 16:15 Uhr an jedem Montag.
Die nächste Tabelle listet die gültigen Werte für jedes Feld auf:
| Feld |
Range |
Kommentar |
MINUTES |
0-59 |
- |
HOURS |
0-23 |
- |
DAYS |
- |
Wird nicht unterstützt. Der Wert wird ignoriert und als * behandelt. |
MONTHS |
- |
Wird nicht unterstützt. Der Wert wird ignoriert und als * behandelt. |
DAYS-OF-WEEK |
0 - 6 |
Null (0) bedeutet Sonntag. Namen von Tagen werden ebenfalls akzeptiert. |
Weitere Informationen zur Verwendung von Crontab-Ausdrücken finden Sie im Wiki für Crontab-Ausdrücke auf GitHub.
Wichtig
DAYS und MONTH werden nicht unterstützt. Wenn Sie einen dieser Werte übergeben, werden sie ignoriert als *.
-
Start: Der Zeitplan wird an diesem Datum erstmals aktiv. Standardmäßig das Erstellungsdatum dieses Zeitplans.
-
Ende: Der Zeitplan wird nach diesem Datum inaktiv. Standardmäßig ist es NONE, was bedeutet, dass der Zeitplan immer aktiv ist, bis Sie ihn manuell deaktivieren.
-
Tags: die ausgewählten Zeitplantags.
Hinweis
Start gibt das Startdatum und die Startzeit mit der Zeitzone des Zeitplans an. Wenn Sie "Start" weglassen, entspricht die Startzeit der Zeitplanerstellungszeit. Wenn die Startzeit in der Vergangenheit liegt, wird der erste Job zur nächsten berechneten Laufzeit ausgeführt.
Der folgende Screenshot zeigt den letzten Bildschirm dieses Prozesses. Überprüfen Sie Ihre Auswahl, und wählen Sie "Erstellen" aus. Wählen Sie auf diesem Bildschirm und den anderen Bildschirmen in diesem Prozess "Zurück " aus, um zu früheren Bildschirmen zu wechseln, um Die Auswahl von Werten zu ändern.
Importieren von Daten aus einem externen Dateisystem als Ordnerdatenobjekt
Hinweis
Eine Amazon S3-Datenressource kann als externe Dateisystemressource dienen.
Die connection, die die Datenimportaktion verarbeitet, legt die Aspekte der externen Datenquelle fest. Die Verbindung definiert einen Amazon S3-Bucket als Ziel. Die Verbindung erwartet einen gültigen path-Wert. Ein aus einer externen Dateisystemquelle importierter Objektwert hat einen type von uri_folder.
Im nächsten Codebeispiel werden Daten aus einer Amazon S3-Ressource importiert.
Erstellen Sie die YAML-Datei <file-name>.yml:
$schema: http://azureml/sdk-2-0/DataImport.json
# Supported connections include:
# Connection: azureml:<workspace_connection_name>
# Supported paths include:
# path: azureml://datastores/<data_store_name>/paths/<my_path>/${{name}}
type: uri_folder
name: <name>
source:
type: file_system
path: <path_on_source>
connection: <connection>
path: <path>
Führen Sie als nächstes diesen Befehl in der CLI aus:
> az ml data import -f <file-name>.yml
from azure.ai.ml.entities import DataImport
from azure.ai.ml.data_transfer import FileSystem
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
# Supported connections include:
# Connection: azureml:<workspace_connection_name>
# Supported paths include:
# path: azureml://datastores/<data_store_name>/paths/<my_path>/${{name}}
ml_client = MLClient.from_config(credential=DefaultAzureCredential())
data_import = DataImport(
name="<name>",
source=FileSystem(connection="<connection>", path="<path_on_source>"),
path="<path>"
)
ml_client.data.import_data(data_import=data_import)
Wechseln Sie zum Azure Machine Learning-Studio.
Wählen Sie unter Ressourcen im linken Navigationsbereich die Option Daten aus. Wählen Sie als Nächstes die Registerkarte "Datenimport" aus. Wählen Sie dann "Erstellen" aus, wie im folgenden Screenshot gezeigt:
Wählen Sie auf dem Bildschirm "Datenquelle " S3 und dann "Weiter" aus, wie im folgenden Screenshot gezeigt:
Geben Sie auf dem Bildschirm " Datentyp " die Werte ein. Der Wert Typ ist standardmäßig Ordner (uri_folder). Wählen Sie dann "Weiter" aus, wie im folgenden Screenshot gezeigt:
Geben Sie auf dem Bildschirm " Datenimport erstellen " die Werte ein, und wählen Sie "Weiter" aus, wie im folgenden Screenshot gezeigt:
Füllen Sie die Werte im Ausgabebildschirm "Einen Datenspeicher auswählen " aus, und wählen Sie "Weiter" aus, wie im folgenden Screenshot gezeigt.
Vom Arbeitsbereich verwalteter Datenspeicher ist standardmäßig ausgewählt. Der Pfad wird automatisch vom System zugewiesen, wenn Sie verwalteten Datenspeicher auswählen. Wenn Sie Vom Arbeitsbereich verwalteter Datenspeicher auswählen, wird die Dropdownliste Einstellung für automatisches Löschen angezeigt. Das standardmäßige Datenlöschzeitfenster beträgt 30 Tag. Wie Sie diesen Wert ändern können, wird in Verwalten importierter Datenbestände erläutert.
Sie können einen Zeitplan hinzufügen. Wählen Sie "Zeitplan hinzufügen" aus, wie im folgenden Screenshot gezeigt:
Ein neuer Bereich wird geöffnet, in dem Sie einen Serien-Zeitplan oder einen Cron-Zeitplan definieren können. Der folgende Screenshot zeigt den Bereich für einen Wiederholungszeitplan.
-
Name: Der eindeutige Bezeichner des Zeitplans im Arbeitsbereich
-
Beschreibung: die Beschreibung des Zeitplans.
-
Auslöser: das Wiederholungsmuster des Zeitplans mit den folgenden Eigenschaften.
-
Zeitzone: Die Berechnung der Auslösezeit basiert auf dieser Zeitzone; standardmäßig koordinierte Weltzeit (Coordinated Universal Time, UTC).
-
Wiederholung oder Cron-Ausdruck: Wählen Sie „Wiederholung“ aus, um das Wiederholungsmuster anzugeben. Unter Serie können Sie die Wiederholungshäufigkeit in Minuten, Stunden, Tagen, Wochen oder Monaten angeben.
-
Start: Der Zeitplan wird an diesem Datum erstmals aktiv. Standardmäßig das Erstellungsdatum dieses Zeitplans.
-
Ende: Der Zeitplan wird nach diesem Datum inaktiv. Standardmäßig ist es NONE, was bedeutet, dass der Zeitplan immer aktiv ist, bis Sie ihn manuell deaktivieren.
-
Tags: die ausgewählten Zeitplantags.
Hinweis
Start gibt das Startdatum und die Startzeit mit der Zeitzone des Zeitplans an. Wenn Sie "Start" weglassen, entspricht die Startzeit der Zeitplanerstellungszeit. Wenn die Startzeit in der Vergangenheit liegt, wird der erste Job zur nächsten berechneten Laufzeit ausgeführt.
Überprüfen Sie Ihre Auswahl auf dem letzten Bildschirm dieses Prozesses, und wählen Sie "Erstellen" aus. Wählen Sie auf diesem Bildschirm und den anderen Bildschirmen in diesem Prozess "Zurück " aus, um zu früheren Bildschirmen zu wechseln, wenn Sie Die Auswahl von Werten ändern möchten.
Überprüfen Sie Ihre Auswahl, und wählen Sie "Erstellen" aus. Wählen Sie auf diesem Bildschirm und den anderen Bildschirmen in diesem Prozess "Zurück " aus, um zu früheren Bildschirmen zu wechseln, um Die Auswahl von Werten zu ändern.
Der folgende Screenshot zeigt den Bereich für einen Cron-Zeitplan :
Name: Der eindeutige Bezeichner des Zeitplans im Arbeitsbereich
Beschreibung: die Beschreibung des Zeitplans.
Auslöser: das Wiederholungsmuster des Zeitplans mit den folgenden Eigenschaften.
Zeitzone: Die Berechnung der Auslösezeit basiert auf dieser Zeitzone; standardmäßig koordinierte Weltzeit (Coordinated Universal Time, UTC).
Wiederholung oder Cron-Ausdruck: Wählen Sie „Cron-Ausdruck“ aus, um die Crondetails anzugeben.
(Erforderlich)expression verwendet einen standardmäßigen Crontab-Ausdruck, um einen wiederkehrenden Zeitplan auszudrücken. Ein einzelner Ausdruck besteht aus fünf durch Leerzeichen getrennten Feldern:
MINUTES HOURS DAYS MONTHS DAYS-OF-WEEK
Ein einzelner Platzhalter (*), der alle Werte für das Feld abdeckt. Ein * für „Tage“ bedeutet also alle Tage eines Monats (was je nach Monat und Jahr variiert).
Der expression: "15 16 * * 1" im obigen Beispiel bedeutet 16:15 Uhr an jedem Montag.
Die nächste Tabelle listet die gültigen Werte für jedes Feld auf:
| Feld |
Range |
Kommentar |
MINUTES |
0-59 |
- |
HOURS |
0-23 |
- |
DAYS |
- |
Wird nicht unterstützt. Der Wert wird ignoriert und als * behandelt. |
MONTHS |
- |
Wird nicht unterstützt. Der Wert wird ignoriert und als * behandelt. |
DAYS-OF-WEEK |
0 - 6 |
Null (0) bedeutet Sonntag. Namen von Tagen werden ebenfalls akzeptiert. |
Weitere Informationen zur Verwendung von Crontab-Ausdrücken finden Sie im Wiki für Crontab-Ausdrücke auf GitHub.
Wichtig
DAYS und MONTH werden nicht unterstützt. Wenn Sie einen dieser Werte übergeben, werden sie ignoriert als *.
-
Start: Der Zeitplan wird an diesem Datum erstmals aktiv. Standardmäßig das Erstellungsdatum dieses Zeitplans.
-
Ende: Der Zeitplan wird nach diesem Datum inaktiv. Standardmäßig ist es NONE, was bedeutet, dass der Zeitplan immer aktiv ist, bis Sie ihn manuell deaktivieren.
-
Tags: die ausgewählten Zeitplantags.
Hinweis
Start gibt das Startdatum und die Startzeit mit der Zeitzone des Zeitplans an. Wenn Sie "Start" weglassen, entspricht die Startzeit der Zeitplanerstellungszeit. Wenn die Startzeit in der Vergangenheit liegt, wird der erste Job zur nächsten berechneten Laufzeit ausgeführt.
Der folgende Screenshot zeigt den letzten Bildschirm dieses Prozesses. Überprüfen Sie Ihre Auswahl, und wählen Sie "Erstellen" aus. Wählen Sie auf diesem Bildschirm und den anderen Bildschirmen in diesem Prozess "Zurück " aus, um zu früheren Bildschirmen zu wechseln, um Die Auswahl von Werten zu ändern.
Importstatus externer Datenquellen prüfen
Die Datenimportaktion ist eine asynchrone Aktion. Sie kann lange dauern. Nachdem Sie eine Importdatenaktion über die CLI oder das SDK übermittelt haben, benötigt der Azure Machine Learning-Dienst möglicherweise mehrere Minuten, um eine Verbindung mit der externen Datenquelle herzustellen. Anschließend startet der Dienst den Datenimport und verarbeitet das Zwischenspeichern und Registrieren von Daten. Die für einen Datenimport benötigte Zeit hängt auch von der Größe des Quelldatasets ab.
Im folgenden Beispiel wird der Status der übermittelten Datenimportaktivität zurückgegeben. Der Befehl oder die Methode verwendet den Namen der Datenressource als Eingabe, um den Status der Datenmaterialisierung zu bestimmen.
> az ml data list-materialization-status --name <name>
from azure.ai.ml.entities import DataImport
from azure.ai.ml import MLClient
from azure.identity import DefaultAzureCredential
ml_client = MLClient.from_config(credential=DefaultAzureCredential())
ml_client.data.list_materialization_status(name="<name>")
Nächste Schritte