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

Azure Stream Analytics, özel alanlar veya öznitelikler ve özel DateTime yol desenleriyle özel blob çıktısı bölümleme desteği sağlar.

Ö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ığı 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 üzere 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ı NVARCHAR(MAX), BIGINT, FLOAT veya BIT (1.2 uyumluluk düzeyi veya üzeri) olmalıdır. DateTime, Array ve Records türleri desteklenmez, ancak Dizelere dönüştürülürlerse bölüm anahtarları olarak kullanılabilir. 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_id bölümlendirmek için, iş oluştururken Blob Yolu Deseni alanını blob çıktı özelliklerine {client_id} bölüm belirteci içerecek şekilde ayarlayın. Çeşitli client_id değerlerine sahip veriler Stream Analytics işi üzerinden aktıkça, çıkış verileri klasör başına tek bir client_id değeri temel alınarak ayrı klasörlere kaydedilir.

İstemci kimliğine sahip yol deseni

Benzer şekilde, iş girişi her algılayıcının bir sensor_id sahip olduğu milyonlarca algılayıcının sensör verileriyse, her algılayıcı verilerini farklı klasörlere bölümlendirmek için Yol Düzeni {sensor_id} olur.

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

REST API çıkışı

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

İstemciler kapsayıcısı

Her klasör, her blobda bir veya daha fazla kayıt bulunan birden çok blob içerebilir. Yukarıdaki örnekte, "06000000" etiketli bir klasörde aşağıdaki içeriklere sahip tek bir blob vardır:

Blob içeriği

Çıkış yolundaki çıkışı bölümlendirmek için kullanılan sütun client_id olduğundan blobdaki her kaydın klasör adıyla eşleşen bir client_id sütunu olduğuna dikkat 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 ARALIKBİRLEŞTİr'i kullanarak blob çıktısında özel yol bölümü için sorguda bileşik anahtar oluşturabilirler. Örneğin: girişten blobOutput'a compositeColumn olarak concat (col1, col2) öğesini seçin. Daha sonra blob depolamada özel yol olarak compositeColumn belirtebilirler.

  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ışmıyor.

  4. Giriş akışı 8000'in altında bölüm anahtarı kardinalitesine sahip kayıtlardan oluştuğunda, kayıtlar mevcut bloblara eklenir ve yalnızca gerektiğinde yeni bloblar oluşturur. Kardinalite 8000'in üzerindeyse mevcut blobların yazılacağı garanti edilemez ve aynı bölüm anahtarına sahip rastgele sayıda kayıt için yeni bloblar oluşturulmaz.

  5. Blob çıktısı 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 Akış kurallarıyla uyumlu bir çıkış biçimi belirtmenize olanak tanıyarak Azure 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. Örneğin, {datetime:yyyy}.

Desteklenen belirteçler

Aşağıdaki biçim belirtici belirteçleri, özel DateTime biçimleri 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ı bir 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 desenlerini kullanmak istemiyorsanız, yerleşik DateTime biçimlerine sahip bir açılan liste oluşturmak için Yol Ön Ekine {date} ve/veya {time} belirtecini ekleyebilirsiniz.

Stream Analytics eski DateTime biçimleri

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 Eki'nde aynı biçim belirticiyi birden çok kez kullanabilirsiniz. Belirteç her seferinde yinelenmelidir.

Hive Akış kuralları

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

Örneğin, year={datetime:yyyy}/month={datetime:MM}/day={datetime:dd}/hour={datetime:HH}.

Özel çıkış, tabloları değiştirme ve Azure 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

Azure Stream Analytics Azure portal hızlı başlangıç kılavuzuna göre depolama hesabı, kaynak grubu, Stream Analytics işi ve giriş kaynağı oluşturun. GitHub'da da bulunan hızlı başlangıç kılavuzunda kullanılan örnek verileri kullanın.

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

Stream Analytics blob çıkış havuzu oluşturma

Tam yol deseni aşağıdaki gibidir:

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 deseni ile Stream Analytics blob çıkışı

Sonraki adımlar