Zapytanie do strumienia zdarzeń w Microsoft Fabric z notebooka z Spark Structured Streaming

Eventstream w Microsoft Fabric to w pełni zarządzana usługa pobierania i strumieniowania zdarzeń, która umożliwia przetwarzanie i analizę danych w czasie rzeczywistym. Możesz integrować eventstream z notebookami Fabric, korzystając ze Spark Structured Streaming, aby przetwarzać i analizować dane streamingowe w czasie rzeczywistym.

Ta integracja pozwala na eksplorowanie strumieni zdarzeń i innych źródeł w czasie rzeczywistym przez Real-Time hub, bezpośrednio z Fabric notatników. Możesz także tworzyć nowe strumienie zdarzeń i zacząć pobierać dane z prawie 30 (i rosnących) źródeł streamingu, w tym baz danych obsługujących CDC, brokerów wiadomości, usług streamingowych i publicznych kanałów. Nowy model programowania pozwala łatwo łączyć się ze strumieniem zdarzeń, odczytywać dane streamingowe oraz prowadzić analizy w czasie rzeczywistym za pomocą znanych API Spark bez żadnych ciągów połączeń czy poświadczeń, co zwiększa bezpieczeństwo tworzenia aplikacji w czasie rzeczywistym

Wymagania wstępne

Przed rozpoczęciem upewnij się, że zostały spełnione następujące wymagania wstępne:

  • Przestrzeń robocza Fabric z włączonym strumieniem zdarzeń.
  • Środowisko z notatnikami skonfigurowane w Fabric.
  • Podstawowa wiedza na temat Spark Structured Streaming oraz PySpark lub Scala.

Jak przesyłać zapytania do strumienia zdarzeń z notatnika

  1. Odnajdywanie i dodawanie strumienia zdarzeń do notesu:

    1. Otwórz notatnik usługi Microsoft Fabric.

    2. Wybierz pozycję Dodaj elementy danych na karcie Elementy danych , a następnie wybierz pozycję Z centrum Real-Time z menu rozwijanego.

    3. W oknie dialogowym centrum Real-Time znajdź docelowy strumień zdarzeń, dla którego chcesz wykonać zapytanie, przy użyciu różnych opcji wyszukiwania i filtrowania.

    4. Dodaj strumień zdarzeń do środowiska notebooka.

      Zrzut ekranu przedstawiający sposób odnajdywania strumienia zdarzeń w centrum Real-Time.

      Po dodaniu elementu strumienia zdarzeń, pojawi się on w węźle Real-Time Hub w Eksploratorze Obiektów Notesu z nazwą elementu. Po rozwinięciu węzła zobaczysz domyślny lub pochodny strumień w elemencie strumienia zdarzeń.

      Zrzut ekranu przedstawiający dodany strumień zdarzeń w eksploratorze obiektów notesu.

  2. Odczyt danych przesyłanych strumieniowo ze strumienia zdarzeń:

    1. Z menu kontekstowego elementu eventstream w eksploratorze obiektów wybierz opcję Odczyt z Spark, aby utworzyć wstępnie skonfigurowaną komórkę kodu do odczytu z wybranego eventstream.

      Zrzut ekranu przedstawiający sposób odczytywania strumienia zdarzeń za pomocą platformy Spark z menu kontekstowego.

    2. W nowo utworzonej komórce kodu można użyć następującego fragmentu kodu PySpark do odczytywania danych przesyłanych strumieniowo z strumienia zdarzeń:

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

      Wartości opcji eventstream.itemid i eventstream.datasourceid są automatycznie wypełniane w komórce kodu parametru powyżej tej komórki kodu.

      Uwaga / Notatka

      Dla każdej opcji zaznaczania na Read with Spark jest generowana nowa komórka kodu z wymaganymi parametrami automatycznie wypełnionymi, a dla elementu Eventstream zostanie utworzone nowe miejsce docelowe notesu, gdzie eventstream.datasourceid jest unikalny dla każdej lokalizacji docelowej notesu. W przypadku jednego elementu notesu zalecamy ustawienie go raz jako miejsca docelowego dla jednego elementu eventstream, aby uniknąć tworzenia wielu miejsc docelowych.

      Przed uruchomieniem dowolnego zadania można również wyświetlić podgląd danych przesyłanych strumieniowo, klikając przycisk Podgląd danych w menu kontekstowym elementu Eventstream. Zostanie otwarty panel boczny, aby wyświetlić migawkę danych przesyłanych strumieniowo obok notesu.

      Zrzut ekranu przedstawiający sposób wyświetlania podglądu danych strumienia zdarzeń z menu kontekstowego.

  3. Dodaj notes jako miejsce docelowe: możesz również dodać notes jako miejsce docelowe dla strumienia zdarzeń, aby rozpocząć pozyskiwanie danych do strumienia zdarzeń z poziomu notesu. Aby uzyskać więcej informacji, zobacz Dodawanie destynacji notebooku Spark do strumienia zdarzeń.

Podsumowanie

Integracja strumienia zdarzeń w Fabric z notebookami za pomocą Spark Structured Streaming pozwala na płynne przetwarzanie i analizę danych w czasie rzeczywistym. Stosując się do kroków opisanych w tym artykule, możesz łatwo połączyć się ze strumieniem zdarzeń, czytać dane strumieniowe oraz wykonywać analitykę w czasie rzeczywistym za pomocą znanych API Spark. Ta integracja otwiera nowe możliwości budowania aplikacji w czasie rzeczywistym oraz pozyskiwania informacji z danych strumieniowych w ekosystemie Fabric.

Aby dowiedzieć się więcej o pracy z eventstreamami i zeszytami w Fabric, zapoznaj się z poniższymi zasobami