Aracılığıyla paylaş


Kusto.Ingest hataları ve özel durumları

İstemci tarafında alma işlemi sırasında oluşan tüm hatalar bir C# özel durumuyla gösterilir.

Hatalar

KustoDirectIngestClient özel durumları

Birden çok kaynaktan alma girişiminde bulunurken, alma işlemi sırasında hatalar oluşabilir. Kaynaklardan biri için bir alım başarısız olursa günlüğe kaydedilir ve istemci kalan kaynakları almaya devam eder. Alım için tüm kaynaklar üzerinde gittikten sonra, üyeyi IList<IngestClientException> IngestionErrors içeren bir IngestClientAggregateException oluşturulur.

IngestClientException ve türetilmiş sınıfları bir alan IngestionSource ve bir Error alan içerir. İki alan birlikte, alma işlemi başarısız olan kaynaktan alma işlemi denenirken oluşan hataya bir eşleme oluşturur. Bilgiler, hangi kaynakların başarısız olduğunu ve neden alınabildiğini araştırmak için listede kullanılabilir IngestionErrors . Özel IngestClientAggregateException durum ayrıca tüm kaynaklar için bir hata oluşup oluşmadığını gösteren bir boole özelliği GlobalErroriçerir.

Dosyalardan veya bloblardan alma hataları

Bir blob veya dosyadan alma girişimi sırasında bir alma hatası oluşursa, bayrağı olarak ayarlansa deleteSourceOnSuccesstruebile alma kaynakları silinmez. Kaynaklar daha fazla analiz için korunur. Hatanın kaynağı anlaşıldıktan sonra ve hata alma kaynağının kendisinden kaynaklanmadıysa, istemcinin kullanıcısı yeniden kaydetmeye çalışabilir.

IDataReader'dan alma hataları

DataReader'dan alınan veriler, varsayılan konumu olan <Temp Path>\Ingestions_<current date and time>geçici bir klasöre kaydedilir. Bu varsayılan klasör başarılı bir alımdan sonra her zaman silinir.

ve yöntemlerindeIngestFromDataReader, retainCsvOnFailure varsayılan değeri falseolan bayrağı, dosyaların başarısız bir alımdan sonra tutulup IngestFromDataReaderAsync tutulmayacağını belirler. Bu bayrak olarak ayarlanırsa false, veri alımında başarısız olan veriler kalıcı olmaz ve bu da neyin yanlış gittiğini anlamasını zorlaştırır.

KustoQueuedIngestClient özel durumları

KustoQueuedIngestClient bir Azure kuyruğuna ileti yükleyerek verileri alır. Kuyruğa alma işleminden önce veya sırasında bir hata oluşursa, işlemin sonunda bir IngestClientAggregateException oluşturulur. Oluşan özel durum, her hatanın IngestClientExceptionkaynağını içeren ve kuyruğa gönderilmemiş bir koleksiyonu içerir. İleti gönderilmeye çalışılırken oluşan hata da oluşturulur.

Kaynak olarak bir dosya veya blob ile kuyruk hatalarına gönderme

'nin IngestFromFile/IngestFromBlob yöntemleri kullanılırken KustoQueuedIngestClientbir hata oluşursa, bayrağı olarak ayarlansa deleteSourceOnSuccesstruebile kaynaklar silinmez. Bunun yerine kaynaklar daha fazla analiz için korunur.

Hatanın kaynağı anlaşıldıktan sonra ve hata alma kaynağının kendisinden kaynaklanamadıysa, istemcinin kullanıcısı başarısız kaynakla ilgili IngestFromFile/IngestFromBlob yöntemleri kullanarak verileri yeniden sorgulamaya çalışabilir.

Kaynak olarak IDataReader ile kuyruk hatalarına gönderme

DataReader kaynağı kullanılırken kuyruğa gönderilen veriler varsayılan konumu olan <Temp Path>\Ingestions_<current date and time>geçici bir klasöre kaydedilir. Veriler kuyruğa başarıyla gönderildikten sonra bu klasör her zaman silinir. ve yöntemlerindeIngestFromDataReader, retainCsvOnFailure varsayılan değeri falseolan bayrağı, dosyaların başarısız bir alımdan sonra tutulup IngestFromDataReaderAsync tutulmayacağını belirler. Bu bayrak olarak ayarlanırsa false, veri alımında başarısız olan veriler kalıcı olmaz ve bu da neyin yanlış gittiğini anlamasını zorlaştırır.

Yaygın Hatalar

Hata Nedeni Risk azaltma
Veritabanı <adı> yok Veritabanı yok /Create the database konumundaki kustoIngestionPropertiesveritabanı adını denetleyin
'Tablo' türünde 'tablo adı yok' varlığı bulunamadı. Tablo yok ve CSV eşlemesi yok. CSV eşlemesi ekleme / gerekli tabloyu oluşturma
Blob <blob yolu> nedenden dolayı dışlandı: JSON deseni jsonMapping parametresiyle alınmalıdır JSON eşlemesi sağlanmayan JSON alımı. JSON eşlemesi sağlama
Blob indirilemedi: 'Uzak sunucu bir hata döndürdü: (404) Bulunamadı.' Blob yok. Blob'un mevcut olduğunu doğrulayın. Varsa yeniden deneyin ve Kusto ekibiyle iletişime geçin
JSON sütun eşlemesi geçerli değil: İki veya daha fazla eşleme öğesi aynı sütunu işaret etti. JSON eşlemesinde farklı yollara sahip 2 sütun vardır JSON eşlemesini düzeltme
EngineError - [UtilsException] IngestionDownloader.Download: Bir veya daha fazla dosya indirilemedi (ActivityID:GUID1>, RootActivityId:<<GUID2> için KustoLogs araması) Bir veya daha fazla dosya indirilemedi. Yeniden Dene
Ayrıştırılamadı: Kimliği '<akış adı>' olan akış yanlış biçimlendirilmiş bir CSV biçimine sahip ve ValidationOptions ilkesi başına başarısız oluyor Hatalı biçimlendirilmiş CSV dosyası (örneğin, her satırda aynı sayıda sütun olmaması gibi). Yalnızca doğrulama ilkesi olarak ValidationOptions.ValidateCsvInputConstantColumnsayarlandığında başarısız olur. CSV dosyalarınızı denetleyin. Bu ileti yalnızca CSV/TSV dosyaları için geçerlidir
IngestClientAggregateException 'Geçerli Paylaşılan Erişim İmzası için zorunlu parametreler eksik' hata iletisiyle Kullanılan SAS, depolama hesabında değil hizmettedir Depolama hesabının SAS'sini kullanma

Alınan hata kodları

Alma hatalarının program aracılığıyla işlenmesine yardımcı olmak için, hata bilgileri sayısal bir hata koduyla (IngestionErrorCode enumeration ) zenginleştirilir.

Alım hata kodlarının tam listesi için bkz. Alma Hatası kodları.

Ayrıntılı özel durumlar başvurusu

CloudQueuesNotFoundException

Veri Yönetimi kümesinden hiç kuyruk döndürülmezse tetiklendi

Temel Sınıf: Özel Durum

Alan Adı Tür Anlamı
Hata string DM'den kuyruklar alınmaya çalışılırken oluşan hata

Yalnızca Kusto Kuyruğa Alınmış Alma İstemcisi kullanılırken geçerlidir. Alma işlemi sırasında, DM'ye bağlı Azure Kuyruklarını almak için çeşitli girişimler yapılır. Bu denemeler başarısız olduğunda, hatanın nedenini içeren özel durum 'Hata' alanında oluşturulur. Muhtemelen 'InnerException' alanındaki bir iç özel durum da oluşturulur.

CloudBlobContainersNotFoundException

Veri Yönetimi kümesinden hiçbir blob kapsayıcısı döndürülmezse tetiklendi

Temel Sınıf: Özel Durum

Alan Adı Tür Anlamı
KustoEndpoint string İlgili DM'nin uç noktası

Yalnızca Kusto Kuyruğa Alınmış Alma İstemcisi kullanılırken geçerlidir.
Dosyalar, DataReader veya Stream gibi bir Azure kapsayıcısında yer almayan kaynakları alırken veriler alım için geçici bir bloba yüklenir. Verileri karşıya yükleyecek kapsayıcı bulunamadığında özel durum oluşur.

DuplicateIngestionPropertyException

Bir alma özelliği birden çok kez yapılandırıldığında tetikleniyor

Temel Sınıf: Özel Durum

Alan Adı Tür Anlamı
ÖzellikAdı string Yinelenen özelliğin adı

PostMessageToQueueFailedException

Kuyruğa ileti gönderildiğinde tetiklenen hata

Temel Sınıf: Özel Durum

Alan Adı Tür Anlamı
QueueUri string Kuyruğun URI'si
Hata string Kuyruğa göndermeye çalışırken oluşturulan hata iletisi

Yalnızca Kusto Kuyruğa Alınmış Alma İstemcisi kullanılırken geçerlidir.
Kuyruğa alınan alma istemcisi, ilgili Azure kuyruğuna bir ileti yükleyerek verileri alır. Hata sonrası oluşursa özel durum oluşur. Kuyruk URI'sini, 'Hata' alanındaki hatanın nedenini ve muhtemelen 'InnerException' alanındaki bir iç özel durumu içerir.

DataFormatNotSpecifiedException

Veri biçimi gerekli olduğunda ancak içinde belirtilmediğinde tetikleniyor IngestionProperties

Temel Sınıf: IngestClientException

Stream'den veri alırken, verilerin düzgün bir şekilde alınması için IngestionProperties içinde bir veri biçimi belirtilmelidir. Bu özel durum belirtilmediğinde IngestionProperties.Format oluşturulur.

InvalidUriIngestClientException

Alma kaynağı olarak geçersiz bir blob URI'si gönderildiğinde tetikleniyor

Temel Sınıf: IngestClientException

CompressFileIngestClientException

Alma istemcisi veri alımı için sağlanan dosyayı sıkıştıramazsa tetikler

Temel Sınıf: IngestClientException

Dosyalar, alımı öncesinde sıkıştırılır. Dosyayı sıkıştırma girişimi başarısız olduğunda özel durum oluşur.

UploadFileToTempBlobIngestClientException

Alma istemcisi, alma için sağlanan kaynağı geçici bir bloba yükleyemediğinde tetikleniyor

Temel Sınıf: IngestClientException

SizeLimitExceededIngestClientException

Bir alım kaynağı çok büyük olduğunda tetikleniyor

Temel Sınıf: IngestClientException

Alan Adı Tür Anlamı
Boyut long Alma kaynağının boyutu
Maxsize long Alım için izin verilen en büyük boyut

Bir alım kaynağı 4 GB'lık en büyük boyutu aşarsa, özel durum oluşturulur. Boyut doğrulaması, IngestionProperties sınıfındaki bayrağı tarafından IgnoreSizeLimit geçersiz kılınabilir. Ancak 1 GB'tan büyük tek kaynakları almanızı önermeyiz. Daha fazla bilgi için bkz . Kusto En iyi uygulamaları alma.

UploadFileToTempBlobIngestClientException

Alma istemcisi, alma için sağlanan dosyayı geçici bir bloba yükleyemediğinde tetikleniyor

Temel Sınıf: IngestClientException

DirectIngestClientException

Doğrudan alma işlemi yapılırken genel bir hata oluştuğunda tetiklenen

Temel Sınıf: IngestClientException

QueuedIngestClientException

Kuyruğa alınan alma işlemi sırasında bir hata oluştuğunda tetiklenen

Temel Sınıf: IngestClientException

IngestClientAggregateException

Alma sırasında bir veya daha fazla hata oluştuğunda tetiklenen

Temel Sınıf: AggregateException

Alan Adı Tür Anlamı
IngestionErrors IList<IngestClientException> Alma girişimi sırasında oluşan hatalar ve bunlarla ilgili kaynaklar
IsGlobalError bool Özel durumun tüm kaynaklar için olup olmadığını gösterir