Mengambil kejadian melalui Azure Event Hubs di Azure Blob Storage atau Azure Data Lake Storage

Azure Event Hubs memungkinkan Anda untuk secara otomatis mengambil data streaming di Azure Event Hubs di Azure Blob storage atau akun Azure Data Lake Storage Gen 1 atau Gen 2 pilihan Anda, dengan fleksibilitas tambahan menentukan interval waktu atau ukuran. Menyiapkan Capture cepat, tidak ada biaya administratif untuk menjalankannya, dan diskalakan secara otomatis dengan unit throughput Azure Event Hubs di tingkat standar atau unit pemrosesan di tingkat premium. Capture Azure Event Hubs adalah cara termudah untuk memuat data streaming ke Azure, dan memungkinkan Anda untuk fokus pada pemrosesan data daripada pada tangkapan data.

Gambar menunjukkan pengambilan data Azure Event Hubs ke Azure Storage atau Azure Data Lake Storage

Catatan

Mengonfigurasikan Azure Event Hubs Capture untuk menggunakan Azure Data Lake Storage Gen 2 sama dengan mengonfigurasikannya untuk menggunakan Azure Blob Storage. Untuk detailnya, lihat Mengonfigurasikan Azure Event Hubs Capture.

Event Hubs Capture memungkinkan Anda memproses alur berbasis real-time dan batch pada stream yang sama. Ini berarti Anda dapat membangun solusi yang berkembang sesuai kebutuhan Anda dari waktu ke waktu. Baik saat ini Anda sedang membangun sistem berbasis batch dengan memperhatikan pemrosesan real-time di masa depan, atau Anda ingin menambahkan cold path yang efisien ke solusi real-time yang ada, Azure Event Hubs Capture membuat bekerja dengan data streaming menjadi lebih mudah.

Penting

  • Akun penyimpanan tujuan (Azure Storage atau Azure Data Lake Storage) harus berada dalam langganan yang sama dengan hub peristiwa saat tidak menggunakan identitas terkelola untuk autentikasi.
  • Azure Event Hubs tidak mendukung pengambilan aktivitas di akun penyimpanan premium.
  • Penangkapan Azure Event Hubs mendukung akun penyimpanan Azure non-premium dengan dukungan untuk blob blok.

Cara kerja Azure Event Hubs Capture

Azure Event Hubs adalah buffer tahan lama atas retensi waktu untuk ingress telemetri, mirip dengan log terdistribusi. Kunci untuk penskalaan di Azure Event Hubs adalah model konsumen yang dipartisi. Setiap partisi adalah segmen data independen dan dikonsumsi secara independen. Seiring waktu, data ini menua, berdasarkan periode retensi yang dapat dikonfigurasi. Akibatnya, hub acara tertentu tidak pernah "terlalu penuh."

Azure Event Hubs Capture memungkinkan Anda menentukan akun Azure Blob storage dan kontainer Anda sendiri, atau akun Azure Data Lake Storage, yang digunakan untuk menyimpan data yang diambil. Akun-akun ini dapat berada di wilayah yang sama dengan hub acara Anda atau di wilayah lain, menambah fleksibilitas fitur Azure Event Hubs Capture.

Data yang diambil ditulis dalam format Apache Avro: format biner yang ringkas, cepat, yang menyediakan struktur data yang kaya dengan skema sebaris. Format ini banyak digunakan dalam ekosistem Hadoop, Azure Stream Analytics, dan Azure Data Factory. Informasi lebih lanjut tentang bekerja dengan Avro tersedia nanti di artikel ini.

Catatan

Saat Anda tidak menggunakan editor kode di portal Azure, Anda dapat merekam data streaming di Event Hubs di akun Azure Data Lake Storage Gen2 dalam format Parket. Untuk informasi selengkapnya, lihat Cara: mengambil data dari Event Hubs dalam format Parket dan Tutorial: mengambil data Event Hubs dalam format Parket dan menganalisis dengan Azure Synapse Analytics.

Mengambil jendela

Azure Event Hubs Capture memungkinkan Anda menyiapkan jendela untuk mengontrol pengambilan. Jendela ini adalah konfigurasi ukuran dan waktu minimum dengan "kebijakan kemenangan pertama," yang berarti bahwa pemicu pertama yang ditemui menyebabkan operasi pengambilan. Jika Anda memiliki jendela pengambilan 100 MB selama lima belas menit dan mengirim 1 MB per detik, jendela ukuran akan memicu sebelum jendela waktu. Setiap partisi mengambil secara independen dan menulis blob blok yang sudah selesai pada saat pengambilan, dinamai sesuai waktu saat interval pengambilan ditemukan. Konvensi penamaan penyimpanan adalah sebagai berikut:

{Namespace}/{EventHub}/{PartitionId}/{Year}/{Month}/{Day}/{Hour}/{Minute}/{Second}

Nilai tanggal dilisi dengan nol; contoh nama berkas mungkin:

https://mystorageaccount.blob.core.windows.net/mycontainer/mynamespace/myeventhub/0/2017/12/08/03/03/17.avro

Jika blob penyimpanan Azure Anda untuk sementara tidak tersedia, Event Hubs Capture akan menyimpan data Anda selama periode retensi data yang dikonfigurasi di hub peristiwa Anda dan mengisi kembali data setelah akun penyimpanan Anda tersedia lagi.

Penskalaan unit throughput atau unit pemrosesan

Dalam tingkat standar Azure Event Hubs, lalu lintas dikendalikan oleh unit throughput dan di Tingkat Premium Azure Event Hubs, dikendalikan oleh unit pemrosesan. Azure Event Hubs Capture menyalin data langsung dari penyimpanan Azure Event Hubs internal, melewati kuota egress unit throughput atau unit pemrosesan, dan menyimpan egress Anda untuk pembaca pemrosesan lainnya, seperti Azure Stream Analytics atau Spark.

Setelah dikonfigurasi, Azure Event Hubs Capture berjalan secara otomatis saat Anda mengirim peristiwa pertama, dan terus berjalan. Untuk memudahkan pemrosesan downstream Anda mengetahui bahwa prosesnya berfungsi, Azure Event Hubs menulis file kosong saat tidak ada data. Proses ini menyediakan irama dan penanda yang dapat diprediksi yang dapat memberi umpan prosesor batch Anda.

Menyiapkan Azure Event Hubs Capture

Anda dapat mengonfigurasikan Capture pada waktu pembuatan hub peristiwa menggunakan portal Microsoft Azure, atau menggunakan templat Azure Resource Manager. Untuk informasi lebih lanjut, baca artikel berikut:

Catatan

Jika Anda mengaktifkan fitur Capture untuk hub peristiwa yang sudah ada, fitur akan mengambil peristiwa yang tiba di hub peristiwa setelah fitur diaktifkan. Ini tidak mengambil peristiwa yang ada di hub peristiwa sebelum fitur dihidupkan.

Cara mengisi daya Azure Event Hubs Capture

Fitur pengambilan disertakan dalam tingkat premium sehingga tidak ada biaya tambahan untuk tingkat tersebut. Untuk tingkat Standar, fitur ini dikenakan biaya bulanan, dan biayanya sebanding dengan jumlah unit throughput atau unit pemrosesan yang dibeli untuk namespace layanan. Saat unit throughput atau unit pemrosesan ditingkatkan dan diturunkan, pengukur Azure Event Hubs Capture meningkat dan menurun untuk memberikan performa yang sesuai. Pengukuran terjadi bersamaan. Untuk detail harga, lihat Harga Azure Event Hubs.

Mengambil tidak menggunakan kuota egress karena ditagihkan secara terpisah.

Integrasi dengan Event Grid

Anda bisa membuat langganan Azure Event Grid dengan namespace layanan Azure Event Hubs sebagai sumbernya. Tutorial berikut menunjukkan kepada Anda cara membuat langganan Event Grid dengan pusat aktivitas sebagai sumber dan aplikasi Azure Functions sebagai sink: Memproses dan memigrasikan data Event Hubs yang diambil ke Azure Synapse Analytics menggunakan Event Grid dan Azure Functions.

Menjelajahi file yang diambil

Untuk mempelajari cara menjelajahi file Avro yang diambil, lihat Menjelajahi file Avro yang diambil.

Akun Azure Storage sebagai tujuan

Untuk mengaktifkan pengambilan di pusat aktivitas dengan Azure Storage sebagai tujuan penangkapan, atau memperbarui properti di hub peristiwa dengan Azure Storage sebagai tujuan penangkapan, pengguna atau perwakilan layanan harus memiliki peran RBAC dengan izin berikut yang ditetapkan di cakupan akun penyimpanan. 

Microsoft.Storage/storageAccounts/blobServices/containers/write
Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write

 

Tanpa izin di atas, Anda akan melihat kesalahan di bawah ini:

Generic: Linked access check failed for capture storage destination <StorageAccount Arm Id>.
User or the application with object id <Object Id> making the request doesn't have the required data plane write permissions.
Please enable Microsoft.Storage/storageAccounts/blobServices/containers/write, Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write permission(s) on above resource for the user or the application and retry.
TrackingId:<ID>, SystemTracker:mynamespace.servicebus.windows.net:myhub, Timestamp:<TimeStamp>

Pemilik Data Blob Penyimpanan adalah peran bawaan dengan izin di atas, jadi tambahkan akun pengguna atau perwakilan layanan ke peran ini.  

Langkah berikutnya

Azure Event Hubs Capture adalah cara termudah untuk mendapatkan data ke Azure. Menggunakan Azure Data Lake, Azure Data Factory, dan Azure HDInsight, Anda dapat melakukan pemrosesan batch dan analitik lainnya menggunakan alat dan platform yang Anda pilih, dalam skala apa pun yang Anda butuhkan.

Pelajari cara mengaktifkan fitur ini menggunakan portal Microsoft Azure dan templat Azure Resource Manager: