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 GlobalError
içerir.
Dosyalardan veya bloblardan alma hataları
Bir blob veya dosyadan alma girişimi sırasında bir alma hatası oluşursa, bayrağı olarak ayarlansa deleteSourceOnSuccess
true
bile 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 false
olan 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 IngestClientException
kaynağı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 KustoQueuedIngestClient
bir hata oluşursa, bayrağı olarak ayarlansa deleteSourceOnSuccess
true
bile 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 false
olan 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 kustoIngestionProperties veritabanı 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.ValidateCsvInputConstantColumns ayarlandığı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 |
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin