Schreiben in eine Azure SQL-Datenbanktabelle aus Ihren Azure Stream Analytics-Aufträgen

Azure Stream Analytics unterstützt Azure SQL-Datenbank als Ausgabe für Ihre Streamingabfrage. In diesem Artikel wird erläutert, wie Sie SQL-Datenbank als Ausgabe für Ihren Stream Analytics-Auftrag im Azure-Portal verwenden.

Voraussetzungen

  1. Erstellen Sie einen Stream Analytics-Auftrag.

  2. Erstellen Sie eine Azure SQL-Datenbank, in die Ihr Stream Analytics-Auftrag die Ausgabe schreibt.

Schreiben in eine neue Tabelle in SQL-Datenbank

In diesem Abschnitt wird beschrieben, wie Sie Ihren Auftrag so konfigurieren können, dass in eine Tabelle in Azure SQL-Datenbank geschrieben wird, die noch nicht erstellt wurde.

  1. Wählen Sie in Ihrem Stream Analytics-Auftrag unter Auftragstopologie die Option Eingaben aus. Klicken Sie auf Hinzufügen, und wählen Sie SQL-Datenbank aus.

    Screenshot: Ausgabe von SQL-Datenbank in Stream Analytics

  2. Wählen Sie einen Ausgabealias aus, der in der Abfrage Ihres Auftrags verwendet wird. Geben Sie Ihren Datenbanknamen und den Authentifizierungsmodus an. Weitere Informationen zu Optionen für die SQL-Ausgabekonfiguration finden Sie hier.

  3. Geben Sie einen Tabellennamen ein, den Sie in Azure SQL-Datenbank erstellen möchten. Klicken Sie auf Speichern. Hinweis: Das Speichern dieser Ausgabe erstellt nicht die Tabelle in Ihrer SQL-Datenbank-Instanz. In den nächsten Schritten erfahren Sie mehr darüber, wann die Tabelle erstellt wird.

    Screenshot: Konfiguration der Ausgabe von SQL-Datenbank in Stream Analytics

  4. Wählen Sie unter Auftragstopologie die Option Abfrage aus, und verwenden Sie den Alias in Ihrer Abfrage, um die Ausgabe in den im vorherigen Schritt angegebenen Tabellennamen zu schreiben. Klicken Sie auf Testabfrage, um die Abfragelogik zu testen und Testergebnisse anzuzeigen, die das Schema der Ausgabe anzeigt, die vom Auftrag erzeugt wird. Hinweis: Um Ihre Abfrage zu testen, benötigen Sie eingehende Streamingdaten in Ihrer Eingabequelle. Alternativ können Sie Beispieldaten zum Testen der Abfrage hochladen. Hier finden Sie weitere Informationen zum Testen einer Stream Analytics-Abfrage.

    Screenshot: Abfragetest in Stream Analytics

    Screenshot: Abfragetestergebnisse in Stream Analytics

  5. Klicken Sie auf SQL-Tabellenschema, um Spaltenname und -typ anzuzeigen. Klicken Sie auf Tabelle erstellen. Die Tabelle wird in SQL-Datenbank erstellt.

    Screenshot: Erstellen einer Tabelle in SQL-Datenbank über Stream Analytics

    Wenn Ihre Stream Analytics-Abfrage geändert wird, um unterschiedliche Schemas zu generieren, müssen Sie Ihre Tabellendefinition in SQL-Datenbank ändern. Dadurch wird sichergestellt, dass beim Stream Analytics-Auftrag keine Datenkonvertierungsfehler beim Schreiben in die Senke auftreten.

  6. Wenn Ihre Abfrage fertig ist, wählen Sie Übersicht und Starten aus, um den Auftrag zu starten. Anschließend können Sie zur SQL-Datenbanktabelle navigieren, um die Streamingabfrageausgabe anzuzeigen.

Auswählen einer vorhandenen Tabelle aus SQL-Datenbank

In diesem Abschnitt wird beschrieben, wie Sie Ihren Auftrag so konfigurieren können, dass in eine Tabelle geschrieben wird, die in Azure SQL-Datenbank bereits vorhanden ist.

  1. Wählen Sie in Ihrem Stream Analytics-Auftrag unter Auftragstopologie die Option Eingaben aus. Klicken Sie auf Hinzufügen, und wählen Sie SQL-Datenbank aus.

    Screenshot: Ausgabe von SQL-Datenbank in Stream Analytics

  2. Wählen Sie einen Ausgabealias aus, der in der Abfrage Ihres Auftrags verwendet wird. Geben Sie Ihren Datenbanknamen und den Authentifizierungsmodus an. Weitere Informationen zu Optionen für die SQL-Ausgabekonfiguration finden Sie hier.

  3. Sie können eine vorhandene Tabelle aus der ausgewählten SQL-Datenbank-Instanz auswählen, indem Sie Ihre SQL-Authentifizierungsdetails eingeben. Dadurch wird eine Liste der Tabellennamen aus Ihrer Datenbank geladen. Wählen Sie den Tabellennamen aus der Liste aus, oder geben Sie den Tabellennamen manuell ein, und klicken Sie auf Speichern.

    Screenshot: Vorhandene Tabelle in SQL-Datenbank

  4. Wählen Sie unter Auftragstopologie die Option Abfrage aus, und verwenden Sie den Aliasnamen in Ihrer Abfrage, um die Ausgabe in die ausgewählte Tabelle zu schreiben. Klicken Sie auf Testabfrage, um die Abfragelogik zu testen und Testergebnisse anzuzeigen. Hinweis: Um Ihre Abfrage zu testen, benötigen Sie eingehende Streamingdaten in Event Hub/IoT Hub. Alternativ können sie Beispieldaten zum Testen der Abfrage hochladen. Hier finden Sie weitere Informationen zum Testen einer Stream Analytics-Abfrage.

    Screenshot: Abfragetest in Stream Analytics

    Screenshot: Abfragetestergebnisse in Stream Analytics

  5. Auf der Registerkarte SQL-Tabellenschema können Sie einen Spaltennamen und seinen Typ aus eingehenden Daten und in der ausgewählten Tabelle anzeigen. Sie können den Status sehen, d. h. ob der eingehende Datentyp und die ausgewählte SQL-Tabelle übereinstimmen oder nicht. Stimmen sie nicht überein, werden Sie aufgefordert, Ihre Abfrage zu aktualisieren, damit sie dem Tabellenschema entspricht.

    Screenshot: Schemavergleich in Stream Analytics

  6. Wenn Ihre Abfrage fertig ist, wählen Sie Übersicht und Starten aus, um den Auftrag zu starten. Anschließend können Sie zur SQL-Datenbanktabelle navigieren, um die Streamingabfrageausgabe anzuzeigen.

Häufige Gründe für Datentypkonflikte

Es ist wichtig, sicherzustellen, dass die Ausgabe Ihres Stream Analytics-Auftrags den Spaltennamen und Datentypen entspricht, die von Ihrer SQL-Datenbanktabelle erwartet werden. Gibt es einen Konflikt, treten bei Ihrem Auftrag Datenkonvertierungsfehler auf, und der Auftrag wird kontinuierlich wiederholt, bis die SQL-Tabellendefinition geändert wird. Sie können das Verhalten Ihres Auftrags ändern, um Ausgaben, die Datenkonvertierungsfehler verursachen, zu löschen und mit dem nächsten Auftrag fortzufahren. Die häufigsten Schemakonflikte sind im Anschluss beschrieben.

  • Typenkonflikt: Die Abfrage- und Zieltypen sind nicht kompatibel. Es werden keine Zeilen in das Ziel eingefügt. Verwenden Sie eine Konvertierungsfunktion wie TRY_CAST(), um die Typen in der Abfrage anzugleichen. Alternativ können Sie die Zieltabelle in SQL-Datenbank ändern.
  • Bereich: Der Zieltypbereich ist erheblich kleiner als der in der Abfrage verwendete Bereich. Zeilen mit Werten außerhalb des gültigen Bereichs werden möglicherweise nicht in die Zieltabelle eingefügt oder werden abgeschnitten. Erwägen Sie, die Zielspalte in einen größeren Typbereich zu ändern.
  • Implizit: Die Abfrage- und Zieltypen sind unterschiedlich, aber kompatibel. Die Daten werden implizit konvertiert, das kann aber zu Datenverlusten oder Fehlern führen. Verwenden Sie eine Konvertierungsfunktion wie TRY_CAST(), die Typen in der Abfrage anzugleichen, oder ändern Sie die Zieltabelle.
  • Datensatz: Dieser Typ wird für diese Ausgabe noch nicht unterstützt. Der Wert wird durch die Zeichenfolge „record“ ersetzt. Ziehen Sie die Analyse der Daten oder die Verwendung einer UDF zur Konvertierung in eine Zeichenfolge in Erwägung.
  • Array: Dieser Typ wird in Azure SQL-Datenbank noch nicht nativ unterstützt. Der Wert wird durch die Zeichenfolge „record“ ersetzt. Ziehen Sie die Analyse der Daten oder die Verwendung einer UDF zur Konvertierung in eine Zeichenfolge in Erwägung.
  • Spalte fehlt in Zieltabelle: Diese Spalte fehlt in der Zieltabelle. Die Daten werden nicht eingefügt. Fügen Sie diese Spalte bei Bedarf zu Ihrer Zieltabelle hinzu.

Nächste Schritte