Vraag eventstream in Microsoft Fabric vanuit een notebook met Spark Structured Streaming

Eventstream in Microsoft Fabric is een volledig beheerde event intie- en streamingdienst die realtime dataverwerking en -analyse mogelijk maakt. Je kunt eventstream integreren met Fabric-notebooks via Spark Structured Streaming om streamingdata in realtime te verwerken en te analyseren.

Met deze integratie kun je eventstreams en andere realtime bronnen verkennen via de Real-Time hub, direct vanuit je Fabric notitieboeken. Je kunt ook nieuwe eventstreams aanmaken en data gaan verzamelen van bijna 30 (en groeiend) streamingbronnen, waaronder CDC-geschikte databases, message brokers, streamingdiensten en openbare feeds. Het nieuwe programmeermodel stelt je in staat om eenvoudig verbinding te maken met EventStream, streamingdata te lezen en realtime analyses uit te voeren met bekende Spark API's zonder verbindingsstrings of inloggegevens, waardoor het veiliger wordt om realtime applicaties te bouwen

Vereiste voorwaarden

Zorg ervoor dat u aan de volgende vereisten voldoet voordat u begint:

  • Een Fabric-werkruimte met eventstream ingeschakeld.
  • Een notitieboekomgeving opgezet in Fabric.
  • Basiskennis van Spark Structured Streaming en PySpark of Scala.

Stappen voor het uitvoeren van query's op Eventstream vanuit een notebook

  1. Eventstream detecteren en toevoegen aan Notebook:

    1. Open uw Microsoft Fabric-notitieblok.

    2. Selecteer gegevensitems toevoegen onder het tabblad Gegevensitems en selecteer vervolgens Van Real-Time hub in het dropdownmenu.

    3. Zoek in het dialoogvenster Real-Time hub de doel-eventstream die u wilt opvragen met verschillende zoek- en filteropties.

    4. Voeg de eventstream toe aan uw notebookomgeving.

      Schermopname van het detecteren van eventstream in de Real-Time hub.

      Nadat het eventstream-item is toegevoegd, wordt het weergegeven onder het Real-Time hub-knooppunt in de objectverkenner van uw notebook met de itemnaam. Nadat u het knooppunt hebt uitgebreid, ziet u de standaardstroom of afgeleide stroom in het eventstream-item.

      Schermopname van de toegevoegde eventstream in de notebook-objectverkenner.

  2. Streaminggegevens lezen uit eventstream:

    1. Selecteer in het contextmenu van het item eventstream in de objectverkenner lezen met Spark om een vooraf geconfigureerde codecel te maken die u wilt lezen uit de geselecteerde eventstream.

      Schermopname die laat zien hoe u eventstream kunt lezen met Spark in het contextmenu.

    2. In de zojuist gemaakte codecel kunt u het volgende PySpark-codefragment gebruiken om streaminggegevens uit de eventstream te lezen:

      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()
      

      De waarde van de eventstream.itemid en eventstream.datasourceid opties worden automatisch ingevuld in de parametercodecel boven deze codecel.

      Opmerking

      Voor elke selectie in Lezen met Spark wordt er een nieuwe codecel gegenereerd met de benodigde parameters die automatisch worden ingevuld en wordt er een nieuwe notebookbestemming gemaakt voor het Eventstream-item, waarbij de eventstream.datasourceid unieke is voor elke notebookbestemming. Voor één notitieblokitem wordt u aangeraden dit eenmaal in te stellen als bestemming voor één Eventstream-item om te voorkomen dat er meerdere bestemmingen worden gemaakt.

      Voordat u een taak uitvoert, kunt u ook een voorbeeld van de streaminggegevens bekijken door te klikken op de knop Voorbeeldgegevens in het contextmenu van het Eventstream-item. Er wordt een zijpaneel geopend om een momentopname weer te geven van de streaminggegevens naast het notebook.

      Schermopname van het bekijken van Eventstream-gegevens in het contextmenu.

  3. Notitieblok toevoegen als bestemming: u kunt het notitieblok ook toevoegen als een bestemming voor de Eventstream om gegevens in de Eventstream op te nemen vanuit het notebook. Zie Een Spark Notebook-bestemming toevoegen aan een eventstream voor meer informatie.

Conclusion

Door eventstream in Fabric te integreren met notebooks via Spark Structured Streaming kun je realtime data naadloos verwerken en analyseren. Door de stappen in dit artikel te volgen, kun je eenvoudig verbinding maken met eventstream, streamingdata lezen en realtime analyses uitvoeren met behulp van bekende Spark API's. Deze integratie opent nieuwe mogelijkheden voor het bouwen van realtime applicaties en het verkrijgen van inzichten uit streaming data binnen het Fabric-ecosysteem.

Wil je meer weten over het werken met eventstreams en notitieboekjes in Fabric? Bekijk dan de volgende bronnen