Azure Stream Analytics özel blob çıkışı bölümleme

Azure Stream Analytics, özel alanlar veya öznitelikler ve özel yol desenleri ile özel DateTime blob çıkış bölümlemlerini destekler.

Özel alan veya öznitelikler

Özel alan veya giriş öznitelikleri, çıkış üzerinde daha fazla denetim sağlayarak aşağı akış veri işleme ve raporlama iş akışlarını geliştirir.

Bölüm anahtarı seçenekleri

Giriş verilerini bölümlendirmek için kullanılan bölüm anahtarı veya sütun adı, blob adları için kabul edilen herhangi bir karakter içerebilir. Diğer adlarla birlikte kullanılmadıkları sürece iç içe alanları bölüm anahtarı olarak kullanmak mümkün değildir. Ancak, dosya hiyerarşisi oluşturmak için belirli karakterleri kullanabilirsiniz. Örneğin, benzersiz bir bölüm anahtarı oluşturmak için diğer iki sütundaki verileri birleştiren bir sütun oluşturmak için aşağıdaki sorguyu kullanabilirsiniz:

SELECT name, id, CONCAT(name, "/", id) AS nameid

Bölüm anahtarı , , BIGINTFLOATveya BIT (1.2 uyumluluk düzeyi veya üzeri) olmalıdırNVARCHAR(MAX). DateTime, Arrayve Records türleri desteklenmez, ancak dizelere dönüştürülürlerse bölüm anahtarları olarak kullanılabilirler. Daha fazla bilgi için bkz . Azure Stream Analytics veri türleri.

Örnek

bir işin, alınan verilerin oturumları tanımlamak için bir sütun client_id içerdiği bir dış video oyunu hizmetine bağlı canlı kullanıcı oturumlarından giriş verilerini aldığını varsayalım. Verileri client_idile bölümlendirmek için, bir iş oluşturduğunuzda blob Yolu desen alanını blob çıktı özelliklerine bölüm belirteci {client_id} içerecek şekilde ayarlayın. Çeşitli client_id değerlere sahip veriler Stream Analytics işi üzerinden aktıkça, çıkış verileri klasör başına tek client_id bir değer temelinde ayrı klasörlere kaydedilir.

İstemci kimliğine sahip Yol deseni gösteren ekran görüntüsü.

Benzer şekilde, iş girişi her algılayıcının sahip sensor_idolduğu milyonlarca algılayıcının sensör verileriyse, yol deseni her algılayıcı verilerini farklı klasörlere bölmek olacaktır {sensor_id} .

REST API'yi kullandığınızda, bu istek için kullanılan bir JSON dosyasının çıkış bölümü aşağıdaki görüntü gibi görünebilir:

REST API çıkışını gösteren ekran görüntüsü.

İş çalışmaya başladıktan sonra kapsayıcı clients aşağıdaki görüntü gibi görünebilir:

İstemciler kapsayıcısını gösteren ekran görüntüsü.

Her klasör, her blob'un bir veya daha fazla kayıt içerdiği birden çok blob içerebilir. Yukarıdaki örnekte, aşağıdaki içeriklerle etiketlenmiş "06000000" bir klasörde tek bir blob vardır:

Blob içeriğini gösteren ekran görüntüsü.

Çıktı yolunda çıkışı bölümlemede kullanılan sütun olduğundan, blobdaki her kaydın klasör adıyla eşleşen bir client_id sütunu olduğuna client_iddikkat edin.

Sınırlamalar

  1. Yol deseni blob çıktı özelliğinde yalnızca bir özel bölüm anahtarına izin verilir. Aşağıdaki yol desenlerinin tümü geçerlidir:

    • cluster1/{date}/{aFieldInMyData}
    • cluster1/{time}/{aFieldInMyData}
    • cluster1/{aFieldInMyData}
    • cluster1/{date}/{time}/{aFieldInMyData}
  2. Müşteriler birden fazla giriş alanı kullanmak isterse, kullanarak CONCATblob çıktısında özel yol bölümü için sorguda bileşik anahtar oluşturabilirler. select concat (col1, col2) as compositeColumn into blobOutput from input bunun bir örneğidir. Daha sonra Azure Blob Depolama'da özel yol olarak belirtebilirlercompositeColumn.

  3. Bölüm anahtarları büyük/küçük harfe duyarsız olduğundan ve john gibi John bölüm anahtarları eşdeğerdir. Ayrıca, ifadeler bölüm anahtarları olarak kullanılamaz. Örneğin, {columnA + columnB} çalışmaz.

  4. Giriş akışı, bölüm anahtarı kardinalitesi 8.000'in altında olan kayıtlardan oluştuğunda, kayıtlar mevcut bloblara eklenir. Yalnızca gerektiğinde yeni bloblar oluştururlar. Kardinalite 8.000'in üzerindeyse mevcut blobların yazılacağı garanti edilememektedir. Aynı bölüm anahtarına sahip rastgele sayıda kayıt için yeni bloblar oluşturulmaz.

  5. Blob çıkışı sabit olarak yapılandırılırsa, Stream Analytics her veri gönderildiğinde yeni bir blob oluşturur.

Özel DateTime yol desenleri

Özel DateTime yol desenleri Hive Stream kurallarıyla uyumlu bir çıkış biçimi belirtmenize olanak tanıyarak Stream Analytics'e aşağı akış işleme için Azure HDInsight ve Azure Databricks'e veri gönderme olanağı sağlar. Özel DateTime yol desenleri, blob çıkışınızın Yol Ön Eki alanındaki anahtar sözcüğü ve biçim belirticisi kullanılarak datetime kolayca uygulanır. {datetime:yyyy} bunun bir örneğidir.

Desteklenen belirteçler

Aşağıdaki biçim belirtici belirteçleri, özel DateTime biçimler elde etmek için tek başına veya birlikte kullanılabilir.

Biçim belirteci Açıklama Örnek saat 2018-01-02T10:06:08 üzerindeki sonuçlar
{datetime:yyyy} Dört basamaklı sayı olarak yıl 2018
{datetime:MM} 01 ile 12 ay 01
{datetime:M} 1 ile 12 ay 1
{datetime:dd} 01 ile 31 gün 02
{datetime:d} 1 ile 31 gün 2
{datetime:HH} 00 ile 23 arasında 24 saatlik biçimin kullanıldığı saat 10
{datetime:mm} 00 ile 60 dakika 06
{datetime:m} 0 ile 60 dakika 6
{datetime:ss} 00 ile 60 saniye 08

Özel DateTime desenler kullanmak istemiyorsanız, ve/veya {time} belirtecini {date} Yol Ön Eki alanına ekleyerek yerleşik DateTime biçimlere sahip bir açılan liste oluşturabilirsiniz.

Stream Analytics'in eski DateTime biçimlerini gösteren ekran görüntüsü.

Genişletilebilirlik ve kısıtlamalar

Yol ön eki karakter sınırına ulaşana kadar yol deseninde istediğiniz kadar belirteç ({datetime:<specifier>}) kullanabilirsiniz. Biçim tanımlayıcıları, tarih ve saat açılan listelerinde zaten listelenen birleşimlerin ötesinde tek bir belirteç içinde birleştirilemiyor.

yol bölümü için logs/MM/dd:

Geçerli ifade Geçersiz ifade
logs/{datetime:MM}/{datetime:dd} logs/{datetime:MM/dd}

Yol ön ekinde aynı biçim belirticiyi birden çok kez kullanabilirsiniz. Belirteç her seferinde yinelenmelidir.

Hive Streaming kuralları

Blob Depolama için özel yol desenleri, klasörlerin klasör adında etiketlenmesi beklenen Hive Streaming kuralıyla column= kullanılabilir.

year={datetime:yyyy}/month={datetime:MM}/day={datetime:dd}/hour={datetime:HH} bunun bir örneğidir.

Özel çıkış, tabloları değiştirme ve Stream Analytics ile Hive arasında bağlantı noktası verilerine el ile bölüm ekleme zahmetini ortadan kaldırır. Bunun yerine, aşağıdakiler kullanılarak birçok klasör otomatik olarak eklenebilir:

MSCK REPAIR TABLE while hive.exec.dynamic.partition true

Örnek

Stream Analytics Azure portalı hızlı başlangıcına göre depolama hesabı, kaynak grubu, Stream Analytics işi ve giriş kaynağı oluşturun. Hızlı başlangıçta kullanılan örnek verileri kullanın. Örnek veriler GitHub'da da kullanılabilir.

Aşağıdaki yapılandırmayla bir blob çıkış havuzu oluşturun:

Stream Analytics'in blob çıkış havuzu oluşturduğunu gösteren ekran görüntüsü.

Tam yol deseni şöyledir:

year={datetime:yyyy}/month={datetime:MM}/day={datetime:dd}

İşi başlattığınızda, blob kapsayıcınızda yol desenini temel alan bir klasör yapısı oluşturulur. Gün düzeyinde detaya gidebilirsiniz.

Özel yol deseniyle Stream Analytics blob çıkışını gösteren ekran görüntüsü.