Aracılığıyla paylaş


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ş delta tablosuna yerel 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 kaybolmadığını veya çoğaltılmadığını garanti eden tam olarak bir kez semantik sağlar. Azure Event Hubs'dan Delta tablolarına gerçek zamanlı veri akışları 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ölüm sütunu isteğe bağlı. {field} Çıkış verilerinizden bölüme kadar olan ad. Yalnızca bir bölüm sütunu desteklenir. Sütunun değeri türünde string 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} ada 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 ve Test 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 yazma

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 bir kez teslim sağlar.

Şema zorlaması

Ş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ıyla akış işinin kaydının şeması arasında kesişim yoksa, şema dönüştürme hatası örneği 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 günlüğü denetim noktaları

Stream Analytics işi, Delta günlük denetim noktalarını düzenli aralıklarla 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.

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üm 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.
  • Tarih ve Ondalık türleri desteklenmez.
  • Yazıcı özellikleriyle Yazıcı Sürüm 7 veya üzerinin mevcut tablolarında yazma başarısız olur.
    • Örnek: Silme Vektörleri etkin durumdaki mevcut tablolara yazma başarısız olur.
    • Buradaki özel durumlar changeDataFeed ve appendOnly Writer Özellikleridir.
  • Stream Analytics işi Delta Lake'e bir toplu veri yazdığında, birden çok Dosya Ekle eylemi oluşturabilir. Tek bir toplu işlem için çok fazla Dosya Ekle eylemi oluşturulduğunda Stream Analytics işi takılabilir.
    • Oluşturulan Dosya Ekle eylemlerinin sayısı birçok faktör tarafından belirlenir:
    • Toplu iş için oluşturulan Dosya Ekle eylemlerinin sayısını azaltmak için:
  • 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.