Tutorial: Memproses Peristiwa Apache Kafka untuk Pusat Aktivitas menggunakan analitik Stream

Artikel ini menunjukkan cara melakukan streaming data ke Event Hubs dan memprosesnya dengan Azure Stream Analytics. Ini memandu Anda melalui langkah-langkah berikut:

  1. Buat namespace layanan Azure Event Hubs.
  2. Buat klien Kafka yang mengirim pesan ke hub peristiwa.
  3. Buat pekerjaan Stream Analytics yang menyalin data dari hub peristiwa ke penyimpanan blob Azure.

Anda tidak perlu mengubah klien protokol Anda atau menjalankan kluster Anda sendiri ketika Anda menggunakan titik akhir Kafka yang diekspos oleh hub peristiwa. Azure Event Hubs mendukung Apache Kafka versi 1.0. dan yang lebih baru.

Prasyarat

Untuk menyelesaikan mulai cepat ini, pastikan prasyarat berikut dipenuhi:

  • Langganan Azure. Jika Anda tidak memilikinya,buat akun gratis sebelum Anda mulai.
  • Kit Pengembangan Java (JDK) 1.7+.
  • Unduh dan pasang arsip biner Maven.
  • Git
  • Akun Azure Storage. Jika Anda tidak memilikinya, buat sebelum melanjutkan. Pekerjaan Stream Analytics di penelusuran ini menyimpan data output dalam penyimpanan blob Azure.

Membuat namespace layanan Azure Event Hubs

Saat Anda membuat namespace layanan Azure Event Hubs, titik akhir Kafka untuk namespace diaktifkan secara otomatis. Anda dapat melakukan stream peristiwa dari aplikasi Anda yang menggunakan protokol Kafka ke dalam event hubs. Ikuti instruksi langkah demi langkah di Buat event hub menggunakan portal Microsoft Azure untuk membuat namespace Azure Event Hubs. Jika Anda menggunakan klaster khusus, lihat Membuat namespace dan event hub di klaster khusus.

Catatan

Azure Event Hubs untuk Kafka tidak didukung di tingkat dasar.

Mengirim pesan dengan Kafka di Event Hubs

  1. Kloning Azure Event Hubs untuk repositori Kafka ke komputer Anda.

  2. Navigasi ke folder: azure-event-hubs-for-kafka/quickstart/java/producer.

  3. Perbarui detail konfigurasi untuk produser di src/main/resources/producer.config. Tentukan nama dan string koneksi untuk namespace hub peristiwa.

    bootstrap.servers={EVENT HUB NAMESPACE}.servicebus.windows.net:9093
    security.protocol=SASL_SSL
    sasl.mechanism=PLAIN
    sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="{CONNECTION STRING for EVENT HUB NAMESPACE}";
    
  4. Navigasi ke azure-event-hubs-for-kafka/quickstart/java/producer/src/main/java/, dan buka file TestDataReporter.java di editor pilihan Anda.

  5. Komentari baris kode berikut:

                //final ProducerRecord<Long, String> record = new ProducerRecord<Long, String>(TOPIC, time, "Test Data " + i);
    
  6. Tambahkan baris kode berikut menggantikan kode yang dikomentari:

                final ProducerRecord<Long, String> record = new ProducerRecord<Long, String>(TOPIC, time, "{ \"eventData\": \"Test Data " + i + "\" }");            
    

    Kode ini mengirimkan data peristiwa dalam format JSON. Saat mengonfigurasi input untuk pekerjaan Stream Analytics, Anda menentukan JSON sebagai format untuk data input.

  7. Jalankan produser dan streaming ke Event Hubs. Pada komputer Windows, saat menggunakan promptNode.js, beralihlah ke folder azure-event-hubs-for-kafka/quickstart/java/producer sebelum menjalankan perintah ini.

    mvn clean package
    mvn exec:java -Dexec.mainClass="TestProducer"                                    
    

Verifikasi bahwa hub peristiwa menerima data

  1. Pilih Hub Acara di ENTITAS. Konfirmasi bahwa Anda melihat hub peristiwa bernama uji.

    Hub acara - uji

  2. Konfirmasi bahwa Anda melihat pesan yang masuk ke hub peristiwa.

    Hub peristiwa - pesan

Memproses data peristiwa menggunakan pekerjaan Stream Analytics

Di bagian ini, Anda membuat pekerjaan Azure Stream Analytics. Klien Kafka mengirim acara ke pusat acara. Anda membuat pekerjaan Stream Analytics yang mengambil data peristiwa sebagai input dan output ke penyimpanan blob Azure. Jika Anda tidak memiliki akun Azure Storage, buat.

Kueri dalam pekerjaan Stream Analytics melewati data tanpa melakukan analitik apa pun. Anda dapat membuat kueri yang mengubah data input untuk menghasilkan data output dalam format yang berbeda atau dengan insight yang diperoleh.

Membuat pekerjaan Stream Analytics

  1. Pilih + Buat sumber daya di portal Microsoft Azure.
  2. Pilih Analitik di menu Azure Marketplace, dan pilih pekerjaan Stream Analytics.
  3. Pada halaman Analitik Streaming Baru, lakukan tindakan berikut:
    1. Masukkan nama untuk pekerjaan tersebut.

    2. Pilih langganan Anda.

    3. Pilih Buat baru untuk grup sumber daya dan masukkan nama. Anda juga dapat menggunakan grup sumber daya yang ada.

    4. Pilih lokasi untuk pekerjaan tersebut.

    5. Pilih Buat untuk membuat pekerjaan.

      Pekerjaan Stream Analytics baru

Mengonfigurasi input pekerjaan

  1. Di pesan notifikasi, pilih Buka sumber daya untuk melihat halaman pekerjaan Stream Analytics.

  2. Pilih Input di bagian TOPOLOGI PEKERJAAN di menu sebelah kiri.

  3. Pilih Tambahkan input stream, lalu pilih Hub Peristiwa.

    Menambahkan hub peristiwa sebagai input

  4. Pada halaman konfigurasi input Hub Peristiwa, lakukan tindakan berikut:

    1. Tentukan alias untuk input.

    2. Pilih langganan Azure Anda.

    3. Pilih namespace hub peristiwa yang Anda buat sebelumnya.

    4. Pilih uji untuk hub peristiwa.

    5. Pilih Simpan.

      Konfigurasi input hub peristiwa

Mengonfigurasi output pekerjaan

  1. Pilih Output di bagian TOPOLOGI PEKERJAAN pada menu.
  2. Pilih + Tambahkan pada toolbar, dan pilih penyimpanan Blob
  3. Pada halaman pengaturan output penyimpanan Blob, lakukan tindakan berikut:
    1. Tentukan alias untuk output.

    2. Pilih langganan Azure Anda.

    3. Pilih akun Azure Storage Anda.

    4. Masukkan nama untuk kontainer yang menyimpan data output dari kueri Stream Analytics.

    5. Pilih Simpan.

      Konfigurasi output Blob Storage

Menentukan kueri

Setelah Anda memiliki penyiapan pekerjaan Stream Analytics untuk membaca aliran data masuk, langkah selanjutnya adalah membuat transformasi yang menganalisis data secara real time. Anda menentukan kueri transformasi dengan menggunakan Bahasa Kueri Stream Analytics. Dalam penelusuran ini, Anda menentukan kueri yang melewati data tanpa melakukan transformasi apa pun.

  1. Pilih Kueri.

  2. Di jendela kueri, ganti [YourOutputAlias] dengan alias output yang Anda buat sebelumnya.

  3. Ganti [YourInputAlias] dengan alias masukan yang Anda buat sebelumnya.

  4. Pilih Simpan pada toolbar.

    Tangkapan layar menunjukkan jendela kueri dengan nilai untuk variabel input dan output.

Menjalankan pekerjaan Analisis Aliran

  1. Pilih Ringkasan di menu sebelah kiri.

  2. Pilih Mulai.

    Menu Mulai

  3. Pada halaman Mulai pekerjaan, pilih Mulai.

    Halaman mulai pekerjaan

  4. Tunggu hingga status pekerjaan berubah dari Mulai ke berjalan.

    Status pekerjaan - berjalan

Uji skenario

  1. Jalankan produser Kafka lagi untuk mengirim peristiwa ke pusat acara.

    mvn exec:java -Dexec.mainClass="TestProducer"                                    
    
  2. Konfirmasi bahwa Anda melihat data output yang dihasilkan di penyimpanan blob Azure. Anda akan melihat file JSON di kontainer dengan 100 baris yang terlihat seperti baris sampel berikut ini:

    {"eventData":"Test Data 0","EventProcessedUtcTime":"2018-08-30T03:27:23.1592910Z","PartitionId":0,"EventEnqueuedUtcTime":"2018-08-30T03:27:22.9220000Z"}
    {"eventData":"Test Data 1","EventProcessedUtcTime":"2018-08-30T03:27:23.3936511Z","PartitionId":0,"EventEnqueuedUtcTime":"2018-08-30T03:27:22.9220000Z"}
    {"eventData":"Test Data 2","EventProcessedUtcTime":"2018-08-30T03:27:23.3936511Z","PartitionId":0,"EventEnqueuedUtcTime":"2018-08-30T03:27:22.9220000Z"}
    

    Pekerjaan Azure Stream Analytics menerima data input dari hub peristiwa dan menyimpannya di penyimpanan blob Azure dalam skenario ini.

Langkah berikutnya

Dalam artikel ini, Anda mempelajari cara melakukan streaming ke Event Hubs tanpa mengubah klien protokol atau menjalankan kluster Anda sendiri. Untuk mempelajari selengkapnya tentang Event Hubs for Apache Kafka, lihat Panduan developer Apache Kafka untuk Azure Event Hubs.