Abfragen von Eventstream in Microsoft Fabric aus einem Notebook mit Spark Structured Streaming

Eventstream in Microsoft Fabric ist ein vollständig verwalteter Event-Ingestion- und Streaming-Dienst, der Echtzeit-Datenverarbeitung und -analyse ermöglicht. Sie können Eventstream mit Fabric-Notebooks mithilfe von Spark Structured Streaming integrieren, um Streaming-Daten in Echtzeit zu verarbeiten und zu analysieren.

Diese Integration ermöglicht es Ihnen, Eventstreams und andere Echtzeitquellen über das Real-Time Hub direkt aus Ihren Fabric Notizbüchern zu erkunden. Sie können auch neue Eventstreams erstellen und Daten von fast 30 (und wachsenden) Streaming-Quellen einnehmen, darunter CDC-fähige Datenbanken, Nachrichtenvermittler, Streaming-Dienste und öffentliche Feeds. Das neue Programmiermodell ermöglicht es Ihnen, sich einfach mit Eventstream zu verbinden, Streaming-Daten zu lesen und Echtzeitanalysen mit vertrauten Spark-APIs ohne Verbindungsstrings oder Zugangsdaten durchzuführen, was den Aufbau von Echtzeitanwendungen sicherer macht

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie über die folgenden Voraussetzungen verfügen:

  • Ein Fabric-Arbeitsbereich mit aktiviertem Eventstream.
  • Eine Notizbuchumgebung, eingerichtet in Fabric.
  • Grundkenntnisse in Spark Structured Streaming und PySpark oder Scala.

Schritte zum Abfragen des Ereignisstreams aus einem Notizbuch

  1. Entdecken und Hinzufügen von Eventstream in Notizbuch:

    1. Öffnen Sie Ihr Microsoft Fabric-Notizbuch.

    2. Wählen Sie unter der Registerkarte " Datenelemente" die Option " Datenelemente hinzufügen" aus, und wählen Sie dann im Dropdownmenü " Von Real-Time Hub " aus.

    3. Suchen Sie im Dialogfeld Real-Time Hub nach dem Zielereignisstream, den Sie mit verschiedenen Such- und Filteroptionen abfragen möchten.

    4. Fügen Sie den Eventstream zu Ihrer Notizbuchumgebung hinzu.

      Screenshot, der zeigt, wie Sie den Ereignisstream im Real-Time Hub ermitteln.

      Nachdem das Eventstream-Element hinzugefügt wurde, wird es unter dem Real-Time Hubknoten im Notizbuchobjekt-Explorer mit dem Elementnamen angezeigt, nachdem Sie den Knoten erweitert haben, wird der Standard- oder abgeleitete Datenstrom innerhalb des Eventstream-Elements angezeigt.

      Screenshot des hinzugefügten Eventstreams im Notizbuchobjekt-Explorer.

  2. Lesen von Streamingdaten aus Eventstream:

    1. Wählen Sie im Kontextmenü des Eventstream-Elements im Objekt-Explorer "Lesen mit Spark " aus, um eine vorkonfigurierte Codezelle zu erstellen, die aus dem ausgewählten Ereignisstream gelesen werden soll.

      Screenshot, der zeigt, wie Sie eventstream mit Spark aus dem Kontextmenü lesen.

    2. In der neu erstellten Codezelle können Sie den folgenden PySpark-Codeausschnitt verwenden, um Streamingdaten aus dem Eventstream zu lesen:

      from pyspark.sql import SparkSession
      from pyspark.sql.functions import col
      from pyspark.sql.types import StringType
      from pyspark.sql.dataframe import DataFrame
      
      eventstream_options = {
          "eventstream.itemid": __in_eventstream_item_id,
          "eventstream.datasourceid": __in_eventstream_datasource_id
      }
      
      # Read from Kafka using the config map
      df_raw = spark.readStream.format("kafka").options(**eventstream_options).load()
      
      decoded_df = df_raw.select(
          col("key").cast(StringType()).alias("key"),
          col("value").cast(StringType()).alias("value"),
          col("partition"),
          col("offset")
      )
      
      def showDf(x:DataFrame, y:int):
          x.show()
      
      # Print messages to the console
      query = decoded_df.writeStream.foreachBatch(showDf).outputMode("append").start()
      query.awaitTermination()
      

      Der Wert der eventstream.itemid- und eventstream.datasourceid-Optionen wird automatisch in der Parametercodezelle oberhalb dieser Codezelle ausgefüllt.

      Hinweis

      Für jede Auswahl auf "Lesen mit Spark" wird eine neue Codezelle mit den erforderlichen Parametern generiert, die automatisch ausgefüllt werden, und ein neues Notizbuchziel wird für das Eventstream-Element erstellt, wobei dies eventstream.datasourceid für jedes Notizbuchziel eindeutig ist. Für ein Notizbuchelement wird empfohlen, es einmal als Ziel für ein Eventstream-Element festzulegen, um das Erstellen mehrerer Ziele zu vermeiden.

      Bevor Sie einen Auftrag ausführen, können Sie auch eine Vorschau der Streamingdaten anzeigen, indem Sie im Kontextmenü des Eventstream-Elements auf die Schaltfläche " Vorschaudaten " klicken. Ein seitliches Panel wird geöffnet, um eine Momentaufnahme der Streamingdaten neben dem Notizbuch anzuzeigen.

      Screenshot, der zeigt, wie Eventstream-Daten aus dem Kontextmenü in der Vorschau angezeigt werden.

  3. Notizbuch als Ziel hinzufügen: Sie können das Notizbuch auch als Ziel für den Eventstream hinzufügen, um mit dem Aufnehmen von Daten in den Eventstream aus dem Notizbuch zu beginnen. Weitere Informationen finden Sie unter Hinzufügen eines Spark Notebook-Ziels zu einem Eventstream.

Conclusion

Die Integration von Eventstream in Fabric mit Notebooks über Spark Structured Streaming ermöglicht es Ihnen, Echtzeitdaten nahtlos zu verarbeiten und zu analysieren. Indem Sie die in diesem Artikel beschriebenen Schritte befolgen, können Sie sich problemlos mit Eventstream verbinden, Streaming-Daten lesen und Echtzeitanalysen mit bekannten Spark-APIs durchführen. Diese Integration eröffnet neue Möglichkeiten, Echtzeitanwendungen zu entwickeln und Erkenntnisse aus Streaming-Daten im Fabric-Ökosystem zu gewinnen.

Um mehr über die Arbeit mit Eventstreams und Notizbüchern in Fabric zu erfahren, schauen Sie sich die folgenden Ressourcen an