Lekérdezés eventstreamet Microsoft Fabric-ben egy notebookról Spark Structured Streaming-szel

Az Eventstream a Microsoft Fabric-ben egy teljesen menedzselt eseményfelvételi és streaming szolgáltatás, amely valós idejű adatfeldolgozást és elemzést tesz lehetővé. Az eseményfolyamot a Fabric jegyzetfüzetekkel integrálhatod a Spark Structured Streaming segítségével, hogy valós időben feldolgozd és elemezd az adatfolyamokat.

Ez az integráció lehetővé teszi, hogy az eseményfolyamokat és más valós idejű forrásokat fedezd fel a Real-Time hubon keresztül, közvetlenül a Fabric jegyzetfüzeteidből. Új eseményfolyamokat is létrehozhatsz, és elkezdhetsz adatokat gyűjteni közel 30 (és növekvő streamingforrásból), beleértve CDC-kompatibilis adatbázisokat, üzenetközvetítőket, streaming szolgáltatásokat és nyilvános hírcsatornákat. Az új programozási modell lehetővé teszi, hogy könnyen csatlakozz az eseményfolyamhoz, olvassd a streaming adatokat, és valós idejű elemzéseket végezz ismerős Spark API-kkal kapcsolati láncok vagy hitelesítések nélkül, így biztonságosabbá teszi a valós idejű alkalmazások építését

Előfeltételek

Mielőtt hozzákezdene, győződjön meg arról, hogy a következő előfeltételek teljesülnek:

  • Egy Fabric munkaterület, amelyen az eventstream engedélyezve.
  • Egy notebook környezet, amelyet Fabric-ben állítanak be.
  • A Spark strukturált streamelés és a PySpark vagy a Scala alapszintű ismerete.

Az Eventstream lekérdezésének lépései jegyzetfüzetből

  1. Eventstream felfedezése és hozzáadása a Notebookhoz

    1. Nyissa meg a Microsoft Fabric-jegyzetfüzetet.

    2. Válassza az Adatelemek hozzáadása lehetőséget az Adatelemek lapon, majd a legördülő menüben válassza ki a Real-Time központból lehetőséget.

    3. A Real-Time hub párbeszédpanelen keresse meg a lekérdezni kívánt céleseményfolyamot különböző keresési és szűrési beállításokkal.

    4. Adja hozzá az eseménystreamet a jegyzetfüzet-környezethez.

      Képernyőkép az eventstream felderítéséről a Real-Time hubon.

      Az eseményfolyam elem hozzáadása után az elem neve megjelenik a jegyzetfüzet objektumkezelőjének valós idejű csomópontja alatt. A csomópont kibontását követően láthatóvá válik az alapértelmezett vagy származtatott stream az eseményfolyam-elemen belül.

      Képernyőkép a hozzáadott eseménystreamről a jegyzetfüzetobjektum-kezelőben.

  2. Streamelési adatok olvasása az eseménystreamből:

    1. Az objektumkezelő eseményfolyamelemének helyi menüjében válassza az Olvasás a Sparkkal lehetőséget egy előre konfigurált kódcella létrehozásához a kijelölt eseménystreamből való olvasáshoz.

      Képernyőkép az eventstream és a Spark olvasásáról a helyi menüből.

    2. Az újonnan létrehozott kódcellában az alábbi PySpark-kódrészlet használatával olvashat streamelési adatokat az eseménystreamből:

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

      A rendszer automatikusan kitölti a eventstream.itemid paraméterek és eventstream.datasourceid beállítások értékét a kódcella feletti paraméterkódcellában.

      Megjegyzés:

      A(z) Read with Spark funkció használatakor minden egyes kijelöléskor létrejön egy új kódcella, amelyben a szükséges paraméterek automatikusan ki vannak töltve, és létrejön egy új jegyzetfüzet-célhely az Eventstream elemhez, ahol az eventstream.datasourceid minden jegyzetfüzet-célhely esetében egyedi. Egy jegyzetfüzetelem esetében azt javasoljuk, hogy egyszer állítsa be célként egy Eventstream-elemhez, hogy ne hozzon létre több célhelyet.

      A feladatok futtatása előtt a streamelési adatok előnézetét is megtekintheti az Eseménystream elem helyi menüjének Adatok előnézete gombjára kattintva. Megnyílik egy oldalpanel, amely a jegyzetfüzet melletti streamelési adatok pillanatképét jeleníti meg.

      Képernyőkép az eventstream-adatok helyi menüből való előnézetéről.

  3. Jegyzetfüzet hozzáadása célként: A jegyzetfüzetet is hozzáadhatja célként az Eventstreamhez, így megkezdheti az adatok betöltését az Eventstreambe a jegyzetfüzeten belülről. További információ: Spark Notebook-célhely hozzáadása eseménystreamhez.

Conclusion

Az eventstream integrálása a Fabric-ben jegyzetfüzetekkel a Spark Structured Streaming segítségével lehetővé teszi a valós idejű adatok zökkenőmentes feldolgozását és elemzését. A cikkben leírt lépések követésével könnyedén csatlakozhatsz az eseményfolyamhoz, olvashatsz streamelési adatokat, és valós idejű elemzéseket végezhetsz a megszokott Spark API-k segítségével. Ez az integráció új lehetőségeket nyit meg valós idejű alkalmazások építésére és a Fabric ökoszisztémán belüli streaming adatokból származó betekintések szerzésére.

Ha többet szeretne megtudni az eseményfolyamokkal és jegyzetfüzetekkel való munkáról a Fabric-ben, nézd meg az alábbi forrásokat