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
ileid
arası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ı:
- Seçilen kapsayıcının altında dizin yolu,
WestEurope/CA/factory1
Delta tablosu klasör adı ise device-table şeklindedir. - Seçilen kapsayıcının altında dizin yolu ve
Test
Delta tablosu klasör adı demo şeklindedir. - 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:
- Yazar Sürüm 2.
- Okuyucu Sürüm 1.
- Tablo yalnızca eklemedir.
- Tablo şeması, karşılaşılan ilk kaydın şemasıyla 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.
- Sorguda bileşik anahtar oluşturulabilir.
- 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ş boyutu. Veri birimi ve toplu işlem parametreleri Minimum Satırlar ve En Fazla Süre ile belirlenir.
- Toplu işin bölüm sütunu değerlerinin kardinalitesi.
- Toplu iş için oluşturulan Dosya Ekle eylemlerinin sayısını azaltmak için:
- Toplu işlem yapılandırmalarını En Düşük Satırlar ve En Fazla Süre'yi azaltın.
- Giriş verilerini ince ayarlayarak veya farklı bir bölüm sütunu seçerek bölüm sütunu değerlerinin kardinalitesini azaltın.
- Oluşturulan Dosya Ekle eylemlerinin sayısı birçok faktör tarafından belirlenir:
- 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.