Dela via


Självstudie: Kör en arbetsbelastning för strömning i realtid

Realtidsläge möjliggör ultralåg latensströmning med svarstid från slutpunkt till slutpunkt så låg som fem millisekunder, vilket gör det idealiskt för driftarbetsbelastningar som bedrägeriidentifiering och anpassning i realtid. Den här självstudien vägleder dig genom att konfigurera din första realtidsströmningsfråga med hjälp av enkelt exempel.

Konceptuell information om realtidsläge, när du ska använda det och vilka funktioner som stöds finns i Realtidsläge i Strukturerad direktuppspelning. Konfigurationskrav finns i Konfigurera realtidsläge.

Requirements

Innan du börjar kontrollerar du att du har behörighet att skapa ett klassiskt beräkningskluster som använder konfigurationen som anges i Konfigurera realtidsläge. Du kan också kontakta arbetsyteadministratören för att skapa ett realtidslägeskluster åt dig.

Steg 1: Skapa en notebook-fil

Notebooks ger en interaktiv miljö för att utveckla och testa strömmande frågor. Du använder den här notebook-filen för att skriva din realtidsfråga och se resultatuppdateringen kontinuerligt.

Så här skapar du en notebook-fil:

  1. Klicka på Nytt i sidofältet och klicka sedan på Notebook-ikonen.Anteckningsbok.
  2. I listrutan beräkning väljer du ditt realtidslägeskluster.
  3. Välj Python eller Scala som standardspråk.

Steg 2: Kör en fråga i realtidsläge

Kopiera och klistra in följande kod i en notebook-cell och kör den. I det här exemplet används en hastighetskälla som genererar rader med en angiven hastighet och visar resultatet i realtid.

Anmärkning

Funktionen display med realTime utlösaren är tillgänglig i Databricks Runtime 17.1 och senare.

Python

inputDF = (
  spark
  .readStream
  .format("rate")
  .option("numPartitions", 2)
  .option("rowsPerSecond", 1)
  .load()
)
display(inputDF, realTime="5 minutes", outputMode="update")

Scala

import org.apache.spark.sql.streaming.Trigger
import org.apache.spark.sql.streaming.OutputMode

val inputDF = spark
  .readStream
  .format("rate")
  .option("numPartitions", 2)
  .option("rowsPerSecond", 1)
  .load()
display(inputDF, trigger=Trigger.RealTime(), outputMode=OutputMode.Update())

När du har kört koden visas en tabell som uppdateras i realtid när nya rader genereras. Tabellen visar en timestamp kolumn och en value kolumn som ökar med varje rad.

Förstå koden

Koden ovan visar de viktigaste komponenterna i en direktuppspelningsfråga i realtid. I följande tabeller förklaras nyckelparametrarna och vad de styr:

Python

Parameter Beskrivning
format("rate") Använder hastighetskällan, en inbyggd källa som genererar rader med en konfigurerbar hastighet. Detta är användbart för testning utan externa beroenden.
numPartitions Anger antalet partitioner för genererade data.
rowsPerSecond Styr hur många rader som genereras per sekund.
realTime="5 minutes" Aktiverar realtidsläge. Intervallet anger hur ofta frågekontrollpunkterna förlopp. Längre intervall innebär mindre frekventa kontrollpunkter men potentiellt längre återställningstider efter fel.
outputMode="update" Realtidsläge kräver uppdaterat utmatningsläge.

Scala

Parameter Beskrivning
format("rate") Använder hastighetskällan, en inbyggd källa som genererar rader med en konfigurerbar hastighet. Detta är användbart för testning utan externa beroenden.
numPartitions Anger antalet partitioner för genererade data.
rowsPerSecond Styr hur många rader som genereras per sekund.
Trigger.RealTime() Aktiverar realtidsläge med standardintervallet för kontrollpunkter. Du kan också ange ett intervall, till exempel Trigger.RealTime("5 minutes").
OutputMode.Update() Realtidsläge kräver uppdaterat utmatningsläge.

Steg 3: Verifiera resultat

När du kör frågan display skapar funktionen en tabell som uppdateras i realtid när hastighetskällan genererar nya rader. Varje rad innehåller:

  • En tidsstämpel för när raden genererades av hastighetskällan.
  • En monotont ökande räknare som ökar med varje ny rad.

Tabellen uppdateras kontinuerligt med minimal svarstid, vilket visar hur realtidsläget bearbetar data så snart de blir tillgängliga. Detta är den viktigaste fördelen med realtidsläge – möjligheten att se och agera på data omedelbart i stället för att vänta på batchbearbetning.

Ytterligare resurser

Nu när du har kört din första realtidsfråga kan du utforska dessa resurser för att skapa program för produktionsströmning med Kafka, Kinesis och andra källor som stöds: