Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Dieses Feature befindet sich in der Public Preview.
Der Echtzeitmodus ermöglicht das Ultra-Low-Latenz-Streaming mit End-to-End-Latenz so wenig wie fünf Millisekunden, wodurch es ideal für betriebsfähige Workloads wie Betrugserkennung und Echtzeitpersonalisierung ist. Dieses Lernprogramm führt Sie durch das Einrichten Ihrer ersten Echtzeitstreamingabfrage mithilfe eines einfachen Beispiels.
Konzeptionelle Informationen zum Echtzeitmodus, wann sie verwendet werden sollen, und unterstützte Features finden Sie im Echtzeitmodus im strukturierten Streaming.
Anforderungen
- Sie verfügen über die Berechtigung zum Erstellen der klassischen Berechnung.
- Databricks Runtime 17.1 oder höher (erforderlich für die Verwendung der
displayFunktion im Echtzeitmodus).
Hinweis
Wenn Sie keine klassischen Computeerstellungsberechtigungen haben, wenden Sie sich an Ihren Arbeitsbereichsadministrator, um einen Echtzeitmoduscluster für Sie mithilfe der Konfiguration in Schritt 1 zu erstellen.
Schritt 1: Erstellen der klassischen Berechnung für den Echtzeitmodus
Der Echtzeitmodus erfordert eine bestimmte klassische Computekonfiguration, um eine extrem niedrige Latenz zu erzielen. Diese Einstellungen stellen sicher, dass Aufgaben in allen Phasen gleichzeitig ausgeführt werden und Daten kontinuierlich verarbeitet werden, wenn sie eintreffen, und nicht in Batches.
So erstellen Sie einen ordnungsgemäß konfigurierten klassischen Rechner:
Klicken Sie in Ihrem Azure Databricks-Arbeitsbereich in der Randleiste auf "Berechnen ".
Klicken Sie auf "Compute erstellen".
Geben Sie einen Namen ein.
Wählen Sie Databricks Runtime 17.1 oder höher aus.
Löschen der Photonbeschleunigung (Echtzeitmodus unterstützt Photon nicht).
Deaktivieren Sie die automatische Skalierung (Echtzeitmodus erfordert eine feste Clustergröße).
Deaktivieren Sie unter Erweiterte Leistung die Verwendung von Spotinstanzen. Spotinstanzen können Unterbrechungen verursachen.
Klicken Sie auf "Erweiterte Optionen" , um weitere Einstellungen zu erweitern.
Wählen Sie im Access-Modus"Dediziert" (vormals: Einzelbenutzer) aus.
Fügen Sie unter spark config die folgende Konfiguration hinzu:
spark.databricks.streaming.realTimeMode.enabled trueKlicken Sie auf "Berechnung erstellen".
Schritt 2: Erstellen eines Notizbuchs
Notizbücher bieten eine interaktive Umgebung zum Entwickeln und Testen von Streamingabfragen. Sie verwenden dieses Notizbuch, um Ihre Echtzeitabfrage zu schreiben und die kontinuierliche Aktualisierung der Ergebnisse zu beobachten.
So erstellen Sie ein Notizbuch:
- Klicken Sie in der Randleiste auf "Neu ", und klicken Sie dann auf " Notizbuch".
- Wählen Sie im Dropdownmenü "Berechnen" die Berechnung aus, die Sie in Schritt 1 erstellt haben.
- Wählen Sie Python oder Scala als Standardsprache aus.
Schritt 3: Ausführen einer Echtzeitmodusabfrage
Kopieren Sie den folgenden Code, und fügen Sie ihn in eine Notizbuchzelle ein, und führen Sie ihn aus. In diesem Beispiel wird eine Zinsquelle verwendet, die Zeilen mit einer bestimmten Rate generiert und die Ergebnisse in Echtzeit anzeigt.
Hinweis
Die display Funktion mit realTime Trigger ist in Databricks Runtime 17.1 und höher verfügbar.
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())
Nach dem Ausführen des Codes wird eine Tabelle angezeigt, die in Echtzeit aktualisiert wird, wenn neue Zeilen generiert werden. Die Tabelle zeigt eine timestamp Spalte und eine value Spalte an, die mit jeder Zeile erhöht wird.
Grundlegendes zum Code
Der obige Code veranschaulicht die wesentlichen Komponenten einer Echtzeitstreamingabfrage. In den folgenden Tabellen werden die wichtigsten Parameter und deren Steuerung erläutert:
Python
| Parameter | Beschreibung |
|---|---|
format("rate") |
Verwendet die Ratequelle, eine integrierte Quelle, die Zeilen mit einer konfigurierbaren Rate generiert. Dies ist nützlich für Tests ohne externe Abhängigkeiten. |
numPartitions |
Legt die Anzahl der Partitionen für die generierten Daten fest. |
rowsPerSecond |
Steuert, wie viele Zeilen pro Sekunde generiert werden. |
realTime="5 minutes" |
Aktiviert den Echtzeitmodus. Das Intervall gibt an, wie oft der Fortschritt der Abfrage-Checkpoints nachverfolgt wird. Längere Intervalle bedeuten weniger häufige Prüfpunkte, aber potenziell längere Wiederherstellungszeiten nach Fehlern. |
outputMode="update" |
Der Echtzeitmodus erfordert den Updateausgabemodus. |
Scala
| Parameter | Beschreibung |
|---|---|
format("rate") |
Verwendet die Ratequelle, eine integrierte Quelle, die Zeilen mit einer konfigurierbaren Rate generiert. Dies ist nützlich für Tests ohne externe Abhängigkeiten. |
numPartitions |
Legt die Anzahl der Partitionen für die generierten Daten fest. |
rowsPerSecond |
Steuert, wie viele Zeilen pro Sekunde generiert werden. |
Trigger.RealTime() |
Aktiviert den Echtzeitmodus mit dem Standardprüfpunktintervall. Sie können auch ein Intervall angeben, z. B Trigger.RealTime("5 minutes"). . |
OutputMode.Update() |
Der Echtzeitmodus erfordert den Updateausgabemodus. |
Was Sie sehen
Wenn Sie die Abfrage ausführen, erstellt die display Funktion eine Tabelle, die in Echtzeit aktualisiert wird, während die Zinsquelle neue Zeilen generiert. Jede Zeile enthält:
- Zeitstempel: Der Zeitpunkt, zu dem die Zeile von der Zinsquelle generiert wurde
- Wert: Ein monotonisch zunehmender Zähler, der mit jeder neuen Zeile erhöht.
Die Tabelle wird kontinuierlich mit minimaler Latenz aktualisiert und veranschaulicht, wie Echtzeitmodus Daten verarbeitet, sobald sie verfügbar ist. Dies ist der Kernvorteil des Echtzeitmodus – die Möglichkeit, Daten sofort zu sehen und zu reagieren, anstatt auf die Batchverarbeitung zu warten.
Was Sie gelernt haben
Sie haben Ihre erste Echtzeitstreamingabfrage erfolgreich eingerichtet und ausgeführt. Jetzt wissen Sie, wie Sie:
- Konfigurieren Sie das klassische Computing mit den erforderlichen Einstellungen für den Echtzeitmodus (dedizierter Cluster, Photon deaktiviert, Auto-Skalierung deaktiviert, Spark-Konfiguration).
- Aktivieren der Echtzeitverarbeitung mithilfe des Triggers
realTime - Verwenden der
displayFunktion für interaktive Entwicklung und Tests - Überprüfen Sie, ob Ihre Abfrage im Echtzeitmodus ausgeführt wird, indem Sie fortlaufende Updates beobachten.
Sie sind bereit, Produktionspipelinen in Echtzeit mit Kafka, Kinesis und anderen unterstützten Quellen zu erstellen. Weitere Informationen zu strukturiertem Streaming finden Sie unter Structured Streaming-Konzepte.
Nächste Schritte
Nachdem Sie ihre erste Echtzeitabfrage ausgeführt haben, erkunden Sie diese Ressourcen zum Erstellen von Produktionsstreaminganwendungen:
- Beispiele für den Echtzeitmodus – Funktionierende Codebeispiele für Kafka-Quellen und Senken, zustandsbehaftete Abfragen, Aggregationen und benutzerdefinierte Senken
- Referenz zum Echtzeitmodus – Erfahren Sie mehr über Clustergröße, unterstützte Operatoren, Überwachung und Featurebeschränkungen
- Stateful Streaming-Anwendungen – Hinzufügen der Zustandsverwaltung zu Ihren Streamingabfragen für die Deduplizierung, Aggregationen und Fensterung
-
Erweiterte Zustandsverwaltung – Verwendung
transformWithStatefür die benutzerdefinierte Zustandsverarbeitung mit Time-to-Live (TTL) und komplexer Logik