Kurz: Spuštění úlohy streamování v reálném čase

Režim v reálném čase umožňuje streamování s extrémně nízkou celkovou latencí až pět milisekund, což z něj dělá ideální volbu pro provozní úlohy, jako je detekce podvodů a personalizace v reálném čase. Tento kurz vás provede nastavením prvního dotazu streamování v reálném čase pomocí jednoduchého příkladu.

Koncepční informace o režimu v reálném čase, kdy ho používat a podporované funkce, najdete v režimu v reálném čase ve strukturovaném streamování. Požadavky na konfiguraci najdete v tématu Nastavení režimu v reálném čase.

Požadavky

Než začnete, ujistěte se, že máte oprávnění k vytvoření klasického výpočetního clusteru, který používá konfiguraci zadanou v režimu Nastavení režimu v reálném čase. Případně kontaktujte správce pracovního prostoru, aby pro vás vytvořil cluster v reálném čase.

Krok 1: Vytvoření poznámkového bloku

Poznámkové bloky poskytují interaktivní prostředí pro vývoj a testování streamingových dotazů. Tento poznámkový blok použijete k zápisu dotazu v reálném čase a průběžné aktualizaci výsledků.

Vytvoření poznámkového bloku:

  1. Na bočním panelu klikněte na Nový a potom klikněte na ikonu Poznámkový blok.Poznámkový blok
  2. V rozevírací nabídce výpočetních prostředků vyberte cluster v režimu reálného času.
  3. Jako výchozí jazyk vyberte Python nebo Scala.

Krok 2: Spuštění dotazu v režimu v reálném čase

Zkopírujte a vložte následující kód do buňky poznámkového bloku a spusťte ho. V tomto příkladu se používá zdroj sazeb, který generuje řádky se zadanou rychlostí a zobrazuje výsledky v reálném čase.

Poznámka:

Funkce display s triggerem realTime je dostupná ve službě Databricks Runtime 17.1 a vyšší.

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

Po spuštění kódu se zobrazí tabulka, která se aktualizuje v reálném čase, protože se vygenerují nové řádky. Tabulka zobrazuje sloupec timestamp a sloupec value, který se zvyšuje s každým řádkem.

Vysvětlení kódu

Výše uvedený kód ukazuje základní součásti dotazu streamování v reálném čase. Následující tabulky vysvětlují klíčové parametry a jejich řízení:

Python

Parameter Description
format("rate") Používá zdroj sazeb, integrovaný zdroj, který generuje řádky s konfigurovatelnou rychlostí. To je užitečné pro testování bez externích závislostí.
numPartitions Nastaví počet oddílů pro vygenerovaná data.
rowsPerSecond Určuje, kolik řádků se generuje za sekundu.
realTime="5 minutes" Povolí režim v reálném čase. Interval určuje, jak často kontrolní body dotazu zaznamenávají pokrok. Delší intervaly znamenají méně časté vytváření kontrolních bodů, ale potenciálně delší dobu obnovení po selháních.
outputMode="update" Režim v reálném čase vyžaduje režim aktualizace výstupu.

Scala

Parameter Description
format("rate") Používá zdroj sazeb, integrovaný zdroj, který generuje řádky s konfigurovatelnou rychlostí. To je užitečné pro testování bez externích závislostí.
numPartitions Nastaví počet oddílů pro vygenerovaná data.
rowsPerSecond Určuje, kolik řádků se generuje za sekundu.
Trigger.RealTime() Povolí režim v reálném čase s výchozím intervalem kontrolního bodu. Můžete také zadat interval, například Trigger.RealTime("5 minutes").
OutputMode.Update() Režim v reálném čase vyžaduje režim aktualizace výstupu.

Krok 3: Ověření výsledků

Když spustíte dotaz, display funkce vytvoří tabulku, která se aktualizuje v reálném čase, protože zdroj rychlosti generuje nové řádky. Každý řádek obsahuje:

  • Časové razítko pro vygenerování řádku zdrojem sazby.
  • Monotonicky rostoucí čítač, který se zvýší s každým novým řádkem.

Tabulka se průběžně aktualizuje s minimální latencí a ukazuje, jak režim v reálném čase zpracovává data, jakmile bude k dispozici. Jedná se o hlavní výhodu režimu v reálném čase – schopnost okamžitě zobrazit data a pracovat s ní, a nečekejte na dávkové zpracování.

Dodatečné zdroje

Teď, když jste spustili svůj první dotaz v reálném čase, prozkoumejte tyto prostředky a sestavte produkční streamovací aplikace se systémem Kafka, Kinesis a dalšími podporovanými zdroji: