Kılavuz: Gerçek zamanlı akış iş yükünü çalıştırın

Gerçek zamanlı mod, uçtan uca gecikme süresi beş milisaniyeye kadar düşük olan ultra düşük gecikme süresine olanak tanır ve sahtekarlık algılama ve gerçek zamanlı kişiselleştirme gibi operasyonel iş yükleri için idealdir. Bu öğretici, basit bir örnek kullanarak ilk gerçek zamanlı akış sorgunuzu ayarlama konusunda size yol gösterir.

Gerçek zamanlı mod, ne zaman kullanılacağı ve desteklenen özellikler hakkında kavramsal bilgi için bkz. Yapılandırılmış Akış'ta gerçek zamanlı mod. Yapılandırma gereksinimleri için bkz. Gerçek zamanlı modu ayarlama.

Gereksinimler

Başlamadan önce , Gerçek zamanlı modu ayarlama bölümünde belirtilen yapılandırmayı kullanan klasik bir işlem kümesi oluşturma izinlerinizin olduğundan emin olun. Alternatif olarak, sizin için gerçek zamanlı mod kümesi oluşturmak için çalışma alanı yöneticinize başvurun.

1. Adım: Not defteri oluşturma

Not defterleri, akış sorguları geliştirmeye ve test etmeye yönelik etkileşimli bir ortam sağlar. Gerçek zamanlı sorgunuzu yazmak ve sonuçların sürekli güncelleştirildiğini görmek için bu not defterini kullanırsınız.

Not defteri oluşturmak için:

  1. Kenar çubuğunda Yeni'ye ve ardından Not Defteri simgesine tıklayın.Not defteri.
  2. Hesaplama açılır menüsünden gerçek zamanlı mod kümenizi seçin.
  3. Varsayılan dil olarak Python veya Scala seçin.

2. Adım: Gerçek zamanlı mod sorgusu çalıştırma

Aşağıdaki kodu kopyalayıp not defteri hücresine yapıştırın ve çalıştırın. Bu örnek, belirtilen hızda satırlar oluşturan ve sonuçları gerçek zamanlı olarak görüntüleyen bir hız kaynağı kullanır.

Uyarı

display Tetikleyicili realTime işlev Databricks Runtime 17.1 ve üzerinde kullanılabilir.

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

Kodu çalıştırdıktan sonra, yeni satırlar oluşturulduktan sonra gerçek zamanlı olarak güncelleştirilen bir tablo görürsünüz. Tabloda bir timestamp sütunu ve her satırla birlikte artan bir value sütunu görüntülenir.

Kodu anlama

Yukarıdaki kod, gerçek zamanlı akış sorgusunun temel bileşenlerini gösterir. Aşağıdaki tablolarda anahtar parametreler ve bunların neleri denetledikleri açıklanmaktadır:

Python

Parametre Açıklama
format("rate") Yapılandırılabilir bir hızda satır oluşturan yerleşik bir kaynak olan hız kaynağını kullanır. Bu, dış bağımlılıklar olmadan test için yararlıdır.
numPartitions Oluşturulan veriler için bölüm sayısını ayarlar.
rowsPerSecond Saniyede kaç satır oluşturulduğunu denetler.
realTime="5 minutes" Gerçek zamanlı modu etkinleştirir. Aralık, sorgu denetim noktalarının ilerleme sıklıklarını belirtir. Daha uzun aralıklar, daha az sıklıkta denetim noktası oluşturma anlamına gelir, ancak hatalardan sonra kurtarma süreleri daha uzun olabilir.
outputMode="update" Gerçek zamanlı mod için güncelleştirme çıkış modu gerekir.

Scala

Parametre Açıklama
format("rate") Yapılandırılabilir bir hızda satır oluşturan yerleşik bir kaynak olan hız kaynağını kullanır. Bu, dış bağımlılıklar olmadan test için yararlıdır.
numPartitions Oluşturulan veriler için bölüm sayısını ayarlar.
rowsPerSecond Saniyede kaç satır oluşturulduğunu denetler.
Trigger.RealTime() Varsayılan denetim noktası aralığıyla gerçek zamanlı modu etkinleştirir. Ayrıca, örneğin Trigger.RealTime("5 minutes")bir aralık belirtebilirsiniz.
OutputMode.Update() Gerçek zamanlı mod için güncelleştirme çıkış modu gerekir.

3. Adım: Sonuçları doğrulama

Sorguyu çalıştırdığınızda display işlev, hız kaynağı yeni satırlar oluşturduğundan gerçek zamanlı olarak güncelleştirilen bir tablo oluşturur. Her satırda aşağıdakiler bulunur:

  • Satırın hız kaynağı tarafından ne zaman oluşturulduğuna ilişkin bir zaman damgası.
  • Her yeni satırla birlikte artan monoton bir sayaç.

Tablo, en düşük gecikme süresiyle sürekli olarak güncelleştirilir ve gerçek zamanlı modun kullanılabilir duruma gelir gelmez verileri nasıl işlediğini gösterir. Bu, gerçek zamanlı modun temel avantajıdır. Toplu işlemeyi beklemek yerine verileri hemen görme ve üzerinde işlem yapma olanağı.

Ek kaynaklar

İlk gerçek zamanlı sorgunuzu çalıştırdığınıza göre Kafka, Kinesis ve diğer desteklenen kaynaklarla üretim akışı uygulamaları oluşturmak için bu kaynakları keşfedin: