Aracılığıyla paylaş


Stream Analytics'ten Azure Blob Depolama ve Data Lake Storage 2. Nesil çıkışı

Azure Data Lake Storage 2. Nesil, Azure Depolama'yı Azure'da kurumsal veri gölleri oluşturmanın temeli haline getirir. Data Lake Storage 2. Nesil, yüzlerce gigabit aktarım hızı sağlarken birden çok petabaytlık bilgiye hizmet vermek üzere tasarlanmıştır. Çok büyük miktarlardaki verileri kolayca yönetmek için bunu kullanabilirsiniz. Data Lake Storage 2. Nesil temel bir parçası, Azure Blob Depolama hiyerarşik ad alanının eklenmesidir.

Blob Depolama, büyük miktarlarda yapılandırılmamış verileri bulutta depolamak için uygun maliyetli ve ölçeklenebilir bir çözüm sunar. Blob Depolama'ya ve kullanımına giriş için bkz . Azure portalıyla blobları karşıya yükleme, indirme ve listeleme.

Not

Avro ve Parquet biçimlerine özgü davranışlar hakkında bilgi için genel bakış sayfasındaki ilgili bölümlere bakın.

Çıkış yapılandırması

Aşağıdaki tabloda blob veya Data Lake Storage 2. Nesil çıktısı oluşturmaya yönelik özellik adları ve açıklamaları listelemektedir.

Özellik adı Açıklama
Çıktı diğer adı Sorgu çıktısını bu bloba yönlendirmek için sorgularda kullanılan kolay ad.
Storage account Çıktınızı gönderdiğiniz depolama hesabının adı.
Depolama hesabı anahtarı Depolama hesabıyla ilişkili gizli anahtar.
Kapsayıcı Blob Depolama'da depolanan bloblar için mantıksal gruplandırma. Blob Depolama'ya bir blob yüklediğinizde, bu blob için bir kapsayıcı belirtmeniz gerekir.

Dinamik kapsayıcı adı isteğe bağlıdır. Kapsayıcı adında bir ve yalnızca bir dinamik {field} destekler. Alanın çıktı verilerinde mevcut olması ve kapsayıcı adı ilkesini izlemesi gerekir.

Alan veri türü olmalıdır string. Birden çok dinamik alan kullanmak veya statik metni dinamik alanla birlikte birleştirmek için, sorguda ve LTRIMgibi CONCAT yerleşik dize işlevleriyle tanımlayabilirsiniz.
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 Lake hakkında daha fazla bilgi edinin.
Delta yol adı Olay serileştirme biçimi Delta Lake olduğunda gereklidir. Delta Lake tablosunu belirtilen kapsayıcı içinde yazmak için kullanılan yol. Tablo adını içerir. Daha fazla bilgi ve örnek için bkz . Delta Lake tablosuna yazma.
Write mode Yazma modu, Azure Stream Analytics'in çıkış dosyasına yazma biçimini denetler. Tam olarak bir kez teslim yalnızca Yazma modu Bir Kez olduğunda gerçekleşir. Daha fazla bilgi edinmek için sonraki bölüme bakın.
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.
Yol deseni Olay serileştirme biçimi Delta Lake olduğunda gereklidir. Bloblarınızı belirtilen kapsayıcıya yazmak için kullanılan dosya yolu deseni.

Yol deseninde, blobların yazıldığı sıklığı belirtmek için tarih ve saat değişkenlerinin bir veya daha fazla örneğini kullanmayı seçebilirsiniz: {date}, {time}.

Yazma modunuz Bir Kez ise, hem {time}hem de {date} kullanmanız gerekir.

Olay verilerinizden bölüm bloblarına bir özel ad belirtmek için özel {field} blob bölümleme kullanabilirsiniz. Alan adı alfasayısaldır ve boşluk, kısa çizgi ve alt çizgi içerebilir. Özel alanlardaki kısıtlamalar şunlardır:
  • Yazma modunuz Bir Kez ise dinamik özel {field} ada izin verilmez.
  • Alan adları büyük/küçük harfe duyarlı değildir. Örneğin, hizmet sütun ve sütun IDidarasında ayrım yapamaz.
  • İç içe alanlara izin verilmez. Bunun yerine, alanı "düzleştirmek" için iş sorgusunda bir diğer ad kullanın.
  • İfadeler alan adı olarak kullanılamaz.

Bu özellik, yolda özel tarih/saat biçimi tanımlayıcı yapılandırmalarının kullanılmasını sağlar. Özel tarih/saat biçimleri teker teker belirtilmeli ve anahtar sözcüğüyle {datetime:\<specifier>} kapatılmalıdır. için \<specifier> izin verilebilen girişler , , MMM, dd, , d, HH, mmssHm, veya s'dır.yyyy Anahtar {datetime:\<specifier>} sözcük, özel tarih/saat yapılandırmaları oluşturmak için yolda birden çok kez kullanılabilir.

Örnekler:
  • Örnek 1: cluster1/logs/{date}/{time}
  • Örnek 2: cluster1/logs/{date}
  • Örnek 3: cluster1/{client_id}/{date}/{time}
  • Örnek 4: cluster1/{datetime:ss}/{myField} sorgunun bulunduğu yer SELECT data.myField AS myField FROM Input;
  • Örnek 5: cluster1/year={datetime:yyyy}/month={datetime:MM}/day={datetime:dd}

Oluşturulan klasör yapısının zaman damgası yerel saati değil UTC'yi izler. System.Timestamp , tüm zaman tabanlı bölümleme için kullanılan zamandır.

Dosya adlandırma aşağıdaki kuralı kullanır:

{Path Prefix Pattern}/schemaHashcode_Guid_Number.extension

Burada, Guid blob dosyasına yazmak için oluşturulan bir iç yazıcıya atanan benzersiz tanımlayıcıyı temsil eder. Sayı, blob bloğunun dizinini temsil eder.

Örnek çıkış dosyaları:
  • Myoutput/20170901/00/45434_gguid_1.csv
  • Myoutput/20170901/01/45434_gguid_1.csv

Bu özellik hakkında daha fazla bilgi için bkz . Azure Stream Analytics özel blob çıktı bölümleme.
Tarih biçimi Olay serileştirme biçimi Delta Lake olduğunda gereklidir. Ön ek yolunda tarih belirteci kullanılıyorsa, dosyalarınızın düzenlendiği tarih biçimini seçebilirsiniz. YYYY/MM/DD bunun bir örneğidir.
Saat biçimi Olay serileştirme biçimi Delta Lake olduğunda gereklidir. Zaman belirteci ön ek yolunda kullanılıyorsa, dosyalarınızın düzenlendiği zaman biçimini belirtin.
En düşük satır sayısı Toplu iş başına minimum satır sayısı. Parquet için her toplu iş yeni bir dosya oluşturur. Geçerli varsayılan değer 2.000 satırdır ve izin verilen en fazla 10.000 satırdır.
En uzun süre Toplu iş başına en uzun bekleme süresi. Bu süreden sonra, en düşük satır gereksinimi karşılanmasa bile toplu iş çıktıya yazılır. Geçerli varsayılan değer 1 dakika ve izin verilen maksimum değer 2 saattir. Blob çıkışınızda yol desen sıklığı varsa bekleme süresi bölüm zaman aralığından yüksek olamaz.
Kodlama CSV veya JSON biçimi kullanıyorsanız kodlama belirtilmelidir. UTF-8 şu anda desteklenen tek kodlama biçimidir.
Sınırlayıcı Yalnızca CSV serileştirme için geçerlidir. Stream Analytics, CSV verilerini serileştirmek için birçok yaygın sınırlayıcıyı destekler. Desteklenen değerler virgül, noktalı virgül, boşluk, sekme ve dikey çubuklardır.
Biçimlendir Yalnızca JSON serileştirme için geçerlidir. Ayrılmış satır, her JSON nesnesinin yeni bir satırla ayrılmasıyla çıkışın biçimlendirildiğini belirtir. Çizgiyle ayrılmış seçeneğini belirlediğinizde JSON her seferinde bir nesne okunur. İçeriğin tamamı tek başına geçerli bir JSON olmayacaktır. Dizi , çıkışın bir JSON nesneleri dizisi olarak biçimlendirildiğini belirtir. Bu dizi yalnızca iş durduğunda veya Stream Analytics bir sonraki zaman penceresine geçtiğinde kapatılır. Genel olarak, çıkış dosyası yazılmaktayken özel bir işleme gerektirmediğinden satırla ayrılmış JSON kullanılması tercih edilir.

Tam olarak bir kez teslim (genel önizleme)

Herhangi bir akış girişi okunurken tam olarak bir kez uçtan uca teslim, işlenen verilerin yinelenenler olmadan bir kez Data Lake Storage 2. Nesil çıktıya yazılması anlamına gelir. Özellik etkinleştirildiğinde Stream Analytics işiniz, son çıkış zamanından itibaren kullanıcı tarafından başlatılan yeniden başlatma süresi boyunca veri kaybı olmamasını ve çıkış olarak yinelenmemesini garanti eder. Yinelenenleri kaldırma mantığını uygulamak ve sorunlarını gidermek zorunda kalmadan akış işlem hattınızı basitleştirir.

Write mode

Stream Analytics'in Blob Depolama veya Data Lake Storage 2. Nesil hesabınıza yazmanın iki yolu vardır. Bunun bir yolu, sonuçları aynı dosyaya veya sonuçların geldiği dosya dizisine eklemektir. Diğer yol, zaman bölümü için tüm veriler kullanılabilir olduğunda zaman bölümü için tüm sonuçlardan sonra yazmaktır. Yazma modu Bir Kez olduğunda tam olarak bir kez teslim etkinleştirilir.

Delta Lake için Yazma modu seçeneği yoktur. Ancak Delta Lake çıkışı, Delta günlüğünü kullanarak tam olarak bir kez garantiler de sağlar. Zaman bölümü gerektirmez ve sonuçları kullanıcının tanımladığı toplu işleme parametrelerine göre sürekli yazar.

Not

Önizleme özelliğini tam olarak bir kez teslim için kullanmamak isterseniz Sonuçlar geldikçe Ekle'yi seçin.

Yapılandırma

Blob Depolama veya Data Lake Storage 2. Nesil hesabınız için tam olarak bir kez teslim almak için aşağıdaki ayarları yapılandırmanız gerekir:

  • Yazma Modunuzda zaman bölümünün tüm sonuçları kullanılabilir olduktan sonra bir kez'i seçin.
  • Hem hem de {date}{time} belirtilen yol deseni sağlayın.
  • Tarih biçimini ve saat biçimini belirtin.

Sınırlamalar

  • Alt akış desteklenmez.
  • Yol Deseni gerekli bir özellik haline gelir ve hem hem de {date}{time}içermelidir. Dinamik özel {field} ada izin verilmez. Özel yol düzeni hakkında daha fazla bilgi edinin.
  • İş, son çıkış saatinden önce veya sonra özel bir zamanda başlatılırsa, dosyanın üzerine yazılması riski vardır. Örneğin, saat biçimi HH olarak ayarlandığında, dosya saatte bir oluşturulur. İşi 08:15'te durdurur ve işi 08:30'da yeniden başlatırsanız, 08:30 ile 09:00 arasında oluşturulan dosya yalnızca 08:30 ile 09:00 arasındaki verileri kapsar. 08:00 ile 08:15 olan veriler üzerine yazıldığında kaybolur.

Blob çıkış dosyaları

Blob Depolama'yı çıktı olarak kullanırken, aşağıdaki durumlarda blobda yeni bir dosya oluşturulur:

  • Dosya izin verilen en fazla blok sayısını (şu anda 50.000) aşıyor. İzin verilen en fazla blob boyutuna ulaşmadan izin verilen en fazla blok sayısına ulaşabilirsiniz. Örneğin, çıkış hızı yüksekse blok başına daha fazla bayt görebilirsiniz ve dosya boyutu daha büyüktür. Çıkış hızı düşükse, her bloğun verileri daha azdır ve dosya boyutu daha küçüktür.
  • Çıktıda bir şema değişikliği vardır ve çıkış biçimi sabit şema (CSV, Avro veya Parquet) gerektirir.
  • Bir iş, bir kullanıcı tarafından dışarıdan durdurulup başlatılarak veya sistem bakımı veya hata kurtarma için dahili olarak yeniden başlatılır.
  • Sorgu tamamen bölümlenmiş ve her çıkış bölümü için yeni bir dosya oluşturulur. 1.2 uyumluluk düzeyinde kullanıma sunulan veya PARTITION BY yerel paralelleştirmeden gelir.
  • Kullanıcı depolama hesabının bir dosyasını veya kapsayıcısını siler.
  • Çıkış, yol ön eki deseni kullanılarak bölümlenen zamandır ve sorgu bir sonraki saate geçtiğinde yeni bir blob kullanılır.
  • Çıkış, özel bir alan tarafından bölümlenmiştir ve yoksa bölüm anahtarı başına yeni bir blob oluşturulur.
  • Çıkış, bölüm anahtarı kardinalitesinin 8.000'i aştığı ve bölüm anahtarı başına yeni bir blob oluşturulduğu özel bir alan tarafından bölümlenmiştir.

Bölümleme

Bölüm anahtarı için, yol desenindeki olay alanlarınızdaki ve {time} belirteçlerini kullanın{date}. Tarih biçimini seçin; örneğin YYYY/MM/DD, , DD/MM/YYYYveya MM-DD-YYYY. HH saat biçimi için kullanılır. Blob çıkışı tek bir özel olay özniteliği {fieldname} veya {datetime:\<specifier>}ile bölümlenebilir. Çıkış yazıcılarının sayısı, tam olarak paralelleştirilebilir sorgular için giriş bölümlemini izler.

Çıktı toplu iş boyutu

İleti boyutu üst sınırı için bkz . Azure Depolama sınırları. Blob bloğu boyutu üst sınırı 4 MB, maksimum blob bloğu sayısı ise 50.000'dir.

Sınırlamalar

  • Yol deseninde eğik çizgi simgesi (/) kullanılıyorsa (örneğin, /folder2/folder3), boş klasörler oluşturulur ve bunlar Depolama Gezgini görünür olmaz.
  • Stream Analytics, yeni bir blob dosyasının gerekli olmadığı durumlarda aynı dosyanın sonuna ekler. Azure Event Grid gibi Azure hizmetleri bir blob dosya güncelleştirmesinde tetiklenecek şekilde yapılandırılırsa daha fazla tetikleyici oluşturulmasına neden olabilir.
  • Stream Analytics varsayılan olarak bir bloba eklenir. Çıkış biçimi bir JSON dizisi olduğunda, kapatma sırasında veya çıkış zaman bölümlenmiş çıkışlar için bir sonraki zaman bölümüne geçtiğinde dosyayı tamamlar. Bazı durumlarda, örneğin belirsiz bir yeniden başlatma, JSON dizisi için kapatma köşeli ayracı (]) eksik olabilir.