Tutorial: Menjalankan beban kerja streaming real-time

Mode real time memungkinkan streaming latensi ultra-rendah dengan latensi end-to-end serendah lima milidetik, menjadikannya ideal untuk beban kerja operasional seperti deteksi penipuan dan personalisasi real time. Tutorial ini memandu Anda menyiapkan kueri streaming real-time pertama Anda menggunakan contoh sederhana.

Untuk informasi konseptual tentang mode real-time, kapan harus menggunakannya, dan fitur yang didukung, lihat Mode real time di Streaming Terstruktur. Untuk persyaratan konfigurasi, lihat Menyiapkan mode real-time.

Persyaratan

Sebelum memulai, pastikan Anda memiliki izin untuk membuat kluster komputasi klasik yang menggunakan konfigurasi yang ditentukan dalam Menyiapkan mode real-time. Atau, hubungi administrator ruang kerja Anda untuk membuat kluster mode real time untuk Anda.

Langkah 1: Membuat buku catatan

Notebook menyediakan lingkungan interaktif untuk mengembangkan dan menguji kueri streaming. Anda menggunakan buku catatan ini untuk menulis kueri real-time Anda dan melihat pembaruan hasil terus menerus.

Untuk membuat buku catatan:

  1. Klik Baru di bilah samping, lalu klik ikon Buku Catatan.Buku catatan.
  2. Di menu tarik-turun komputasi, pilih kluster mode real-time Anda.
  3. Pilih Python atau Scala sebagai bahasa default.

Langkah 2: Menjalankan kueri mode real-time

Salin dan tempel kode berikut ke dalam sel buku catatan dan jalankan. Contoh ini menggunakan sumber laju, yang menghasilkan baris pada laju tertentu, dan menampilkan hasilnya secara real time.

Nota

Fungsi display dengan pemicu realTime tersedia pada Databricks Runtime 17.1 dan versi yang lebih baru.

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

Setelah menjalankan kode, Anda akan melihat tabel yang diperbarui secara real time saat baris baru dihasilkan. Tabel menampilkan timestamp kolom dan value kolom yang bertambah setiap baris.

Memahami kode

Kode di atas menunjukkan komponen penting dari kueri streaming real-time. Tabel berikut menjelaskan parameter kunci dan apa yang dikontrolnya:

Python

Parameter Deskripsi
format("rate") Menggunakan sumber laju, sumber bawaan yang menghasilkan baris pada tingkat yang dapat dikonfigurasi. Ini berguna untuk pengujian tanpa dependensi eksternal.
numPartitions Mengatur jumlah partisi untuk data yang dihasilkan.
rowsPerSecond Mengontrol berapa banyak baris yang dihasilkan per detik.
realTime="5 minutes" Mengaktifkan mode waktu nyata. Interval menentukan seberapa sering titik pemeriksaan kueri mengalami kemajuan. Interval yang lebih lama berarti titik pemeriksaan yang lebih jarang tetapi berpotensi waktu pemulihan yang lebih lama setelah kegagalan.
outputMode="update" Mode real-time memerlukan mode keluaran pembaruan.

Scala

Parameter Deskripsi
format("rate") Menggunakan sumber laju, sumber bawaan yang menghasilkan baris pada tingkat yang dapat dikonfigurasi. Ini berguna untuk pengujian tanpa dependensi eksternal.
numPartitions Mengatur jumlah partisi untuk data yang dihasilkan.
rowsPerSecond Mengontrol berapa banyak baris yang dihasilkan per detik.
Trigger.RealTime() Mengaktifkan mode real-time dengan interval titik pemeriksaan default. Anda juga dapat menentukan interval, misalnya Trigger.RealTime("5 minutes").
OutputMode.Update() Mode real-time memerlukan mode keluaran pembaruan.

Langkah 3: Memvalidasi hasil

Saat Anda menjalankan kueri, display fungsi membuat tabel yang diperbarui secara real time karena sumber laju menghasilkan baris baru. Setiap baris berisi:

  • Tanda waktu ketika baris dibuat oleh sumber tarif.
  • Penghitung yang meningkat secara monoton yang bertambah setiap kali ada baris baru.

Tabel diperbarui terus-menerus dengan latensi minimal, menunjukkan bagaimana mode real-time memproses data segera setelah tersedia. Ini adalah manfaat inti dari mode real-time - kemampuan untuk melihat dan bertindak pada data segera daripada menunggu pemrosesan batch.

Sumber daya tambahan

Sekarang setelah Anda menjalankan kueri real-time pertama Anda, jelajahi sumber daya ini untuk membangun aplikasi streaming produksi dengan Kafka, Kinesis, dan sumber lain yang didukung: