Azure Stream Analytics - tulis ke tabel Delta Lake

Delta Lake adalah format terbuka yang menghadirkan keandalan, kualitas, dan performa ke data lake. Azure Stream Analytics memungkinkan Anda menulis data streaming secara langsung ke tabel delta lake Anda tanpa menulis satu baris kode pun.

Pekerjaan analisis aliran dapat dikonfigurasi untuk menulis melalui konektor output delta lake asli, baik ke tabel Delta baru atau yang dibuat sebelumnya di akun Azure Data Lake Storage Gen2. Konektor ini dioptimalkan untuk penyerapan kecepatan tinggi ke tabel delta dalam mode tambahan dan juga menyediakan semantik sekali, yang menjamin bahwa tidak ada data yang hilang atau diduplikasi. Menyerap aliran data real time dari Azure Event Hubs ke dalam tabel Delta memungkinkan Anda melakukan analitik interaktif atau batch ad-hoc.

Konfigurasi Delta Lake

Untuk menulis data di Delta Lake, Anda perlu menyambungkan ke akun Azure Data Lake Storage Gen2. Tabel di bawah ini mencantumkan properti yang terkait dengan konfigurasi Delta Lake.

Nama Properti Deskripsi
Format Serialisasi Peristiwa Format serialisasi untuk data output. JSON, CSV, AVRO, Parquet didukung. Delta Lake terdaftar sebagai opsi di sini. Data dalam format Parquet jika Delta Lake dipilih.
Nama jalur Delta Jalur yang digunakan untuk menulis tabel delta lake Anda dalam kontainer yang ditentukan. Ini termasuk nama tabel. Detail selengkapnya di bagian berikutnya.
Kolom Partisi Opsional. Nama {field} dari data output Anda ke partisi. Hanya satu kolom partisi yang didukung. Nilai kolom harus berjenis string

Untuk melihat daftar lengkap konfigurasi ADLS Gen2, lihat Ringkasan ALDS Gen2.

Nama Jalur Delta

Nama Jalur Delta digunakan untuk menentukan lokasi dan nama tabel Delta Lake Anda yang disimpan di Azure Data Lake Storage Gen2.

Anda dapat memilih untuk menggunakan satu atau beberapa segmen jalur untuk menentukan jalur ke tabel delta dan nama tabel delta. Segmen jalur adalah string antara karakter pemisah berturut-turut (misalnya, garis miring /) yang sesuai dengan nama direktori virtual.

Nama segmen adalah alfanumerik dan dapat mencakup spasi, tanda hubung, dan garis bawah. Segmen jalur terakhir digunakan sebagai nama tabel.

Pembatasan pada nama Jalur Delta mencakup yang berikut ini:

  • Nama bidang tidak peka huruf besar-kecil. Misalnya, layanan tidak dapat membedakan antara kolom ID dan id.
  • Tidak ada nama {field} dinamis yang diizinkan. Misalnya, {ID} diperlakukan sebagai teks {ID}.
  • Jumlah segmen jalur yang terdiri dari nama tidak boleh melebihi 254.

Contoh

Contoh untuk nama jalur Delta:

  • Contoh 1: WestUS/CA/factory1/device-table
  • Contoh 2: Uji/demo
  • Contoh 3: mytable

Contoh file output:

  1. Di bawah kontainer yang dipilih, jalur direktori adalah WestEurope/CA/factory1 dan nama folder tabel delta akan menjadi tabel perangkat.
  2. Di bawah kontainer yang dipilih, jalur direktori adalah Test dan nama folder tabel delta akan menjadi demo.
  3. Di bawah kontainer yang dipilih, nama folder tabel delta akan menjadi mytable.

Membuat tabel baru

Jika belum ada tabel Delta Lake dengan nama yang sama dan di lokasi yang ditentukan oleh nama Jalur Delta, secara default, Azure Stream Analytics membuat Tabel Delta baru. Tabel baru ini dibuat dengan konfigurasi berikut:

Menulis ke tabel

Jika sudah ada tabel Delta Lake dengan nama yang sama dan di lokasi yang ditentukan oleh nama Jalur Delta, secara default, Azure Stream Analytics menulis rekaman baru ke tabel yang sudah ada.

Tepat sekali pengiriman

Log transaksi memungkinkan Delta Lake menjamin pemrosesan tepat sekali. Azure Stream Analytics juga menyediakan pengiriman tepat sekali saat menghasilkan data ke Azure Data Lake Storage Gen2 selama satu pekerjaan berjalan.

Penegakan skema

Penegakan skema berarti bahwa semua penulisan baru ke tabel diberlakukan agar kompatibel dengan skema tabel target pada waktu tulis, untuk memastikan kualitas data.

Semua rekaman data output diproyeksikan ke skema tabel yang ada. Jika output sedang ditulis ke tabel delta baru, skema tabel dibuat dengan rekaman pertama. Jika data masuk memiliki satu kolom tambahan dibandingkan dengan skema tabel yang ada, data tersebut ditulis dalam tabel tanpa kolom tambahan. Jika data masuk kehilangan satu kolom dibandingkan dengan skema tabel yang ada, data tersebut ditulis dalam tabel dengan kolom null.

Jika tidak ada persimpangan antara skema tabel delta dan skema rekaman pekerjaan streaming, itu dianggap sebagai contoh kegagalan konversi skema. Ini bukan satu-satunya kasus yang akan dianggap sebagai kegagalan konversi skema.

Pada kegagalan konversi skema, perilaku pekerjaan mengikuti kebijakan penanganan kesalahan data output yang dikonfigurasi pada tingkat pekerjaan.

Titik pemeriksaan Log Delta

Pekerjaan Azure Stream Analytics membuat titik pemeriksaan Log Delta secara berkala dalam format V1. Titik pemeriksaan Log Delta adalah rekam jepret Tabel Delta dan biasanya berisi nama file data yang dihasilkan oleh pekerjaan Azure Stream Analytics. Jika jumlah file data besar, maka mengarah ke titik pemeriksaan besar, yang dapat menyebabkan masalah memori dalam Pekerjaan Analisis Aliran.

Batasan

  • Kunci partisi dinamis (menentukan nama kolom skema rekaman di Jalur Delta) tidak didukung.
  • Beberapa kolom partisi tidak didukung. Jika beberapa kolom partisi diinginkan, rekomendasinya adalah menggunakan kunci komposit dalam kueri lalu menentukannya sebagai kolom partisi.
    • Kunci komposit dapat dibuat dalam kueri misalnya: "SELECT concat (col1, col2) AS compositeColumn INTO [blobOutput] FROM [input]".
  • Menulis ke Delta Lake hanya ditambahkan.
  • Pemeriksaan skema dalam pengujian kueri tidak tersedia.
  • Pemadatan file kecil tidak dilakukan oleh Azure Stream Analytics.
  • Semua file data dibuat tanpa pemadatan.
  • Jenis Tanggal dan Desimal tidak didukung.
  • Menulis ke tabel Writer Versi 7 atau lebih tinggi yang ada dengan fitur penulis gagal.
    • Contoh: Menulis ke tabel yang ada dengan Vektor Penghapusan diaktifkan gagal.
    • Pengecualian di sini adalah fitur changeDataFeed dan appendOnly Writer.
  • Saat pekerjaan Azure Stream Analytics menulis batch data ke Delta Lake, pekerjaan tersebut dapat menghasilkan beberapa Tindakan Tambahkan File. Ketika ada terlalu banyak Tindakan Tambahkan File yang dihasilkan untuk satu batch, Pekerjaan Azure Stream Analytics dapat macet.
    • Jumlah Tambahkan Tindakan File yang dihasilkan ditentukan oleh banyak faktor:
    • Untuk mengurangi jumlah Tambahkan Tindakan File yang dihasilkan untuk batch, langkah-langkah berikut dapat diambil:
  • Pekerjaan Azure Stream Analytics hanya dapat membaca dan menulis satu bagian V1 Titik Pemeriksaan. Titik pemeriksaan multi-bagian dan format Checkpoint V2 tidak didukung.

Langkah berikutnya