Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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:
- Na bočním panelu klikněte na Nový a potom klikněte na
Poznámkový blok
- V rozevírací nabídce výpočetních prostředků vyberte cluster v režimu reálného času.
- 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: