Bagikan melalui


Azure Stream Analytics: Menulis ke tabel Delta Lake

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

Pekerjaan Azure Stream Analytics 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 Tambahkan. Ini juga menyediakan semantik sekali persis 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 Data Lake Storage Gen2. Tabel berikut mencantumkan properti yang terkait dengan konfigurasi Delta Lake.

Nama properti Deskripsi
Format serialisasi peristiwa Format serialisasi untuk data output. JSON, CSV, Avro, dan 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. Informasi selengkapnya ada 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 Data Lake Storage Gen2, lihat Gambaran umum Azure Data Lake Storage Gen2.

Nama jalur Delta

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

Anda dapat 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 meliputi:

  • Nama bidang tidak peka huruf besar/kecil. Misalnya, layanan tidak dapat membedakan antara kolom ID dan id.
  • Tidak ada nama dinamis {field} 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: Test/demo
  • Contoh 3: mytable

Contoh file output:

  1. Di bawah kontainer yang dipilih, jalur direktori adalah WestEurope/CA/factory1 dan nama folder tabel Delta adalah tabel perangkat.
  2. Di bawah kontainer yang dipilih, jalur direktori adalah Test dan nama folder tabel Delta adalah demo.
  3. Di bawah kontainer yang dipilih, nama folder tabel Delta adalah 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, Stream Analytics membuat tabel Delta baru. Tabel baru ini dibuat dengan konfigurasi berikut:

Menulis ke tabel

Jika tabel Delta Lake sudah ada 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.

Pengiriman tepat sekali

Log transaksi memungkinkan Delta Lake menjamin pemrosesan tepat sekali. Azure Stream Analytics juga menyediakan pengiriman tepat sekali saat menghasilkan data ke 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 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 dianggap sebagai kegagalan konversi skema.

Pada kegagalan konversi skema, perilaku pekerjaan mengikuti kebijakan penanganan kesalahan data output yang dikonfigurasi di 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, itu mengarah ke titik pemeriksaan besar, yang dapat menyebabkan masalah memori dalam pekerjaan Azure Stream Analytics.

Batasan

  • Kunci partisi dinamis (menentukan nama kolom skema rekaman di jalur Delta) tidak didukung.
  • Beberapa kolom partisi tidak didukung. Jika Anda menginginkan beberapa kolom partisi, kami sarankan Anda menggunakan kunci komposit dalam kueri lalu menentukannya sebagai kolom partisi.
    • Kunci komposit dapat dibuat dalam kueri. Contohnya "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 tindakan Tambahkan File yang dihasilkan ditentukan oleh banyak faktor:
    • Untuk mengurangi jumlah tindakan Tambahkan File yang dihasilkan untuk batch:
  • Pekerjaan Azure Stream Analytics hanya dapat membaca dan menulis titik pemeriksaan V1 bagian tunggal. Titik pemeriksaan multipihak dan format titik pemeriksaan V2 tidak didukung.