Azure Stream Analytics çıkışları

Azure Stream Analytics işi giriş, sorgu ve çıktıdan oluşur. Dönüştürülen verileri gönderebileceğiniz çeşitli çıkış türleri vardır. Bu makalede desteklenen Stream Analytics çıkışları listelenmektedir. Stream Analytics sorgunuzu tasarlarken INTO yan tümcesini kullanarak çıktının adına bakın. Sorguya birden çok INTO yan tümcesi ekleyerek iş başına tek bir çıkış veya akış işi başına birden çok çıkış (gerekirse) kullanabilirsiniz.

Stream Analytics iş çıkışlarını oluşturmak, düzenlemek ve test etmek için Azure portalını, Azure PowerShell'i, .NET API'sini, REST API'yi, Visual Studio'yu ve Visual Studio Code'u kullanabilirsiniz.

Not

En iyi yerel geliştirme deneyimi için Visual Studio Code için Stream Analytics araçlarını kullanmanızı kesinlikle öneririz. Visual Studio 2019 (sürüm 2.6.3000.0) için Stream Analytics araçlarında bilinen özellik boşlukları vardır ve bundan sonra geliştirilmeyecektir.

Bazı çıkış türleri, aşağıdaki tabloda gösterildiği gibi bölümlendirmeyi destekler.

Tüm çıkışlar toplu işlemi destekler, ancak yalnızca bazıları çıktı toplu iş boyutunu açıkça ayarlamayı destekler. Daha fazla bilgi için çıktı toplu iş boyutları bölümüne bakın.

Çıkış türü Bölümleme Güvenlik
Azure Veri Gezgini Yes Yönetilen Kimlik
Azure Functions Yes Erişim anahtarı
Azure Synapse Analytics Yes SQL kullanıcı kimlik doğrulaması,
Yönetilen Kimlik
Blob depolama ve Azure Data Lake 2. Nesil Yes Erişim anahtarı,
Yönetilen Kimlik
Azure Cosmos DB Yes Erişim anahtarı,
Yönetilen Kimlik
Azure Data Lake Storage 2. Nesil Yes Microsoft Entra kullanıcı
yönetilen kimliği
Azure Event Hubs Evet, çıkış yapılandırmasında bölüm anahtarı sütununu ayarlamanız gerekir. Erişim anahtarı,
Yönetilen Kimlik
Kafka (önizleme) Evet, çıkış yapılandırmasında bölüm anahtarı sütununu ayarlamanız gerekir. Erişim anahtarı,
Yönetilen Kimlik
PostgreSQL için Azure Veritabanı Yes Kullanıcı adı ve parola kimlik doğrulaması
Power BI Hayır Microsoft Entra kullanıcısı,
Yönetilen Kimlik
Azure Service Bus kuyrukları Yes Erişim anahtarı,
Yönetilen Kimlik
Azure Service Bus konuları Yes Erişim anahtarı,
Yönetilen Kimlik
Azure SQL Veritabanı Evet, isteğe bağlı. SQL kullanıcı kimlik doğrulaması,
Yönetilen Kimlik
Azure Tablo Depolama Yes Hesap anahtarı

Önemli

Azure Stream Analytics, API'yi tasarıma göre ekle veya değiştir'i kullanır. Bu işlem var olan bir varlığın yerini alır veya tabloda yoksa yeni bir varlık ekler.

Bölümleme

Stream Analytics, Power BI dışındaki tüm çıkışlar için bölümleri destekler. Bölüm anahtarları ve çıkış yazıcılarının sayısı hakkında daha fazla bilgi için ilgilendiğiniz belirli çıkış türüne ilişkin makaleye bakın. Çıkış türlerine yönelik makaleler önceki bölümde bağlantılıdır.

Ayrıca, bölümlerin daha gelişmiş ayarlanması için, çıktı yazıcılarının sayısı sorgunuzda bir INTO <partition count> (INTO) yan tümcesi kullanılarak denetlenebilir ve bu da istenen iş topolojisini elde etmek için yararlı olabilir. Çıkış bağdaştırıcınız bölümlenmemişse, bir giriş bölümündeki veri eksikliği geç varış süresine kadar gecikmeye neden olur. Bu gibi durumlarda, çıkış tek bir yazıcıyla birleştirilir ve bu işlem hattınızda performans sorunlarına neden olabilir. Geç varış ilkesi hakkında daha fazla bilgi edinmek için bkz . Azure Stream Analytics olay sırasıyla ilgili dikkat edilmesi gerekenler.

Çıktı toplu iş boyutu

Tüm çıkışlar toplu işlemi destekler, ancak yalnızca bazıları toplu iş boyutunu açıkça destekler. Azure Stream Analytics, olayları işlemek ve çıkışlara yazmak için değişken boyutlu toplu işlemler kullanır. Stream Analytics altyapısı genellikle tek seferde tek bir ileti yazmaz ve verimlilik için toplu işlemler kullanır. Hem gelen hem de giden olayların oranı yüksek olduğunda Stream Analytics daha büyük toplu işlemler kullanır. Çıkış oranı düşük olduğunda gecikme süresini düşük tutmak için daha küçük toplu işlemler kullanır.

Avro ve Parquet dosyası bölme davranışı

Stream Analytics sorgusu, belirli bir çıkış için birden çok şema oluşturabilir. Yansıtılan sütunların listesi ve türleri satır satır değişebilir. Tasarım gereği Avro ve Parquet biçimleri tek bir dosyadaki değişken şemaları desteklemez.

Değişken şemaları olan bir akışı bu biçimler kullanılarak bir çıkışa yönlendirirken aşağıdaki davranışlar oluşabilir:

  • Şema değişikliği algılanabilirse, geçerli çıkış dosyası kapatılır ve yeni şemada yeni bir tane başlatılır. Şema değişiklikleri sık sık gerçekleştiğinde dosyaların bu şekilde bölünmesi çıkışı ciddi ölçüde yavaşlatır. Bu davranış, işin genel performansını ciddi şekilde etkileyebilir
  • Şema değişikliği algılanamazsa, satır büyük olasılıkla reddedilir ve satır çıktı alınamadığını için iş takılır. İç içe sütunlar veya çok türlü diziler, bulunup reddedilmeyen durumlardır.

Avro veya Parquet biçimini kullanan çıkışların kesin olarak yazılması veya şemaya yazılması ve bu şekilde yazılması hedeflenen sorguların (tekdüzen şema için açık dönüştürmeler ve projeksiyonlar) dikkate alınması önerilir.

Birden çok şema oluşturulması gerekiyorsa, bir WHERE yan tümcesi kullanarak birden çok çıkış oluşturmayı ve kayıtları her hedefe bölmeyi göz önünde bulundurun.

Parquet çıktı toplu işlem penceresi özellikleri

Azure Resource Manager şablon dağıtımını veya REST API'sini kullandığınızda, iki toplu işlem penceresi özelliği şunlardır:

  1. timeWindow

    Toplu iş başına en uzun bekleme süresi. Değeri bir dizesi Timespanolmalıdır. Örneğin, 00:02:00 iki dakika için. Bu süreden sonra, en düşük satır gereksinimi karşılanmasa bile toplu iş çıktıya yazılır. 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.

  2. sizeWindow

    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.

Bu toplu işlem penceresi özellikleri yalnızca API sürüm 2017-04-01-preview veya üzeri tarafından desteklenir. Rest API çağrısı için JSON yükünün bir örneği aşağıda verilmiştir:

"type": "stream",
      "serialization": {
        "type": "Parquet",
        "properties": {}
      },
      "timeWindow": "00:02:00",
      "sizeWindow": "2000",
      "datasource": {
        "type": "Microsoft.Storage/Blob",
        "properties": {
          "storageAccounts" : [
          {
            "accountName": "{accountName}",
            "accountKey": "{accountKey}",
          }
          ],

Sonraki adımlar