Giriş bağlantısı sorunlarını giderme

Bu makalede Azure Stream Analytics giriş bağlantılarıyla ilgili yaygın sorunlar, bu sorunların nasıl giderilir ve nasıl düzeltilir açıklanmaktadır.

Birçok sorun giderme adımı, Stream Analytics işiniz için kaynak günlüklerini açmanızı gerektirir. Kaynak günlükleriniz açık değilse bkz . Kaynak günlüklerini kullanarak Azure Stream Analytics sorunlarını giderme.

İş giriş olaylarını almıyor

  1. Girişlere ve çıkışlara bağlantınızı doğrulayın. Her giriş ve çıkış için Test Bağlan ion düğmesini kullanın.

  2. Giriş verilerinizi inceleyin:

    1. Her giriş için Örnek Veri düğmesini kullanın. Giriş örnek verilerini indirin.

    2. Şemayı ve veri türlerini anlamak için örnek verileri inceleyin.

    3. Olayların gönderildiğinden emin olmak için Azure Event Hubs ölçümlerini denetleyin. Event Hubs ileti alıyorsa ileti ölçümleri sıfırdan büyük olmalıdır.

  3. Giriş önizlemesinde bir zaman aralığı seçtiğinizden emin olun. Zaman aralığı seçin'i seçin ve sorgunuzu test etmeden önce örnek bir süre girin.

Önemli

Ağa eklenmemiş Azure Stream Analytics işleri için Stream Analytics'ten gelen bağlantıların kaynak IP adresine hiçbir şekilde güvenmeyin. Bunlar, zaman zaman gerçekleşen hizmet altyapısı işlemlerine bağlı olarak genel veya özel IP'ler olabilir.

Hatalı biçimlendirilmiş giriş olayları seri durumdan çıkarma hatalarına neden oluyor

Stream Analytics işinizin giriş akışı hatalı biçimlendirilmiş iletiler içerdiğinde seri durumdan çıkarma sorunları oluşur. Örneğin, bir JSON nesnesinde eksik ayraç veya ayraç ya da zaman alanında yanlış bir zaman damgası biçimi hatalı biçimlendirilmiş iletiye neden olabilir.

Stream Analytics işi bir girişten hatalı biçimlendirilmiş bir ileti aldığında, iletiyi bırakır ve size bir uyarı ile bildirir. Stream Analytics işinizin Girişler kutucuğunda bir uyarı simgesi görünür. İş çalışır durumda olduğu sürece uyarı simgesi vardır.

Screenshot that shows the Inputs tile for Azure Stream Analytics.

Hatanın ayrıntılarını ve hataya neden olan iletiyi (yük) görüntülemek için kaynak günlüklerini açın. Seri durumdan çıkarma hatalarının oluşmasının birden çok nedeni vardır. Belirli seri durumdan çıkarma hataları hakkında daha fazla bilgi için bkz . Giriş verileri hataları. Kaynak günlükleri açık değilse Azure portalında kısa bir bildirim görüntülenir.

Screenshot that shows a warning notification about input details.

İleti yükü 32 KB'tan büyükse veya ikili biçimdeyse GitHub örnekleri deposunda bulunan CheckMalformedEvents.cs kodunu çalıştırın. Bu kod bölüm kimliği uzaklığını okur ve bu uzaklıkta bulunan verileri yazdırır.

Giriş seri durumdan çıkarma hatalarının diğer yaygın nedenleri şunlardır:

  • değerinden büyük 9223372036854775807bir tamsayı sütunu.
  • Nesne dizisi veya satırla ayrılmış nesneler yerine dizeler. Geçerli örnek: *[{'a':1}]*. Geçersiz örnek: *"'a' :1"*.
  • İşinizde giriş olarak Avro biçiminde bir Event Hubs yakalama blobu kullanma.
  • Tek bir giriş olayında yalnızca büyük/küçük harfe göre farklılık gösteren iki sütuna sahip olma. Örnek: *column1* ve *COLUMN1*.

Bölüm sayısı değişiklikleri

Olay hub'larının bölüm sayısı değiştirilebilir. Bir olay hub'ının bölüm sayısı değiştirilirse Stream Analytics işini durdurmanız ve yeniden başlatmanız gerekir.

İş çalışırken bir olay hub'ının bölüm sayısı değiştiğinde aşağıdaki hata görüntülenir: Microsoft.Streaming.Diagnostics.Exceptions.InputPartitioningChangedException.

İş, Event Hubs alıcılarının üst sınırını aşıyor

Event Hubs'ı kullanmak için en iyi yöntem, iş ölçeklenebilirliği için birden çok tüketici grubu kullanmaktır. Belirli bir girişin Stream Analytics işindeki okuyucu sayısı, tek bir tüketici grubundaki okuyucu sayısını etkiler.

Alıcıların kesin sayısı, ölçeği genişletme topoloji mantığı için iç uygulama ayrıntılarına dayanır. Numara dışarıdan gösterilmez. Bir iş başlatıldığında veya yükseltildiğinde okuyucu sayısı değişebilir.

Alıcı sayısı üst sınırı aştığında aşağıdaki hata iletisi görüntülenir. İleti, bir tüketici grubu altında Event Hubs'a yapılan mevcut bağlantıların listesini içerir. etiketi AzureStreamAnalytics , bağlantıların bir Azure akış hizmetinden geldiğini gösterir.

The streaming job failed: Stream Analytics job has validation errors: Job will exceed the maximum amount of Event Hubs Receivers.

The following information may be helpful in identifying the connected receivers: Exceeded the maximum number of allowed receivers per partition in a consumer group which is 5. List of connected receivers – 
AzureStreamAnalytics_c4b65e4a-f572-4cfc-b4e2-cf237f43c6f0_1, 
AzureStreamAnalytics_c4b65e4a-f572-4cfc-b4e2-cf237f43c6f0_1, 
AzureStreamAnalytics_c4b65e4a-f572-4cfc-b4e2-cf237f43c6f0_1, 
AzureStreamAnalytics_c4b65e4a-f572-4cfc-b4e2-cf237f43c6f0_1, 
AzureStreamAnalytics_c4b65e4a-f572-4cfc-b4e2-cf237f43c6f0_1.

Not

İş yükseltmesi sırasında okuyucu sayısı değiştiğinde, denetim günlüklerine geçici uyarılar yazılır. Stream Analytics işleri bu geçici sorunlardan otomatik olarak kurtarılır.

Event Hubs örneğinize yeni bir tüketici grubu eklemek için şu adımları izleyin:

  1. Azure Portal’ında oturum açın.

  2. Olay hub'ınızı bulun.

  3. Varlıklar başlığı altında Event Hubs'ı seçin.

  4. Olay hub'ını ada göre seçin.

  5. Event Hubs Örneği sayfasındaki Varlıklar başlığının altında Tüketici grupları'nı seçin. $Default adlı bir tüketici grubu listelenir.

  6. Yeni bir tüketici grubu eklemek için + Tüketici Grubu'na tıklayın.

    Screenshot that shows the button for adding a consumer group in Event Hubs.

  7. Stream Analytics işinde olay hub'ına işaret eden girişi oluşturduğunuzda, tüketici grubunu orada belirttiniz. Event Hubs, bir tüketici grubu belirtilmezse $Default kullanır. Bir tüketici grubu oluşturduktan sonra Stream Analytics işinde olay hub'ı girişini düzenleyin ve yeni tüketici grubunun adını belirtin.

Bölüm başına okuyucular Event Hubs sınırını aşıyor

Akış sorgunuzun söz dizimi olay hub'ı girişi için aynı kaynağa birden çok kez başvuruda bulunursa, iş altyapısı aynı tüketici grubundan sorgu başına birden çok okuyucu kullanabilir. Aynı tüketici grubuna çok fazla başvuru olduğunda, iş beş sınırını aşabilir ve bir hata oluşturabilir. Bu durumlarda, birden çok tüketici grubu arasında birden çok giriş kullanarak daha fazla bölme yapabilirsiniz.

Bölüm başına okuyucu sayısının Event Hubs sınırı olan beşi aştığı senaryolar şunlardır:

  • Birden çok SELECT deyim: Aynı olay hub'ı girişine başvuran birden çok SELECT deyim kullanırsanız, her SELECT deyim yeni bir alıcı oluşturulmasına neden olur.

  • UNION: kullandığınızdaUNION, aynı olay hub'ına ve tüketici grubuna başvuran birden çok girişe sahip olmak mümkündür.

  • SELF JOIN: Bir SELF JOIN işlemi kullandığınızda aynı olay hub'ına birden çok kez başvurmak mümkündür.

Aşağıdaki en iyi yöntemler, bölüm başına okuyucu sayısının Event Hubs sınırı olan beşi aştığı senaryoları azaltmaya yardımcı olabilir.

WITH yan tümcesi kullanarak sorgunuzu birden çok adıma bölme

WITH yan tümcesi, sorgudaki bir FROM yan tümcenin başvurabileceği geçici bir adlandırılmış sonuç kümesi belirtir. Yan tümcesini WITH tek SELECT bir deyimin yürütme kapsamında tanımlarsınız.

Örneğin, bu sorgu yerine:

SELECT foo 
INTO output1
FROM inputEventHub

SELECT bar
INTO output2
FROM inputEventHub 
…

Bu sorguyu kullanın:

WITH data AS (
   SELECT * FROM inputEventHub
)

SELECT foo
INTO output1
FROM data

SELECT bar
INTO output2
FROM data
…

Girişlerin farklı tüketici gruplarına bağlandığından emin olun

Aynı Event Hubs tüketici grubuna üç veya daha fazla girişin bağlandığı sorgular için ayrı tüketici grupları oluşturun. Bu görev ek Stream Analytics girişleri oluşturulmasını gerektirir.

Farklı tüketici gruplarıyla ayrı girişler oluşturma

Aynı olay hub'ı için farklı tüketici gruplarıyla ayrı girişler oluşturabilirsiniz. Aşağıdaki sorgu örneğinde UNION , InputOne ve InputTwo aynı Event Hubs kaynağına başvurur. Herhangi bir sorguda farklı tüketici gruplarına sahip ayrı girişler olabilir. Sorgu UNION yalnızca bir örnektir.

WITH 
DataOne AS 
(
SELECT * FROM InputOne 
),

DataTwo AS 
(
SELECT * FROM InputTwo 
),

SELECT foo FROM DataOne
UNION 
SELECT foo FROM DataTwo

Bölüm başına okuyucular IoT Hub sınırını aşıyor

Stream Analytics işleri, IoT Hub'dan olaylara bağlanmak ve olayları okumak için Azure IoT Hub'daki yerleşik Event Hubs uyumlu uç noktasını kullanır. Bölüm başına okuyucularınız IoT Hub sınırlarını aşarsa, event hubs çözümlerini kullanarak sorunu çözebilirsiniz. Yerleşik uç nokta için IoT Hub portalı uç nokta oturumu veya IoT Hub SDK'sı aracılığıyla bir tüketici grubu oluşturabilirsiniz.

Yardım alın

Daha fazla yardım için Azure Stream Analytics için Microsoft Soru-Cevap sayfasını deneyin.

Sonraki adımlar