Azure Stream Analytics: Delta Lake tablosuna yazma

Delta Lake, veri göllerine güvenilirlik, kalite ve performans getiren açık bir biçimdir. Tek bir kod satırı yazmadan akış verilerini Delta Lake tablolarınıza doğrudan yazmak için Azure Stream Analytics'i kullanabilirsiniz.

Stream Analytics işi, bir Azure Data Lake Storage 2. Nesil hesabındaki yeni veya önceden oluşturulmuş bir Delta Tablosuna yerel bir Delta Lake çıkış bağlayıcısı aracılığıyla yazacak şekilde yapılandırılabilir. Bu bağlayıcı, Ekleme modunda Delta tablolarına yüksek hızlı alım için iyileştirilmiştir. Ayrıca, hiçbir verinin kaybolmaması veya çoğaltılmamasını garanti eden "exactly-once semantic" sağlar. gerçek zamanlı veri akışlarını Azure Event Hubs Delta tablolarına almak, geçici etkileşimli veya toplu analiz gerçekleştirmenizi sağlar.

Delta Lake yapılandırması

Delta Lake'te veri yazmak için bir Data Lake Storage 2. Nesil hesabına bağlanmanız gerekir. Aşağıdaki tabloda Delta Lake yapılandırmasıyla ilgili özellikler listelenir.

Özellik adı Açıklama
Olay serileştirme biçimi Çıkış verileri için serileştirme biçimi. JSON, CSV, Avro ve Parquet desteklenir. Delta Lake burada bir seçenek olarak listelenmiştir. Delta Lake seçiliyse veriler Parquet biçimindedir.
Delta yol adı Delta Lake tablonuzu belirtilen kapsayıcıya yazmak için kullanılan yol. Tablo adını içerir. Sonraki bölümde daha fazla bilgi bulabilirsiniz.
Bölme sütunu isteğe bağlı. {field} Çıkış verilerinizden bölüme kadar olan ad. Yalnızca bir tane bölüm sütunu desteklenir. Dün sütunun string türünde bir değeri olmalıdır.

Data Lake Storage 2. Nesil yapılandırmasının tam listesini görmek için bkz. Azure Data Lake Storage 2. Nesil genel bakış.

Delta yol adı

Delta yolu adı, Data Lake Storage 2. Nesil'de depolanan Delta Lake tablonuzun konumunu ve adını belirtmek için kullanılır.

Delta tablosunun yolunu ve Delta tablosu adını tanımlamak için bir veya daha fazla yol kesimi kullanabilirsiniz. Yol kesimi, bir sanal dizinin adına karşılık gelen ardışık sınırlayıcı karakterleri (örneğin eğik çizgi /) arasındaki dizedir.

Segment adı alfasayısaldır ve boşluk, kısa çizgi ve alt çizgi içerebilir. Tablo adı olarak son yol kesimi kullanılır.

Delta yolu adıyla ilgili kısıtlamalar şunlardır:

  • Alan adları büyük/küçük harfe duyarlı değildir. Örneğin, hizmet sütun ID ile idarasında ayrım yapamaz.
  • Dinamik {field} adına izin verilmez. Örneğin, {ID} {ID} metni olarak değerlendirilir.
  • Adı oluşturan yol kesimlerinin sayısı 254'ü aşamaz.

Örnekler

Delta yol adı örnekleri:

  • Örnek 1: WestUS/CA/factory1/device-table
  • Örnek 2: Test/demo
  • Örnek 3: mytable

Örnek çıkış dosyaları:

  1. Seçilen kapsayıcının altında dizin yolu, WestEurope/CA/factory1 Delta tablosu klasör adı ise device-table şeklindedir.
  2. Seçilen kapsayıcının altında, dizin yolu Test ve Delta tablosu klasör adı demo şeklindedir.
  3. Seçilen kapsayıcının altında Delta tablosu klasör adı mytable şeklindedir.

Yeni tablo oluşturma

Aynı ada ve Delta yolu adıyla belirtilen konumda henüz bir Delta Lake tablosu yoksa, Stream Analytics varsayılan olarak yeni bir Delta tablosu oluşturur. Bu yeni tablo aşağıdaki yapılandırmayla oluşturulur:

Tabloya yaz

Delta Lake tablosu zaten aynı ada ve Delta yolu adıyla belirtilen konuma sahipse, Stream Analytics varsayılan olarak var olan tabloya yeni kayıtlar yazar.

Tam olarak bir kez teslim

İşlem günlüğü Delta Lake'in tam olarak bir kez işleme garantisi vermesine olanak tanır. Stream Analytics ayrıca tek bir iş çalıştırması sırasında Data Lake Storage 2. Nesil veri çıkışı yaparken tam olarak yalnızca bir kez teslimat sağlar.

Şema uygulama zorunluluğu

Şema zorlaması, bir tabloya yapılan tüm yeni yazmaların, veri kalitesini sağlamak için yazma zamanında hedef tablonun şemasıyla uyumlu olacak şekilde zorlanması anlamına gelir.

Çıktı verilerinin tüm kayıtları mevcut tablonun şemasına yansıtılır. Çıkış yeni bir Delta tablosuna yazılırsa, tablo şeması ilk kayıtla oluşturulur. Gelen verilerin mevcut tablo şemasıyla karşılaştırıldığında fazladan bir sütunu varsa, ek sütun olmadan tabloda yazılır. Gelen verilerde mevcut tablo şemasıyla karşılaştırıldığında bir sütun eksikse, tabloya sütun null olarak yazılır.

Delta tablosunun şeması ile akış görevinin kayıt şeması arasında kesişim yoksa, bu durum bir şema dönüştürme hatası olarak kabul edilir. Şema dönüştürme hatası olarak kabul edilen tek durum bu değildir.

Şema dönüştürme hatasında, iş davranışı iş düzeyinde yapılandırılan çıkış verileri hata işleme ilkesini izler.

Delta kayıt denetim noktaları

Stream Analytics işi periyodik olarak Delta log denetim noktaları V1 biçiminde oluşturur. Delta günlük denetim noktaları Delta tablosunun anlık görüntüleridir ve genellikle Stream Analytics işi tarafından oluşturulan veri dosyasının adını içerir. Veri dosyalarının sayısı büyükse, büyük denetim noktalarına yol açar ve bu da Stream Analytics işinde bellek sorunlarına neden olabilir.

OPTIMIZE ve VACUUM komutları aracılığıyla düzenli tablo bakımı düzenli aralıklarla yapılmalıdır ve "delta.deletedFileRetentionDuration" özelliği, akış işinin verileri işleyebilmesiyle müşterinin zaman yolculuğu/geri alma işlemleri için ihtiyaç duyduğu dengeyi sağlayan makul bir değere ayarlanmalıdır. delta.deletedFileRetentionDuration denetim noktası dosyasına hangilerinin Remove File actiondahil olduğunu belirlemek için kullanılır. Remove File action değerinden daha eski olan herhangi bir deletedFileRetentionDuration, kontrol noktasına dahil edilmeyecektir. Bu, kontrol noktasının kısalmasına neden olur ancak zaman yolculuğu veya geri alma işlevselliğini önler. Varsayılan değer deletedFileRetentionDuration 1 haftadır, ancak bazı motorlar farklı bir varsayılan değere sahip olabilir.

Sınırlamalar

  • Dinamik bölüm anahtarı (Delta yolunda kayıt şemasının bir sütununun adını belirtme) desteklenmez.
  • Birden çok bölümlere ayırma sütunu desteklenmez. Birden çok bölüm sütunu istiyorsanız, sorguda bileşik anahtar kullanmanızı ve ardından bunu bölüm sütunu olarak belirtmenizi öneririz.
    • Sorguda bileşik anahtar oluşturulabilir. "SELECT concat (col1, col2) AS compositeColumn INTO [blobOutput] FROM [input]" bunun bir örneğidir.
  • Delta Lake'e yazma yalnızca ekleme işlemidir.
  • Sorgu testinde şema denetimi kullanılamaz.
  • Stream Analytics tarafından küçük dosya sıkıştırma işlemi gerçekleştirilmez.
  • Tüm veri dosyaları sıkıştırma olmadan oluşturulur.
  • Date ve Ondalık türleri desteklenmez.
  • Yazılım Sürüm 7 veya üzerinin mevcut tablolarında yazılım özellikleriyle yazma işlemi başarısız olur.
  • Stream Analytics işi bir veri kümesini Delta Lake'e yazdığında, birden çok Dosya Ekleme eylemleri oluşturabilir. Tek bir toplu işlem için çok fazla Dosya Ekle eylemi oluşturulduğunda Stream Analytics işi takılabilir.
  • Stream Analytics işleri yalnızca tek parçalı V1 denetim noktalarını okuyabilir ve yazabilir. Çok parçalı denetim noktaları ve denetim noktası V2 biçimi desteklenmez.