Importieren aus Hive-Abfrage

Wichtig

Der Support für Machine Learning Studio (klassisch) endet am 31. August 2024. Es wird empfohlen, bis zu diesem Datum auf Azure Machine Learning umzustellen.

Ab dem 1. Dezember 2021 können Sie keine neuen Ressourcen in Machine Learning Studio (klassisch) mehr erstellen. Bis zum 31. August 2024 können Sie die vorhandenen Ressourcen in Machine Learning Studio (klassisch) weiterhin verwenden.

Die Dokumentation zu ML Studio (klassisch) wird nicht mehr fortgeführt und kann künftig nicht mehr aktualisiert werden.

In diesem Artikel wird beschrieben, wie Sie das Importdatenmodul in Machine Learning Studio (klassisch) verwenden, um Daten aus Hadoop-Clustern und hdInsight verteilten Speicher abzurufen.

Hinweis

Giltnur für: Machine Learning Studio (klassisch)

Ähnliche Drag & Drop-Module sind im Azure Machine Learning-Designer verfügbar.

Das Importieren von Daten aus Hive ist besonders nützlich für das Laden großer Datasets oder wenn Sie die Daten mithilfe eines MapReduce Auftrags vor dem Laden der Daten in ein Machine Learning-Experiment vorverarbeitet haben möchten.

Wichtig

Ab dem 31. Juli 2018 war Microsoft Azure HDInsight Version 3.3 die letzte Version von HDInsight auf Windows. Wenn Sie über HDInsight-Cluster auf Windows 3.3 oder früher verfügen, müssen Sie zu HDInsight unter Linux (HDInsight Version 3.5 oder höher) migrieren. Weitere Informationen zu eingestellten Versionen von HDInsight finden Sie im Abschnitt "Eingestellte Versionen ". Machine Learning Studio (klassisch) unterstützt HDInsight unter Linux in bestimmten Szenarien.

Unterstützung für HDInsight unter Linux

Machine Learning Studio (klassisch) unterstützt HDInsight unter Linux in den folgenden Szenarien:

  • Hadoop 2.7.3 (HDI 3.6) Blob als Standard,ADLS sekundär
  • Spark 2.1.0 (HDI 3.6) Blob als Standard,ADLS sekundär
  • Spark 2.2.0 (HDI 3.6) Blob als Standard,ADLS sekundär
  • Spark 2.3.0 (HDI 3.6) Blob als Standard,ADLS sekundär

Bekannte Probleme

Es gibt mehrere bekannte Probleme mit der Verwendung des Importdatenmoduls für Hive-Abfragen mit HDInsight unter Linux:

So importieren Sie Daten aus Hive-Abfragen

Verwenden des Assistenten

Das Modul verfügt über einen neuen Assistenten, mit dem Sie eine Speicheroption auswählen, zwischen vorhandenen Abonnements und Konten auswählen und schnell alle Optionen konfigurieren können.

  1. Fügen Sie das Modul Import Data Ihrem Experiment hinzu. Sie finden das Modul in Studio (klassisch), in der Kategorie "Dateneingabe" und "Ausgabe ".

  2. Klicken Sie auf den Assistenten zum Importieren von Daten starten , und folgen Sie den Anweisungen.

  3. Wenn die Konfiguration abgeschlossen ist, klicken Sie mit der rechten Maustaste auf das Modul, um die Daten tatsächlich in Ihr Experiment zu kopieren, und wählen Sie " Ausgewählt ausführen" aus.

Wenn Sie eine vorhandene Datenverbindung bearbeiten müssen, lädt der Assistent alle vorherigen Konfigurationsdetails, damit Sie nicht von Grund auf neu beginnen müssen.

Manuelles Festlegen von Importeigenschaften

Die folgenden Schritte beschreiben, wie Sie die Importquelle manuell konfigurieren.

  1. Fügen Sie das Modul Import Data Ihrem Experiment hinzu. Sie finden das Modul in Studio (klassisch), in der Kategorie "Dateneingabe" und "Ausgabe ".

  2. Wählen Sie für die Datenquelledie Strukturabfrage aus.

  3. Geben Sie im Textfeld für die Strukturdatenbankabfrage die Daten an, die Sie mithilfe von HiveQL lesen möchten.

    HiveQL ist eine SQL-ähnliche Abfragesprache, die auch verwendet werden kann, um Daten zu aggregieren und Datenfilterung auszuführen, bevor Sie die Daten zu Machine Learning Studio (klassisch) hinzufügen. Die Hive-Abfrage muss jedoch die Daten in einem tabellarischen Format zurückgeben.

    Diese Anweisung ist beispielsweise eine gültige Hive-Abfrage:

    SELECT <column list> FROM table WHERE <expression>;

  4. Klicken Sie auf das URI-Textfeld des HCatalog-Servers , und geben Sie dann den vollqualifizierten Namen Ihres Clusters ein.

    Wenn Sie beispielsweise einen Cluster mit dem Namen mycluster001 erstellt haben, verwenden Sie dieses Format: https://mycluster001.azurehdinsight.net

  5. Klicken Sie auf das Textfeld "Hadoop-Benutzerkontoname ", und fügen Sie das Hadoop-Benutzerkonto ein, das Sie beim Bereitstellen des Clusters verwendet haben.

  6. Klicken Sie auf das Kennworttextfeld "Hadoop" , und geben Sie die Anmeldeinformationen ein, die Sie beim Bereitstellen des Clusters verwendet haben.

    Weitere Informationen zur Benennung und Authentifizierung von Clustern für Hadoop finden Sie unter Bereitstellen von Hadoop-Clustern in HDInsight.

  7. Wählen Sie für den Speicherort der Ausgabedaten die Option aus, die angibt, wo die Daten gespeichert sind. Wenn sich die Daten im Hadoop verteilten Dateisystem (HDFS) befinden, muss sie über dasselbe Konto und kennwort zugänglich sein, das Sie gerade eingegeben haben. Wenn sich die Daten in Azure befinden, geben Sie den Speicherort und die Anmeldeinformationen des Speicherkontos an.

    • HDFS: Geben Sie den HDFS-Server-URI ein, oder fügen Sie ihn ein. Achten Sie darauf, den HDInsight-Clusternamen ohne Präfix HTTPS:// zu verwenden.

    • Azure: Geben Sie für den Namen des Azure-Speicherkontos den Namen des Azure-Kontos ein. Wenn die vollständige URL des Speicherkontos z.B. https://myshared.blob.core.windows.net lautet, geben Sie myshared ein.

    • Azure-Speicherschlüssel: Kopieren und Einfügen des Schlüssels, der für den Zugriff auf das Speicherkonto bereitgestellt wird.

    • Geben Sie für den Azure-Containernamen den Standardcontainer für den Cluster an. Weitere Informationen zum Ermitteln des zu verwendenden Containers finden Sie im Abschnitt Tipps.

  8. Wählen Sie die Optionen zum Verwenden zwischengespeicherter Ergebnisse , wenn Sie nicht erwarten, dass sich die Daten stark ändern, oder wenn Sie vermeiden möchten, dass die Daten bei jeder Durchführung des Experiments neu geladen werden.

    Wenn dies ausgewählt ist, werden die Daten beim ersten Ausführen des Moduls vom Experiment nicht geändert, und anschließend wird eine zwischengespeicherte Version des Datasets verwendet.

    Wenn Sie das Dataset für jede Iteration des Experiment-Datasets erneut laden möchten, deaktivieren Sie die Option " Zwischengespeicherte Ergebnisse verwenden ". Ergebnisse werden auch erneut geladen, wenn Änderungen an den Parametern von Importdaten vorhanden sind.

  9. Führen Sie das Experiment aus.

Ergebnisse

Klicken Sie nach Abschluss des Experiments auf das Ausgabedataset, und wählen Sie Visualisieren aus, um festzustellen, ob die Daten erfolgreich importiert wurden.

Wenn Sie Fehler erhalten, überprüfen Sie Ihre Daten auf fehlende Werte, zusätzliche leere Spalten oder inkompatible Datentypen.

Beispiele

Beispiele für die Konfiguration eines HDInsight-Clusters und die Verwendung von Hive-Abfragen in Machine Learning-Experimenten finden Sie in den folgenden Ressourcen:

Obwohl Hive überlegene Features für viele Arten von Datenbereinigungen und Vorverarbeitung bietet, finden Sie nach dem Import diese Tools möglicherweise hilfreich für die Vorbereitung der Daten für die Modellierung:

  • Verwenden Sie die Metadaten bearbeiten und andere Module, um Spaltennamen zu ändern, anzugeben, welche Spalten Bezeichnungen und Features enthalten, und geben Sie den Spaltendatentyp an. Beispiele finden Sie unter "DatasetVerarbeitung".

  • Nach dem Verarbeiten von Textdaten mithilfe von Python, zum Entfernen von Interpunktion, Kennzeichnen von Sprachteilen und vieles mehr. Beispiele finden Sie unter "Textklassifizierung".

  • Kombinieren Sie mehrere Tabellen aus unterschiedlichen Quellen in eine einzelne Tabelle mit Schulungsdaten. Beispiele finden Sie unter "Predictive Maintenance".

Technische Hinweise

Dieser Abschnitt enthält Implementierungsdetails, Tipps und Antworten auf häufig gestellte Fragen.

Ermitteln des Standardcontainers

Wenn Sie Ihren Cluster erstellt haben, indem Sie alle Standardeinstellungen akzeptieren, wurde ein Container mit demselben Namen wie der Cluster erstellt, während der Cluster erstellt wurde. Dieser Container ist der Standardcontainer für den Cluster. Wenn Sie jedoch beim Erstellen eines Clusters die OPTION "BENUTZERDEFINIERTES ERSTELLEN" ausgewählt haben, erhalten Sie zwei Optionen zum Auswählen des Standardcontainers. Die erste Option besteht darin, einen vorhandenen Container auszuwählen. Wenn Sie dies tun, wird dieser Container zum Standardspeichercontainer für den Cluster. Die zweite Option ist "Standardcontainer erstellen". Wenn Sie diese Option verwenden, hat der Standardcontainer denselben Namen wie der Cluster.

Aufrufen von Python-Skripts aus einer Hive-Abfrage

Sie können das Importdatenmodul verwenden, um Hive-Abfragen auszuführen, die Python UDFs aufrufen, um Datensätze zu verarbeiten.

Weitere Informationen finden Sie unter Use Python with Hive and Pig in HDInsight.

Vermeiden von Speicherproblemen beim Verwenden von Hive zum Vorprozess von Daten

Wenn Sie Hive-Abfragen verwenden, um Datensätze aus Big Data-Quellen zu extrahieren, ist die Standardkonfiguration des Hadoop-Clusters zu eingeschränkt, um die Ausführung des MapReduce-Auftrags zu unterstützen. In diesen Versionshinweisen für HDInsight werden die Standardeinstellungen beispielsweise als Vierknotencluster definiert.

Wenn die Anforderungen des MapReduce Auftrags die verfügbare Kapazität überschreiten, gibt die Hive-Abfragen möglicherweise eine Fehlermeldung "Out of Memory" zurück, was dazu führt, dass der Importdatenvorgang fehlschlägt. Wenn dies der Fall ist, können Sie die Standardspeicherzuweisung für Hive-Abfragen im Importdatenmodul ändern, wie hier gezeigt:

Increase memory to maximum allowed on cluster

In diesem Beispiel werden die Befehle set mapreduce.map.memory.mb und set mapreduce.reduce.memory.mb verwendet, um die Speichermenge zu erhöhen, sodass der maximal zulässige Wert im Cluster verwendet werden kann.

Häufig gestellte Fragen

Wie kann ich das erneute Laden derselben Daten unnötig vermeiden

Wenn sich Ihre Quelldaten ändern, können Sie das Dataset aktualisieren und neue Daten hinzufügen, indem Sie Importdaten erneut ausführen. Wenn die Daten jedoch nicht bei jeder Ausführung des Experiments erneut aus der Quelle gelesen werden sollen, legen Sie die Option Use cached results (Zwischengespeicherte Ergebnisse verwenden) auf TRUE fest. Wenn diese Option auf TRUE festgelegt ist, überprüft das Modul, ob das Experiment zuvor mit derselben Quelle und den gleichen Eingabeoptionen ausgeführt wurde, und wenn eine vorherige Ausführung gefunden wird, werden die Daten im Cache verwendet, anstatt die Daten aus der Quelle erneut zu laden.

Kann ich Daten filtern, während sie aus der Quelle gelesen wird

Das Importdatenmodul selbst unterstützt keine Filterung, da Daten gelesen werden.

Zum Filtern von Daten vor dem Lesen in Machine Learning Studio (klassisch) verwenden Sie eine Hive-Abfrage oder einen MapReduce Auftrag, um die Daten zu aggregieren und zu transformieren.

Es gibt auch mehrere Optionen zum Filtern von Daten, nachdem sie in Machine Learning Studio (klassisch) geladen wurde:

  • Verwenden Sie ein benutzerdefiniertes R-Skript, um nur die gewünschten Daten abzurufen.
  • Verwenden Sie das Modul "Geteilte Daten" mit einem relativen Ausdruck oder einem regulären Ausdruck, um die gewünschten Daten zu isolieren, und speichern Sie es dann als Dataset.

Hinweis

Wenn Sie feststellen, dass Sie mehr Daten als erforderlich geladen haben, können Sie das zwischengespeicherte Dataset durch Lesen eines neuen Datasets überschreiben und dieses mit dem gleichen Namen wie die älteren, größeren Daten speichern.

Modulparameter

Name Range type Standard BESCHREIBUNG
Datenquellen- List Datenquelle oder Spüle Azure Blob Storage Datenquelle kann HTTP, FTP, anonymes HTTPS oder FTPS sein, eine Datei im Azure BLOB-Speicher, eine Azure-Tabelle, eine Azure SQL-Datenbank, eine lokale SQL Server Datenbank, eine Strukturtabelle oder einen OData-Endpunkt.
Hive database query any StreamReader HQL-Abfrage
HCatalog server URI any String Templeton-Endpunkt
Hadoop user account name any String Hadoop HDFS/HDInsight Benutzername
Hadoop-Benutzerkontokennwort any SecureString Hadoop HDFS/HDInsight-Kennwort
Location of output data any DataLocation HDFS Angeben von HDFS oder Azure für outputDir
HDFS-Server-URI any String HDFS-Restendpunkt
Azure-Speicherkontoname any String Azure-Speicherkontoname
Azure-Speicherschlüssel any SecureString Azure-Speicherschlüssel
Azure container name any String Azure container name
Data content type List (subset) URL-Inhalt OData Datenformattyp
Quell-URL any String URL für Power Query Datenquelle
Verwenden zwischengespeicherter Ergebnisse TRUE/FALSE Boolean FALSE description

Ausgaben

Name type BESCHREIBUNG
Ergebnisdataset Datentabelle Dataset mit den heruntergeladenen Daten.

Ausnahmen

Ausnahme Beschreibung
Fehler 0027 Eine Ausnahme tritt auf, wenn zwei Objekte gleich groß sein müssen, dies aber nicht der Fall ist.
Fehler 0003 Eine Ausnahme tritt auf, wenn mindestens eine Eingabe NULL oder leer ist.
Fehler 0029 Eine Ausnahme tritt auf, wenn ein ungültiger URI übergeben wird.
Fehler 0030 Eine Ausnahme tritt auf, wenn es nicht möglich ist, eine Datei herunterzuladen.
Fehler 0002 Eine Ausnahme tritt auf, wenn mindestens ein Parameter nicht analysiert oder nicht aus einem angegebenen Typ in den für die Zielmethode erforderlichen Typ konvertiert werden konnte.
Fehler 0009 Eine Ausnahme tritt auf, wenn der Azure-Speicherkontoname oder der Containername falsch angegeben ist.
Fehler 0048 Eine Ausnahme tritt auf, wenn es nicht möglich, eine Datei zu öffnen.
Fehler 0015 Eine Ausnahme tritt auf, wenn ein Fehler beim Herstellen einer Datenbankverbindung aufgetreten ist.
Fehler 0046 Eine Ausnahme tritt auf, wenn es nicht möglich ist, ein Verzeichnis im angegebenen Pfad zu erstellen.
Fehler 0049 Eine Ausnahme tritt auf, wenn es nicht möglich, eine Datei zu analysieren.

Eine Liste der Fehler, die für Studio-Module (klassische) spezifisch sind, finden Sie unter Machine Learning Fehlercodes.

Eine Liste der API-Ausnahmen finden Sie unter Machine Learning REST-API-Fehlercodes.

Siehe auch

Daten importieren
Daten exportieren
Importieren aus Web-URL über HTTP
Importieren aus Azure SQL-Datenbank
Importieren aus Azure Table
Importieren aus Azure Blob Storage
Importieren aus Datenfeedanbietern
Importieren aus lokaler SQL Server-Datenbank